Эффекты прозрачности можно также реализовать, используя модифицированный подход буфера глубины. Поверхности на сцене делятся на две группы так, чтобы все непрозрачные поверхности обрабатывались первыми. В этот момент буфер кадра содержит интенсивности видимых поверхностей, а буфер глубины - их глубины. Затем положения глубин прозрачных объектов сравниваются со значениями, ранее занесенными в буфер глубин. Если любая прозрачная поверхность видима, ее отраженная интенсивность вычисляется и объединяется с интенсивностью непрозрачной поверхности, ранее занесенной в буфер кадров. Данный метод можно модифицировать, чтобы получить более точные изображения, за счет дополнительной памяти для записи глубины и других параметров прозрачных поверхностей. Это позволит сравнивать значения глубин для прозрачных поверхностей между собой, а также со значениями глубин непрозрачных поверхностей. Затем видимые прозрачные поверхности визуализируются, для чего интенсивности их поверхностей объединяются с интенсивностями видимых и непрозрачных поверхностей за ними.

Другой подход - использовать метод А-буфера. Для каждого пикселя в А-буфере записываются и сортируются в порядке глубин участки поверхности всех перекрывающихся поверхностей. Затем интенсивности прозрачных и непрозрачных участков поверхностей, накладывающихся по глубине, объединяются в надлежащем порядке видимости, и получается окончательная усредненная интенсивность пикселя.

АТМОСФЕРНЫЕ ЭФФЕКТЫ

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

ТЕНИ

Чтобы локализовать области, которые не освещаются источниками света, используются методы поиска видимых поверхностей. Если точка наблюдения совпадает с положением источника света, можно определить, какие сегменты поверхности на сцене невидимы. Это - области тени. Как только области тени определены для всех источников света, можно рассматривать тени как шаблоны поверхности и записывать их в массивах шаблонов. На рис. 10.33 показаны области тени на лице анимированного персонажа. На этом изображении области тени - это сегменты поверхностей, невидимые с места расположения верхнего источника света. Таким образом, поднятая рука освещается, а участки лица за рукой, расположенные вдоль линии взора на источник света, находятся в тени. Сцена на рис. 10.29 демонстрирует эффекты затенения, порожденные несколькими источниками света.

Шаблон тени, отображенный на лицо доктора Аки Росс, анимированного персонажа из фильма Final Fantasy: The Spirits Within (перепечатано с разрешения Square Pictures, Inc. © 2001, FFFP)

Рис. 10.33. Шаблон тени, отображенный на лицо доктора Аки Росс, анимированного персонажа из фильма Final Fantasy: The Spirits Within (перепечатано с разрешения Square Pictures, Inc. © 2001, FFFP)

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


⇐ вернуться назад | | далее ⇒