В данной главе будет описана «тяжелая артиллерия» алгоритмов, необходимых для создания высококачественных изображений сложных сцен с помощью трассировки лучей. Наши разработки будут вестись по нарастающей, так что мы сможем создавать простые изображения с помощью небольших программ уже через несколько разделов главы. Для создания набора более современных развитых технологий попутно будут разрабатываться дополнительные инструменты.

14.2. Построение геометрии трассировки лучей О, жизнь! Как прекрасно твое утро, Холмы расцвечены лучами юной Фантазии! Пренебрегая уроками Осторожности, Мы мчимся прочь, Как школяры, от разных поучений, Играть и радоваться всласть.

Роберт Берне (Robert Bums)

Для того чтобы производить трассировку лучей, нам необходимо удобное представление луча, проходящего через определенный пиксел. Чтобы использовать уже знакомые понятия, соберем вместе необходимые ингредиенты процесса визуализации из глав 6 и 7. Применим ту же камеру, что и в главе 7: глаз камеры находится в точке eye, оси камеры выровнены по векторам u, v, w, как показано на рис. 14.2. Ближняя плоскость лежит на расстоянии N перед глазом, и в ней расположен буфер кадров. Модель камеры принята такой же, как в главе 7 (рис. 14.3): угол зрения обозначен через 0, а окно на ближней плоскости имеет форматное соотношение aspect. Тогда камера простирается в v-направлении от -Я до Я и в u-направлении от -17 до W, где

(14.1)

H = Ntg и

W- Н-aspect.

14.2. Построение геометрии трассировки лучей

Установка камеры для трассировки лучей

Рис 14.2. Установка камеры для трассировки лучей Напомним из главы 7, что преобразование порта просмотра устанавливает соответствие между точками ближней плоскости и пикселами порта просмотра. Здесь используется то же самое соответствие, однако без явного преобразования порта просмотра. Действительно, проще всего представлять порт просмотра «вставленным» в окно ближней плоскости, так что глаз смотрит на сцену «сквозь» отдельные пикселы. Допустим, что порт просмотра содержит пСок столбцов и пЯода строк пикселов, и рассмотрим пиксел на пересечении строки г и столбца с, причем г изменяется от 0 до пЯогаз - 1, а с изменяется от 0 до пСоЬ - 1. Будем называть такой пиксел гс-пикселом; он показан на рис. 14.3, б. Где же находится этот пиксел на ближней плоскости?


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