2009年10月4日日曜日

頂点バッファ

DXPの次のバージョンでは内部的に頂点バッファが使われるようになります。

メリット

描画命令の数を減らせる

デメリット

頂点バッファはGUリストとは別に用意しなきゃいけない

頂点データが増える(四角形なら4つの頂点だったのが6つになる。Slice数がnなら2*n+2が6*nになる。つまり、nが増えるとデータ量が3倍に収束する)

というわけで、とりあえず2000個の三角形を今までどおり描画するのと6000個の三角形をまとめて描画するので比較してみました

結果(5回の平均)

頂点バッファなし4039μs

頂点バッファあり3056μs

あ、頂点バッファ有りのほうが30%程度速い…

rtcの誤差は50μs程度なので1000μsも違えば差が明らかに存在するといえるでしょう

最悪の場合でも30%程度高速なら実装する価値は充分ですw

ちなみに、最高の場合つまり頂点数1.5倍の時の速度はほとんど倍速。100%増しとなります。

頂点バッファの実装で30~100%の高速化が見込めるので採用が決定しました~

余談

さっきの式をちょっと考えると、nが小さいほど速度向上が見込めることになります。

テクスチャの転送時間も考えると、テクスチャは小さければ小さいほうがよさそうですねw

0 件のコメント:

コメントを投稿