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
  • 0.0001 – 月もなく曇った夜空
  • 0.2 – 晴れた満月の夜空
  • 30 – 公共性の高いエリア
  • 100 – オフィスビル内
  • 400 – 日の出
  • (32,000-100,000) – 直射日光

Environment Probes

Environment Probesを使用すると、ライティングは物理ベースになり有効範囲に滑らかな影が生成されます。また反射マテリアルの場合は、キューブマップがその半径内にある物を自動的に割り当てられるため、非常に便利です。

Environment Probesセットアップ

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

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の有効範囲を視覚的に表現したものです。次に、ボックスサイズを設定します。まず、Environment Probeの有効範囲のサイズを拡大し、Entityのプロパティで[Box Size]属性の値を調整し、ボックスのサイズをそれより大きい値に変更します。

キューブマップの生成

ボックスのサイズを変更しても影は変わりません。これは、[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コンポーネントを削除すると?

影が真っ黒で粗くなります。

Global Environment Probe

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

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

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

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

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

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

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

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

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

あとは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

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

LINEで送る
Pocket

コメントを残す