物理ライティング単位

物理ベースのライティング単位の使用について説明します。

Windows
MacOS
Linux

Unreal Launcher 4 (UE4) のライトは物理ベースのライティング単位を使用して定義されます。これにより、既知の測定可能な値を入力することでリアリティ溢れるライティングが実現できます。 様々なライティング 単位をサポートするライト タイプに加えて、 明暗順応 (または自動露出) のポストプロセスは、広範囲の値がサポートされるようになり、EV100 (ISO 100) で表現されています。 ライティングと自動露出の物理ベースの単位間において「マジックナンバー」を入力したり、アーティストが様々な値を勘で入力する必要なく、リアリティ溢れるライティングの作成がはるかに簡単になりました。 

ライトの強度を表すライティングの単位

各種ライトの選択時に、物理ベースのライティングの単位が[Details (詳細)] パネルの [Intensity (強度)] 値の隣に表示されます。 

クリックしてフルサイズ表示

これら各種ライトの強度は以下のように表示されます。

  • 指向性ライト は 1 平方メートルのルーメンを意味する Lux で表される Direct Normal Illuminance を使用します。

  • スカイライトスタティック ライトとしての発光体1 平方メートルあたりのカンデラ(cd/m2) で表される輝度を使用します。

  • ポイント ライトスポット ライト および 矩形ライト のライティング単位は以下から選択可能です。

    • カンデラ (cd) は、1 ステラジアン (sr) の立体角を均等に放出される光度の単位です。 たとえば、1000 cd に設定したライトは 1 平方メートルに 1,000 lux と計測されます。

    • ルーメン (lm) は、1 ステラジアンの角度に放出される光束の単位です。 測光学では、光束 (またはルミナス パワー) は知覚される光量の単位です。 光の分布の広さ狭さに関係なく、放出されたエネルギーの総量は同じです。

    • ユニットレス はエンジン特有のライト強度値で、バージョン 4.19 より以前の Unreal Engine とも互換性を保っています。

指向性ライト

指向性ライト は、 Direct Normal Illuminance または Lux (lx) で表されます。それらは、 視覚可能直接的な 太陽光線に対して垂直なサーフェイス上の太陽からの放射によって地表で生成される 照度 を意味します。 表面に降り注ぐライトの総量を表します。

発光サーフェイス

発光サーフェイスは、ライティングが加えられる前のピクセルの輝度を定義する 1 平方メートルあたりのカンデラ (cd/m2) で表されます。

スカイライト

スカイライト は、ライト強度を乗じたピクセル強度を使用し、HDR の cd/平方メートルで表されるトータルの輝度と等しくなります。 たとえば、HDR のピクセルをフィルターとみなし、これらのピクセルが 0 から 1.0 の範囲で、スカイの強度は 1000 cd/平方メートルとすると、輝度は 1.0 * 1000 cd/平方メートルとなります。

静的ライトとしてのエミッシブ マテリアル

アクタごとの設定 Use Emissive for Static Lighting を有効にする スタティック メッシュに適用されるエミッシブ マテリアル の表面の輝度はライティングをシーンにベイクするために使用されます。 

ポイント ライト、スポット ライト、および矩形ライト

ポイント ライトスポット ライト、および 矩形ライト では、[Inverse Squared Falloff (逆 2 乗フォールオフ)] を有効にしたライトのユニット タイプを指定できます。 [Details (詳細)] パネルで [Intensity Units (強度の単位)][Candela (カンデラ)][Lumen (ルーメン)] または [Unitless (ユニットレス)] に設定可能です。

[Inverse Squared Falloff] は、減衰半径が 3 つすべてのライト ユニット タイプでサポートされているライトの寄与度に対しクランプのみ行う、物理ベースのディスタンス フォールオフです。 無効にすると、利用可能なのは Unitless のみになります。 Inverse Squared Falloff を無効にしたライトは、ライト付近で明るいスポットを作りたくない場合に使う、強度の弱いフィル ライトを設置する際に便利です。

Settings_LightUnitType.png

ポイント ライト、スポット ライト、および矩形ライトのデフォルトの単位タイプは [Project Settings (プロジェクト設定) > Rendering (レンダリング) > Default Settings (デフォルト設定)] で設定可能です。

各単位の関係は以下のように定義されます。

  • 1 cd = 625 unitless

  • 1 cd = 1 lm/sr

注:ライトの強度が Candelas で定義される場合、円錐角の影響を受けません。しかし、ライトの強度が Lumens で定義される場合、ステラジアン (sr) で、ルミナス パワーはライトの影響を受ける立体角のみに適用されます。

ポイント ライト では、次の通りライトの影響を受ける立体角は 4π sr です。

  • 照度 (1 lm) ≈ 49.7 * 照度 (1 unitless)

  • 照度 (1 cd) ≈ 12.6 * 照度 (1 lm)

スポット ライト で、θ が光円錐の半分の角度として、立体角は 2π * (1 - cos(θ)) で定義されます。

  • 照度 (1 lm) ≈ 99.5 / (1 - cos(θ)) * 照度(1 unitless)

デフォルトの円錐では、θ = 44° で、立体角はおよそ 1.76 sr です。

  • デフォルトのスポッ トライトの照度 (1 lm) ≈ 354 * 照度 (1 unitless)。

  • デフォルトのスポッ トライトの照度(1 cd) ≈ 1.76 * 照度 (1 lm)。

円錐角が小さいほど、ライトからの表面への照明は強くなります。ライトの強度はルーメンで表されます。

矩形ライト の立体角は 2π sr で定義されます。

  • 照度 (1 lm) ≈ 199 * 照度 (1 unitless)

  • 照度 (1 cd) ≈ 3.14 * 照度 (1 lm)

ヒントとアドバイス

以下は物理ベースのライティング ワークフローを最大活用する上でのアドバイスです。 

  • ライトを設置した後にイメージが白くなった場合、自動露出が制限され過ぎているかもしれません。 その場合、[Auto Exposure] を 最大の [EV100] (および [Histogram] を最大の [EV100]) にすることを検討してください。

  • 反射するサーフェイスに黒いパッチのようなアーティファクトがある場合、SceneColor のバッファがオーバーフローする可能性があります。これを修正するには、[Apply Pre-Exposure before writing to the scene color (シーンカラーに書き込む前に事前露出を適用する)] を有効にするか、シーンのライトを暗くします。

  • ポストプロセス ボリュームが存在していなくても、シーンに適用済みになっているデフォルトのポスト プロセス設定があることに注意してください。これらのデフォルト設定が、カメラの設定に予期せぬかたちで影響を与えることがあります。 ポストプロセス ボリュームをシーンに設置して、必要に応じて設定を変更するようにしてください。 

  • 拡張されたデフォルトの輝度の範囲を使用するようにプロジェクトを設定変更すると、既存の露出設定が失われます。 処理の開始からアセットの設定を手動で移行/再設定しておくと安全です。 

  • シーンで露出値をわずかに変更した場合に、自動露出のヒストグラムが不安定になることあります。この問題を回避するには、Histogram MinMax の範囲をシーンにおける実際の使用量程度に減らしてください。使用量を確認するには、Visualize HDR を表示するフラグを有効にします。

一般的な考慮事項

アセットとインスタンス間でデフォルト値が伝搬する際の問題を回避するために特別に気をつける必要があることがあります。別のライトから (ブループリントまたはデフォルトのオブジェクトを介して) インスタンス化されたライトは、その親と同じライト ユニットを使用するようにしてください。 そうしなかった場合、すでに使用されている側のユニットは変更してはいけません。親と同じライト ユニットを使用することで、デフォルト値が変更され想定通りに動作し、インスタンスに正確に伝搬され、既存インスタンスの破壊を防止します。

デフォルト プロジェクトのポイントライト、スポットライト、矩形ライトの Light Units[Project Settings > Rendering > Default Setting] で定義可能です。 

クリックしてフルサイズ表示

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback