пятница, 1 ноября 2013 г.

Lost Lands Tech Demo: Glass, Light Volumes

В данной демонстрации использованы 2 техники: deferred для непрозрачных объектов и forward для стекла. Стеклянный куб на видео рисуется в два прохода (лицевая и нелицевая грань). Все точечные источники освещения имеют свой радиус действия, т.о. рисуются только те источники, которые в данный момент попадают в пирамиду видимости (проверка попадания сферы). Каждый точечный источник освещения рисуется в виде AABB. Для большей оптимизации отрисовки прозрачных объектов планируется реализовать проверку пересечения объемов освещения с объемом прозрачного объекта.
Параметры прозрачных объектов (материал,свет,бамп и т.п) ничем не отличаются от непрозрачных объектов за исключением того, что они имеют параметр "прозрачность", принимающий значение от 0 до 1. Возможно в последующем будет иметь смысл дать возможность задавать прозрачность объекта попиксельно, т.е. в альфа канале текстуры.



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

Итак, точечный источник освещения (Point Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
vec3 attenuation
float radius
Помимо стандартного параметра затухания (attenuation) введен дополнительный параметр - радиус действия источника. Радиус действия источника - это то расстояние, за пределами которого вклад действия источника в освещение сцены равен нулю.

Направленный источник освещения (Directed Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
Направленный источник освещения отличается от точечного отсутствием затухания и радиуса действия. Свет от него также распространяется во все стороны.

Прожектор (Spot Light Source):
vec3 position
rgb ambient
rgb diffuse
rgb specular
vec3 attenuation
float radius
float exponent
vec2 direction (третья компонента получается из условия нормировки)
float сutoff

Материал:
rgb emission
rgb ambient
rgb diffuse
rgb specular
float shininess
Здесь все стандартно. Возможно, немного избыточно.

Комментариев нет:

Отправить комментарий