BabylonJS is an open-source, robust JavaScript framework for creating and rendering 3D graphics and immersive experiences directly in web browsers.
Note: Learn more about BabylonJS.
The camera in BabylonJS defines the view of a 3D scene visible to the user on the screen. There are four types of cameras BabylonJS offers:
Free Camera
Arc Rotate Camera
Follow Camera
Universal Camera
FreeCamera
syntaxThis camera allows the user to navigate the scene using keyboard and mouse controls freely. It provides a first-person perspective and is often used in games and interactive applications.
var camera = new BABYLON.FreeCamera(label, position, scene);
label
: The name of the camera, which can be any string.
position
: The initial position vector of the camera as a BABYLON.Vector3
object.
scene
: The BabylonJS scene to which the camera belongs.
We can see that the highlighted line uses FreeCamera
to display objects on the scene. You can change the values of the new BABYLON.Vector3(0, 5, -10)
vector to see how the view changes.
ArcRotateCamera
syntaxThis camera revolves around a target point, simulating an orbiting behavior. It's commonly used for 3D visualization, architectural walkthroughs, and camera animations.
var camera = new BABYLON.ArcRotateCamera(label, alpha, beta, radius, target, scene);
label
: The name of the camera.
alpha
: The angle in radians to rotate the camera horizontally (left-right).
beta
: The angle in radians to rotate the camera vertically (up-down).
radius
: The distance from the camera to the target point.
target
: The point in 3D space that the camera is focused on as a BABYLON.Vector3
object.
scene
: The BabylonJS scene to which the camera belongs.
You can see that the highlighted line in the code above, uses ArcRotateCamera
to display objects on the scene. This camera view also offers two rotating angles and a radius of curvature in addition to the BABYLON.Vector3
object. You can change these values to see how the view changes.
FollowCamera
syntaxThis camera is designed to follow a target object while maintaining a specified distance and angle from it. It's useful for scenarios like third-person character controls.
var camera = new BABYLON.FollowCamera(label, position, scene);camera.lockedTarget = targetMesh; // Set the target mesh to follow
label
: The name of the camera.
position
: The initial position of the camera as a BABYLON.Vector3
object.
scene
: The BabylonJS scene to which the camera belongs.
You can see that the highlighted line uses UniversalCamera
to display objects on the scene. Change the values of the offsets to see how the camera view keeps the "icosphere"
object (defined on line#28) as a target pivot.
UniversalCamera
syntaxIt is a versatile camera that combines features of different camera types, such as free movement and optional automatic collision avoidance.
var camera = new BABYLON.UniversalCamera(label, position, scene);
label
: The name of the camera.
position
: The initial position of the camera as a BABYLON.Vector3
object.
scene
: The BabylonJS scene to which the camera belongs.
You can see that the highlighted line uses UniversalCamera
to display objects on the scene. You can change the parametric values to see how the view changes.
These are the main camera types in Babylon.js. Each camera type serves different purposes and provides specific functionalities. We can choose the camera type that fits our project's requirements and customize its properties and behavior accordingly.
Note: Read more about BabylonJS meshes and lights.
Free Resources