В этом разделе мы рассмотрим два метода вычисления теней; один из них основывается на «раскрашивании» теней, как если бы они были текстурой, а другой использует буфер глубины, применяемый для удаления невидимых поверхностей. В главе 14 мы увидим, что существует и третий метод, естественным образом возникающий при трассировке лучей. Существует еще много других технологий, подробный обзор которых дается в работах [Watt, 138, Crow, 52, Woo, 214, Bergeron, 17].

8.6. Добавление теней объектов

Эффект теней

Рис. 8.64. Эффект теней

8.6.1. Тени как текстура Технология «наложения» теней как текстуры годится для теней, которые отбрасываются на плоскую поверхность точечным источником света. Задача заключается в правильном вычислении формы тени. На рис. 8.65, а показан параллелепипед, отбрасывающий тень на пол. Форма тени определяется проекциями каждой грани параллелепипеда на плоскость пола, когда источник света является центром проекций. В действительности тень является объединением1 проекций шести граней. Рисунок 8.65, б иллюстрирует суперпозицию проекций двух граней"images/tmp8E4A-595.png" alt="Вычисление формы тени" />

Рис. 8.65. Вычисление формы тени Это дает ключ к рисованию тени. После того как плоскость нарисована с использованием фоновой, диффузной и зеркальной составляющих света, рисуются шесть проекций граней параллелепипеда на плоскость с использованием только фонового света. Тени, нарисованые по этой технологии, обладают правильной формой и цветом. Последним рисуется сам параллелепипед. (Если параллелепипед находится близко к плоскости, то он может частично заслонить тень.)

1 Мы имеем в виду теоретико-множественное объединение"opengl1_588.html">⇐ Предыдущая| |Следующая ⇒