ライティングエフェクトと反射 はじめに
各種エフェクトと特殊効果に絞ってライティングを確認していく
- IESプロファイルライト関数を使用して高原の半径を制御します
- フォグや反射をどのように設定するかについても説明
ライティングエフェクト
様々なサンプルを見ながら、 ソース半径とサイズ、 IES 設定、 ライト関数など、様々なエフェクトを作成する際に使用する要素を説明します。
ここで扱う内容
- 光源の半径とサイズ
- IES(Illuminating Engineering Society)
- ライト関数
ここで使うレベル
FundamentalsClasses/Content/Fundamentals/Lighting_Rendering/EffectsAndReflections/StartAssets/LightingEffects
ここで行うこと
- IESプロファイルを使用して部屋のスポットライトをより興味深いものにする
- その前に光源の半径と長さについての解説を行う
- ライト関数を使用してプールの水面下に水コースティクスを作成する
IESプロファイルを使用して部屋のスポットライトをより興味深いものにする
光源の半径と長さについての解説
ライトにはSource Lengthと Source Radius がある。
Source Radius
- ある意味発行するモデルということができて、サイズを変えるとテレビに写っている反射も大きくなっている事がわかる。
Source Length
- Source Radius: 4.0
- サイズを変えるとテレビに写っている反射が長くなっている事がわかる。
- Y方向に90度回転させている
- Source Radius と組み合わせてこのようなライトが表現できる
IES(Illuminating Engineering Society)
- IESライトは投影される為、スポットライトで最もうまく機能する
- ポイントライトに適用すると非常に不自然に投影される可能性がある
- IESライトはライトの形状を強調したり表面の光度を変える事ができる
- 下記図はスポットライトの IES Texture を変えた図
- Complex_IES は壁に写っているものを見ると光度帯も確認できる
- IESテクスチャは無料の外部ツールなどを使って作成する事ができる
- static, stationary, movable いずれでも使用可能
ライト関数を使用してプールの水面下に水コースティクスを作成する
- ライト関数はマテリアルをライトと混合する事を意味する
- したがって投影されるライトは実際にはマテリアルとライトそのものの混合
- 機能させるためには混合させるための特別なマテリアルが必要
- このコースで使用するマテリアルはレベルと同じ場所に配置されている
- テクスチャでは波の模様のテクスチャが選択されている
- マテリアルの詳細設定では Material Domain を Light Function にしている
- コースティクスが適用例
- スポットライトを配置し詳細パネルより下記設定
- 可動性: Movable
- Castshadow: False (パフォーマンスに影響するため)
- Light Function Material: LightingEffects_Caustics
- スポットライトを配置し詳細パネルより下記設定
さらに興味深いコースティクスにする
- 途中経過 波がより細かくなり、静止画のためわからないが波が流れるようなアニメーションもするようになっている
- 最終
- 修正内容
- 上段
- TexCoord UTiling VTiling 5 (目の細かさ。数値を上げるとより細かくなる)
- Panner Y Speed 0.1 波をY方向にアニメーションする
- 下段
- TexCoord UTiling VTiling 6 (目の細かさ。数値を上げるとより細かくなる)
- Panner Y Speed 0.8 波をY方向にアニメーションする
- Multiply 上段と下段のテクスチャを重ね合わせ複雑な模様にしている
- Power 値が小さいため調整
- Multiply 値が小さいため調整
- 上段
- テクスチャをかけ合わせる効果例
- レベル上のコースティクスも細かくなりアニメーションするようになった
Light Function まとめ
- Light Function はアニメーションするライトに適している
- 揺らめく炎など
- 空の雲のシャドウ
- この場合、Light Functionは指向性ライトに配置する
- 色に関しては何も設定はできない為、マテリアル側で何か色の設定を行っていてもライト関数には適用されない
Finished レベル
FundamentalsClasses/Content/Fundamentals/Lighting_Rendering/EffectsAndReflections/FinishedAssets/LightingEffects_Finished
上記のレベルには調整後のライティングの設定があるのでぜひ見てみてくださいとの事
ライティングの基礎:反射
4 種類の反射について見ていきます。スクリーン空間反射、 反射キャプチャ、 平面反射、 2D/キューブへのキャプチャです。
ここで使用するレベル
FundamentalsClasses/Content/Fundamentals/Lighting_Rendering/EffectsAndReflections/StartAssets/Reflections
スクリーン空間の反射(SSR screen space reflection)
レベル上でなにも反射の設定を行っていない場合、スクリーン空間の反射(SSR)のみが有効な状態になっている
これを確認するためレベルにあるテレビの設定を変えてより反射しやすくする
- テレビを選択し、詳細パネルのマテリアルからマテリアルエディターを開く
- ラフネス(粗さ)を 0 にしてつるつるにして保存して閉じる
- 見る角度によっては部屋内のソファーが反射する
- 見る角度によっては部屋内のソファーが反射する
- 短所
- 長所
- 反射がリアルタイムに適用される
- 例えば誰かが通ったりするとその人が反射する
- 正確に反射する
- 反射がリアルタイムに適用される
反射キャプチャ(スフィア反射キャプチャとボックス反射キャプチャ)
- SSRは画面上にレンダリングされているもののみしか反射できないという短所があり、それを補うために反射キャプチャが使われる
- SSRと反射キャプチャはどちらも短所があるが、通常はそれを補い合うように利用する
- スフィア反射キャプチャとボックス反射キャプチャの違いは形状のみ
- 9割はスフィア反射キャプチャを使用する
- 下記はテレビ前にスフィア反射キャプチャを配置した図。室内が反射している事がわかる
- SSRとは異なりどの角度から見ても反射している
- 下記はテレビに反射するソファ。よく見ると反射が一部おかしいがこれはSSRと反射キャプチャが混ざっているためで、SSRが優先される。
- 殆どのプロジェクトではスフィア反射キャプチャまたはボックス反射キャプチャを使用する。との事
- SSRだけだと不十分なため
- プロジェクト設定から反射する画像の解像度の設定が可能
- 動画だと1024となっておりかなりシャープな反射となっていた。
- 殆どのゲームではデフォルト値または少し高めを使用するとの事
- ゲーム以外の用途ではこの値を上げてくださいとの事
- 短所
- リアルタイムではない。
- 通行人が通ってもその人は反射しないとの事
- 精度が低下する。反射キャプチャを移動させると反射も動く。不自然であり正確ではない
- リアルタイムではない。
- 長所
- ノイズが少ない
平面反射
- 平面キャプチャを使用する場合はプロジェクト設定の 平面反射のグローバルクリッププレーンをサポートにチェックが必要
- 平面キャプチャは平面のみに反射するため、非常に平らなオブジェクトのみに適している
- 例えば鏡、窓フレーム、水面、ガラスパネルなど
- 平らで小さいものには平面反射が利用できる
- 平面反射はリアルタイムキャプチャも一度だけキャプチャする事もできる Capture Every Frame
- リアルタイムの場合、パフォーマンスに非常に大きな負担がかかる
- 下記は室内の鏡に平面反射を設置した図
- Z軸の端が表面にあうように配置しないと正確に反射しなかった。
- 反射させたい面にはきれいに沿わせないといけない模様
- Z軸の端が表面にあうように配置しないと正確に反射しなかった。
- プレビューの切り替えが行える Show Preview Plane
- 反射する画像の解像度も設定できる。100%が最大値 Screen Percentage
2D/キューブへのキャプチャ(Scene Capture 2D と Scene Capture Cube)
- 反射対象のレンダーターゲットの設定が可能
- 通常パフォーマンス効率性が必要な場合に反射する物体を制限する際に使用
- Scene Capture Cube はキューブマップをキャプチャする
- ここで動画では ExampleCube というテクスチャが登場するがおそらく下記に配置されていたテクスチャが同等のもののようなのでそちらで代用
FundamentalsClasses/Content/DemoRoom/Textures/NewTextureRenderTargetCube
- Scene Capture Cube を配置
- NewTextureRenderTargetCubeを Texture Targetに適用する
- 結果 NewTextureRenderTargetCube テクスチャの内容が書き換えられ下記の画像になった
- 🤔あまりよく理解せずにやりましたが、Scene Capture Cubeはカメラになっていて、カメラから見えている画像をテクスチャに焼き付ける効果があるようですね。そして CubeマップはHDRIのように四方八方を囲む画像とするという意味だったようです。すごい
- カメラを動かすと画像も書き換えられる
- 焼き付けた画像は他のマテリアルのテクスチャに設定可能
- ゲーム内の防犯カメラなどに使用できる
ライティングの基礎:反射 まとめ
- 完成したアセット
/FundamentalsClasses/Content/Fundamentals/Lighting_Rendering/EffectsAndReflections/FinishedAssets/Reflections_Finished
- 反射キャプチャは主に反射率の高い非常に明るい表面の前に配置する
- 完成したアセットでは球状の反射キャプチャをテレビの前、大きな窓の内側と外側の両側
- キッチンとの境にも汎用のキャプチャへのフォールバック用途の汎用キャプチャを配置
- プールの上の球状の反射キャプチャは反射へのフォールバックでの使用を目的としている
- すべてのマテリアルは必要に応じて、この汎用の反射キャプチャにフォールバック可能
- すべてのマテリアルは必要に応じて、この汎用の反射キャプチャにフォールバック可能
- 平面反射は室内鏡、額縁、プールの表面に使用
フォグとボリューメトリックライト
フォグとボリューメトリックライトエフェクトはシーンに雰囲気を足すことができます。ここでは これらのエフェクト作成でよく使用されるツールを見ていきます。
この章で紹介するもの
- Atmospheric Distance Fog 大気ディスタンスフォグ
- Exponential Distance Fog 指数関数的ディスタンスフォグ
- Light Shaft Bloom and Light Shaft Occlusion ライトシャフトブルーム、ライトシャフトオクルージョン
- Volumetric Fog and Lighting 適切なボリューメトリックフォグとライティング
ここで使用するレベル
/FundamentalsClasses/Content/Fundamentals/Lighting_Rendering/EffectsAndReflections/StartAssets/Fog_VolumetricLighting_Finished
Atmospheric Fog 大気フォグ
- 大気フォグはレベルの任意の場所に配置するとレベル全体に適用される
- 大気フォグはフォグレイヤーを作成するのではなくフォグの範囲そのものを作成する
- 密度や明るさなどのプロパティは詳細パネルから変更可能
ディレクショナルライト Atmosphere / Fog Sun Light オプション
- ディレクショナルライトのAtmosphere / Fog Sun Lightを有効にすると大気フォグはそのライトを太陽光とみなす
- ディレクショナルライトの角度と位置に基づいて空の色を設定し太陽を作成する
- 太陽については 大気フォグの詳細パネルより 太陽 → Disable Sun Disk にチェックを入れると消すことも可能
- 下記は少しディレクショナルライトを回転させた図
- Yはほとんど変わっていないように見えますが影がかなり変わっています。
- Yはほとんど変わっていないように見えますが影がかなり変わっています。
指数関数的ハイトフォグ
- 大気フォグは周囲全体の大気を作り出すが、指数関数的ディスタンスフォグは部分的に作成する
- 指数関数的ハイトフォグはレベルの任意の場所に配置するとレベル全体に適用される
- 大気フォグよりもシンプル
- 下記はフォグ密度を変更した図
- Fog Inscattering Colorは空の色を表す
- Directional Inscattering Color は太陽周辺の色を表す
- ハイトフォグは配置されている場所を中心にFalloffの範囲によってオパシティが異なる
- 平たい建物のためわかりにくいが高層ビルなどであればフォグの場所から離れるとフォグのオパシティ(不透明度)も下がる
Light Shaft Bloom and Light Shaft Occlusion ライトシャフトブルーム、ライトシャフトオクルージョン
- 実際にはフォグとは関係ないが光がフォグの中を移動しているような演出に使用できる
- このプロパティはディレクショナルライトにある
- 有効にすると太陽の位置に応じてゴッドレイのようなものが表示される
- Occulusion は黒い線が描かれる
- Bloom は明るい線が描かれる
- Bloom Scaleを変えるとサイズが大きくなる
適切なボリューメトリックフォグとライティング
- Volumetric Fog を機能させる為にはレベル上に指数関数的ハイトフォグが配置されている必要がある
- 指数関数的ハイトフォグにはボリュメトリックフォグという項目がある
- 指数関数的ハイトフォグにはボリュメトリックフォグという項目がある
- フォグ密度はわかりやすくするため4としている
- 建物に差し込む光が目視できる
- 薄いがゴッドレイも確認できる
- ディレクショナルライトの Light Shaft Bloom と Light Shaft Occlusion とこちらの Volumetric Fog は有効にしておくことをおすすめしますとの事。
- 下記はすべてを有効にした図
- 下記はすべてを有効にした図
- 各ライトには Volumetric Scattering Intensity プロパティがあり、そのライトがフォグに与える影響度合いを調整する事ができる
メモ
- IES(Illuminating Engineering Society)
- コースティクス
コースティクスまたはコースティクスネットワークは、曲面またはオブジェクトによって反射または屈折した光線の集まり、またはそれを別の表面に投影したときにできる独特の模様。 光の濃度、特に日光は燃える。コースティックという言葉は、実際には、ギリシャ語のκαυστός、燃える、ラテンの苛性、燃えることに由来する。 ウィキペディア
いくつかランプで試してみる