大人になりたくない

プログラミング系。最近は主に vvvv 。

OpenGL ES2 ポイントスプライト

パーティクルのシステムを作るために、ポイントスプライト実装。

 

■やり方

GL_POINTS で渡してあげるだけで、特に設定いらずにシェーダ側が動いた。

 

頂点シェーダでサイズを指定は、gl_PointSize に入れるだけでOK。

 gl_PointSize = size / outPos.w; とか。

 

フラグメント側には gl_PointCoord に自動で入っている。

 texture2D(sTex, gl_PointCoord); とか。

 

gl_PointCoord は PVRSDK のコンパイラでは undeclared と言われてしまうけど、普通に動く。

 

5 万頂点ほどだしてみた。結構はみ出てる気はする。

頂点座標と頂点カラーだけ渡して、テクスチャ1枚マップ。

シミュレータでは FPS 低いけど、実機(iPad miniiPod Touch 5)だと 900 FPS ぐらいでてる。

Zバッファに書き込まないようにするのを忘れずに。

 

f:id:yhy:20130825005038p:plain