**个人建议:**
个人建议: 目前分析下来, 阴影方面:CSM 提升分辨率对阴影效果提升较大 其他的Feature在ShipShow场景下提升不明显 同时由于我们场景偏暗 明暗对比度较弱,AO带来的提升也不明显 ||Lowest|Low|Mid|High| Ultra (PC) | | | | | | | | |CSM|❌|1级 2048|2级 2048|4级 2048|4级 4096| |CSM 贴图分辨率||(…
个人建议:
目前分析下来,
阴影方面:CSM 提升分辨率对阴影效果提升较大 其他的Feature在ShipShow场景下提升不明显
同时由于我们场景偏暗 明暗对比度较弱,AO带来的提升也不明显
| Lowest | Low | Mid | High | Ultra (PC) | |
|---|---|---|---|---|---|
| CSM | ❌ | 1级 * 2048 | 2级 * 2048 | 4级 * 2048 | 4级 * 4096 |
| CSM 贴图分辨率 | (2048 *1024) | (2048 *1024) | ( 2048 * 2048 ) | 4096*4096 | |
| Soft Shaodw | ❌ | Low | Low | Low | ❌ |
| Contact Shadows | ❌ | ❌ | ❌ | ❌ | √ |
| AO Texture | ❌ | ❌ | ❌ | 1024 (Mip Bias) | 2048 |
| SSAO | ❌ | ❌ | ❌ | ❌ | ❌ |
优缺点分析:
| 技术 | 技术原理 | 性能影响 | 主要优点 | 主要缺点 | 典型适用场景 |
| CSM阴影 (Cascaded Shadow Maps) |
将视锥体分割为多层级联区域,每级独立生成阴影贴图,近景高精度、远景低精度 | ★★★ | 1. 游戏业界阴影首选方案 2. URP默认支持 手机兼容性好 3. 支持PCF软阴影 |
1. 阴影质量受分辨率影响 手机最大是2K分辨率 2. URP默认的CSM 在级联边界会突变 3. 需要额外的ShadowPass 生成CSMShadowMap 4. DrawCall数量 = N * CSM_Count |
绝大多数的阴影场景 |
| 屏幕空间阴影 (Screen-Space Shadows) |
利用深度图重建世界坐标然后转换到阴影空间生成阴影图 | ★★★★ | 1. 阴影精度高(像素级计算) 2. 如果要做软阴影 只能使用一些模糊算法 3. 相对CSM而言 SSS分辨率会更小,会略微有一点优化(Bind/Sampler) |
1. 需要PreDepth 2. 需要在屏幕空间做降噪和模糊处理 3. 逐物体CSM 变成了 逐像素 |
动态物体局部阴影、细节物体投影 |
| 屏幕空间接触阴影 (Contact Shadows) |
屏幕空间短距离RayMarching,补充微小接触区域阴影(如物体与地面交界处) | ★★★★★ | 对于一些细小的物体 也很有很好的阴影效果 | 1. 需要CopyDetph 2. 算法对性能要求高 需要 RayMarching 3. 由于不是逐物体的 会有一些情况阴影不正确 4. 需要做一些降噪处理 |
场景数量多 例如 植被 树木 |
| 屏幕空间遮蔽 (Screen-Space Ambient Occlusion) |
基于屏幕深度图,采样像素周围深度值计算环境光遮蔽强度 | ★★★★ | 能够提供一些环境遮蔽效果 | 1. 需要PreDepthNormal 2. forward 开这个成本有点高 |
场景数量多 例如 植被 树木 全局间接阴影模拟 |
https://dev.epicgames.com/documentation/en-us/unreal-engine/contact-shadows-in-unreal-engine
阴影
CSM URP 默认 4级
屏幕空间阴影
Contact Shadows
视频对比
开启Contact Shadow Vs 关闭 Contact Shadow
暂时无法在飞书文档外展示此内容
4级CSM Vs 4级CSM+Contact Shadow
暂时无法在飞书文档外展示此内容