Статьи

Babylon.js: Использование огней в вашей игре babylon.js

В предыдущей статье мы узнали, как использовать материалы, чтобы определить аспект вашей сетки. Теперь мы готовы поговорить о огнях.

Свет используется для получения диффузного и зеркального цвета, получаемого каждым пикселем. Этот цвет затем используется материалами для определения окончательного цвета каждого пикселя.

Babylon.js позволяет создавать и регистрировать столько источников света, сколько вы хотите, но будьте осторожны, потому что StandardMaterial может обрабатывать только 4 одновременных источника света (первые четыре включенных источника света в списке источников света)

В этой статье я покажу вам, как использовать все виды источников света, поддерживаемых babylon.js .

Активация / Деактивация света

Каждый источник света можно отключить, установив для его свойства isEnabled значение false.

Но вы также можете контролировать глобальную интенсивность света со свойством интенсивности .

Точечный свет

Точечный свет — это свет, определяемый уникальной точкой. С этой точки свет излучается во всех направлениях.

Вы можете управлять цветом света с диффузными и зеркальными свойствами:

var light0 = new BABYLON.PointLight("Omni0", new BABYLON.Vector3(1, 10, 1), scene);
light0.diffuse = new BABYLON.Color3(1, 0, 0);
light0.specular = new BABYLON.Color3(1, 1, 1);

образКрасный рассеянный точечный светильник с белым зеркальным отражением

Направленный свет

Направленный свет определяется направлением (какой сюрприз!). Свет излучается отовсюду в определенном направлении и имеет бесконечный диапазон.

Как точечный источник света, вы можете управлять цветом источника света с помощью рассеянных и зеркальных свойств:

var light0 = new BABYLON.DirectionalLight("Dir0", new BABYLON.Vector3(0, -1, 0), scene);
light0.diffuse = new BABYLON.Color3(1, 0, 0);
light0.specular = new BABYLON.Color3(1, 1, 1);

образКрасный рассеянный направленный свет с белым зеркальным

Точечный свет

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

образ

var light0 = new BABYLON.SpotLight("Spot0", new BABYLON.Vector3(0, 30, -10), new BABYLON.Vector3(0, -1, 0), 0.8, 2, scene);
light0.diffuse = new BABYLON.Color3(1, 0, 0);
light0.specular = new BABYLON.Color3(1, 1, 1);

образ
Красный рассеянный прожектор с белым отражателем и конусом шириной 0,8 радиана. Значение показателя равно 2.

Свет полушария

Полусферический свет представляет собой простой и легкий способ имитировать реалистичное окружающее освещение. Полусферический свет определяется направлением на небо и тремя цветами: один для рассеянного (цвет неба), один для земли (цвет, когда пиксель не направлен к небу) и один для зеркального.

var light0 = new BABYLON.HemisphericLight("Hemi0", new BABYLON.Vector3(0, 1, 0), scene);
light0.diffuse = new BABYLON.Color3(1, 1, 1);
light0.specular = new BABYLON.Color3(1, 1, 1);
light0.groundColor = new BABYLON.Color3(0, 0, 0);

образБелый / черный свет полушария

Что дальше ?

Если вы хотите углубиться в babylon.js , вот несколько полезных ссылок: