3D模型的载入在前面已经说过了,jpct-ae中的方法非常简单。
这里要说的是第三人称视角的3D场景漫游。第三人称视角是说在3D场景中有一个漫游的物体,这个物体并非我们当前的camera,如果是camara的话,就是第一人称视角了。
以第三人称视角漫游的时候要注意几个问题,或者说实现一下的几个效果。
1、当物体漫游时,我们的视角(即当前camera)也随之移动。
2、当物体旋转时,我们的视角也随之旋转。
3、该物体的center(中心)与视角是相对静止的。
4、3D空间中的物体往往被看做一个点来进行操作,而我们可能希望它是有体积的,并且移动的时候遵循一些规则。例如,这个物体是一辆车,我们总是希望车是从头尾相连的连线的方向移动,或前或后。而不希望它横着移动,那就成漂移了。
为了实现以上几点,我找了很多资料,可是什么也没找到。自己也想了很多算法,可是往往会出现问题。值得注意的一点是要移动物体只有一个Object3D类中的translate方法可以使用,不过很容易是我们的车子横着就走了——我曾经通过角度计算来计算物体移动的X,Y分量,可是效果横不好,用translate移动时会有误差。所以建议大家不要用这个方法。
这里介绍一个我已经实践成功的方法。
其实1、2点较易实现,只要让物体、camera二者先对准一个方向,然后同时旋转、移动即可。
比较难的是3、4点,想要实现相对静止,就要使从物体原点(这里是相对坐标)到camera的向量不变。想要实现它,我们就必须知道这个向量是什么,通过它找到物体相对坐标中的那个点,然后将came