Реалистичность большинства изображений при введении члена, зависящего от расстояния, увеличивается лишь незначительно. При некоторых подходах интенсивность принимается обратно пропорциональной расстоянию между глазом и объектом, однако эта зависимость не имеет физического обоснования. Интересно поэкспериментировать с такими моделями, причем OpenGL предоставляет возможность контролировать это влияние, как мы увидим в разделе «Работа со свойствами материалов в OpenGL»; однако в ближайших разработках член зависимости от расстояния будет игнорироваться.
8.2.3. Зеркальное отражение Реальные объекты не рассеивают свет равномерно во всех направлениях, поэтому к модели закраски добавляется зеркальный компонент. Зеркальное отражение порождает блики, которые могут существенно увеличить реалистичность изображения, заставив объекты блестеть. В данном разделе мы рас-
Визуализация граней для усиления реалистичности
смотрим простую модель поведения отраженного света по Фонгу [Phong, 162]. Эта модель легко реализуется, и OpenGL поддерживает хорошее приближение к ней. Блики, создаваемые отраженным светом по Фонгу, придают объекту вид сделанного из пластмассы, поэтому модель Фонга хороша, когда предназначается для объектов, выполненных из блестящего пластика или стекла. С объектами, имеющими блестящую металлическую поверхность, данная модель работает хуже, однако, как мы увидим, путем тщательного подбора параметров цвета с помощью OpenGL аппроксимация по-прежнему возможна. Разработаны более современные модели отражения света, которые лучше работают с блестящими металлами. Поскольку такие модели не поддерживаются впрямую в рамках процесса визуализации OpenGL, мы отложим их обсуждение до главы 14, где рассматривается трассировка лучей.
На рис. 8.12, а показана ситуация, в которой свет от источника попадает на поверхность и отражается в различных направлениях. Согласно модели Фонга, количество отраженного света имеет наибольшую величину в направлении абсолютного зеркального отражения (вектор г), когда угол отражения равен углу падения. Именно в этом направлении отразился бы весь свет, если бы поверхность была абсолютным зеркалом. При других углах, близких к этому, количество отраженного света быстро убывает, о чем свидетельствуют относительные длины векторов отражения. На рис. 8.12,5 это распределение показано в виде «пучка лучей», известного специалистам по радарам. Расстояние от точки Р до огибающей пучка лучей показывает относительную силу света, рассеянного в данном направлении.