Как именно нормализуется NDC?

Везде написано что, чтобы получить Нормализованные Координаты Устройства надо разделить x,y,z на w клипа(перспективное деление), но как оно нормализуется? Чему тогда должен быть равен w клипа, чтобы они x,y,z были в диапазоне -1,1? Или же нормализуются x,y,z и потом происходит перспективное деление?


Ответы (1 шт):

Автор решения: Kromster

По идее, у вас есть некоторый суп из геометрии, который перемножается на матрицы:

  1. Модели, чтобы расположить в мире
  2. Вида, чтобы расположить в пространстве которое видит камера
  3. Проекции, чтобы преобразовать в видимый куб (или в трапецию, если это перспективная проекция) и отсечь то что камера не видит (за пределами полученного NDC)
  4. ну а потом вывести на 2D экран

Другими словами, для получения NDC делается не "нормализация", а трансформации, после которых идет отсечение всего что не попадает в кадр (находится за пределами -1..1).

Вот иллюстрация с learnopengl.com:

введите сюда описание изображения

→ Ссылка