08/02/28 00:21:43 /rY3e8Lf
360の実機で動かすと、描画命令の発行が重すぎてせっかくの高性能GPUが完全に遊んでしまうのが勿体なさすぎです。
15000ポリゴンのモデルを80くらい個出しても60fpsで動くのに、テクスチャ付きのただの6ポリゴンの箱を100個くらい出すだけで処理落ちしてしまうのは辛い・・・。
できることならコンソール機のプログラミングでの常套手段である、GPUへの描画命令発行を別スレッドで動かす仕組みをライブラリ内で隠蔽できないでしょうか。
発行した描画命令を内部でキャッシングしておいて次のフレームの頭で別スレッド動作させる、みたいな感じで。
描画命令発行を別スレッドに追い出すことでゲームロジックに使えるCPU時間が圧倒的に増えるでしょうから、相対的にCPU性能の低い360で動かすにはぜひとも欲しい機能です。
もし描画のマルチスレッド化が難しいのであれば、せめて描画命令の発行自体がもう少し軽くなるとありがたいです。
ちゃんと計測したわけではないので単なる憶測で申し訳ないですが、たとえ同じシェーダー・同じパラメータであってもすべての命令がキャッシングされずに無条件に全て送り直されているかのような挙動に見え、
ちょっと発行バッチ数が増えただけで簡単に処理落ちが発生するのでゲームが作りにくくて困ります。
高性能なはずのXBOX360でのゲームプログラミングなのに、『21世紀にもなって「ショットを撃つと処理落ちするから発射数を半分にして威力を2倍にするか……」』みたいな調整が必要になってしまうのはいかがなものかと。
ライブラリレベルでの高速化はみんなが恩恵を受けられるので、もし何かチューニングの余地があるのであれば、ぜひ考慮していただきたいです。