О Покажите, что коэффициент G из уравнения (14.26) может быть записан в виде
О Покажите, что величина spec из уравнения (14.29) имеет в таком случае вид
О Постройте графики зависимости spec от угла 0 для различных значений угла ф, шероховатости т, а также показателя преломления.
14.8. Наложение текстуры на поверхности Как мы видели в главе 8, компьютерные изображения могут быть сделаны намного более живыми и реалистичными, если на их поверхности накладывать текстуры. На рис. 14.23 приведена сцена с несколькими примерами текстур после трассировки лучей. В главе 8 поверхности являлись полигонами, и для визуализации каждой грани был использован OpenGL. Для каждой грани F к каждой вершине этой грани была прикреплена пара текстурных координат, и OpenGL «закрашивал» каждый пиксел внутри грани тем же цветом, что и соответствующая точка внутри изображения текстуры.
Теперь мы хотим посмотреть, как включить текстурирование в трассировщик лучей. В основном используют два вида текстур: О Текстура с изображением (image texture) - двумерное изображение «наклеивается» на каждую поверхность объекта.
О Текстура твердого тела (solid texture) - объект считается вырезанным из блока некоторого материала, который сам обладает текстурой. Трассировщик лучей показывает цвет текстуры в каждой точке на поверхности объекта.
Введение в трассировку лучей
Рис. 14.23. Сцена с несколькими текстурированными поверхностями Начнем с текстуры твердого тела, работать с которой проще. В тематическом задании 8.5 мы уже рассматривали метод применения текстуры твердого тела с помощью OpenGL при рисовании полигональных граней, однако такой метод слишком сложен. К счастью, он естественным образом встраивается в структуру метода трассировки лучей.
14.8.1. Текстура твердого тела Иногда текстуру твердого тела называют «ЗО-текстурой». Впервые она была представлена одновременно Перлином [Perlin, 161] и Пичи [Peachey, 153]. Объект рассматривается как вырезанный из некоторого обладающего текстурой материала, такого как мрамор или дерево. Эта текстура представлена текстурной функцией texture(x, у, z), которая генерирует значение цвета (г, g, h) для каждой точки пространства. Можно думать о такой текстуре как о цвете или об «окраске», которые изменяются с координатами точки. Если вы посмотрите (с помощью рентгена) на различные точки (х, у, z), то увидите различные цвета. Когда в таком пространстве определен объект некоторой формы, а весь материал вне этой формы отсекается, чтобы обнажить поверхность объекта, то точка (х, у, z) на поверхности становится видна и обладает указанной текстурой.