Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion automated_updates_data.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"last_automated_updates_commit": "e9b9596d6dddf8fc483ed5d4c2a4725215b073fe",
"last_automated_updates_commit": "ab5866386e680ec5e39b0019abe4d03ddec5b7b2",
"last_improved_things": [
{
"date": "2026-02-16",
Expand Down
9 changes: 9 additions & 0 deletions docs/gdevelop5/interface/scene-editor/layers-and-cameras.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,15 @@ Camera angle controls the camera rotation. Similar to objects, the default angl

![](/wiki/pres_coord2.png)

### 3D camera direction

For 3D layers, the camera exposes expressions to get its **local basis vectors** — `CameraForwardX/Y/Z`, `CameraUpX/Y/Z`, and `CameraRightX/Y/Z`. These return the direction the camera is currently facing and its orientation axes in world space.

This is useful for:

- Moving a character in the direction the camera is looking (camera-relative movement common in 3D games)
- Implementing first-person or third-person controls where character movement follows the camera's orientation

### Enforce camera boundaries

Many games use a moving camera but they also must prevent the camera from displaying an area outside the game's boundaries. This can be accomplished by using the **Enforce camera boundaries** action after all other camera movement actions.
Expand Down
10 changes: 10 additions & 0 deletions docs/gdevelop5/objects/3d-box/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ Support for transparency (faces with transparent or semi opaque colors) can be e

This can be produce strange results if you expect other faces of the box to be shown behind. This is due to how 3D rendering works. It's also more costly to render for the 3D engine.

## Object orientation

3D boxes expose expressions to get their **local basis vectors** — the directions the object considers as "forward", "up", and "right" based on its current rotation. These are available through the **3D object** behavior as `Base3DBehavior::ForwardX`, `ForwardY`, `ForwardZ`, `UpX`, `UpY`, `UpZ`, `RightX`, `RightY`, and `RightZ`.

These are useful for:

- Moving the object in the direction it is facing (e.g., multiply the forward vector by a speed value)
- Applying forces or impulses aligned with the object's current orientation
- Building projectile or physics systems that depend on where an object is pointing

## Performance considerations

A lot of 3D boxes can impact your game as they require multiple faces to be rendered, even if these faces are partially or totally hidden behind other 3D or 2D objects.
Expand Down
10 changes: 10 additions & 0 deletions docs/gdevelop5/objects/3d-model/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,16 @@ The **center location** determines the point around which the object rotates and

For characters, setting the origin to "Bottom center (Z)" makes it easy to place them on the ground, as the object's Z position will represent the ground level where the character stands.

## Object orientation

3D models expose expressions to get their **local basis vectors** — the directions the object considers as "forward", "up", and "right" based on its current rotation. These are available through the **3D object** behavior as `Base3DBehavior::ForwardX`, `ForwardY`, `ForwardZ`, `UpX`, `UpY`, `UpZ`, `RightX`, `RightY`, and `RightZ`.

These are useful for:

- Moving the character or object in the direction it is facing (e.g., multiply the forward vector by a speed value)
- Applying forces or impulses aligned with the model's orientation
- Building targeting or aiming systems that depend on where the object is pointing

## File format

GDevelop supports 3D models saved in the **GLB (.glb) format**. It is a standardized file format used to share 3D data. Notably, it includes the 3D mesh of the object, as well as its textures, material specifications, and animations. This format is also sometimes called **GLTF**, for "GL Transmission Format". You can sometimes find .gltf files, but only the **.glb** files are supported by GDevelop, as they can embed the textures and animations whereas .gltf files require separate files.
Expand Down