Физически корректное освещение (PBR – Physically-Based Rendering) является важной частью современной графики. В PlayCanvas физически корректное освещение используется для создания реалистичных материалов и света, имитируя физические законы взаимодействия света с объектами. Это позволяет добиться более достоверных визуальных эффектов, где материалы и освещение ведут себя согласно законам физики, а не искусственно настроенным параметрам.
Основной принцип PBR заключается в том, чтобы модель освещения, используемая в движке, максимально точно отражала поведение реального света. Для этого используется несколько ключевых понятий:
PlayCanvas использует две основные модели освещения для реализации PBR:
PlayCanvas применяет Cook-Torrance для блестящих материалов и Lambertian для диффузных. Это позволяет комбинировать фотореалистичные и абстрактные материалы в одном проекте.
Для того чтобы добиться правдоподобного освещения, в PlayCanvas необходимо правильно настроить несколько ключевых параметров:
В PlayCanvas поддерживается несколько типов источников света:
Каждый источник света имеет параметры, такие как интенсивность, цвет и радиус распространения. Для физически корректного освещения важно правильно настроить свет, чтобы его параметры соответствовали реальным физическим характеристикам света.
Важнейшими аттрибутами материалов в PlayCanvas являются:
Параметры Metallic и Roughness являются основными для настройки материалов в системе PBR. Они позволяют создать широкий спектр визуальных эффектов, от матовых и шероховатых поверхностей до зеркальных и идеально гладких.
Для корректного освещения сцены важным аспектом является управление экспозицией и глобальным освещением. В PlayCanvas это реализовано через два основных инструмента:
Глобальное освещение (Global Illumination, GI) в PlayCanvas может быть реализовано с использованием карт освещения (lightmaps) или с помощью динамического освещения, что позволяет создать более детализированное освещение на больших объектах и в сложных сценах.
Для создания сцены с физически корректным освещением в 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, что позволяет быстро и эффективно увидеть результат и откорректировать его.
После настройки физически корректного освещения, можно применять дополнительные эффекты, которые улучшат визуальное восприятие сцены:
Эти эффекты можно включить через настройки камеры или с помощью глобальных постобработок, что позволяет гибко адаптировать визуальную составляющую сцены.
Правильное использование физически корректного освещения в PlayCanvas даёт возможность создавать визуально правдоподобные сцены с реалистичными материалами и источниками света. Настройка физических параметров, таких как металличность, шероховатость и интенсивность света, является основой для получения фотореалистичной графики в веб-приложениях.