14.7. Рисование закрашенных изображений сцен Трассировщик луча, рисующий светящиеся объекты, - это неплохо для начала, однако его несостоятельность обнаруживается сразу после того, как нам понадобятся картины с высокой степенью реалистичности. Для рисования таких картин нам следует определить природу света, который отражается от точки соударения по направлению к глазу. В своих вычислениях мы будем вначале руководствоваться моделью закраски OpenGL, которую рассматривали в главе 8. Затем мы посмотрим, как можно усовершенствовать эту модель с целью достижения еще большего реализма.
В OpenGL сцены рисуются путем комбинирования фоновой, диффузной и зеркальной составляющих света, освещающего вершину объекта. Для вычисления зеркальной составляющей света используется модель Фонга. На рис. 14.15 показаны основные составляющие. Из рисунка видно, что гс-луч пересекает сфероид в точке соударения Рк. Источник света расположен в точке L. Мы хотим вычислить количество света, возвращающееся из точки Рк обратно к глазу. Основные интересующие нас векторы - s, V, т. Вектор s указывает на источник света и поэтому определяется равенством s = L - Ph; вектор v указывает на наблюдателя и поэтому противоположен вектору направления луча dir; вектор m является нормалью к поверхности в точке Рк.
14.7. Рисование закрашенных изображений сцен
Рис 14.15. Применение модели закрашивания Как было впервые указано в главе 8, суммарная интенсивность света, видимого глазом, состоит из фоновой, диффузной и зеркальной составляющих"opengl1_959.html">⇐ Предыдущая| |Следующая ⇒