XNA:粒子系統–雨效果3-開始掉坦克
在前面的一些內容,我已經構建了一個基本的粒子系統,儘管她還不能運動,現在讓我來完善她,讓她開始運動起來,也就是說,從天上掉下很多坦克下來.
之前我們是通過GPU實現,坦克自然是一個模型,通過Vertex Shader運算之後重新得到每個模型運動的位置.
注意,這裡用到了一個很笨拙的方法,逐個計算Tank模型每個頂點的位置,其實可以通過計算中心點坐標來減少計算量.
之前已經說過,計算目的地坐標的公式為:vt+g*t*t/2.
我們在Shader裡面設置全局變量:
float LifeTime; //粒子生命時間
float InitialSpeed; //初始速度
float Acceleration; //加速度
然後計算坐標僅為:
inPos.y-=(LifeTime*InitialSpeed+(Acceleration*LifeTime*LifeTime)/2);
Output.Position = mul(inPos, preWorldViewProjection);
即可完成運動計算.
完整的Shader代碼:
Read more
