BabylonJS - Aparaty

BabylonJS ma wiele kamer, których można używać. W danym momencie tylko jedna kamera będzie aktywna dla sceny.

W tym rozdziale dowiemy się, jak korzystać z kamer w BabylonJS.

FreeCamera

Zobaczmy teraz, jak działa FreeCamera.

Składnia

Poniżej znajduje się składnia FreeCamera -

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

To jest pozycja, w której znajduje się kamera - nowy BABYLON.Vector3 (0, 1, -15).

Zmiana kierunku zmieni kierunek. Możesz zmienić wartości i zobaczyć, jak kamera zachowuje się na scenie.

Poniżej przedstawiono parametry używane przez FreeCamera -

  • Name
  • Position
  • Scene

ArcRotateCamera

Ta kamera obraca się wokół określonego obrotu celu. Można nim sterować za pomocą kursorów i myszy lub za pomocą zdarzeń dotykowych. Parametry to nazwa, alfa, beta, promień i cel.

Składnia

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

ArcRotateCamerawskazuje w kierunku + x. Aby zmienić położenie kamery, użyjsetPosition własność.

camera.setPosition(new BABYLON.Vector3(0, 0, -100));

ArcRotateCamera to doskonały aparat do animacji. Następujące polecenie pomoże ci obrócić kamerę wokół celu -

scene.activeCamera.alpha += .01;

TouchCamera

Dotyk to rodzaj „gestu”. Może znajdować się na padzie lub ekranie, z palcem (palcami), rysikiem, rękawicą, stopami lub wskaźnikiem laserowym. Każdy ruch, który można wyczuć ... można uznać za gest.

Składnia

Poniżej znajduje się składnia TouchCamera -

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

GamepadCamera

Ten aparat jest specjalnie zaprojektowany do użytku z gamepadem.

Składnia

Poniżej znajduje się składnia kamery gamepada -

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

DeviceOrientationCamera

Ta kamera jest specjalnie zaprojektowana do reagowania na zdarzenia związane z orientacją urządzenia, takie jak przechylenie urządzenia do przodu lub do tyłu, w lewo lub w prawo itp.

Składnia

var camera = new BABYLON.DeviceOrientationCamera("DevOr_camera", new BABYLON.Vector3(0, 1, -15), scene);

FollowCamera

FollowCamera jest przeznaczona do śledzenia dowolnego elementu sceny z pozycją. Może podążać z tyłu, z przodu lub pod dowolnym kątem.

Składnia

Poniżej znajduje się składnia FollowCamera -

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

VirtualJoysticksCamera

Ta kamera została zaprojektowana do reagowania na zdarzenia związane z wirtualnym joystickiem. Wirtualne joysticki to grafika 2D na ekranie, która służy do sterowania kamerami lub innymi elementami sceny.

Składnia

Poniżej znajduje się składnia VirtualJoysticksCamera -

var camera = new BABYLON.VirtualJoysticksCamera("VJ_camera", new BABYLON.Vector3(0, 1, -15), scene);

AnaglyphCamera

AnaglyphCamera jest przeznaczona do użytku z czerwonymi i błękitnymi okularami 3D. Wykorzystuje techniki filtrowania po przetwarzaniu.

AnaglyphArcRotateCamera

Poniżej znajduje się składnia AnaglyphArcRotateCamera -

var camera = new BABYLON.AnaglyphArcRotateCamera("aar_cam", -Math.PI/2, Math.PI/4, 20, new BABYLON.Vector3.Zero(), 0.033, scene);

AnaglyphFreeCamera

Poniżej znajduje się składnia AnaglyphFreeCamera -

var camera = new BABYLON.AnaglyphFreeCamera("af_cam", new BABYLON.Vector3(0, 1, -15), 0.033, scene);

VRDeviceOrientationFreeCamera

VRDeviceOrientationFreeCamera wykorzystuje FreeCamera jako podstawę, więc właściwości i metody FreeCamera można również znaleźć w naszej VRDeviceOrientationFreeCamera.

Składnia

Poniżej znajduje się składnia VRDeviceOrientationFreeCamera -

var camera = new BABYLON.VRDeviceOrientationFreeCamera ("Camera", new BABYLON.Vector3 (-6.7, 1.2, -1.3), scene, 0);

WebVRFreeCamera

WebVRFreeCamera używa FreeCamera jako podstawy, więc właściwości i metody FreeCamera są również dostępne w naszej WebVRFreeCamera.

Składnia

Poniżej znajduje się składnia WebVRFreeCamera -

var camera = new BABYLON.WebVRFreeCamera("WVR", new BABYLON.Vector3(0, 1, -15), scene);

W większości wersji demonstracyjnych zobaczysz attachControl gdzie kamera jest przymocowana do płótna.

Przykład

camera.attachControl(canvas, true);