工程为Unity 2020.3.25f1(LTS)的默认SRP工程,低于或高于此版本可能会有URP Shader API的变化产生的错误。
在Unity 2020.3.25f1(LTS)中新建一个Universal Render Pipeline项目,通过Assets -> Import Package -> Custom Package...导入MossScene.unitypackage文件。打开Assets/MossScene下的MossScene.unity场景。
- ToneShader和FuzzShader两个Shader文件,其中ToneShader是更具有卡通效果和移动端优化的Shader。
- MossyLog和Decal两个MegaScans的美术素材,略有修改。
- 支持产生阴影和承接阴影。
- 支持动态光照和光照贴图,支持参与烘焙。
- 支持SRP Batcher。
- 提供了移动平台和PC平台的切换开关
PLATFORM_PC
。 - 提供了PC平台专属的贴花切换开关
ENABLE_DECAL
。 - 提供了控制苔藓效果和贴花效果的一系列参数。
- 精度为half,减少了运算量。
- 移动平台仅使用BRDF的漫反射部分,去掉了粗糙度贴图的读取。
- 苔藓的绒状效果改编自对马岛之魂的技术讲解。
- 贴花支持来自主光源的偏移阴影。
- PLATFORM_PC,控制Shader的平台差异。
- _BaseColor,基础颜色。
- _BaseMap,基础贴图。
- _BumpMap,切线空间的法线贴图。
- _BumpIntensity,控制法线贴图的强度。
- _RoughnessMap,粗糙度贴图,红通道为粗糙度。
- _RoughnessIntensity,控制粗糙度贴图的强度。
- _MetallicIntensity,控制金属度。
- _FuzzColor,苔藓的绒毛颜色。
- _FuzzMap,苔藓的贴图,白色为苔藓,黑色为树干。
- _FuzzIntensity,控制苔藓贴图的强度。
- _ScatterDensity,苔藓绒毛的散射强度。
- ENABLE_DECAL,控制是否使用贴花。
- _DecalColor,贴花颜色, 透明通道用于和基础贴图混合。
- _DecalMap,贴花贴图,透明通道用于和基础贴图混合。
- _DecalHeight,贴花高度,控制贴花阴影偏移的距离。
- _DecalBumpMap,贴花切线空间法线贴图。
- _DecalBumpIntensity,控制贴花法线贴图的强度。
- _DecalRoughnessMap,贴花粗糙度贴图,红通道为粗糙度。
- _DecalRoughnessIntensity,贴花粗糙度贴图的强度。
美术素材来源MegaScans,略有PS修改。
带苔藓的树干:Rock Assembly
树叶贴花:Leaves
顽皮狗神秘海域4的技术分享:The Technical Art of Uncharted 4
Sucker Punch Productions对马岛之魂的技术分享:Samurai Shading in Ghost of Tsuma
GNU General Public License v3.0