UDN
Search public documentation:
VisibilityCullingJP
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
visibility culling
ドキュメントの概要: visibility culling プロセスと関連するクラスについての詳細説明。 ドキュメントの変更ログ: Joe Graf により作成、Andrew Scheidecker? と Ryan Brucks によりアップデート (2008 年5 月 12 日)。概観
UnrealEngine3のシーン管理では、凸状ゾーンについて錐台検証テストを行った結果「完全に不可視な要素」と分類されたプリミティブをレンダリングしない、というオーソドックスな方法によって可視性をカリングしています。このテストを通過したプリミティブは、可視でレンダリング対象である要素の候補となります。 同様のテストにより、あるライトについて、シーン内のどのプリミティブにその光が当たるかを定義します。visibility culling の場合と同じく、錐台形状およびビューやライトの位置を定義するポイントを情報として与えることにより、該当するプリミティブ候補を検出するクエリーです。錐台形状に属するすべてのポイントのうち、ビュー原点を結ぶラインが「開いた」状態となるポイントが該当とみなされます。 プラットフォーム シーンのレンダリング コードでは、オクルージョンクエリをはじめとする、プラットフォーム仕様の機能を使ったさらに多くのテストが実施されます。 不可視のプリミティブをドロップするためにエンジンが実行する自動visibility culling に加えて、他にもプリミティブのvisibility culling プロパティを具体的に操作できるようなたくさんの機能があります。カリングに影響を与えるプリミティブ プロパティ
- bAllowCullDistanceVolumes
- デフォルトは True です。True の場合、プリミティブは Cull Distance Volumes (下記参照) により影響されます。Cull distance volume 情報は、CachedCullDistance がプリミティブのセット CullDistance より_低い_場合に、プリミティブのセット CullDistance のみをオーバーライドします。
- CachedCullDistance
- エディット可能なプロパティではありません。このフィールドは、プリミティブが中に存在する CullDistanceVolumes によって設定されたカリングの距離を表示します。このプロパティ スクリーンショットでは、cull distance volume が使用されていないので 0 に設定されています。
- CullDistance
- 0 にデフォルト設定されており、これは、プリミティブが距離のみに基づいてオクルードされることは決してないことを意味します。CullDistance の値は Unreal ユニット内にあるので、プロジェクトのスケールにより好ましい値は変わってきます。Cull distance 、装飾のディテールや手すりなどの小さくて特定の距離になるとほとんど見えなくなるような、非常に小さい、または非常に薄いオブジェクトに実用的です。いわゆる「ポップ」が簡単に見えないような場所を見つけるには、カメラを前や後ろに動かしてCull distance を調節してみてください。
Cull Distance Volumes
Cull distance volumes は非常に有用な最適化ツールです。これは、ボリューム内のすべてのプリミティブに、個々のプリミティブのバウンダリに基づいて、自動的にCull distanceを設定します。Cull distance volume 値は、プリミティブのセット CullDistance よりも低い場合のみに使用されます。実装の主な意図は、詳細なインドアベースの大きなアウトドアマップを最適化するためで、Unreal Tournament 3では一般的です。 cull distance volume で、それぞれのエリアが異なる設定を持つような、非常に巧妙なシステムを作ることができます。しかしながらほとんどの場合、レベル全体を含むような 1 つの CullDistanceVolume から始めるのがベストでしょう。UT3 のほとんどのレベルは、レベル全体を取り巻く cull distance volume を使用しています。Cull Distance Volume の追加
0: Size: 0 CullDistance: 1000 1: Size: 128 CullDistance: 2048 1: Size: 256 CullDistance: 4096 2: Size: 512 CullDistance: 8192 3: Size: 1024 CullDistance: 16384 4: Size: 2048 CullDistance: 0その後、レベル内を飛び回り、目に見えるポップがないかどうか (最初の設定は、そこまでアグレッシブではないかも知れません) をチェックすることができます。そして、微妙な変更を加えたり、既存のCull distanceの間にいくつかの新しいサイズ グループを追加したりすることも可能です。さまざまなプリミティブの「キャッシュされたCull distance」を見ると、それらがどのサイズ カテゴリに属すのかが分かるので有用かも知れません。また、エディタ ビューポート ツールバーの SHOW FLAGS (フラグを表示) ドロップダウン ボックスから ‘Show Bounds (バウンダリを表示)’ を選択することもできます。そして、プリミティブを選択すると、バウンダリを表示するために、プリミティブの周りに球をレンダリングするはずです。バウンダリを測定するには、マウスの真ん中のボタンを押しながらドラッグすることにより、球の直径に定規を描きます。 cull distance volume を正しくするには、少し (かなりの場合もあります) 調節が必要になります。リストの最後のアイテムを、サイズには大きい値で、Cull distanceには 0 を持つような ‘too large for cull distance (Cull distanceには大きすぎる)’ 値にしておくことをお勧めします。これで、大きな山やビルのオブジェクトがカリングされることを防ぐことができます。または、単純にそれらのプリミティブの “AllowCulldistanceVolumes” を無効化することもできますが、これには大変な労力が必要です。