7. Тени
В компьютерной графике
реального времени часто объекты изображаются без теней, что приводит к тому,
что объект как бы не закреплён в окружающей его обстановке. Тень несёт очень много
информации - фактически, она представляет объект с другой точки зрения и
закрепляет его в сцене. Тени бывают двух типов.
В отличие от локального
освещения, тени являются одним из эффектов глобального освещения. Т.к. основным
местом использования алгоритмов теней в реальном времени являются компьютерные
игры, то в дальнейшем, для удобства, будут приводиться примеры именно на них. Существует
несколько основных подходов к построению теней, рассмотрим алгоритм «Преобразование
модели "на землю" и отрисовка её как тени». Фактически, это первый
алгоритм построения тени, который был применён в играх. (Turok II, Shogo, etc.). Он отличается простотой реализации и хорошим
качеством получаемой тени. Этот алгоритм был впервые описан Джимом Блинном [BLIN88].
В своей статье он описал уравнения для проектирования полигона "на
землю", т.е. на плоскость z=0, в направлении от источника света. Он
рассмотрел два случая:
Этот метод использует геометрическое взаимоотношение
источника света и полигона, т.е. подобные треугольники, для вычисления проекции
каждого полигона модели "на землю". "Теневые полигоны"
должны быть рассчитаны для каждого источника света, т.е. если объект освещается
N источниками света, то необходимо рассчитать N его "теневых
проекций".