左边有Proxy Occlusion的效果, 右边是默认的标准PBR材质
(前半段开,后半段关)
基本需求:
根据现在的已经设计的世界观调性和概念设计来看,P.d在室外场景会出现更多类似阴天的,少人工光源的场景,类似《末日危途》, 《降临》和《银翼杀手2049》第一幕的光照环境。
在这两天的原型中我们试着调整或者移除场景中的方向光照,都发现都难于获得合适的效果表现。所以在确认了需求的必要性后做了解决这个问题的初步技术原型尝试。
大致问题表现在:
- 简单的方向光由于阴影的软硬度会较重的舞台光照感,而如果移除了人工光源,又会有角色突兀在场景里的问题。
- 而通过设计调整方向光和shadow map的blur,会遇到shadow map精度问题。
- 在原型场景和角色精度较低的问题时这个问题就变得更加严重。
这其实涉及实时环境中如何更好处理GI和Occlusion的话题。
常见的解决方案:
- 目前业内能见到的技术解决手段有realtime ray tracing->capsule occlusion->ao->decal&blob shadow伪造等,人工解决方案就依赖decal和灯光师的细致调整。
- 从效果上来说realtime ray tracing自然有着最佳的表现,但是这个技术对硬件和技术有着相当高的要求,至少还要一代才能普及成基础。
- UE4中的capsule shadow和《the last of us》中的角色光照方案是技术方案中比较中坚的处理。
- 从人工方案来看,mobile平台常用的decal和blob shadow在应对复杂环境下兼容性较差。
- 大部分3d游戏默认不做进一步的处理就是靠AO解决。AO的质量会决定最终效果的好坏。比如旷野之息中通过比较重的AO处理阴影处和阴天的效果(夜晚则有着月光带来的阴影)。

The Last Of Us中的处理
当前的解决尝试
- 最终菠萝参考了The Last of Us的方案,菠萝unity下做了的初步的原型验证。这种方案可以统一称为Proxy Occlusion,preview效果见视频。
- 测试场景在环境无中方向光的情况下的效果,左边有Proxy Occlusion的效果, 右边是默认的标准PBR材质。
有和无的对比
和页首一样的视频
加强版,支持3d texture, 可通过Occlusion角实时调整阴影的软硬度
在只有Indirect光照环境中的效果,只挂了角色腿部
整体上目前通过Quick&Dirty的方案快速原型让保证不影响场景原型的迭代。
后续工作:
- 支持更多的Occluder,当前只支持4个。
- 让角色不受到投影影响,当前投影会影响到角色。
- 根据环境内容计算投影方向。
- 转屏幕空间的球方案。

