在实际游戏编程中,有很多效果是需要自己编程实现而非帧动画,特别是可通过参数控制效果的动画。此篇文章主要说明下《忍者必须死》流线光效果的实现原理。
效果图如下:
因为这种效果是动态的,所以需要实时绘制出来,也就是使用gl的一些绘图函数了,主要还是计算好顶点的位置和颜色。
先定义顶点结构,此后告诉gl顶点是怎么定义的、因为这里不使用纹理,就不要纹理坐标了。
typedef struct{
float Position[3];
float Color[4];
} Vertex;
需要用到索引数组以简化数据的传递,索引的建立就按照三角形的逆序依次输入就行。先假设一根光线使用21的顶点。
Vertex trackpt[21];
for(int i=0;i<=20;++i){
trackpt[i].Position[0]=0;
trackpt[i].Position[1]=0;