Вычисление проекционных экстентов Па этапе предварительной подготовки для каждого объекта сцены необходимо вычислить проекционный экстент. Этот экстент легко вычисляется по заданному кластеру точек объекта. Кластер точек базового объекта переводится в мировые координаты с помощью преобразования, соответствующего этому объекту, - так же, как это делалось для сферического и прямоугольного экстентов, в результате чего этот кластер становится «облаком» точекр[0],/?[1],..., размещенных па сцепе. IIa рис. 14.41 показано 12 точек кластера для преобразованного цилиндра.

Теперь каждая из точек p[i\ проецируется на ближнюю плоскость камеры. Для любой точки /; па сцене можно найти ее проекцию р' с помощью вычислений, основанных на положении точки /; и reo-

Введение в трассировку лучей

метрии камеры. Спроецированная точка р' связана с определенными строкой г и столбцом с. (Выражение для этой связи выводится в упражнениях в конце раздела.) В результате точка р проецируется в пиксел с координатами (г, с), где

(14.41)

(Перед записью выражений в правой части соответственно в г и с их необходимо округлить до целого.) Здесь Ри, Pv, Рп являются скалярными произведениями с осями камеры u, v, п:

Pu"iP- eye) и;

Pv = {p-eye)-v; (14.42) P„~(P- eye) п.

Таким способом проецируется каждая точка массива p[i], и для нее вычисляется пара чисел (гр е.). Затем по списку (г(1 с.) определяются наименьшие и наибольшие значения г и с, которые после нахождения записываются в структуру данных проекционного экстента {left, top, right, bottom).

Построение проекционного экстента

Рис. 14.41. Построение проекционного экстента На рис. 14.42 показана сцена, полученная трассировкой лучей, причем на каждый объект наложен его проекционный экстент. (Некоторым программистам нравится в целях отладки рисовать проекционные экстенты каждого объекта перед тем, как начать трассировку лучей. Во время закраски пикселов окончательными цветами при трассировке лучей эти прямоугольники исчезают.)

Сцена, полученная трассировкой лучей, с видимыми проекционными экстентами

Рис. 14.42. Сцена, полученная трассировкой лучей, с видимыми проекционными экстентами


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