Я узнал в школе, что ось Z вверх. То же самое и в программном обеспечении для моделирования, таком как Blender. Однако во многих играх ось у вверх.
Какова причина?
Я узнал в школе, что ось Z вверх. То же самое и в программном обеспечении для моделирования, таком как Blender. Однако во многих играх ось у вверх.
Какова причина?
Ответы:
Я думаю, что направление координатных осей - это пережитки из разных областей, где критическая плоскость была разной, и X / Y были выровнены с этой критической плоскостью. В некоторых приложениях плоскость заземления была наиболее важной, поэтому X / Y были землей, а Z оказывался перпендикулярным этому. Для игр, однако, решающей плоскостью обычно является экран (особенно, конечно, когда они были 2D и только начинали переходить в 3D), таким образом, X / Y были экраном, а затем, когда игра пошла, 3D Z оказался перпендикулярным этому.
Вы можете увидеть такое различие между двумя крупнейшими инструментами 3D-графики: 3ds Max и Maya. Ось Z выросла в 3ds max, потому что она выросла из архитектурных инструментов, в то время как ось Y выросла в Maya, потому что она выросла из инструментов для создания фильмов.
При сравнении любого конкретного инструмента с тем, что вы узнали в школе, важно понимать, что все это произвольно. На самом деле не имеет значения, в каком направлении направлены оси, если вы сохраняете все согласованно и правильно переводите между различными системами координат.
Это в основном наследие тех времен, когда все, что можно было сделать с помощью 3D, - это вращающийся куб на экране или прокрутка параллакса или что-то подобное. В таких приложениях Z был «глубиной», потому что X и Y были осями для плоскости экрана. По мере того, как демонстрации становились все более продвинутыми, первоначальные соглашения остались, потому что легче не менять ничего, что работает.
Что касается того, почему именно современные игры имеют Y в качестве вертикальной оси - существует множество плохо написанных уроков, которые не объясняют разницу. Обычно наиболее полезно иметь основную плоскость перемещения по осям X и Y (чтобы в большинстве двумерных расчетов не требовалось менять оси в коде). Для большинства боковых скроллеров это вполне естественно совпадает с плоскостью экрана (X / Y). Для приключенческих игр и тому подобного X / Y хорошо работает как горизонтальная плоскость (перпендикулярная направлению гравитации), потому что она отлично отображается в игровых картах, элементах управления геймпада, картах высот ландшафта и многих других вещах.
Насколько я могу судить, Y = вверх / вниз, а Z = глубина основана на физике, где гравитация всегда в направлении (-Y), а затем добавление 3D означает, что вы не хотите менять фундамент , так была сделана глубина.
На методе Z = вверх / вниз, хотя это и есть ответ математикам. поскольку X / Y была нарисована на бумаге, которая была плоской на столе, когда ось Z была расширена, она выходила из бумаги и, следовательно, поднималась. хотя многие из ваших инженеров также будут использовать это соглашение.
в отношении соглашения, используемого данным инструментом: у Maya и Unity есть Y-up (вероятно, разработанный кем-то с физическим образованием). в то время как 3DsMax и Unreal имеют Z-up (вероятно, разработанный математиками / инженерами). хотя можно также сказать, что это может быть просто раздельное решение, принятое за один день, потому что нужно было использовать последовательную систему.
поскольку этот вопрос посвящен инструменту моделирования и размещен на сайте вопросов и ответов по разработке игры. Возможно, вы захотите посмотреть, в какую систему координат вы будете экспортировать, и убедитесь, что вы соответствуете этому.
Также следует понимать, что в некоторых системах система координат жестко установлена и является постоянной, а в других она может быть изменена (думаю, что она может быть изменена в Blender и Unreal, но может быть ошибочной)
Потому что система координат, которая используется в играх, основана на измерении монитора. Когда компьютер отображает что-либо, он начинается в верхнем левом углу, который дает координаты x и y [0, 0]. По мере продвижения рендеринга к правой стороне экрана значение x увеличивается, соответственно, когда рендеринг перемещается вниз, значение y увеличивается. Система координат - это, в основном, система 2D-пространства, за исключением исходной точки в верхнем левом углу, а не в центре экрана.
В 3D-пакетах, таких как 3DsMax и Maya, они имеют свое собственное определение координат x и y в зависимости от того, что для них важно. 3DsMax был основан на архитектурном дизайне, если вы рисуете схему на 2D плоскости, y вверх. В Maya, которая в основном используется для анимации, поэтому земля - это x, y, а высота - z.