В предыдущей главе говорилось о том, как определить форму тени, отбрасываемой многоугольником. Теперь мы разовьем эту идею и выясним, как в общем случае реализовать наложение теней на изображение, созданное на основе полигональной модели. В качестве тестового примера рассмотрим программу рекурсивной аппроксимации сферы. Затем перейдем к практическим вопросам реализации средств закрашивания в OpenGL- спецификации источников света и свойств материалов - и включим их в созданную программу.

В заключение мы кратко остановимся на двух наиболее интересных методах реализации глобальной модели распределения света - методе трассировки лучей (ray tracing) и методе излучательности (radiosity).

6.1. Свет и материя Познакомив вас в главах 1 и 2 с основами физиологии органов зрения человека, мы отложили на будущее обсуждение темы взаимодействия света и материи - поверхностей материальных объектов. Для того чтобы понять, как программно реализовать закрашивание объектов сцены, нужно разобраться в физике реального процесса распространения световой энергии в материальной среде.

С точки зрения физики поверхность материального тела может либо излучать световую энергию, например поверхность электрической лампочки, либо отражать свет, падающий на нее от внешнего источника. Некоторые тела одновременно и отражают свет, и излучают его вследствие внутренних физических процессов, происходящих в материале. Когда мы смотрим на некоторую точку материального объекта, то ее цвет определяется множеством элементарных актов взаимодействия со светом, падающим на объект как непосредственно от источников света, так и от других отражающих поверхностей. Последовательность этих элементарных актов можно представить в виде рекурсивного процесса. Рассмотрим простую сцену, представленную на рис. 6.1. Часть света от источника освещения, которая попадает на поверхность объекта А, отражается. Часть этого отраженного света попадает на поверхность объекта Б, причем часть этого отраженного света отражается и попадает вновь на объект А. Далее процесс повторяется. Такое рекурсивное отражение света от двух поверхностей приводит к определенным цветовым эффектам, в частности появлению на поверхностях дополнительных окрашенных бликов. Математически этот рекурсивный процесс описывается интегральными уравнениями, которые называются глобальными уравнениями заполнения (rendering equation). В принципе, их можно было бы использовать для определения распределения цвета по всем поверхностям объектов сиены, но, к сожалению, такие интегральные уравнения в общем случае не поддаются решению даже с использованием численных методов. Существует множество подходов, основанных на разных вариантах их аппроксимации


⇐ Предыдущая| |Следующая ⇒