首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > URP的OverridMaterial给每个物体单独设置参数
2022
04-17

URP的OverridMaterial给每个物体单独设置参数

Overrid Material就是在原本材质的基础上在覆盖一个新的,如果覆盖了这个材质就会绘制2次。如下图所示一般会添加一个层,在Filtering中不包含Actor层,这样渲染时就会过滤它。

URP的OverridMaterial给每个物体单独设置参数 - 雨松MOMO程序研究院 - 1

如下图所示,添加一个新的渲染器,设置LayerMask为Actor层,下面在设置一个可覆盖的material材质,这样Actor层中所有的材质都会使用Overrid的这个材质进行渲染。URP的OverridMaterial给每个物体单独设置参数 - 雨松MOMO程序研究院 - 2

此时已经出了个大问题,立方体原本设置的材质贴图、颜色、等其他参数都变成统一的了,所以需要添加脚本动态将原本的参数赋值给新的OverridMaterial才行。

URP的OverridMaterial给每个物体单独设置参数 - 雨松MOMO程序研究院 - 3
如下代码所示,通过MaterialPropertyBlock的方式将参数传递给新材质中,只要确保传递的这些参数在新材质Shader中的CBUFFER中极即可。

如下图所示,多个Actor层下的物体以不同的参数进行绘制OverridMaterial。

URP的OverridMaterial给每个物体单独设置参数 - 雨松MOMO程序研究院 - 4

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

留下一个回复

你的email不会被公开。