gpt4 book ai didi

serialization - 在 ThreeJS 中序列化相机状态

转载 作者:行者123 更新时间:2023-12-04 06:10:26 27 4
gpt4 key购买 nike

在 ThreeJS 场景中序列化(或保存或编码)相机状态,然后稍后取消序列化(或加载或解码)相机的最佳方法是什么?

现在我正在保存相机位置、向上和(欧拉角)旋转场的 x、y、z 坐标。后来我尝试通过调用 position.set() 来恢复这台相机。 , up.set() , 和 rotation.set() ,然后调用 updateProjectionMatrix() .我假设序列化和反序列化时默认的欧拉角旋转顺序是相同的。

它是否正确?

最佳答案

我建议改为存储相机的矩阵。这包括相机上的整个转换,包括位置、旋转和缩放。

序列化:

const cameraState = JSON.stringify(camera.matrix.toArray());
// ... store cameraState somehow ...

反序列化:
// ... read cameraState somehow ...
camera.matrix.fromArray(JSON.parse(cameraState));
// Get back position/rotation/scale attributes
camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);

关于serialization - 在 ThreeJS 中序列化相机状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29221795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com