朝飯中隊駐機場

SRF共用による軽量化

Oranleed氏のBBSにて、SRFを共用化することによる軽量化の効果について書き込みがあった。一般的にはSRFを共用化すると、DNMのファイルサイズが小さくなるとして知られているけれども、実際に表示する際の負荷についてはあまり論ぜられてこなかったと思う。そこで、簡単ながらテストを行ってみることにした。

まず、メタセコイアの曲面生成機能を使って、極めて頂点、面共に膨大なテスト用SRFを生成する。生成したSRFファイルは65536頂点、65536ポリゴンで7.37MBになった。これを

doughnut1.dnm
単一のPCKノードに4つのSRFノード
doughnut2.dnm
同じ内容の4つのPCKノードと4つのSRFノード

という二つのDNMに仕立て、デフォルトのA-4のDNM指定を書き換えて、使用メモリ量を調べてみることにした。なお、テストした環境は次の通り。

これにより、次のような結果が得られた。

ファイル 読み込み時の最大使用メモリ フライト時の使用メモリ
doughnut1.dnm 176612 KB 85588 KB
doughnut2.dnm 292468 KB 78012 KB

この結果から、フライト中、つまり画面描写時のメモリ使用量は、実際に描画される頂点/ポリゴン数に依存し、DNMの構造には依存しないということが予想される。また、読み込み時にはファイルサイズ応じてメモリを消費するが、データがメモリ上に展開された時点で解放されるようになっているようだ。

このことから、SRFを共用することによるメリットは、主に読み込み時のメモリ使用量を削減し、それにより読み込み時の処理速度低下を低減できるという点にあるといえる。逆に言えば、実際に表示する頂点/ポリゴン数が多ければ、ファイルサイズが小さくても表示時の負荷は減らない、ということになる。

以前Kzs氏も指摘されていたことだが、この結果からも、座標やベクトルの小数点以下の精度を落としたり、空白を削除するなどしてファイルサイズを小さくしてもメモリ使用量や表示負荷は変わらないということが予測出来る。

読み込み時の負荷を低減する為にはファイルサイズを小さくすることも重要だが、軽快な表示を求めるのであれば、SRFの共用や精度を抑えるといった小手先の対策ではなく、モデルデータ自体の頂点/ポリゴン数を抑えるほか無いようだ。

投稿者: F22愛好会

コメント

表のフライト時の使用メモリーが2の方が大きいようになっていますが、ちょっと理解できません。ところで、おっしゃっている意味からするとsrf共用等を実行してサイズを押さえると、多数の機体を同時に読み込む(エンデゥランスモード)などの時に、操作不能に陥って失速、墜落するような場合には有効と言うことでしょうか?それと、cockpitがやたらと細かく作ってある機体は自機として飛行中にサイズの割に重たく感じるのは、そのときの表示ポリゴンが多いと言うことなのでしょうか?

投稿者: oranleed

表については数値を逆に掲載していました。申し訳ありません。訂正しておきました。フライト時のメモリ使用量の差はほとんど誤差の範囲と考えていいと思います。

DNMのファイルサイズを小さくすると、少なくとも読み込み時の処理量は減るはずです。恐らく、一度DNMをそのままメモリ上に取り込み(1)、実際にフライト時の処理に使用するメモリ領域へ、頂点や面の構造を構成しつつ展開(2)していくような処理を行っているはずです。 ですので、パーツの共用等でDNMサイズを削減すると、(1)と(2)の両方で処理量が少なくなるのではないかと予想できます。

また、パーツの共用時は恐らくメモリ上に構成した状態でパーツを複製しているようで、表示するポリゴン数が同じであっても、同じパーツをDNM中に複数用意するより読み込みが速く、またメモリ使用量も少なくなっているのではないかと思います。 エンデュランスモードで処理が停止するのは恐らくDNM読み込みの負荷が原因だと思いますので、DNMの軽量化である程度は改善出来るのではないかと思います。

コックピットが細かいデータが重たく感じるのはまさにその通りだと思います。 DNM自体にコックピットが作り込んである最近のデータだと、純粋に表示ポリゴン数の多さによりますが、cockpit.srfを使う様なデータだと、さらに別の要因が考えられます。 fsmainで自機として飛んでいるときしかcockpit.srfは表示されませんが、逆に言えば、その状況だと機体データ+コックピットデータが自機の重さになります。(DNMが200Kでもcockpit.srfが100Kであれば300KB相当のデータ量) その結果、DNMのデータ量はそれほどでもないのに、飛ばすとやたら重く感じるようになっているのかもしれません。

投稿者: F22愛好会
↑このページのトップ ←技術研究に戻る ←ホームページに戻る