UDN
Search public documentation:

MassiveLODJP
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

Massive LOD システム

ドキュメント概要: Massive LOD システムが何を必要とし、それをどのように使用するかの解説。

ドキュメントの変更ログ: Josh Adams により作成。

概観

このドキュメントでは、Unreal Engine 3 の Massive LOD システムについて詳細に説明します。さらに、これを設定するにあたり、UnrealEd に加えられた変更についても触れています。

Massive LOD システムとは、高いフレームレートを維持しながら広大な眺望を描画するために組み合わせて使うテクニックのコレクションです。 Massive LOD システムは、高いフレームレートを実現しつつ、広く開いた景色をレンダリングすることを可能にする技術の集まりです。これは、(距離カリング、StaticMesh LOD、ストリーミングなどの) 他の既存の機能と組み合わせて、近くは Gears of War ぐらいの LOD で、遠くのオブジェクトはより低い LOD で、レベルを生成するべきです。

このシステムの目的は、パフォーマンスの一貫性を維持しながら、メッシュ数が 10 倍高いレベルをビルドすることにあります。

新しいコンセプト

LOD Parenting (LOD ペアレンティング)

(コードが使用されていないと、遅くなる原因となる可能性があるので、より多くの人が使用できるような準備ができるまで、この機能はライセンシー ビルドではデフォルトで無効化してあります。)

Massive LOD で紹介された非常に重要で新しいコンセプトは、LOD Parenting (LOD ペアレンティング) です。これは、オブジェクトが十分遠くにある場合、多くのメッシュが 1 つのメッシュに効率的に置換されるというシステムです。

プレイヤーに近いところにある建物を、高いクオリティの建物にするために何百ものピースで作成されていることを考えてみてください。その建物が十分に遠くにある場合、ディテールがそれほどしっかりと見えないのに、何百ものドロー コールを使用して建物をレンダリングすることは意味を成しません。標準的な StaticMesh LOD では、これらの何百ものピースのポリゴンの数を減らすことができるかも知れませんが、それでもかなりの数のドロー コールを使用しています。そして、これはレンダリング スレッドと GPU を遅くする原因となります。

しかしながら、LOD Parenting (LOD ペアレンティング) ならば、建物のピースのグループ全体が、非常に高いディテールのメッシュのグループに似た 1 つのメッシュと置換されます。

さらに、階層的なペアレンティングをサポートするので、すべての建物を 1 つのメッシュの建物を置換して、その後より遠い距離で市街地にあるすべての建物を、その市街地の 1 つのメッシュに置換することができます。

エディタ変更

新しいコンテキスト メニュー オプション

場所: 右クリック メニュー内の "LOD Operations (LOD 操作)" サブメニュー

使用法: ペアレンティング/置換の関係をセットアップするのに使用されるような、新しいメニュー項目はいくつかあります。100 ピースの建物を 1 ピースの建物に置換する例で言えば、以下を行うことになります。

  • レベルに 100 ピースと 1 ピースの部分を設置します。
  • 1 ピースの建物を選択します。
  • プロパティで (“Rendering (レンダリング)” グループ内の) MassiveLODDistance を、スワップを起こしたい距離で設定します。
  • 右クリックをして、”LOD Operations (LOD 操作)” を開き、"Set as Active LOD Parent (アクティブな LOD ペアレントとして設定)" を選択します。
  • 今度は、これを非選択にし、高いディテールを持つすべての 100 ピースの建物を選択します。
  • 右クリックをして、”LOD Operations (LOD 操作)” を開き、"Set as Active LOD Parent (アクティブな LOD ペアレントとして設定)" を選択します。

カメラを内外に移動すると、親の MassiveLODDistance に応じてピースも出たり入ったりするようになります。ビューポートで LOD Parenting 表示フラグを選択解除すると、双方のピースのセットが表示されます。また、このフラグをオフにした状態で子のメッシュを 1 つ選択すると、その親につながるイエローの線が表示されます。

また、"Clear LOD Replacement (LOD 置換をクリア)" オプションを使用して、メッシュの置換ペアレントをクリアすることができます。

LOD View Locking (LOD ビュー ロッキング)

場所: View menu (ビューメニュー)

使用法: LOD View Locking (LOD ビュー ロッキング) は、エディタ内のモード (他のすべてのモードから独立) で、以下の 2 つを行います。

  • 同じタイプ (Perspective、Top、Side など) のすべてのビューは、1 つのカメラを共有します。従って、2 つの Perspective ビューを開いていて、LOD Locking (LOD ロッキング) が有効化されていると、カメラを 1 つのビューで移動させると、もう 1 つのビューでも移動します。(これの理由は、以下を参照してください。)

  • Ortho ビューでは、カリングと LOD ペアレンティング (遠い距離で 100 個のメッシュを 1 個に置換する) が Perspective ビューのカメラ位置を距離チェックに使用します (これは、Ortho ビューが本当の「カメラ位置」を持たないことを理由としています)。

Per View Group Hiding (ビューごとのグループ非表示)

場所: Show Flags (フラグを表示)メニューのHidden Groups (非表示グループ)サブメニュー Showflags.jpg

使用法: Show Flags (フラグを表示)メニューの下部にて、Groups (非表示グループ)サブメニューが追加されています。これは、(グループ ブラウザと同様) すべての既知のグループのリストを表示します。このメニューでグループが選択されると、そのグループ内のアクタはすべて、そのビューのみで非表示になります。

これを、LOD View Locking (LOD ビュー ロッキング) と組み合わせると、ペアレンティングのセットアップをより簡単にすることができます。というのは、通常、2 つのメッシュが互いに重なっている場合、適切なメッシュを選択することが困難だからです。これで、低い LOD メッシュと高い LOD メッシュのグループを作成できるようになり、低いほうを 1 つのビューで表示させ、高いほうをもう 1 つのビューで表示させることができます。低い LOD ビューでアクティブなペアレントを選択し、コンテキスト メニューを使用して、それを高い LOD ビューで割り当てます。

LOD Parenting Show Flag (LOD ペアレンティング フラグ表示)

場所: Show Flags (フラグ表示) メニュー内の "LOD Parenting (LOD ペアレンティング)" Showflags.jpg

使用法: すべてのビューで LOD Parenting (LOD ペアレンティング) が有効化した状態で、エディタは起動します。MassiveLODDistance は、高い、または低い LOD を表示するためのみに使用されるということです。LOD Parenting (LOD ペアレンティング) を無効化すると、以下のようになります。

  • MassiveLODDistance と LOD ペアレントが無視され、両方のセットのメッシュが描かれます。
  • 両方とも描かれてしまうので、選択された高いディテールのメッシュは、その LOD ペアレントに線を描きます。

(上記のように 2 つの LOD ロックされたビューなどを使用して) ペアレンティングをセットアップしている際は、LOD ペアレンティングを無効化するほうが良いでしょう。これは、すべてのメッシュが見えるようにするためであり、低い LOD アクタの MassiveLODDistance は、メッシュの選択を困難にしないからです。(MassiveLODDistance が有効化された状態で、メッシュが描かれるためには、メッシュから 遠く にいる必要があり、これは選択を困難にする可能性があります。)