Skip to content

Commit

Permalink
Merge pull request #7406 from aaronfranke/3d-asset-directions
Browse files Browse the repository at this point in the history
Add information about 3D asset direction conventions to "Importing 3D scenes"
  • Loading branch information
aaronfranke authored and mhilbrunner committed Aug 1, 2023
1 parent a11e0d7 commit 8d61871
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tutorials/assets_pipeline/importing_scenes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,33 @@ Copy the scene file together with the textures and mesh data (if separate) to
the project repository, then Godot will do a full import when focusing the
editor window.

3D asset direction conventions
------------------------------

Godot uses a right-handed, Y-is-up coordinate system, with the -Z axis as
the camera's forward direction. This is the same as OpenGL. This implies
that +Z is back, +X is right, and -X is left for a camera.

The convention for 3D assets is to face the opposite direction as the camera,
so that characters and other assets are facing the camera by default.
This convention is extremely common in 3D modeling applications, and is
`codified in glTF as part of the glTF 2.0 specification <https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units>`.
This means that for oriented 3D assets (such as characters),
the +Z axis is the direction of the front, so -Z is the rear,
+X is the left side, and -X is the right side for a 3D asset.
In Blender, this means that +Y is rear and -Y is front for an asset.

When rotating an oriented 3D asset in Godot, use the ``use_model_front``
option on the ``look_at`` functions, and use the ``Vector3.MODEL_*``
constants to perform calculations in the oriented asset's local space.

For assets without an intrinsic front side or forward direction, such as
a game map or terrain, take note of the cardinal directions instead.
The convention in Godot and the vast majority of other applications is
that +X is east and -X is west. Due to Godot's right-handed Y-is-up
coordinate system, this implies that +Z is south and -Z is north.
In Blender, this means that +Y is north and -Y is south.

Exporting glTF 2.0 files from Blender (recommended)
---------------------------------------------------

Expand Down

0 comments on commit 8d61871

Please sign in to comment.