Отсечение пространства в конвейере OpenGL - PullRequest
0 голосов
/ 07 декабря 2011

Как работает отсечение и проекция в упрощенном объяснении?Это как-то связано с нормализацией вершин и умножением матриц, которое включает деление x, y, z на 4-ю переменную.У меня проблемы с пониманием того, что на самом деле происходит.

1 Ответ

5 голосов
/ 21 ноября 2012

Это довольно просто.Отсечение - это процесс, который говорит, видим ли примитив (точка, линия или треугольник).(и выполняется после просмотра модели * преобразования матрицы проекции), если треугольник частично виден, треугольник разбивается на большее количество треугольников, которые помещаются в усеченный конус.

После завершения отсечения нам необходимо нормализовать вершина ( x, y, z, w ) координаты для проецирования их на экран (координаты окна).Это называется перспективным делением: новые координаты x,y,z,1 = x/w, y/w, z/w, 1.Координаты Windows зависят от настроек области просмотра, и преобразование очень простое.

window_x = viewport_x + vertex_x * half_viewport_width + half_viewport_width;
window_y = viewport_y + vertex_y * half_viewport_height + half_viewport_height;
...