概要
ドキュメント:
シャドウ深度マップを向上させるための一般的な方法 | Microsoft Learn [公式]
参考:
DirectX
参考:
OpenGL
参考:
投影テクスチャマッピングとシャドウマッピング | 床井研究室
シャドウマッピング – チュートリアル #16 | OpenGL Tutorial
GLSL
参考:
カスケードシャドウマップ
ドキュメント:
カスケードされたシャドウ マップ | Microsoft Learn [公式]
参考:
Cascaded Shadow Maps | 3D Game Development with LWJGL
Light Space Perspective Shadow Maps | TU Wien
アーティファクト
- 解像度不足
- シャドウアクネ
- ピーターパン現象
- エイリアシング
対処法:
- カスケードシャドウマップ
- バイアスを適切に調整する
- 法線バイアス/法線オフセット
- コンタクトシャドウ
- ソフトシャドウ
ドキュメント:
影のトラブルシューティング | Unity マニュアル [公式]
参考:
Dealing with Shadow Map Artifacts | Roar11
シャドウアクネ
参考:
Shadow Acne | DigitalRune Documentation
Self-Shadowing in Shadow Mapping – reddit
Unreal Engine
ドキュメント:
シャドウイング | Unreal Engine 5.0 ドキュメント [公式]
仮想シャドウマップ | Unreal Engine 5.2 ドキュメント [公式]
参考:
PlayCanvas
ドキュメント:
シャドウ | PlayCanvas ユーザーマニュアル [公式]
セルフシャドウ
- シャドウマップ
- シャドウボリューム
参考:
ソフトシャドウ
動画:
Soft Shadows / PCF & Random Sampling – OpenGL (OGLDEV)
リンク:
Efficient Soft-Edged Shadows Using Pixel Shader Branching | NVIDIA Developer
PCF (Percentage Closer Filtering)
特徴
- シャドウマップを複数回サンプルして重み付け加算する。
- 影境界のギザギザを軽減するアンチエイリアス手法の一つ。
- ソフトシャドウの一種と捉えられることもある。
リンク:
Shadow Map Antialiasing | NVIDIA Developer
参考:
Soft Shadow with PCF | Fabien Sanglard
VSM (Variance Shadow Maps)
リンク:
Summed-Area Variance Shadow Maps | NVIDIA Developer
Variance Shadow Maps | William Donnelly
Variance Shadow Maps (William Donnelly) | ResearchGate
参考:
#1 PCF and VSMs | IYP’s Graphics Journal (GameDev.net)
Is VSM light bleeding solved? – GameDev.net
solving light bleeding when using variance shadow maps – GameDev.net
EVSM
参考:
Exponential Variance Shadow Mapping (OpenGL) – Game Development Stack Exchange
投影
参考:
Lighting – Camera | York College of Pennsylvania Computer Science
transforming a view space position to the shadow map space (OpenGL) – Stack Overflow
スポットライト
参考:
Variance vs Depth PCF for spot light soft shadow – GameDev.net
資料
シャドウマッピング総まとめ (Pocol) | Speaker Deck
Layered Variance Shadow Maps | ACM Digital Library
Light Space Perspective Shadow Maps (PDF) | TU Wien
A Self-Shadow Algorithm for Dynamic Hair using Density Clustering (PDF) | Jan Kautz