Чому Y в багатьох Іграх?


19

Я дізнався в школі, що вісь z вгору. Це те саме в моделюванні програмного забезпечення, як Blender. Однак у багатьох іграх вісь y зростає.

В чому причина?


Насправді, тут, в університеті, багато людей малюють y у напрямку вгору, коли вони малюють 2D-зображення (здогадуйтесь, тому що в 2D y також вгору, і ми часто використовуємо 3D як узагальнення 2D, коли показуємо приклади). Не можу згадати, що ми справді вивчили це правило в школі.
Aufziehvogel

4
Проста відповідь: протягом мільйонів років математики малювали XY графіки на папері, на якому X йде вліво-вправо, а Y йде вгору вниз, а коли додалася глибина, це стало Z, що виходить з паперу. Не така проста відповідь: ніхто ні на що не погоджується, чому б вони погодилися на довільні осі? =)
Патрік Хьюз


Я вважаю цей лічильник інтуїтивно зрозумілим і для 2D, можливо, тому, що я почав із XNA, де Y знижується. Але все, що має бути в задній частині, має бути намальовано спочатку, а вище в просторі екрану часто означає далі. Це призводить до перегортання деяких y, коли малює кавові карти, і логіка стає незручною.
Мадменйо

Зауважте, що якби ми спочатку працювали з графіками ZY з Z вгору, то у нас цього питання не було б - ми просто запровадили вісь X і зробили б це. (Або так само, якби ми додали вісь W до наших графіків YX, ми також не мали б цього плутанини.)
Little Endian

Відповіді:


46

Я думаю, що напрямок координатних осей - це переміщення з різних областей, де визначальна площина була різною, а X / Y були вирівняні з цією вирішальною площиною. У деяких програмах основна площа була найважливішою, тому X / Y були землею, а Z закінчився перпендикулярно до цього. Однак для ігор вирішальною площиною є зазвичай екран (особливо, звичайно, тоді, коли вони були 2D і тільки починали переходити на 3D), таким чином X / Y були екраном, а потім, коли ігри виходили 3D Z, закінчувались перпендикулярно до цього.

Ви можете бачити таку різницю між двома найбільшими інструментами 3D-мистецтва: 3ds max та Maya. Вісь Z зростає в 3ds максимум, тому що вона виросла з архітектурних інструментів, тоді як вісь Y - в Майя, тому що вона виросла з інструментів для створення кіно.

Важливо зрозуміти, порівнюючи будь-який конкретний інструмент із тим, що ви дізналися в школі, - це все довільно. Насправді не важливо, в який бік спрямовані осі, якщо ви будете тримати все послідовно і правильно перекладати між різними системами координат.


3

Це здебільшого спадщина з тих часів, коли все, що можна було зробити за допомогою 3D, - це кубічний обертовий куб, який обертається в просторі екрану, або прокрутка паралакса або щось подібне. У таких програмах Z була "глибиною", тому що X і Y були осями для площини екрана. По мірі того, як демонстрації ставали все більш досконалими, оригінальні конвенції залишалися, тому що легше не змінити нічого, що працює.

Що стосується того, чому саме сьогоднішні ігри мають Y як вертикальну вісь - там є багато погано написаних підручників, які не пояснюють різницю. Зазвичай найкорисніше мати первинну площину руху на осях X і Y (так що більшість двовимірних обчислень не вимагають заміни осей у коді). Для більшості бічних прокруток це цілком природно збігається з площиною екрана (X / Y). Для пригодницьких ігор тощо подібні X / Y чудово підходять як горизонтальна площина (перпендикулярна напрямку тяжіння), оскільки вона ідеально відображає карти в грі, керування геймпадом, карти висоти місцевості та багато іншого.


2

Наскільки я коли-небудь збирав Y = вгору / вниз, а Z = глибина базується на фізиці, де гравітація завжди знаходиться в (-Y) напрямку, а потім додавання 3D означає, що ви не хочете змінювати фундаментальне , тому було зроблено глибину.

Що стосується методу Z = вгору / вниз, то це відкидання математикам. тому що X / Y було намальовано на папері, який був плоским на столі, коли вісь Z витягнута, вона виходила з паперу, а отже вгору. хоча багато ваших інженерів також використовуватимуть цю умову.

що стосується конвенції, що використовується даним інструментом: Maya та Unity мають Y-up (ймовірно, розроблений особою, що має досвід фізики). тоді як 3DsMax і Unreal мають Z-up (ймовірно, розроблені математиками / інженерами). хоча можна також сказати, що це також може бути просто розділеним рішенням, прийнятим за один день, оскільки довелося використовувати послідовну систему.

оскільки це питання зосереджено на інструменті моделювання та розміщено на веб-сайті з питань моделювання та розробки. ви, можливо, захочете вивчити, в яку систему координат ви експортуєте, і переконайтеся, що ви їх дотримуєтесь.

також усвідомлюйте, що для однієї системи система осей встановлена ​​жорстко і постійно, а інші її можна модифікувати (подумайте, її можна змінити в Blender і Unreal, але можливо помилитесь)


1

Оскільки система координат, яка використовується в іграх, базується на розмірах монітора. Коли комп'ютер візуалізує що-небудь, він починається у верхньому лівому куті, який дає координати x та y [0, 0]. У міру просування візуалізації до правої частини екрана приріст значення x, відповідно, коли візуалізація рухається вниз, приріст значення y. Система координат - це в основному 2D простір, за винятком місця розташування у верхньому лівому куті, а не в центрі екрана.

У 3D-пакетах, таких як 3DsMax та Maya, вони мають своє власне визначення координат x та y на основі того, що їм важливо. 3DsMax базувався на архітектурному дизайні, якщо ви намалюєте схему на двовимірній площині, y - вгору. У Майя, яку в основному використовують для анімації, тому земля дорівнює x, y, а висота - z.


У Майя екран X / Y, а Z перпендикулярно екрану.
поштовх

Тому що питання "чому" не "як", йому не вистачає причин того, чому воно є таким, як є, лише повторивши, як воно є.
Майк Семер

Добре кажучи, перше слово - "тому", тобто. ця відповідь починається з пояснення причин. Можливо, це не велике пояснення, але це пояснення.
поштовх
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.