Tại sao Y lên trong nhiều Trò chơi?


19

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ì?


Trên thực tế, ở đây trong trường đại học, nhiều người vẽ y theo hướng lên khi họ vẽ một hình ảnh 2D (đoán vì trong 2D y cũng lên và thường chúng ta chỉ sử dụng 3D như một khái quát của 2D khi hiển thị các ví dụ). Không thể nhớ chúng tôi thực sự đã học một quy tắc cho nó ở trường.
Aufziehvogel

4
Câu trả lời đơn giản: trong hàng triệu năm, các nhà toán học đã vẽ các biểu đồ XY trên giấy có X ở bên trái và Y đi xuống, và khi độ sâu được thêm vào, nó trở thành Z đi ra khỏi tờ giấy. Câu trả lời không đơn giản như vậy: không ai đồng ý về bất cứ điều gì, tại sao họ lại đồng ý về các trục tùy ý? =)
Patrick Hughes


Tôi cũng thấy bộ đếm này trực quan cho 2D, có lẽ vì tôi đã bắt đầu với XNA nơi Y đi xuống. Nhưng những thứ nên ở phía sau nên được vẽ trước và cao hơn trong không gian màn hình thường có nghĩa là xa hơn. Điều này dẫn đến việc lật một số y khi vẽ tilemaps và logic trở nên khó xử.
Madmenyo

Lưu ý rằng nếu ban đầu chúng tôi làm việc với các biểu đồ ZY với Z, thì chúng tôi sẽ không gặp phải vấn đề này - chúng tôi sẽ chỉ giới thiệu trục X và được thực hiện với nó. (Hoặc, tương tự, nếu chúng ta thêm trục W vào biểu đồ YX của mình, chúng ta cũng sẽ không có sự nhầm lẫn này.)
Little Endian

Câu trả lời:


46

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.


3

Đó 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.


2

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)


1

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.


Trong Maya màn hình là X / Y và Z vuông góc với màn hình.
jhocking

Bị từ chối, bởi vì câu hỏi là "Tại sao" chứ không phải "Làm thế nào", nó thiếu các lý do là tại sao nó lại như vậy, chỉ nhắc lại nó như thế nào .
Maik

Nói một cách công bằng, từ đầu tiên là "bởi vì". câu trả lời này bắt đầu với một lời giải thích về lý do. Có thể đó không phải là một lời giải thích tuyệt vời, nhưng nó là một lời giải thích.
jhocking
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.