Posted on 2010-10-05 17:00
Husman 阅读(722)
评论(0) 编辑 收藏 引用
轨迹跟踪条是由一串Billboard组成的,每个Billboard在轨迹跟踪条里面可以认为是一个元素。我在游戏中试过,一般12个元素就已经很完美了。
每个元素就是一个点,元素不是顶点缓存中的点,顶点缓存中的点是通过观察点和相邻两个元素连成的线做叉积算出来的。
update的时候根据被跟踪点的位置,计算每个元素的位置,从轨迹跟踪条链的头部开始比较,如果紧挨着的元素与被跟踪点的距离大于元素的长度的时候,需要更新头部的位置,有了这个更新,轨迹条就有了拐弯的效果,然后再往链条上面加一个元素,这个元素就是下一次循环的头部。
render的时候算出垂直线后就在其两边各放一个点,就成为Billboard的两个顶点,遍历所有元素,可以算出所有Billboard的顶点。
还有一点,orgre的轨迹条贴图的时候是一个Billboard贴一个纹理,而wow是所有的轨迹条对应一张纹理,所以要做出wow效果的轨迹条需要修改纹理坐标的计算方式。wow的轨迹条纹理有颜色渐变的效果,可以看到轨迹的尾部颜色淡一点。
以下我是参考ogre的轨迹跟踪类写的,应用了wow的轨迹纹理,效果和wow一样。