Френсис Хилл

Рис. 5.51. Действие проекционной матрицы (для параллельных проекций)

Далее выполняется отсечение, которое отбрасывает ту часть параллелепипеда, которая лежит за пределами стандартного куба. И, наконец, матрица порта просмотра отображает «выжившую» часть параллелепипеда в «трехмерный порт просмотра». Эта матрица отображает стандартный куб в параллелепипед такой формы, величины которой х и у соответствуют размерам порта просмотра (в экранных координатах), а его z-компонент изменяется от 0 до 1 и содержит в себе глубину точки (расстояние от точки до глаза камеры), как показано на рис. 5.52.

В этом обзоре было вкратце обрисовано, как работает весь графический конвейер OpenGL, причем было показано, что главным его элементом являются преобразования. Каждая вершина объекта подвергается последовательности преобразований, которые переносят ее из мировых координат в координаты наблюдателя, в нейтральную систему, специально разработанную для отсечения, и, наконец, в систему координат, служащую для правильного отображения. Каждое преобразование осуществляется путем умножения матриц. Отметим, что в этом первом обзоре нами были пропущены некоторые важные подробности работы конвейера. При использовании перспективных проекций нам потребуется включить так называемое «перспективное деление» («perspective division»), которое использует свой1 Координаты в такой системе иногда называют нормированными приборными координатами (normalizeddevice coordinates).

Глава 5. Преобразования объектов ства однородных координат. И, конечно, множество интересных деталей раскрываются на последнем этапе фактической визуализации образа, такие как вычисление цветов пикселов «в промежутке» между вершинами и контроль правильности удаления невидимых поверхностей. Рассмотрение всех этих деталей отнесено в следующие главы.

5.6.2. Некоторые инструменты OpenGL для моделирования и вида Рассмотрим теперь, какие функции предусмотрены в OpenGL для моделирования и установки камеры.


⇐ Предыдущая| |Следующая ⇒