Search code examples
blendergltfextrinsic-parameters

Are the values for "rotation" and "translation" the values for extrinsic camera parameters in .gltf files?


I have exported a 3D scene in Blender as .gltf and I am reading the data in my program.

For the camera I have the following values in the .gltf File:

{
    "camera" : 0,
    "name" : "Camera",
    "rotation" : [
        0.331510511487034,
        -0.018635762442412376,
        0.0052512469701468945,
        0.9450923238951721
    ],
    "translation" : [
        0.25607955169677734,
        1.6810789010681152,
        0.129119189865864
    ]
},

I think the values here for "rotation" and "translation" are the extrinsic camera parameters. The translation vector (x,y,z) makes sense to me, but I don't understand why there are only 4 floats for the camera rotation. In this case, there should be more values for the matrix, or am I missing something here? Thanks in advance!


Solution

  • When rotation is specified by itself, it's a quaternion, not a matrix. That's why you're seeing only 4 values there. For reference, see: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#transformations

    The glTF camera object looks along -Z in local (node transformed) space, with +Y up. See: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#cameras