Окружающее затенение () — модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности. В отличие от локальных методов, как например затенение по Фонгу, окружающее затенение является глобальным методом, то есть значение яркости каждой точки объекта зависит от других объектов сцены. В принципе, это достаточно отдалённо напоминает глобальное освещение.

Окружающее затенение чаще всего вычисляется путём построения лучей, исходящих из точки поверхности во всех направлениях, с последующей их проверкой на пересечение с другими объектами. Лучи, достигнувшие фона или «неба», увеличивают яркость поверхности, в то время как лучи, пересекающие другие объекты, не добавляют яркости. В результате точки, окружённые большим количеством геометрии, отрисовываются как более тёмные, а точки с малым количеством геометрии в видимой полусфере — светлыми.

Окружающее затенение относится к методам, основанным на доступности элемента поверхности для различных факторов, таких как грязь, свет и т. д. Он получил популярность благодаря относительной простоте и достаточно высокой эффективности. Часто окружающее затенение также называют «небесный свет» ().

Модель окружающего затенения способствует лучшему восприятию объёма изображаемых объектов, нежели модель прямого освещения«Depth discrimination from shading under diffuse lighting», M.S. Langer and H. H. Buelthoff, Perception. 29 (6) 649—660, 2000. .

Затенение в точке поверхности с нормалью может быть посчитано путём интегрирования функции видимости по полусфере :

где  — значение функции видимости в точке , равное нулю, если луч из в направлении имеет пересечение с объектом, и равное единице в остальных случаях. На практике для взятия этого интеграла используются различные техники: возможно, одним из самых часто используемых является метод Монте-Карло. Другой метод (более полно использующий возможности аппаратного ускорения) — рендеринг сцены из точки с растеризацией геометрии чисто чёрным цветом на белом фоне. Усреднённое значение яркости полученного кадра и есть примерное значение функции в данной точке. Этот способ — пример собирательного метода (метод изнутри-наружу), в то время, как другие подходы (такие, как окружающее затенение на основе карты глубины — ) используют рассеивание (метод снаружи-внутрь).

Кроме значения затенения часто вычисляют дополнительный вектор («отклонённая нормаль»), показывающий примерное направление к открытому (незатенённому) пространству. Этот вектор может быть использован для получения освещения из карты окружения. Однако бывают ситуации, когда вектор показывает отнюдь не в направлении максимального освещения.

См. также Глобальное освещение Метод фотонных карт Трассировка лучей SSAO

Примечания

Ссылки Ambient Occlusion при создании гипсовых рендеров в 3DS Max Depth Map based Ambient Occlusion Ambient Occlusion Assorted notes about ambient occlusion Ambient Occlusion Fields — ambient occlusion в реальном времени с использованием кубических карт Fast Precomputed Ambient Occlusion for Proximity Shadows ambient occlusion в реальном времени с использованием объёмных текстур Dynamic Ambient Occlusion and Indirect Lighting a real time self ambient occlusion method from Nvidia’s GPU Gems 2 book ShadeVis an open source tool for computing ambient occlusion xNormal A free normal mapper/ambient occlusion baking application

Категория:Освещение в трёхмерной графике