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 mini と iPod Touch 5)だと 900 FPS ぐらいでてる。
Zバッファに書き込まないようにするのを忘れずに。