影
公式サイト:
概要
参考:
使い方
参考:
リアルタイムシャドウをちゃんと理解して影を正しく描画する | LIGHT11
設定
- 解像度 (Resolution)
- Use Quality Settings (Default)
- Low Resolution
- Medium Resolution
- High Resolution
- Very High Resolution
スポット (Spot)
- 角度 (Spot Angle) を絞る
ディレクショナル (Directional)
- 影を描写するカメラからの距離 (Shadow Distance) を適切な範囲に絞る
- カスケード (Shadow Cascades) を4段に設定する
ポイント (Point)
- 光源をオブジェクトに近付ける
参考:
Unity で影が汚く表示される場合の対処 | テラシュールブログ
リアルタイムな影がカクカクになる問題の対処 | テラシュールブログ
リアルタイムシャドウをちゃんと理解して影を正しく描画する | LIGHT11
ライトのタイプ | Unity 2019.4 マニュアル [公式]
Light インスペクター | Unity マニュアル [公式]
ライトの設定
- タイプ (Type)
- 範囲 (Range/デフォルト:
10
) - スポット角度 (Spot Angle/デフォルト:
30
) - 色温度モードを使用する (Use Color Temperature Mode)
- フィルター (デフォルト:
#FFFFFF
) - 温度 (デフォルト:
6570
)
- フィルター (デフォルト:
- 色 (Color/デフォルト:
#FFFFFF
) - モード (Mode)
- リアルタイム (Realtime)
- 混合 (Mixed)
- ベイク (Baked)
- 強度 (Intensity/デフォルト:
1.0
) - 間接の乗数 (Indirect Multiplier/デフォルト:
1.0
) - シャドウタイプ (Shadow Type)
- シャドウなし (No Shadows/デフォルト)
- ハードシャドウ (Hard Shadows)
- ソフトシャドウ (Soft Shadows)
- クッキー (Cookie):テクスチャを指定する
- ハロの描画 (Draw Halo)
- フレア (Flare):フレアアセットを指定する
- レンダーモード (Render Mode)
- 自動 (Auto/デフォルト)
- 重要 (Important)
- 重要ではない (Not Important)
- カリングマスク (Culling Mask/デフォルト:Everything)
参考:
ディレクショナルライトのシャドウ | Unity 2018.4 マニュアル [公式]
ソフトシャドウ
参考:
Soft shadows not really soft? – Unity Forum
バイアス (Bias)
参考:
影のトラブルシューティング | Unity 2020.3 マニュアル [公式]
シャドウプロジェクション (Shodow Projection)
- 解像度重視 (Close Fit):オブジェクトが存在する範囲のみをシャドウテクスチャに描画する。シャドウディスタンスに比べてオブジェクトが存在する範囲が狭い場合に高画質な影を描画するが、オブジェクトやカメラの移動に伴って影の描画が不安定になり、影の境界がちらつくことがある。
- 安定重視 (Stable Fit):オブジェクトの有無に関係なく、常にシャドウディスタンスで指定された一定の範囲をシャドウテクスチャに描画する。(デフォルト)
参考:
Shadow Projection の Close Fit と Stable Fit について | テラシュールブログ
Shadows – Quality | Unity マニュアル [公式]
シャドウカスケード
参考:
Shadows – Quality | Unity マニュアル [公式]
グローバルイルミネーション (GI)
手順
- ベイクした影を使用するには、「ライティング」 (Lighting) ウィンドウで「シーン」 (Scene) タブに切り替え、「混合ライティング」 (Mixed Lighting) パネルで「ベイクしたグローバルイルミネーション」 (Baked Global Illumination) を有効にする。
- 該当するライトの「モード」 (Mode) を
混合
(Mixed
) またはベイク
(Baked
) に設定する。 - 影をベイクするオブジェクトを「静的」 (Static) としてマークする。あるいは、「Mesh Renderer」コンポーネントで「グローバルイルミネーションに影響」 (Contribute Global Illumination) を有効にする。
- その他ライティングに関する設定を必要に応じて適切に行う。
- 「ライティングの生成」 (Generate Lighting) ボタンを押してライトマッパーを実行してライトマップを生成する。
ライティングモード (Lighting Mode)
ライトの「モード」 (Mode) で 混合
(Mixed
) を使用する際の影の混合方法を指定する。
- ベイク済み間接光 (Baked Indirect)
- シャドウマスク (Shadowmask)
- 減法混色 (Subtractive)
参考:
ライティングモード | Unity 2019.4 マニュアル [公式]
影のみを描画する
「Mesh Renderer」コンポーネントで「Lighting > Cast Shadows」を Shadows Only
に設定する。
参考:
Having an invisible object that casts realtime shadows – Unity Answers
Is it possible to create a light only casts shadows? – Unity Answers
Casting shadow, without rendering the light itself??? – Unity Answers
両面描画した際の裏面の影
シェーダーの Fallback
として Nature/SpeedTree
を指定する。
Fallback "Nature/SpeedTree"
一旦シェーダーを「Nature/SpeedTree」シェーダーに変更してから、使用するカスタムシェーダーを設定する。
参考:
ライトマップ (Lightmap)
予めベイクしたライトマップを使用して間接光あるいはソフトシャドウを表現する。
参考:
表現方法から見た実践的なライトとベイクの設定方法 | LIGHT11
Lightmap を使用して雰囲気のある影を作成 | Point Cloud Consortium
シャドウマスク (Shadowmask)
シャドウマスクモード (Shadowmask Mode)
メニューから「編集 > プロジェクト設定」 (Edit > Project Settings) を開いて、「品質 > Shadows > シャドウマスクモード」 (Quality > Shadows > Shadowmask Mode) で設定する。
- シャドウマスク (Shadowmask):静的オブジェクトは常にベイクした影を使用する。
- 距離シャドウマスク (Distance Shadowmask):カメラから「シャドウディスタンス」 (Shadow Distance) で指定した距離より近い範囲ではリアルタイムの影を計算し、それより遠い範囲ではベイクした影を使用する。(デフォルト)
参考:
リアルタイムな影とベイクした影を混ぜる、Shadow Mask 特集号 | テラシュールブログ
Shadowmask – ライティングモード | Unity マニュアル [公式]
Shadowmask Mode – Quality | Unity マニュアル [公式]
URP
参考:
Universal Render Pipeline Asset の Shadows の設定について調べる | TATIKUNLOG.
SSAO
参考:
Lightmap を使用して雰囲気のある影を作成 | Point Cloud Consortium
影が描画されない
参考:
My Shadows do not show in the Editor view or Game View – Unity Knowledge Base
my baked objects are not casting shadows on RealTime objects – Unity Knowledge Base
Why doesn’t a spotlight make all objects in its cone cast shadows? – Unity Forum
Spotlight Shadow cut off at “close” distance – Unity Answers
影がギザギザになる
参考:
リアルタイムな影がカクカクになる問題の対処 | テラシュールブログ
Why are directional light shadows so jaggy? | Unity Forum
Shadows from directional Light in my game, don’t look smooth – Unity Forum
パフォーマンス
参考:
ライトのトラブルシューティングとパフォーマンス | Unity 2018.4 マニュアル [公式]
仕組み
参考:
オブジェクトの影を落とす | 知識 0 からの Unity Shader 勉強
まとめ/Tips
リアルタイムシャドウをちゃんと理解して影を正しく描画する | LIGHT11
Fast Volumetric Blob Shadows
動画:
入手:
Fast Volumetric Blob Shadows | Unity Asset Store [Official]
Fast Shadow Receiver
入手:
Fast Shadow Receiver | Unity Asset Store [Official]
Shadow Detection
動画:
入手:
Shadow Detection – Stealth Mode | Unity Asset Store [Official]
ドキュメント:
Manual – Shadow Detector | Google Docs
フォーラム:
Shadow Detection | Unity Forum
Next-Gen Soft-Shadows (NGSS)
動画:
Unity Shadow vs NGSS Soft Shadow
Next Gen Soft Shadows for Unity
入手:
Next-Gen Soft-Shadows | Unity Asset Store [Official]
フォーラム:
Next-Gen Soft-Shadows 2 – Sophisticated dynamic penumbra Shadows for Unity | Unity Forum
PCSS
動画:
リポジトリ:
TheMasonX/UnityPCSS: NVIDIA’s PCSS Soft Shadow Algorithm Implemented in Unity – GitHub
Soft Shadow
**OBSOLETE**
リポジトリ:
unitycoder/IndieSoftShadow: Directional Light Soft Shadows – GitHub
フォーラム:
Directional Light Soft Shadow – Unity Forum
参考: