WebGL:在场景中选择对象后,如何更改缩放方向?

WebGL:在场景中选择对象后,如何更改缩放方向?,webgl,zooming,Webgl,Zooming,使用WebGL,我正在显示一个包含多个对象的3D场景。相机/眼睛对准场景中心,使用鼠标滚轮可以放大和缩小。我试图做的是选择3D场景中的任何对象,然后使用鼠标滚轮放大选定对象。我是WebGL的新手,我正在努力想办法让它发挥作用。我能够将选定对象的坐标反投影到3D坐标。这就是我感到困惑的地方。选定对象的三维坐标是否为新目标(注视)值?放大前是否需要更新相机/眼睛坐标?非常感谢您的指导。。如果您的选择代码已经在工作,那么唯一的区别是您告诉它要缩放到哪个对象,而不是按顺序转到下一个对象 通常,lookA

使用WebGL,我正在显示一个包含多个对象的3D场景。相机/眼睛对准场景中心,使用鼠标滚轮可以放大和缩小。我试图做的是选择3D场景中的任何对象,然后使用鼠标滚轮放大选定对象。我是WebGL的新手,我正在努力想办法让它发挥作用。我能够将选定对象的坐标反投影到3D坐标。这就是我感到困惑的地方。选定对象的三维坐标是否为新目标(注视)值?放大前是否需要更新相机/眼睛坐标?非常感谢您的指导。

。如果您的选择代码已经在工作,那么唯一的区别是您告诉它要缩放到哪个对象,而不是按顺序转到下一个对象

通常,
lookAt
函数只需要您想要“查看”的世界空间坐标。缩放取决于您将相机放得离它所观察的对象更远或更近。最简单的方法就是沿着矢量从相机的当前位置移动到你想要的位置。上面链接的示例就是这样做的

请注意,根据lookAt函数的不同,它可能会生成摄影机矩阵(将摄影机/对象放置在世界空间中指向其目标的矩阵)或视图矩阵(移动其前面世界中所有其他对象的矩阵)

我发现一个库生成一个摄像头矩阵更有用,因为所有类型的东西(角色的头部、炮塔、安全摄像头等)都可以使用相同的函数指向他们正在跟踪的任何东西。生成视图矩阵的库仅用于生成视图矩阵

一个是另一个的逆,所以如果你需要另一个,你可以只取矩阵的逆