プログラミング ジオメトリインスタンシング⑫
あいさつ
どうも、はかせです。
前回インスタンシングがそれとなくできました。
今回は前回のおかしかった点を修正し、
インスタンシング有り無しでのパフォーマンスを見ていきたいと思います。
前回のおかしかった点
詳細は前回の記事をご覧ください。
hakase0274.hatenablog.com
簡単に言うと四角形が欠けていたということでした。
これは単純にパイプライン解釈がTRIANGLELISTになっていたからで
TRIANGLESTRIPにしたら治りました。
インスタンシングの力を見てみよう
さておかしかった点も修正したので
インスタンシングを使えばどのくらいパフォーマンスに差が出るか見てみましょう。
今回の比較は極めて脳筋思考で、
2万の四角形を描画したときのFPSをみてみます。
まずはインスタンシング無し
およそ30~40FPSですね。
まぁ今まで通りの実装なんでこんなもんでしょう。
では次にインスタンシング有り
ほぼ58FPS前後をキープしています。
インスタンシング強い・・・!
あとがき
今回はインスタンシングのパフォーマンステストでした。
単純にインスタンシングするだけで20ぐらいFPSが上がりましたね。
今回の実装では行列の計算などもCPUでやっているので
この辺りをGPUに移動すればさらに早くなるでしょうね。
さらにインダイレクト描画という今回やったインスタンシングの
強化版みたいなものもあるらしいですね。
そちらのほうも機を見てやってみようと思います。
それでは今回はこの辺でノシ
今回作ったものはgithubに上げました
github.com