我试图在单个随机放置的对象的“缩小”和“放大”视图之间平滑camera.position过渡。camera.lookAt
定位效果很好。然而, LerpinglookAt()似乎并不能很好地与传统 ThreeJS 的其他解决方案配合使用(请参阅此处@bovesan 的答案),也没有通过 React-Three-Fiber 文档(链接)上的相关示例来解决。
放大超过 z 轴会翻转相机,并且在角落处会严重扭曲。
您可以在这里看到我的进度: https: //codesandbox.io/s/ Three-Fiber-zoom-to-object-rlme0?file=/src/App.js
相关代码位于App.js第 63 行:
useFrame((state) => {
const step = 0.05;
// `focus` is a state variable that sends a Vec3 of the objects position
zoom ? vec.set(focus.x, focus.y, focus.z + 0.2) : vec.set(0, 0, 5);
// HERE, looking for a way to lerp camera lookAt in a way that can toggle.
state.camera.lookAt(0, 0, 0);
state.camera.position.lerp(vec, …Run Code Online (Sandbox Code Playgroud)