Какова наиболее универсальная ориентация оси в трехмерном мире? - PullRequest
3 голосов
/ 05 декабря 2011

Я создаю библиотеку .NET, которая генерирует данные для трехмерного мира, но сама рендеринг не выполняет. Он опирается на XNA, DirectX, OpenGL и т. Д. Для его визуализации на основе данных (конечный кодер делает это). Я хочу предоставить мировые данные в формате, который имеет больше смысла. В XNA буква «Z» выводится на экран, буква «X» - влево-вправо, а буква «Y» - вверх-вниз (по результатам моего тестирования). Я могу доставлять мировые данные в том же формате, но не хочу, чтобы они зависели от XNA. Это самый распространенный формат для ориентации осей? Я всегда визуализирую вещи как «Z» как вверх-вниз, а «Y» - на экране, поэтому я собирался доставить мировые данные в этом формате и просто конвертировать их в свой загрузчик XNA, но если не кого-то еще использует данные с такой ориентацией, тогда кажется, что так глупо представлять их.

Очень благодарен за любой совет. Спасибо.

Кроме того, мировые данные - это в основном данные о местности, поэтому они имеют логическую структуру для того, что должно быть вверх и вниз - горы и т. д.

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

Не существует "универсальной" системы координат.

По умолчанию OpenGL обычно используется для правшей.Direct3D обычно использует левосторонние системы координат по умолчанию.Тем не менее, оба могут обрабатывать левую или правую систему координат.Однако даже при этом существуют разные способы перевода мировых координат в представление, и разные системы используют разные соглашения.

Если вы создаете что-то, что будет генерировать модели, и хотите, чтобы оно использовалосьс помощью любой базовой системы это, вероятно, сделает вашу библиотеку намного более полезной, чтобы иметь возможность иметь предоставленную пользователем систему координат и строить с ее использованием.Выполнение преобразований относительно просто.

1 голос
/ 05 декабря 2011

Да, в программировании видеоигр, поскольку DirectX некоторое время была самой популярной 3D-библиотекой, левая рука X вправо, Y вверху, Z вперед была и остается наиболее распространенным соглашением по оси.

Однако имейте в виду, что все математические классы XNA перешли на соглашение для правой руки, поэтому, если вы хотите работать в левой системе, вам придется инвертировать некоторые результаты, например, перекрестные продукты.

...