Интерактивные графические системы
ка является ближайшей к
источнику света, среди всех остальных, лежащих на световом луче.
[pic]
Для определения затенённости точки (XБ, YБ , ZБ) необходимо провести
световой луч из источника света на видимую точку и найти точки пересечения
этой прямой со всеми поверхностями, входящими в состав объекта. Поскольку
объект состоит из примитивов, то первоначально определяется пересечение
луча с поверхностью каждого примитива. Если примитив содержит K
поверхностей вида fk (X,Y,Z) = 0, (k = 1,K), то K раз решается система:
X - XB Y - YB
Z - ZB
------------- = ------------- = ------------
XSUN - XB YSUN - YB ZSUN -
ZB'
fk (X,Y,Z) = 0
Затем среди множества решений отбирают действительное, а среди них
точку, ближайшую к источнику света и лежащую на поверхности объекта.
Примечание: Алгоритм определения затенённости идентичен алгоритму
определения видимости, но точка центра проектирования заменяется на точку
источника излучения, а точка центра рецептора на видимую точку. Если
видимая из рецептора точка является ближайшей к источнику света, то она
освещена прямыми лучами.
Проведя данные вычисления для всех I*J рецепторов удаётся получить
информацию о координатах видимой из каждого рецептора точки (XB , YB ,
ZB)ij, о номере примитива, номере функции поверхности, которой принадлежит
точка и признак затенённости / освещённости.
Примечание: При неизменном ракурсе нет необходимости каждый
раз вновь определять видимые точки, при перемещении источника света.
Координаты видимых точек остаются неизменными. Пересчитывается только
признак освещённости.
| | скачать работу |
Интерактивные графические системы |