Void Destroyer 2 – FPS をブーストする方法 (実用的なハックと微調整)
これは、特にローエンド システムで Void Destroyer 2 のパフォーマンスを改善するために私が思いついたハックのコレクションです。
パフォーマンスのハックと微調整
はじめに
しばらくローエンドのラップトップを使用していたときにこれを発見しましたが、特に 4k 解像度で実行している場合、一部の調整はハイエンド GPU のパフォーマンスにも影響を与える可能性があります。
始める前に:これらのハックがあなたのシステム/GPU で機能するとは約束できません。さらに、これらのいくつかにはゲームファイルのいじりが含まれており、ゲームが起動しないようにインストールを台無しにする可能性があります.これが発生した場合は、Steam 内から「プロパティ -> ローカル ファイル -> ゲーム ファイルの整合性を確認」コマンドを使用して修正できます (または最後の手段として、アンインストールしてから再インストールします)。
これはあなたのセーブゲームには何の影響もありません (何らかの理由で、ゲームファイルをブラウズしているときに手動で削除しない限り... しかし、なぜそんなことをするのでしょうか?!)
最初にオプションを調整
これらの微調整を使用するときは、実際のパフォーマンスを追跡して、それらが役立っているかどうかを判断できるようにする必要があります。 Ctrl+Alt+F8 を押すと、ゲーム内で使用できるフレームレート カウンターがあります。実際にゲームに入って船を飛ばしてください。メイン メニューや宇宙ステーション内で表示されるフレーム レートのパフォーマンスは、ゲーム内で何が得られるかを示すものではありません。
ゲームファイルをいじる前に、明らかなことをして基本設定を調整したことを確認してください。解像度を下げます。全画面モードとウィンドウモードを試して、違いがあるかどうかを確認してください。トゥーン シェーディングとエッジ ハイライト、FSAA、SSAO をオフにします。パフォーマンスに関連すると思われるその他のゲーム オプションをオフにする (特に、ゲームプレイ – 一般の下の [スペース クラウド (ノイズ)] オプションをオフにする)。
ビデオ カードに設定プログラム (Nvidia 設定など) がある場合は、そこに適用されている設定 (設定プログラムにオプションがある場合は、グローバル設定と個々のゲーム プロファイルの両方) を確認し、最適なパフォーマンス設定になっていることを確認します。 、ゲーム設定をオーバーライドするように設定されていません (アンチエイリアシングを強制的にオンにするなど)。
代替スカイボックスを使用する
最近のパッチでデフォルトのスカイボックスのパフォーマンスが修正されたため、これがパフォーマンスに役立たなくなる可能性があります。ただし、念のためお気軽に試してみてください。おそらく、まれに役立つケースがいくつかあります。
これにより、最も強力な GPU を除くすべての GPU でパフォーマンスが向上する可能性があります。私の適度に強力な (少し古い) GPU でも、これにより 20fps と 50fps の差が生じました。
宇宙を飛んでいるときに見えるデフォルトの「スカイボックス」(宇宙と星の背景) は、GPU フラグメント シェーダー プログラムを使用してフラクタル イメージを計算して描画されます。非常にきれいに見えますが、多くの計算が必要なため、高解像度で実行している場合は、古いまたは低スペックのグラフィックス チップ、またはハイエンド カードでさえもパフォーマンスが低下します。
別の PC からセーブを続行している場合、またはゲーム パフォーマンスがイントロをプレイしてステーションに到達するのに十分であるが、それがもっと良くなることを本当に望んでいる場合 (または、プレイする画面の解像度を上げることができれば) )、ステーションに行ってみて、「その他のアップグレード」メニューで、見た目が気に入ったスカイボックス パックの 1 つを購入してください。
エッジ ハイライト シェーダーを完全に削除
ゲーム オプション メニューからほとんどのエッジ ハイライトをオフにすることができますが、ターゲット選択ディスプレイには、HUD と戦術ビューの右下ボックスの両方で、常にアクティブなエッジ ハイライトが青色で表示されます。一部のローエンド カードでは、これによりパフォーマンスが大幅に低下する可能性があります (たとえば、Intel HD 515 で見られます)。ただし、これは、より高性能なビデオ カードでは顕著な違いをもたらさないようです (あまりテストしていませんが、おそらくほとんどの Nvidia および AMD カードではそうです)。
警告:これには、ゲーム ファイルのいじりが含まれます。注意してください。問題が発生した場合は、「ゲームのインストールを確認する」オプションを使用して通常の状態に復元してください。
軽度の警告:エッジの強調表示を無効にすると、ターゲットの表示が他の船と同じように見えるため、HUD がより混乱する可能性があります。
<オール>
フラクタル スカイボックス シェーダーをグラデーションに置き換える
Chaosavy (ゲームの開発者) は、デフォルトのスカイボックスのパフォーマンスを修正するパッチをリリースしました。ラップトップではまだテストしていません。 2a と 2b は現在必要ない可能性があります。ただし、シェーダーを交換して何が起こるかを試したい人のために、参照用にガイドに残しておきます。
原文の続き:
前述のように、デフォルトの空間背景は、GPU のシェーダー プログラムを使用してリアルタイムで生成されます。このハックは、そのシェーダーを、黒い地平線のフェードから上下の色への単純なグラデーションを生成する別のシェーダーに置き換えます。新しいゲームを始めようとしていて、パフォーマンスが原因でプレイできない場合は、このハックが役立つかもしれません。インテル HD515 ラップトップで 1 秒あたり 1 フレームから 30 ~ 40 fps まで向上させることができました。
注:これらのシェーダーの 1 つは、「スペース クラウド (ノイズ)」ゲームプレイ オプションにも使用されます。このハックの後、「宇宙の雲」は、ビューを傾けるほど濃くなるもやに置き換えられます。そのため、これを使用するときは、このオプションをオフにすることをお勧めします。
グラデーション シェーダー ファイルの作成
<オール>
spacescape_noise_hlsl_fbm_fp.hlsl
struct PS_INPUT {float3 vertexPos :TEXCOORD;};
float3 innerColor;
float3 outerColor;
float ditherAmt;
float gain;
float hdrMultiplier;
float hdrPowerAmt;
float 空隙率;
float noiseScale;
float powerAmt;
float shelfAmt;
int オクターブ;
float4 main(PS_INPUT 入力) :COLOR
{
float foo =ditherAmt + gain + hdrMultiplier + hdrPowerAmt + lacunarity + noiseScale + powerAmt + shelfAmt + octaves;
foo /=131072;
float3 v =normalize(input.vertexPos);
return float4(lerp(outerColor, innerColor, v.y + foo) * hdrMultiplier, 1.0);
}
spacescape_noise_hlsl_ridged_fp.hlsl
struct PS_INPUT {float3 vertexPos :TEXCOORD;};
float3 innerColor;
float3 outerColor;
float ditherAmt;
float gain;
float hdrMultiplier;
float hdrPowerAmt;
float 空隙率;
float NoiseScale;
float オフセット;
float powerAmt;
float shelfAmt;
int オクターブ;
float4 main(PS_INPUT 入力) :COLOR
{
float foo =ditherAmt + gain + hdrMultiplier + hdrPowerAmt + lacunarity + noiseScale + offset + powerAmt + shelfAmt + octaves;
foo /=131072;
float3 v =normalize(input.vertexPos);
return float4(lerp(outerColor, innerColor, -v.y + foo) * hdrMultiplier, 1.0);
}
元のシェーダーを無効にする
これがバグかどうかはわかりませんが、元のシェーダー ファイルが見つからない限り、ゲームは「Mod」ディレクトリから新しいシェーダーを読み取りません。これらのファイルは、MediamaterialsPrograms の下のゲームのインストール ディレクトリにあります。 (注:これは、新しいシェーダーを配置したディレクトリとほぼ同じですが、先頭に「Mod」はありません。)このディレクトリにある「spacescape_noise_hlsl_…」ファイルを探します。
spacescape_noise_… ファイルは 4 つになりますが、無効にする必要があるのは、「spacescape_noise_hlsl_fbm_fp.hlsl」と「spacescape_noise_hlsl_ridged_fp.hlsl」の 2 つだけです。名前の先頭に「_d_」を追加して名前を変更することをお勧めします (「無効」であることを示します)。これにより、それらを簡単に見つけて、後で必要に応じて名前を変更することができます。
最後に、メインのゲーム インストール ディレクトリに移動し、「VD2Shader.cache」という名前のファイルを探します。これは、ゲーム用にコンパイルされたシェーダーのキャッシュです。追加したばかりの新しいバージョンを使用してゲームを強制的に再コンパイルするには、それを削除する必要があります。
ゲームを起動します。すべてのシェーダーを再コンパイルするため、通常よりも少し時間がかかります。デフォルトの空の背景が単純なグラデーションで、地平線が黒で、フレーム レートが大幅に改善されていることがわかります!
Skybox シェーダーのループ数を減らす
これは微調整 2a のバリエーションであり、私のアバターでそれを知っているユーザー Otaku によるコメントで提案されています。シェーダーをグラデーションに置き換える代わりに、シェーダーを微調整して計算を何度も繰り返さないようにし、結果としてフレームレートが向上します。背景は単純なグラデーションよりもきれいになりますが、元のバージョンよりもはるかにシンプルです – 以下に例を示します:
このようにするには、4a と同じ手順に従いますが、手順 2 では、リストされた内容で新しいファイルを作成する代わりに、
次に、それぞれをテキスト エディターで開き (たとえば、メモ帳にドラッグ アンド ドロップできます)、変更する次の行を探します。
spacescape_noise_hlsl_fbm_fp.hlsl
これを変更
float noiseSum =fbmNoise(noiseScale * v, オクターブ, 空隙率, ゲイン);
// 途方もない量のディザリング ノイズを追加します
noiseSum +=fbmNoise(v * 10000.0, 2, 空隙率, ゲイン) * ditherAmt;
これに
float noiseSum =fbmNoise(noiseScale * v, 2, lacunarity, gain) + オクターブ;
// 途方もない量のディザリング ノイズを追加します
noiseSum +=fbmNoise(v * 10000.0, 2, 空隙率, ゲイン) * ditherAmt – オクターブ;
spacescape_noise_hlsl_ridged_fp
これを変更
float noiseSum =ridgedFbmNoise(noiseScale * v, octaves, lacunarity, gain, offset);
// 途方もない量のディザリング ノイズを追加します
NoiseSum +=ridgedFbmNoise(v * 10000.0、オクターブ、空隙率、ゲイン、オフセット) * ditherAmt;
これに
float noiseSum =ridgedFbmNoise(noiseScale * v, 2, 空隙率, ゲイン, オフセット) + オクターブ;
// 途方もない量のディザリング ノイズを追加します
NoiseSum +=ridgedFbmNoise(v * 10000.0, 2, 空隙率, ゲイン, オフセット) * ditherAmt – オクターブ;
次に、4a の手順を続行して、元のシェーダーを無効にし、VD2shader.cache ファイルを削除して、新しいシェーダーが使用されるようにします。