CRYENGINE V Lightingのセットアップ

CRYENGINEのレンダラは、ライトマップと呼ばれるTextureにシャドウ情報を長時間ベイク処理する必要がある多くの他のエンジンとは異なり、業界で最も速いリアルタイムのライティングエンジンであると考えられておりCRYENGINEは、このレンダラによって有名になりました。

CRYENGINEでは自動でリアルタイムにライトマッピングが行われるためベイク処理は不要です。

Lightingにはさまざまな方法がありますが、最も一般的な2つの形式は、既定ですべてのLevelに用意されている指向性の太陽光 [directional sun light]と、スタンダードな点光源 [Standard Point Light]です。

  • 指向性の太陽光 [directional sun light]
  • スタンダードな点光源 [Standard Point Light]

下記の設定により、可能な限り最良の状態の「光」の中でシーン内のObjectを表示し、テストするための開始点になります。最終的には、各プロジェクトごと調整してください。

目次

SVOGI

まず、SVOGIをオンにします。
Tools -> Level Editor -> Level Settings -> Total illumination V2

Lux値

太陽光の単位は物理値に設定されているため、Wikipediaなどから値を取得し、環境条件に応じて適切な太陽の強度を取得します。一般的なLux値のリストを次に示します。

一般的なルクス[Lux]値の一覧

  • 0.0001 – Moonless, overcast night sky (月もなく曇った夜空)
  • 0.2 – Full moon on a clear night (晴れた満月の夜空)
  • 30 – Heavily covered public areas
  • 100 – Office building (オフィスビル内)
  • 400 – Sunrise (日の出)
  • (32,000-100,000) – Direct sunlight (直射日光)

月の光のLux値は1未満ですが、エンジンで月からの影を正確にレンダリングするにはこの値は小さすぎるため、値を5ぐらいに上げてください。

Daylight
https://en.wikipedia.org/wiki/Daylight#Intensity_in_different_conditions

Color temperature
https://en.wikipedia.org/wiki/Color_temperature#Categorizing_different_lighting

Environment Probes

Environment Probes探査点を使用すると、ライティングはPhysically Based Shading(PBS)物理ベースシェーディングになり有効範囲に滑らかな影が生成されます。また反射Materialの場合は、キューブマップがその半径内にある物を自動的に割り当てられます。

Environment Probesセットアップ

CRYENGINEの新しいタイルシェーディングでは、すべてのキューブマップの解像度を256にする必要があります。生成される画像は浮動小数点HDR画像で、以前よりもはるかに忠実度が高くなります。

5.6現在、Environment Probeシステムは256pxキューブマップの生成のみをサポートしており、レンダラーはこの値に合わせて調整されているため、ほとんどの場合、キューブマップの解像度が256pxを超える必要はありません。

Environment Probeコンポーネントを追加

[Empty Entity]を作成し、それにEnvironment Probeコンポーネントを追加してボックスサイズを設定します。

[Empty Entity]を作成し、それにEnvironment Probeコンポーネントを追加するには、[Create Object]パネルの[Empty Entity]ボタンをクリックし、 EntityをLevelに配置します。その後、 そのEntityを選択し、[Properties]パネルの[Add Component]ボタンをクリックして、Environment Probeコンポーネントを選択します。

コンポーネントを追加した後、Entityの周囲にボックスが作成されます。これは、Environment Probeの有効範囲を視覚的に表現したものです。次に、ボックスサイズを設定します。まず、Entityのプロパティで[Box Size]属性の値を調整し、Environment Probeの有効範囲のサイズを拡大します。

キューブマップの生成

ボックスのサイズを変更しても影は変わりません。これは、[CubeMap]がまだ生成されていないためです。生成するには、[Generation Parameters]の下にある[Generate]ボタンをクリックします。これにより、Textures\cubemaps\<LevelDirectory>\<EnvironmentProbeName_cm>.tifにcubemapが生成されます。

生成が完了すると、ライティングは物理ベースになり、[Environment Probe]の有効範囲に滑らかな影が表示されます。また、反射Materialには、その半径内にある物を自動的に割り当てられます。

テクスチャファイル名は、常にEnvironment Probe Entityの名前に変更されます。そのため、キューブマップを生成し始める前に、Probeに名前を付けることをお勧めします。
キューブマップを生成すると、2つのTextureが生成されます。1つは[diffuse map]で、もう1つは[reflection map]です。

一般的に、Environment Probeは、適切な反射を生成するために頭の高さに配置されるべきです。また、時間帯を変更した場合CubeMapを再生成する必要があります。

Environment Probeコンポーネントを削除すると?

反射Materialと影が真っ黒で粗くなります。

Global Environment Probe

すべてのLevelにはGlobal Environment Probeが必要です。これは、デフォルトとして機能する特別なEnvironment Probeです。通常、Global Environment ProbeはLevelごとに1つ必要です。

LevelにGlobal Environment Probeがあれば、常にライティングは物理ベースになり、さらに「local」Environment Probeを定義すれば、「local」Environment Probeは、定義された半径内で自動的に高い優先順位でソートされ、「Global」Environment Probeの上にブレンドされます。
Environment ProbeをGlobal Environment Probeとして設定するには、いくつかの特別な設定が必要です。

また、時間帯を変更した場合はCubeMapを再生成する必要があることを忘れないでください。

  • [BoxSize] XYZ値を十分に高く設定して、Level全体を覆います。
  • [IgnoreVisAreas]を true に設定します。
  • [SortPriority]を 0 に設定します。
  • [AttenuationFalloffMax]を 0 に設定します。

ゲーム内の時間経過でCubeMapを自動で変更するには[Flow Graph]を利用します。

Local Environment Probe

Local Environment Probeの目的は、小さな領域で照明条件をより正確に表現することです。Level内のすべての領域に、ある程度のLocal Environment Probeが適用されていると良い。

太陽光/影の照度を測定する

Levelの照度を正確に測定するには、太陽に平面を向けて、この面を測定することで照度が測定でます。

まず、測定のために2つの平面を配置します。

[Create Object]パネルの[Empty Entity]ボタンをクリックし、 EntityをLevelに配置します。その後、そのEntityを選択し、[Properties]パネルの[Add Component]ボタンをクリックして、Meshコンポーネントを選択しFileプロパティに%engine%/engineassets/objects/primitive_plane.cgfを設定し、primitive_planeを太陽に垂直になるように回転させます。

完璧である必要はありませんが、太陽からの光がprimitive_planeに斜めに当たると値が大きく変化することに注意してください。

あとはConsoleで r_HDRdebug=1 を設定し、面を見るだけです。このオプションをオンにするとシーン全体が明るくなるため、照度の測定が終了したら必ずオフ(r_HDRdebug=0)にしてください。

Advanced Light のプロパティ

  • Link To Sky Color – この設定を使用すると、色の値を太陽の色の値に合わせて自動的に変化させることができます。シーンの時間に関係なくシームレスにシフトする周囲光を使用する場合に適しています。
  • Projector Texture – ライトエンティティのY軸方向に投影されるテクスチャを指定できます。
  • Cast Shadows – 選択した最小構成仕様に基づいて、ライトが影付けするようにします。たとえば、「 High」はLow/Mediumでは動作しません。影が常に投影されるようにするには、これを [Low Spec] に設定します。
  • Attach To Sun – 有効にすると、このライトのフレアプロパティを使用するように太陽が設定されます。「太陽のフレアプロパティにこのライトを使用するように設定されます。」
  • Light Style – ライトを再生するためのプリセットアニメーションを指定し、追加の作業なしで点滅パターンを自動的に作成できます。スタイルは、 [光源] を使用して定義します。cfxシェーダ。有効な値は0~48です。40~48はテスト/デバッグスタイルです。

参考

Lighting Setup
https://docs.cryengine.com/display/CEMANUAL/1+-+Lighting+Setup

Environment Probe
https://docs.cryengine.com/display/CEMANUAL/Environment+Probe

Environment Probe Component
https://docs.cryengine.com/display/CEMANUAL/Environment+Probe+Component

Tutorial – Lighting – Creating a 24 hour cycle
https://docs.cryengine.com/display/CEMANUAL/Tutorial+-+Lighting+-+Creating+a+24+hour+cycle

Total Illumination V2
https://docs.cryengine.com/display/CEMANUAL/Level+Settings#LevelSettings-TotalIlluminationParams

Procedural Volumetric Clouds
https://docs.cryengine.com/pages/viewpage.action?pageId=25535467

Lighting Levels Using PBS
https://docs.cryengine.com/display/CEMANUAL/Lighting+Levels+Using+PBS

コメントを残す