Unity项目升级到HDRP后模型变成紫红色怎么办?

在unity3d里面把模型饱和度提高:render.material.maincolor选中一个的时候,恢复上一个选中的颜色,然后修改选中项的颜色就可以了,因此还要一个变量来存一个当前选中物体。

如果是unity自建的object,应该没问题,但如果是导入的,可能会出现改不了的情况,其颜色也可能是由材质贴图控制的,这种情况下应该改贴图颜色才能改变颜色。

如果真是材质贴图倒方便,可以通过PS多设置几张贴图,直接更改贴图就可以实现改变颜色,我用过这种方便。

Unity实时开发平台为电影和内容制作人员提供现实工作创作自由,提升工作效率。使工作室能够在同一平台上将建模、布局、动画、光照、视觉特效(VFX)、渲染和合成同时完成。

基于高清渲染管线HDRP,Unity提供完整影视动画工具套装。在制作真人电影还是全CG动画电影或者电视级动画领域,写实风格或卡通风格,Unity都能提供创作自由度和制作效率。

在玩 HDRP 的内置 Lit 着色器的时候,对它的 Mask Map 贴图很感兴趣,感觉似乎能够为材质添加很多细节

查了下文档,发现 Mask Map 是分 RGBA 通道作为灰度蒙版,为材质添加金属度、环境光遮蔽、细节贴图蒙版与粗糙度效果的:

让我最感兴趣的是 A 通道的粗糙度蒙版,就像上图那样,能营造出非常类似物体表面的水雾的感觉。

恩 .. 如果我用 Shader 让这个 A 通道做一个平移,再加点噪声,说不定就能做出来类似下雨时物体表面潺潺流水的效果?

使用 ShaderGraph 的 Time 与 Tilling and Offset 节点将 UV 做一个平移,加上线性噪声节点做一些扭曲,添加一点随机性。最后直接复用原材质的 Mask Map 的 A 通道并应用扰动。用一个布尔来控制是否应用效果。添加各种属性值就不说了。应该还不错。

在实现过程中,由于 HDRP 的内置 Lit 着色器没有 ShaderGraph 版本,就从论坛上找了一个官方的 Lit 着色器的 ShaderGraph 版本,基于它进行修改。

整体(糊也没事 .. 大部分是官方给的,用于实现 Lit 的特性,核心就那上面的一小点)

核心效果实现(就这几个节点 .. 真的挺简陋的 ..)

这是个很粗糙的效果,用到的节点也很少,之后要实际应用的话肯定要补充很多细节,比如单独做水流的 Mask 应该会好很多

个人认为的效果优缺点:

和网上其他的雨水效果比起来,对性能影响应该蛮低的。加上天气效果以及一些点缀应该也能实现不错的效果

简单啊(连我都能做出来 ..),直接复用材质自己的 Mask Map 也懒省事了

因为不同材质的 Mask Map 不同,所以这个效果也会带有各自材质的特点,不会说效果千篇一律看着疲劳

对于较为光滑的平面类物体感觉效果比较一般

因为复用了原材质的 Mask Map,应用效果时材质自身的粗糙度会丢失,不太好

可远观而不可亵玩(bushi),在远处看起来还不错,如果离得太近的话就能比较明显的看出来违和的平移与噪声

总之还是个很粗糙的效果,不过这种思路应该还是有点意思的,必能活用于下一次 ..

把着色器图与材质传到 Github 上了,项目太大就不传了,直接拖入 Unity 窗口即可。使用贴图也是 HDRP 自带的示例。

我要回帖

更多关于 沙盘模型 的文章