プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
ビューポート分割01
試行中のメイン画面
ビューポートを分割すると、描画処理の負荷が倍増するようだ。対策は可能なのか?



◎サンプル解析

ビューポート分割のサンプルを作成する予定でしたが、公式サンプル非公式サンプルがあったので、それらを解析すれば十分ですね。

ビューポートを分割設定すれば自動的に表示されると思っていたのですが、ビューポート毎にそれぞれ描画する必要があるそうです。ということは、描画負荷が2倍近くになるってこと?今でも30fps切ってるのに、とても無理っぽいなぁ…。

しかし、ビューポート分割が出来ないと、上級ルールや履歴画面の構成が思惑通りに出来ません。とりあえず、試しに実装して様子を見ましょう。重すぎて駄目なら、画面構成案を練り直さないといけません。



◎ビューポート実装テスト

試しにビューポート分割してみました。

ビューポート分割01

やはり重くなりましたね。

FPS :25~30fps → 15~20fps
Draw:16~20ms → 35~40ms

今回はDrawのコードを単純に2回実行したので、工夫すればもう少し早くできます。例えば、‘索敵範囲内のステンシル領域を塗り潰す処理’を2回行う必要はありません。

しかし最大のネックは地形描画です。1度の描画に5.5ms要しますが、これが索敵範囲の描き分けで2回、ビューポート分割で計4回になると、地形描画だけで22ms要します。つまり、地形描画が描画負荷全体の半分以上を占めているわけです。

テスト結果:
 地形描画のパフォーマンスを上げない限り、
 ビューポート分割は重すぎて実装できません。



◎地形モデル頂点削減テスト

地形モデルは、メタセコイアの地形生成機能で自動生成したものをXNAの通常機能で描画しています。パフォーマンスを改善することは可能でしょうか?

地形モデル頂点数は現在

65 × 65 - 1 = 4224

となっていますが、試しにメタセコイアの頂点削減機能で頂点数を1/8(528)に減らしたモデルに差し替えてみました。

地形モデルの頂点削減テスト01   地形モデルの頂点削減テスト02

地形描画が0.5msを切りましたよ!
まさか十倍も早くなるとは思いませんでした(^^;

ビューポート分割表示で30fps(左図)、非分割で60fps出ました!(右図)
60fps見たのは2年ぶりぐらいかも(爆)


もちろん、このままでは地形テクスチャがずれたりユニットが地面に埋もれたりで使い物になりません。山の形が山脈になってるしw

でも地形の頂点数を減らすだけでここまで効果があるなら、できる所までチャレンジしたいですね!^^



◎次回予告

というわけで、次回は地形の頂点数を減らす方法を検討します。

ビューポート分割の採否は、頂点数をどこまで減らせるかの結果次第ですね。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

1・描画コマンドそのものの負荷(XNA固有)
2・頂点シェーダの負荷
3・ピクセルシェーダの負荷

のうち、3はビューポートを分割しても描画ピクセル数が変わらないので同じと考えてよさそうです。1はインスタンシングなどだいぶ最適化されていましたから、2の頂点数を減らすのが効果的だったということですか。

そう言えば、そちらの開発環境は頂点シェーダだけ重いのではなかったでしたっけ?

おはようございます~

開発環境:
 ご指摘の通り、頂点シェーダはCPUでエミュレートされているので重いです。このPCでまともに動けば他のPCでも大丈夫と思いますが、開発効率は悪いので、今年はそろそろ買い替えるかもしれません。

頂点数:
 ユニット関連はインスタンシング等で最適化していますが、地形はメタセコの地形生成機能で作成したモデルをXNAの標準機能で描画しています。これが10倍も速くなった理由が先ほど判明しましたので、次回ブログで詳しく記述します。

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。