对动漫角色进行建模,姿态定制或动画制作需要都要从不同角度去观察角色,并进行修改或制作,一般的 3D 建模工具都会提供侧,正,上方向和斜上方向的视角来帮助建模,而我们在这里则提供一种可以快速地任意旋转模型,并可以从任意角度修改模型的 OpenGL 实现方法。
要从任意角度观察模型,只需把视点放在以所观察物体中心为圆心,以视点与物体中心距离为半径的一个球面上。如图 2 所示。这里的平滑球面旋转指的是无论相机处于什么位置,都可以根据鼠标的位移而平滑地改变角色模型的观察角度,不会出现因为相机处于特殊位置(如上下两极)而出现的奇异的观察角度旋转。
图 2 平滑的球面相机
当鼠标在屏幕上拖动时,视点则在球面往相反的方向方向移动相应的弧度角,如图 3
图 3 鼠标移动时相机的变化
相机的位置移到 eye2 位置,即可实现平滑球面旋转,以下是其 OpenGL