I have view matrix (4x4) and projection matrix (4x4), can I initialize the camera by them ?

I notice `pc.Mat4`

has the `getEulerAngles`

and `getTranslation`

API, but I don’t know how to calculate the camera’s position, eulerangles, scale correctly…

Can anyone help ?

Nobody can help me ?

The camera’s view matrix is the inverse of the world transformation matrix. So you could invert the matrix and then call getTranslation and getEulerAngles on it:

```
var viewMatrix = new pc.Mat4();
viewMatrix.set(yourValueArray);
viewMatrix.invert();
var pos = viewMatrix.getTranslation();
var eulers = viewMatrix.getEulerAngles();
// Now set the camera entity's position and rotation
cameraEntity.setPosition(pos);
cameraEntity.setEulerAngles(eulers);
```

1 Like

Thank you, you save my day!

1 Like

What about the projection matrix?

Is that affect the camera’s fov?

And how to use the projection matrix?

To extract the fov from a projection matrix in PlayCanvas, you can do:

```
var m11 = this.entity.camera.projectionMatrix.data[5];
var fov = Math.atan(1 / m11) * 2 * 180 / Math.PI;
```

Should work the same for your matrix values. Just use the [1, 1] element of your matrix.

1 Like