Tôi đã học ở trường rằng trục z lên. Nó giống nhau trong phần mềm mô hình hóa như Blender. Tuy nhiên, trong nhiều trò chơi, trục y lên.
Lý do là gì?
Tôi đã học ở trường rằng trục z lên. Nó giống nhau trong phần mềm mô hình hóa như Blender. Tuy nhiên, trong nhiều trò chơi, trục y lên.
Lý do là gì?
Câu trả lời:
Tôi nghĩ rằng hướng của trục tọa độ là các điểm giữ từ các miền khác nhau trong đó mặt phẳng tới hạn khác nhau và X / Y được căn chỉnh với mặt phẳng tới hạn đó. Trong một số ứng dụng, mặt phẳng mặt đất là quan trọng nhất, do đó X / Y là mặt đất và Z kết thúc vuông góc với nó. Tuy nhiên, đối với các trò chơi, mặt phẳng quan trọng thường là màn hình (đặc biệt là quay lại khi chúng ở dạng 2D và mới bắt đầu chuyển sang 3D), do đó X / Y là màn hình và sau đó khi trò chơi 3D Z kết thúc vuông góc với nó.
Bạn có thể thấy sự khác biệt đó giữa hai công cụ nghệ thuật 3D lớn nhất: 3ds max và Maya. Trục Z tăng tối đa 3ds vì nó phát triển từ các công cụ kiến trúc, trong khi trục Y tăng lên ở Maya vì nó phát triển từ các công cụ làm phim.
Điều quan trọng cần nhận ra khi so sánh bất kỳ công cụ cụ thể nào với những gì bạn học được ở trường là tất cả đều tùy ý. Nó thực sự không quan trọng bằng cách nào các trục được chỉ miễn là bạn giữ mọi thứ nhất quán và dịch chính xác giữa các hệ tọa độ khác nhau.
Đó chủ yếu là di sản từ thời mà tất cả những gì có thể được tạo ra bằng 3D là một số khối xoay không gian màn hình hoặc cuộn thị sai hoặc một cái gì đó tương tự. Trong các ứng dụng như vậy, Z là "độ sâu" vì X và Y là trục cho mặt phẳng màn hình. Khi các bản demo ngày càng tiến bộ hơn, các quy ước ban đầu vẫn tồn tại vì không dễ dàng thay đổi bất cứ thứ gì hoạt động.
Về lý do tại sao các trò chơi chính xác ngày nay có Y là trục tung - có rất nhiều hướng dẫn được viết kém ngoài kia không giải thích được sự khác biệt. Thông thường, sẽ hữu ích nhất khi có mặt phẳng chuyển động chính trên các trục X và Y (để hầu hết các phép tính 2D không yêu cầu hoán đổi trục trong mã). Đối với hầu hết các sidecrollers, nó hoàn toàn trùng khớp với mặt phẳng màn hình (X / Y). Đối với các trò chơi phiêu lưu, X / Y hoạt động tốt như mặt phẳng ngang (vuông góc với hướng trọng lực) vì nó ánh xạ hoàn hảo vào bản đồ trong trò chơi, điều khiển gamepad, độ cao địa hình và nhiều thứ khác.
Theo như tôi đã từng lượm lặt Y = lên / xuống và Z = độ sâu dựa trên vật lý trong đó trọng lực luôn theo hướng (-Y), và sau đó thêm 3D có nghĩa là bạn không muốn thay đổi cơ bản , Vì vậy, nó đã được thực hiện chiều sâu.
Trên phương pháp Z = lên / xuống mặc dù đó là một sự quay trở lại với các nhà toán học. bởi vì X / Y được vẽ trên tờ giấy phẳng trên bàn khi trục Z được mở rộng, nó sẽ ra khỏi tờ giấy, và do đó lên. mặc dù nhiều kỹ sư của bạn cũng sẽ sử dụng quy ước này.
liên quan đến quy ước được sử dụng bởi công cụ đã cho: Maya và Unity có Y-up (có thể được thiết kế bởi một người có nền tảng vật lý). trong khi 3DsMax và Unreal có Z-up (có thể được thiết kế bởi các nhà toán học / kỹ sư). mặc dù cũng có thể nói rằng đây cũng có thể chỉ là một quyết định chia rẽ được đưa ra một ngày bởi vì một hệ thống nhất quán phải được sử dụng.
vì câu hỏi này tập trung vào một công cụ mô hình hóa, và được đặt trên một trang web Hỏi & Đáp phát triển trò chơi. bạn có thể muốn xem xét hệ thống tọa độ nào bạn sẽ xuất sang và đảm bảo rằng bạn tuân thủ hệ thống đó.
cũng nhận ra rằng một số hệ thống hệ thống trục được thiết lập cứng và vĩnh viễn và các hệ thống khác có thể được sửa đổi (nghĩ rằng nó có thể được thay đổi trong Blender và Unreal, nhưng có thể bị nhầm lẫn)
Bởi vì hệ thống tọa độ được sử dụng trong các trò chơi dựa trên kích thước của màn hình. Khi máy tính kết xuất bất cứ thứ gì, nó bắt đầu ở góc trên bên trái, cho tọa độ x và y của [0, 0]. Khi kết xuất tiến về phía bên phải của màn hình, giá trị x tăng lên, tương ứng khi kết xuất di chuyển xuống, giá trị y tăng. Hệ thống tọa độ về cơ bản là không gian 2D, ngoại trừ phần còn lại gốc ở góc trên bên trái và không phải là trung tâm của màn hình của bạn.
Trong các gói 3D như 3DsMax và Maya, chúng có định nghĩa riêng về tọa độ x và y dựa trên những gì quan trọng đối với chúng. 3DsMax dựa trên thiết kế kiến trúc, nếu bạn vẽ sơ đồ trên mặt phẳng 2D, y sẽ lên. Trong Maya, chủ yếu được sử dụng cho hoạt hình do đó mặt đất là x, y và chiều cao là z.