Мировые координаты, Нормализованные координаты устройства и координаты устройства

13

Могу ли я узнать разницу между тремя? Хороший пример тоже сложится.

Аниш Шарма
источник

Ответы:

20

Мировые координаты лежат в основе вашего игрового мира. Трехмерные положения всех объектов в конечном итоге указываются в мировом пространстве, либо напрямую, либо через иерархию узлов. Земля, здания, деревья и другие стационарные вещи будут фиксироваться в мировом пространстве. Расчеты игрового процесса и физика будут сделаны в мировом пространстве (возможно, с некоторым локальным перецентрированием для точных целей, если мир большой). Оси мировых координат часто используются для представления направлений компаса, например, X = восток, Y = север, Z = вверх.

Локальные координаты привязаны к объекту (для каждого объекта есть одно локальное пространство координат). Оси могут представлять что-то значимое для объекта, например, X = вперед, Y = влево, Z = вверх для объекта, такого как персонаж, транспортное средство, оружие и т. Д., Который имеет присущую ориентацию. По мере движения объекта отношения между локальным и мировым пространством (выраженные матрицей преобразования) будут меняться. Например, если вы перевернете свой автомобиль вверх дном, его локальная ось Z («вверх» в локальном пространстве) теперь будет указывать «вниз» в мировом пространстве.

Координаты камеры или вида являются локальными координатами, прикрепленными к камере. Это все еще трехмерная система координат, без какой-либо проекции или чего-либо еще, но с осями, выровненными в соответствии с ориентацией экрана: обычно X = вправо, Y = вверх, Z = назад. Преобразование из мира в пространство взгляда часто называют «матрицей взгляда».

Координаты пространства клипа - это координаты, выводимые вершинным шейдером: координаты, к которым была применена матрица проекции, но не деление перспективы. Это 4D (однородное) пространство. (Мир, локальное пространство и пространство вида являются трехмерными с неявным w = 1.) Оно так названо, потому что это пространство, в котором происходит отсечение и отбраковка усеченного вида (по крайней мере, концептуально).

Нормализованные координаты устройства , также известные как «экранное пространство», хотя этот термин немного потерян, - это то, что вы получаете после применения деления перспективы для отсечения координат пространства. Трехмерные координаты теперь представляют 2D-положения точек на экране, где X и Y в [-1, 1] вместе с глубиной в пределах диапазона буфера глубины, Z в [0, 1] для D3D или [-1, 1 ] для OpenGL. Ориентация оси X = вправо, Y = вверх, и Z может быть вперед или назад в зависимости от конфигурации буфера глубины.

Координаты устройства - это двухмерные пиксельные координаты в пределах цели рендеринга, с (0, 0) в верхнем левом углу, X = справа, Y = вниз. Каждый достигает координат устройства, применяя преобразование области просмотра к нормализованным координатам устройства; область просмотра контролирует с каким пиксельным смещением и разрешением изображение появляется в цели рендеринга. Важно отметить, что координаты устройства не являются целочисленными значениями; они не являются индексами пикселей. Это непрерывная двухмерная система координат, использующая единицы измерения в пикселях, но в которой дробные (субпиксельные) значения являются абсолютно допустимыми. Центры пикселей находятся в 0,5 смещения (например, 0,5, 1,5, 2,5, ...) в этой системе координат.

Натан Рид
источник