プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
FRAPS
FRAPS
キャプチャーソフトとして有名だが、フレームレートの計測も可能。無料体験版はキャプチャ機能が制限される。



◎目的

自作地形は、当初目指した機能を一通り実装しました。後はひたすらパターンテクスチャを描き込んでいけば、いくらでも綺麗にできます。

しかし、描画速度が非常に遅く、このままではゲームになりません。遅延原因を特定し、対策を講じて描画速度を向上させる必要があります。



◎計測ツール

描画速度と言えば、フレームレート(単位はfps、1秒間に何回画面を書き換えることができるかを表す)が基準となりますので、先にfps計測ツールを導入しておくべきでしょう。検索すると、冒頭のFRAPSが一番メジャーっぽいので、こちらを導入しました。

しかしfps関連の設定を行い実行しても、フレームレート数値は画面上に表示されないし、ログも出力されません。おかしいな、無料体験版でもfps計測は可能なはずだけど…。

しばらく設定変更、画面解像度変更、市販ゲーム起動などを繰り返したら、ログが出力され、fpsも画面表示されるようになりました。何だったんだ、一体?まぁ動いたからいいや。

で、現状のプログラムを計測したら、0~1fpsでした。(爆)
ちなみに、シヴィライゼーション4は約20fps、コーエー三国志10は2Dのためか計測できませんでした。

当面の目標は20fpsですね。今後のことを考えると、30fps以上にしたいです。



◎計測計画

どの要素がどのくらい負担になっているのか計測し、一番ネックとなっている要因を特定しましょう。

・テクスチャの模様の複雑さ
 →現状(ノーマルパターンテクスチャ)
 →パターンテクスチャの模様を全部赤色にする
 →パターンテクスチャの模様を全部単色(色違い)にする

・表示モデル数
 →現状(地形モデルを全て統合)
 →地表と地形種別を分割
 →地形種別毎に分割

・表示プリミティブ数
 →現状
 →表示プリミティブ数を半分に減らす

・テクスチャの解像度
 →現状(512×512)
 →256×256
 →128×128



◎計測開始

まず、テクスチャの模様の複雑さが、速度にどの程度影響するかを計測しましょう。現状(ノーマルパターンテクスチャ)と、全て赤色に差し替えた場合でそれぞれ比較します。

飛行テストプログラムを改修し、A地点からB地点まで1分間飛行させてフレームレートを計測しました。

・現状(ノーマルパターンテクスチャ):0~1
・全て赤色テクスチャに差し替え:0~1

あれ?全て赤色にしても0~1ですか?見た目は少し早くなったようでしたが、ドングリの背比べってことですね…。
これだと比較する意味がないので、ユニットや城など地形以外のモデルを全て削除してやり直します。

う…それでも2以上にならない。こーなったら、地形を分割してそれぞれ計測してみましょう。

地表のみテクスチャ赤   地形種別のみテクスチャ赤
赤テクスチャ地表モデル(左図)と地形種別モデル(右図)

・赤テクスチャ地表モデル:30
・赤テクスチャ地形種別モデル:1

あら?地表のみが30で、地形種別のみが1ですか?面積は地形種別のみの方が小さいのに…。

原因を調べてみましょう。



◎遅い原因判明?

地表モデルと地形種別モデルを比較調査したら、遅い原因らしきものが掴めてきました。

・地表モデル
 →フレームレート:30
 →描画プリミティブ数:84652
 →DrawIndexedPrimitives呼び出し回数:1回

・地形種別モデル
 →フレームレート:1
 →描画プリミティブ数:42356
 →DrawIndexedPrimitives呼び出し回数:446回

テクスチャは全部真赤で、プリミティブ数(=ポリゴン数)は地表モデルの方が多い。にもかかわらず、地形種別モデルの方が重いのは、DrawIndexedPrimitivesの呼び出し回数が多いからでしょう。

恐らく「何百や何千のマテリアルを持つ3Dモデルなど想定していない」ということだと思います。



◎確認

前述の推測が正しいか確認するために、カラーマップを置換して、速度差が生じるか確認しました。

カラーマップ青で置換

 →フレームレート:15
 →描画プリミティブ数:42356
 →DrawIndexedPrimitives呼び出し回数:15回

間違いありませんね。同一形状&同一テクスチャですが、DrawIndexedPrimitives呼び出し回数を減らすと、フレームレートが向上しました。

遅延原因が特定できたので、計測作業はここで中止します。他の計測項目についても興味はありますが、今は遅延対策が優先ですからね。



◎次回予告

遅延原因が意外に早く特定できたのは良いのですが、対策案を考えるのはちょっと難しそうですね。でも、何とかしないと、今のままでは、ゲームになりません。

というわけで、次回は遅延対策案を検討します。

スポンサーサイト

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

コメント

こんにちは

 どうもこんにちは。鳳雛です。
最近なかなか余裕が取れず、前回の修正版などが送れずにいまして、申し訳ありません。
早く送るようにします。

>Fraps
僕も試しに使ったことありますけど、制限付きはあまり使えないですね・・・。録画には別のフリーソフトを使ったりします。

こんばんは~

鳳雛さんこんばんは~

>前回の修正版

どれか1枚仕上がったら、御紹介を兼ねてブログで正式にアナウンスしようと思っていますので、まずは前回の修正版よろしくお願い致します。


>録画には別のフリーソフトを使ったりします。

私はこれまで「劇場版ディスプレイキャプチャーあれ」というフリーソフトと「Windowsムービーメーカー」を併用してきました。でも、充分満足しているわけではありません。

録画ソフトについては、Karu_gamoさんが昨年末に何度か記事を書いているので、いずれ機会があったら試すつもりです。

コメントの投稿


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

トラックバック


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



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