Физически корректное освещение

Физически корректное освещение (PBR – Physically-Based Rendering) является важной частью современной графики. В PlayCanvas физически корректное освещение используется для создания реалистичных материалов и света, имитируя физические законы взаимодействия света с объектами. Это позволяет добиться более достоверных визуальных эффектов, где материалы и освещение ведут себя согласно законам физики, а не искусственно настроенным параметрам.

Принципы физически корректного освещения

Основной принцип PBR заключается в том, чтобы модель освещения, используемая в движке, максимально точно отражала поведение реального света. Для этого используется несколько ключевых понятий:

  1. Светоотражение — способность материала отражать свет.
  2. Энергетический баланс — максимальное количество света, которое может быть отражено материалом, ограничено физическими законами. В PBR это отражается в максимальных значениях альбедо (цвета материала) и его способности отражать свет.
  3. Металличность и шероховатость — важные параметры материалов, которые влияют на характер их отражений и взаимодействие с освещением.

Модели освещения в PlayCanvas

PlayCanvas использует две основные модели освещения для реализации PBR:

  • Cook-Torrance BRDF (Bidirectional Reflectance Distribution Function) — физически корректная модель отражения, которая описывает, как свет отражается от поверхности, учитывая шероховатость и угол падения.
  • Lambertian Reflectance — более простая модель, используемая для диффузных отражений, где свет равномерно рассеивается по всей поверхности объекта.

PlayCanvas применяет Cook-Torrance для блестящих материалов и Lambertian для диффузных. Это позволяет комбинировать фотореалистичные и абстрактные материалы в одном проекте.

Основные параметры освещения

Для того чтобы добиться правдоподобного освещения, в PlayCanvas необходимо правильно настроить несколько ключевых параметров:

Источник света

В PlayCanvas поддерживается несколько типов источников света:

  • DirectionalLight — используется для имитации солнечного света. Лучи от такого источника света параллельны, что подходит для освещения больших объектов или сцен.
  • PointLight — распространяется в радиусе от одной точки, идеально подходит для освещения отдельных объектов.
  • SpotLight — ограничивает световое воздействие в определённом углу, создавая эффект прожектора.
  • AmbientLight — добавляет общий световой фон, который равномерно освещает все объекты сцены.

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

Материалы и их свойства

Важнейшими аттрибутами материалов в PlayCanvas являются:

  • Albedo (альбедо) — это базовый цвет материала, определяющий его внешний вид в нейтральном освещении.
  • Metallic (металличность) — определяет степень, с которой материал ведет себя как металл. Металлические материалы имеют высокую отражающую способность и почти не диффузно рассеивают свет.
  • Roughness (шероховатость) — контролирует, насколько гладкая или шероховатая поверхность материала. Шероховатые материалы создают более рассеянное отражение света, в то время как гладкие отражают свет чётче.
  • NormalMap — текстура, имитирующая неровности поверхности, но не изменяющая геометрию объекта.

Параметры Metallic и Roughness являются основными для настройки материалов в системе PBR. Они позволяют создать широкий спектр визуальных эффектов, от матовых и шероховатых поверхностей до зеркальных и идеально гладких.

Экспозиция и глобальное освещение

Для корректного освещения сцены важным аспектом является управление экспозицией и глобальным освещением. В PlayCanvas это реализовано через два основных инструмента:

  1. Bloom — эффект рассеивания света, который добавляет яркости и интенсивности светлым участкам сцены.
  2. Tone Mapping — преобразование цвета сцены, позволяющее адаптировать изображение под заданный диапазон яркости. Используется для более корректного отображения как ярких, так и тёмных областей сцены.

Глобальное освещение (Global Illumination, GI) в PlayCanvas может быть реализовано с использованием карт освещения (lightmaps) или с помощью динамического освещения, что позволяет создать более детализированное освещение на больших объектах и в сложных сценах.

Пример настройки освещения и материалов в PlayCanvas

Для создания сцены с физически корректным освещением в PlayCanvas необходимо создать правильное сочетание материалов и источников света.

var entity = new pc.Entity();
entity.addComponent('model', {
    type: 'box'
});
var material = new pc.Material();
material.diffuse = new pc.Color(0.8, 0.3, 0.3);
material.shininess = 0.5; // задаём степень блеска
material.metalness = 0.0; // материал не металл
material.roughness = 0.8; // шероховатая поверхность
entity.model.material = material;

В этом примере создается материал с матовой поверхностью, который имеет умеренную степень блеска и низкую металличность. Шероховатость 0.8 делает поверхность менее отражающей. Это создаёт хороший пример для моделирования натуральных материалов, таких как пластик или дерево.

Для источников света настройка может быть следующей:

var light = new pc.LightComponent(entity);
light.type = 'directional';
light.intensity = 1.0;
light.color = new pc.Color(1, 1, 1); // белый свет

Этот код создаёт направленный свет с белым цветом и стандартной интенсивностью. В реальных проектах настройка таких источников часто производится через визуальный редактор PlayCanvas, что позволяет быстро и эффективно увидеть результат и откорректировать его.

Постобработка и визуальные эффекты

После настройки физически корректного освещения, можно применять дополнительные эффекты, которые улучшат визуальное восприятие сцены:

  1. Ambient Occlusion (AO) — эффект затемнения в углах и на соединениях объектов, что добавляет реалистичности.
  2. Depth of Field — создание эффекта размытия фона, имитируя работу камеры.
  3. Chromatic Aberration — искажение цвета на краях объектов, что помогает добавить фотореалистичности.

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

Заключение

Правильное использование физически корректного освещения в PlayCanvas даёт возможность создавать визуально правдоподобные сцены с реалистичными материалами и источниками света. Настройка физических параметров, таких как металличность, шероховатость и интенсивность света, является основой для получения фотореалистичной графики в веб-приложениях.