UDN
Search public documentation:
GPUProfilingHomeJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 ホーム > パフォーマンス、プロファイリング、最適化 > GPU のパフォーマンスとプロファイリング
GPU のパフォーマンスとプロファイリング
概要
ピクセルシェーディング
オーバードロー
複数の透過 (translucent) マテリアルをオーバーラップ (オーバードロー) することによって、GPU のパフォーマンスに大きな問題を起こす可能性があります。通常は、透過マテリアルが占めるスクリーンスペースの量を常に制限する必要があります。複数の透過マテリアルがオーバーラップしている場合は特にそうです。 この分野について寄与度が高いのは、パーティクルシステムです。通常、パーティクルのために使用されるマテリアルは透過性があるため、1 つのパーティクルシステム内に多数のパーティクルが描画されると、オーバードローの可能性が極めて大きくなります。以下では、パーティクルによるオーバードローを制限するためのこつについて説明します。- 複雑なパーティクルの数を少なくします - パーティクルシステム内に少数の複雑なパーティクルがある方が、多数の単純なパーティクルがあるよりもパフォーマンス的には優れています。多数のパーティクルによって作られたエフェクトを、マテリアル内で作ることができ、単一のパーティクルに適用できるというのは好ましいことです。
- スクリーンスペースの適用範囲を制限します - パーティクル エフェクトがスクリーン上で占有するスペースの量を制限するならば、そのエフェクトによるオーバードローの影響を制限することができます。
- エフェクトのオーバーラップを制限します - 複数のエフェクトをオーバーラップさせると、単一のエフェクトによるオーバードローの影響を増幅させることになります。可能ならば、複数のエフェクトを同一の場所でスポーンさせる必要があるのがいつなのかを調べて、単一のエフェクトのみをスポーンさせるようにします。
オパシティ マスク
マスクされたマテリアルは、GPU のパフォーマンスを浪費する原因になりえます。理由は、ジオメトリのサーファスを構成するピクセルを、最終的に可視化することになるか否かにかかわらず、1 つずつ評価しなければならないからです。マスクされたマテリアルのオーバーヘッド量を最小化するために、最適化を行うことができます。- ジオメトリを可視的なマテリアル領域に一致させます - 特別なディテールをメッシュに追加することによって適用されているマテリアルの可視的領域に綿密に一致させる方が、無駄なピクセルを大量にともなった単純なジオメトリを使用するよりも、実際は効率的になります。
- スペキュラを取り除きます - 絶対に必要という場合を除いて、マスクされたマテリアルでは、あらゆるスペキュラ コンポーネントを削除します。これによって、無駄なピクセルの計算をできるだけ単純なものにします。
- 非平行光源を使用します - 非平行光源を使用することによって、無駄なピクセルのために光源処理を計算しなければならないインストラクション (シェーダー文) を軽減し、パフォーマンスの高速化が得られます。
動的な光源処理
動的シャドウイング
SHOW DYNAMICSHADOWS
(動的シャドウイングの表示) コンソールコマンドを使用して、動的シャドウイングを off に切り替えてみます。このコマンドにあるキーをバインドさせて、そのキーを押している間は動的シャドウイングが off になり、キーを放すと on に戻るようにすると便利です。これはコンソールで設定できます。たとえば、次のようにします。 SETBIND F SHOW DYNAMICSHADOWS | ONRELEASE SHOW DYNAMICSHADOWS
UnrealScriptで作成されたアクタに関しては、ShadowParenting を利用しなければなりません。これは基本的に、1 つのアクタには多数のアタッチメントがあるが、動的シャドウはただ 1 つしかないということを意味します。あるPawn (ポーン) が、武器、ヘルメット、バックパック、その他アタッチメントを所持している場合、アタッチメントのシャドウがすべて、Pawn 自身を親とするようにします。次のようにします。 Attachment.SetShadowParent(Parent.Mesh)
動的シャドウに関するパフォーマンスの制限
シャドウバッファによる GPU コストは、シャドウ視錘台のスクリーンスペース サイズに正比例します。したがって、シャドウバッファを使用する近くのキャラクターの方が、遠くのキャラクターよりもコストが著しく高いことになります。また、動的シャドウバッファのシャドウを投じる大型のオブジェクトの方が、小型のオブジェクトよりもコストが際立って高いということにもなります。詳細に関しては、 シャドウバッファ フィルタリングのオプション のページを参照してください。 また、シャドウの最適化については、 シャドウイング参照 のページと モジュレートシャドウ のページを参照してください。ビューモード
シェーダーの複雑度
Shader Complexity (シェーダーの複雑度) ビューモードは、ピクセル単位のシェーディングに要したシェーダー文の数に基づいて、画面の色を制御するものです。赤は非常にコストが高く、緑は非常にコストが低いです。透過ライトシャフトによって、それらの背後にある負荷が小さい不透明なマテリアルにコストが付加されることに注意してください。
ライトの複雑度
ライトの複雑度のビューモードは、サーファスに作用する動的ライトの数に基づいて、画面の色を制御するものです。黒は、作用する動的ライトがないことを意味します。さまざまなカラー / シェーダー (緑から赤まで) によって、作用している動的ライトの増加が示されます。目標は、レベル全体が常に黒として表示されることです。ただし、当然のことながら、これが常に可能だということにはなりません。
ディテールレベル(精度レベル)
