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)