Тутор по BabylonJS — камера и освещение

Доброго вечера, хабраюзер. Предлагаю тебе дальше продолжить ознакомление с фреймворком BabylonJS. В этой статье ты ознакомишься с существующими камерами и типами освещения, предлагаемыми этим фреймворком.
9d18de622c8542cfa9b64d8e29aff848.png

Камеры


Вообще, в BabylonJS существует 9 типов камер 7 из которых я опишу ниже. Почему 7? Восьмая и девятая камера не имеет документации на момент написания тутора.

FreeCamera — свободная камера

var camera = new BABYLON.FreeCamera(“FreeCamera”, new BABYLON.Vector3(0, 1, -15), scene);

ArcRotateCamera — камера, прикрепляемая к определённой оси и вращающаяся по ней

var camera = new BABYLON.ArcRotateCamera(“ArcRotareCamera”, 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);


Примечание: требуется посторонний модуль hand.js

TouchCamera — камера для сенсорного управления

var camera = new BABYLON.TouchCamera(“TouchCamera”, new BABYLON.Vector3(0, 1, -15), scene);


Примечание: требуется посторонний модуль hand.js

Follow Camera — следящая за объектом камера

var camera = new BABYLON.FollowCamera(“FollowCamera”, new BABYLON.Vector3(0, 15, -45), scene);

camera target = myMeshObject: //указываем цель слежения

VirtualJoysticksCamera — управление камерой с помощью виртуального джойстика

var camera = new BABYLON.VirtualJoysticksCamera(“VJ_Camera”, new BABYLON.Vector3(0, 1, -15), scene);

AnaglyphCamera — камера для 3D-очков

var camera = new BABYLON.AnagluphFreeCamera(“af_cam”, new BABYLON.Vector3(0, 1, -15); 0.333, scene);


0.333 — смещение между правым и левым глазом

GamepadCamera — камера, управляемая с джойстика

var camera = new BABYLON.GamepadCamera(“Camera”, new BABYLON.Vector3(0, 15, -45), scene);

Свет


Всего 4 источника света могут рендериться на одном сцене и всего их существует 4 :)

The Point Light — точечный источник освещения

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);


c1d0d6b2424b41f5b688425bdcef4bec.png

The Directional Light — свет, излучаемый повсюду

var light0 = new BABYLON.DirectionalLight(“DirLight”, new BABYLON.Vector3(0, -1, 0), scene);
light0.diffuse = new BABYLON.Color3(1, 0, 0);
light0.specular = new BABYLON.Color3(1, 1, 1); 


0d8cfa0b3194492ba92a8e3a001dff2a.png

The Spot Light — прожектор
13230eb58b9a47bca568c7bce99b1631.png

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


2 аргумент — положение
3 аргумент — направление
4 аргумент — угол
5 аргумент — скорость распада света
871f32e250b4448eab22ec8a341adc55.png

The Himispheric Light — реалистичное освещение

var light0 = new BABALON.HemisphereLight(“Hemi0”, new BABYLON.Vector3(0, 1, 0), scene);
light0.diffuse = new BABYLON.Color3(1, 1, 1);
light0.specular = new BABYLON.Color(1, 1, 1);
light0.groundColor = new BABYLON.Color(0, 0, 0);


e7d06cd874134f759cea4b8e8ace6011.png

© Habrahabr.ru