我有一个相机(在自定义3D引擎中)接受四元数进行旋转变换.我有两个3D点代表一个摄像头和一个要查看的对象.我想计算从摄像机到物体的四元数,同时尊重世界的轴.
没有"向上"向量,这个问题要求同样的事情.所有三个答案都会导致相机指向正确的方向,但滚动(如偏航/俯仰/滚动;想象一下看着某些东西时,将头部贴在耳朵上).
我可以通过以下方式计算与所需坐标系匹配的矢量的标准正交基:
lookAt = normalize(target - camera)
sideaxis = cross(lookAt, worldUp)
rotatedup = cross(sideaxis, lookAt)
Run Code Online (Sandbox Code Playgroud)
如何从这三个向量创建四元数?这个问题要求同样的事情......但不幸的是,唯一和接受的答案是"让我们假设你不关心滚动",然后忽略向上轴.我关心滚动.我不想忽略上轴.
quaternions ×1