Unity 6.3
0 онлайн 53 гостей 3 в системе
Вход

Введение в окклюзию окружающего пространства экрана в URP

Эффект Screen Space Ambient Occlusion затмевает складки, отверстия, пересечения и поверхности, которые находятся близко друг к другу в реальном времени. В реальном мире такие области, как правило, блокируют или перекрывают окружающий свет, поэтому они выглядят темнее.

URP реализует эффект Screen Space Ambient Occlusion (SSAO) как Renderer Feature. Он работает с каждым шейдером, который предоставляет Universal Render Pipeline (URP), а также с любыми созданными вами графами непрозрачных шейдеров.

Примечание: Эффект SSAO является Функцией Рендерера и работает независимо от эффектов пост-обработки в URP. Этот эффект не зависит от Томов и не взаимодействует с ними.

На следующих изображениях показана сцена с эффектом Ambient Occlusion выключенным, включенным и только текстурой Ambient Occlusion.

Scene с отключенным эффектом Ambient Occlusion.
Scene с отключенным эффектом Ambient Occlusion.
Scene с эффектом Ambient Occlusion включенным.
Scene с эффектом Ambient Occlusion включенным.
Scene только с текстурой Ambient Occlusion.
Scene только с текстурой Ambient Occlusion.

Детали осуществления

Функция SSAO использует нормальные векторы для расчета того, насколько каждая точка на поверхности подвержена воздействию окружающего освещения.

URP 10.0 реализует блок DepthNormals Pass, который генерирует обычную текстуру _CameraNormalsTexture для текущего кадра. По умолчанию, SSAO Renderer Feature использует эту текстуру для вычисления значений Ambient Occlusion.

Если вы реализуете свой пользовательский SRP и если вы не хотите реализовать блок DepthNormals Pass в своих шейдерах, вы можете использовать SSAO Renderer Feature и установить его свойство Источник на Глубина. В этом случае Unity не использует DepthNormals Pass для генерации нормальных векторов, он восстанавливает нормальные векторы, используя текстуру глубины вместо этого.

Выбор параметра Глубина в свойстве Источник включает свойство Нормальное качество. Параметры в этом свойстве (Low, Medium и High) определяют количество образцов текстуры глубины, которые Unity принимает при восстановлении нормального вектора из текстуры глубины. Количество образцов на уровень качества: Low: 1, Medium: 5, High: 9.