Глобальная модель освещенности. Классический raytracing
Третий луч строится, если поверхность объекта прозрачна, и носит название transparency ray, т.е. луч прозрачности. Направление преломленного луча вычисляется по формулам, приведенным на рис. 5, где n1 и n2 – коэффициенты преломления для первой среды (в которой распространяется первичный луч) и второй среды прозрачного объекта.
Так же, как и в предыдущем случае, проверяется пересечение вновь построенного луча с объектами, и, если они есть, в новой точке строятся три луча, если нет – используется интенсивность и цвет фона. Таким образом, для каждого первичного луча можно построить древовидную структуру, как на рис. 6.
Если древовидная структура для данного луча построена, то расчет освещенности можно выполнить в следующем порядке. Для каждой ветви дерева спускаемся вдоль древовидной структуры к последнему пересечению вторичного луча и поверхности (будем дальше называть их узлами). Поскольку это последний узел в цепи, вкладов от преломлений и отражений нет. Поэтому освещенность узла вычисляется при помощи локальной модели освещения с учетом видимости источников света для данного узла. Затем, вычисленная освещенность передается вверх по ветви к следующему ближайшему узлу. Освещенность в этом узле будет вычисляться по формуле:
Iп = Ilocal + kreflection·Ireflection + krefraction·Irefraction,
где Iп — полная освещенность в узле n;
Ilocal — локальная освещенность в узле n, вычисленная от источников освещения с помощью локальной модели освещенности;
kreflection — коэффициент, определяющий отражающие свойства поверхности;
Ireflection — освещенность предыдущего узла, переданная вдоль ветки отражения;
krefraction — коэффициент, определяющий преломляющие свойства поверхности;
Irefraction – освещенность предыдущего узла, переданная вдоль ветки преломления.