デアゴスティーニ商法作業管理第2弾 2日目

今回は インスタンシング(drawElementsInstancedANGLEのAPI)を利用してテクスチャ付きの立方体を描画した場合、どのくらいメモリ使用量が削減出来るかを確認しました。

比較対象は、昨日の GL_TRIANGLE_STRIP の描画データです。

結果は次の通りです。

単位:バイト
立方体の数GL_TRIANGLE_STRIPインスタンシング
1個336352 (104.76%)
10個3,432496 (14.45%)
100個34,3921,936 (5.63%)

インスタンシングの場合、ベースの立方体のデータ336バイト(GL_TRIANGLE_STRIPで1個の立方体を描画した場合と同じデータ量)に加えて、1つの立方体に付き位置情報(x, y, z)3 * 4バイトと種別(今回は画像の通りテクスチャを変化させました。4バイトの型を利用しました) を指定することで、ベースデータを流用してメモリ使用量を抑えつつ、同じ形をいっぱい描画することが可能です。

1つの立方体の場合は336 + 12 + 4 = 352バイト、10個の場合は336 + (12 + 4) * 10 = 496バイト、100個の場合は336 + (12 + 4) * 100 =1936バイトとなります。

比べるのも馬鹿らしくなるくらいメモリ使用量が減りました。

(♡ >ω< ♡)

コメントを残す

メールアドレスが公開されることはありません。