概要
今回はチューニングについて記載する。
Prepar3Dで設定をチューニングした結果、外から見た結果に基づいた想定での記述となる。FSX及びPrepar3Dの内部の検証を行っているが、実際のチューニングは「FSX/P3D環境のチューニング その3」を参照すること。本記事の大部分はPrepar3D v2の頃のもので現状と合わない部分もあるが、考え方はv3・v4でも有効だ。
※初版は2014年4月6日となる。
※2017年6月3日 Prepar3D v4.0以降について記載。
CPU性能の結論
FSX及びPrepar3Dv2.0~v3.1までは簡単にまとめると結論は下記のようになる。
- CPUは単一コアの性能が高いものが有利。
- その上でコアが多いと、多少の性能向上は見込める。
例えで話すと簡単だ。
- 1000kmの距離の道がある。
- そこに1車線しか走れない道路が800kmまである。
- ラスト200kmは4車線。
- ラスト200kmで荷物を分散して4台の車で運へるが、最初の800kmで速く走れる方が全体への影響は大きい。
- ただし最後の200kmで複数台で運ぶのは無駄ではない。
Prepar3Dv2以降はGPUも木々の計算として使用され、そちらも優位になる。
Prepar3D v2.2以降の変化
ここまではv2.1までの特徴を書いたが、Prepar3D v2.2以降では、負荷に対する対策となる下記の機能が実装された。
1. Autogenのマルチスレッド化
一部マルチスレッド化されているようだ。
重いAutogenの処理であるが、当然のことながら建物と木のAutogen設定をオフにした状態が一番負荷が少ない。
また、チューニングの限界点もそこだ。比較ポイントとしては、オフの状態も確認すると良いだろう。
2. 樹木のLOD(Level of Detail)化とGPGPUの活用
距離に応じて、木のポリゴン数を削減する機能である。
Prepar3D開発者のブログによると、下記の条件のテストでメモリ使用量が従来600MB消費していたものが、35MBになったとのことだ。
- 120万本の木のデータをメモリに配置
- 10万本のデータを表示
- 2500m-9500mの木をLOD化
Autogenのように同一形状もしくはパターン化されたものを多く配置する場合は、まさにGPGPUの使いどころであるが、それが寄与しているものと考えられる。
1.と同様にあくまで、オフの時が最大性能になるので注意。期待値はそこまでだ。
3. 雲の影の反映距離
タイトルの通り。遠くの地面に雲の影を投影しても見えないことが多いし高い高度を飛んでいる時も同様だ。
v2.Xからこれらが設定可能になった。
1. 2.に関するテストとなるが、Autogenのオブジェクトが多いアドオンとして、ftx “orbx Global Base”と”orbx EU England”を筆者は所有している。
Autogenを最高設定にして、ロンドン市街を飛行した動画がこちらだ。
低い高度を飛行し細かい各ビルが多数描画されているが、録画しながらでもこのパフォーマンスがでている。
残念なことにビルが多すぎるせいかメモリが足りなくなりダウンしたが描画性能は十分だ。本動画はv2.Xの頃のものとなる。
※メモリ問題と離着陸時のFPSの問題のため、通常は実際の設定は下から1~2番目に設定している。
Prepar3D v4.0以降(64bit版)の変化
FSX(ESP)以降、少しずつの改善ではあったが、2017年5月30日にリリースされた同バージョンから大きく改善された。
シングルスレッド(シングルコア)に依存していたFSX~Prepar3D v3.4であったが、4.0になりマルチコアの利用が促進された。
結果、本動画のように大きな町の上を飛行すると、ハイパースレッディングも有効活用し、4コア(HT換算で8コア)どれもがCPU利用率が上がるようになっている。
これは、整数演算、浮動小数演算がバランスよく複数スレッドで利用されているということだ。
オフィシャルチューニング情報
公式なPrepar3D.cfgのチューニング情報が公開されている。
Prepar3Dでのチューニングのコツ
FSXと違いPrepar3D v2.xで飛行中の描画設定変更が可能だ。
一旦ポーズをして、設定を変えながらFPSを表示してチューニングすることが可能だ。
※FPSは、shift+zで表示を切り替える事が可能。
機体データ
機体データの中には、自身で負荷をさげたり、負荷が高い時にスムーズに動かす仕組みが実装されているものがある。
例えば、Majestic SoftwareのQ400だ。
また資料を見ると、機体の処理がマルチスレッド化していることが読み取れる。
Q400については、別の記事を参照して頂きたい。
SimConnectを利用したアドオンの負荷
AESやFSUIPC、CPFlight等SimConnectを利用してFSX/Prepar3Dと連携するアドオンが多数ある。
これらのアドオンの負荷はどのように影響するのだろうか?
これをPrepar3D v2.2でテストしてみた。
まずは通常の状態。ヒースロー(UK2000のアドオン)の27R上のF22だ。
動かしてみた結果25FPS前後だ。
ここでテスト用に作成したsimConnectアドオンを利用する。
1秒間に1回呼び出される箇所にSleepで1秒(1000ミリ秒)待たせるようにした。
それ以外の処理部は小さいので実質0FPSの影響度だ。もしSimConnectアドオンの実行処理時間がシミュレータの処理時間軸への積み上げになる場合はPrepar3Dが1FPSになるはずだ。なぜならアドオンの処理に1秒間待たされ1回しか描画できないからだ。
このアドオンを組み込んだPerpar3Dを起動する。するとFPSは高いままだ。FPSへの影響が出ていないことが分かる。
本アドオンは、訓練等でエンジン出火をさせるためのものなので機外視点で見ると、出火していることが分かる。
アドオンは正しく動作しているということだ。
結論から言うと、SimConnectを利用するアドオンはPrepar3Dと並行して稼働する(マルチスレッド)ことができるため、直接的にはPrepar3Dへ負荷を与えない場合もある。全てはアドオン次第ということだ。
※機体データ等側がこれらのデータを参照・待ち受けしているようなアドオンの場合は、影響はでるだろう。
※アドオン自体もCPUやメモリを利用するので、間接的には当然影響する。
レース・シミュレータのrFactor2は似たような仕組みのプラグインがFPSへ直接的に影響を与えたのだが、こちらでは予想外の結果となった。
なおFSXでの場合はテストしていないため不明だ。
その他
CPU構成を変更した際のチェックポイントは、記事「Core i7 7700Kとフライトシミュレータ」を参考にしてみるといいだろう。
ピンバック: FSX/P3D環境のチューニング その3 | Simulator Laboratory "SEALS"
はじめまして。いつも楽しく拝見させいただいております。FS9から久々となりますが
Prepar3d のPCを再度に構築させること考えております。
CPUで悩んでいるのですが、現在の最新CPUにおいて下記のCPUをすべきか考えていますが
もしご自身でしたらどちらを選定されますでしょうか。よろしければご意見をいただけると幸いです。
今後、VR、最新アドオンなど使用したく比較的長く使用できればと考えておりますが、
やはり周波数の高い3.6GHzを選択した方が差がありそうでしょうか。
・Intel Core i7-6950X 10コア 3.0GHz
・Intel Core i7-6850X 6コア 3.6GHz
久々に本腰を入れようと考えるようになり、ありがとうございます。
上段はミス送信をしてしまい、お詫び致します。
あくまで私の場合ですが、コストの問題もあるので7770kあたりだと思います。
6950はさすがに高すぎるので、それならばビデオカードを買うサイクルを1年早くします。
ありがとうございます。大変参考になりました。クロックは高めなものを狙い、たしかに6950は高すぎです。ビデオカードを最新にしていくことも重要なのですね。いつかP3dも完全なマルチスレッド化の時代がくるのか勝手ながら期待しています。