Skip to main content
The 2024 Developer Survey results are live! See the results
Remove section that I believe to be incorrect
Source Link
emackey
  • 2.8k
  • 1
  • 16
  • 25

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

It is worth noting that, for Blender specifically, if you set the GLTF file's asset.generator value to Khronos glTF Blender I/O v3.6.27, Blender will then import a Y up asset (the character would be facing downward in blender) as Z up (the character will now be standing upright in blender as desired).

If you export GLTF from another tool besides Blender that uses Y up, then changing asset.generator should do the trick. For example, when exporting GLTF from Three.js, Y is up, so a character that looked fine in Three.js will be facing down in Blender. Applying the Blender asset.generator value will make it appear upright in Blender.

(It is an odd choice for any tool to apply transforms based on the asset.generator value.)

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

It is worth noting that, for Blender specifically, if you set the GLTF file's asset.generator value to Khronos glTF Blender I/O v3.6.27, Blender will then import a Y up asset (the character would be facing downward in blender) as Z up (the character will now be standing upright in blender as desired).

If you export GLTF from another tool besides Blender that uses Y up, then changing asset.generator should do the trick. For example, when exporting GLTF from Three.js, Y is up, so a character that looked fine in Three.js will be facing down in Blender. Applying the Blender asset.generator value will make it appear upright in Blender.

(It is an odd choice for any tool to apply transforms based on the asset.generator value.)

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

It is worth noting that, for Blender specifically, if you set the GLTF file's asset.generator value to Khronos glTF Blender I/O v3.6.27, Blender will then import a Y up asset (the character would be facing downward in blender) as Z up (the character will now be standing upright in blender as desired).

If you export GLTF from another tool besides Blender that uses Y up, then changing asset.generator should do the trick. For example, when exporting GLTF from Three.js, Y is up, so a character that looked fine in Three.js will be facing down in Blender. Applying the Blender asset.generator value will make it appear upright in Blender.

(It is an odd choice for any tool to apply transforms based on the asset.generator value.)

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot

It is worth noting that, for Blender specifically, if you set the GLTF file's asset.generator value to Khronos glTF Blender I/O v3.6.27, Blender will then import a Y up asset (the character would be facing downward in blender) as Z up (the character will now be standing upright in blender as desired).

If you export GLTF from another tool besides Blender that uses Y up, then changing asset.generator should do the trick. For example, when exporting GLTF from Three.js, Y is up, so a character that looked fine in Three.js will be facing down in Blender. Applying the Blender asset.generator value will make it appear upright in Blender.

(It is an odd choice for any tool to apply transforms based on the asset.generator value.)

Source Link
emackey
  • 2.8k
  • 1
  • 16
  • 25

For what it's worth, the glTF specification defines +Y as "up" for the format. This was done (along with meter scale and +Z front) with the goal that assets from different sources would be compatible together in a scene. This is why the Blender importer presumes +Y up.

It's expected that glTF will auto-convert to any native system, for example convert glTF's +Y up to Blender's +Z up automatically during import. It may actually be inappropriate for the exporter to offer any option here to do anything other than automatically convert Blender's +Z up to glTF's +Y up on the way out, but removing an existing export option is always contentious, so it hasn't happened yet.

For reference: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units

coordinate system screenshot