Название | Цифровое моделирование на C# |
---|---|
Автор произведения | Дмитрий Павлов |
Жанр | |
Серия | |
Издательство | |
Год выпуска | 0 |
isbn | 9785006286184 |
Для полигональных моделей освещение сводится к освещению совокупности треугольников из которых состоит модель. Достаточно уметь освещать один треугольник в зависимости от его положения в пространстве и положения источников света, чтобы суметь осветить всю модель.
Распространение света в реальном мире – это чрезвычайно сложное явление, зависящее от слишком многих факторов, и располагая ограниченными вычислительными ресурсами, мы не можем себе позволить учитывать в расчетах все нюансы. Поэтому методы освещения, которые мы будем описывать, основаны на использовании приближенных к реальности, упрощенных математических моделей, которые дают хороший визуальный эффект, но при этом рассчитываются гораздо проще.
Прежде, чем начать изучение методов освещения, кратко коснемся самих источников света. Все источники света разделим на два типа: прожекторы и точечные источники. Прожектором называется источник света, лучи которого параллельны друг другу. Точечный источник – это источник света, который испускает световые лучи во все стороны.
рис. 2.7
Лучи-прожекторы параллельны друг другу (рис. 2.7)
рис. 2.8
Точечный источник излучает свет во все стороны (рис. 2.8)
С точки зрения освещения для нас будет важно, что все лучи от прожектора падают на поверхность под одним и тем же углом. У точечного источника каждый луч падает на поверхность под своим углом.
рис. 2.9
Модель Фонга
Одной из наиболее часто используемых моделей освещения является модель освещения Фонга. Она состоит из трех составляющих: фоновой (ambient, англ.), диффузной (diffuse, англ.) и зеркальной (specular, англ.). Цвет в конкретной выбранной точке треугольника зависит от этих трех составляющих освещения. Далее разберем каждую составляющую в отдельности.
Фоновая составляющая
Пусть X – исходный цвет треугольника, а A – константа, лежащая между 0 и 1, которая характеризует фоновое освещение. Тогда фоновая составляющая F равна:
F