OpenGL ES 3D 粒子系统小结
2019獨角獸企業重金招聘Python工程師標準>>>
所謂粒子系統可以想象為一堆粒子由一個點或一個面按照一定的規律進行噴射。
粒子系統大致分為2類:一類為“點噴式”,一類為“面噴式”。可以想象前者由一個點進行噴射,類似于焰火;后者在一個平面上有多個點噴射粒子,類似于雨或雪的產生。
首先粒子系統是由粒子組成,要描述粒子系統就必須先描述單個粒子的組成。對于單個的粒子對象,它的屬性我將其分為2種:1為固有屬性,2為相對屬性。對于世界坐標系中的粒子來說固有屬性為絕對的:例如粒子的大小,顏色等等,而相對屬性是相對與空間中的坐標系來說,例如粒子的飛行速度,位移,粒子在坐標系中的X,Y,Z坐標等等。
接下來得說說“點噴式”和“面噴式”的區別。對于前者來說,所有的粒子為在一個固定的點發射,所以組成系統的所有粒子的坐標的固定的,而需要隨機生成的是噴射瞬間粒子的在X,Y,Z的分速度。對于后者來說可以看做隨機生成噴射點噴射相同速度的粒子,所以此時粒子在飛行是的速度是可以知道的,而不知道的是生成該粒子的坐標,所以此時的粒子的相對屬性發生了改變不是初速度而是初始坐標。
注意不能認為每個粒子噴射點用一個線程去搞定,這種想法是不正確的。正確的想法是把整個面當作一個噴射點(有點抽象)然后隨機生成坐標就可以在不同的坐標噴射粒子。如果按照每個噴射點一個線程那么當噴射點過多時系統會癱掉的
?
?
?
轉載于:https://my.oschina.net/u/264497/blog/57393
總結
以上是生活随笔為你收集整理的OpenGL ES 3D 粒子系统小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 印象笔记的试用印象
- 下一篇: (部分来自windows核心编程)远程注