【转载】UE4 复现 ShaderForge 中的翡翠效果

602 阅读1分钟

版权声明:本文为CSDN博主「武功高强的盲僧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:blog.csdn.net/qq_36005498…

1.背景

在《庄懂的技术美术入门课(美术向)Lesson 1 课后作业中,一位学员制作了类似翡翠效果的卡通渲染Shader,效果图如下所示:

image.png

现在想要做的事情是在 UE4 中复现这个渲染效果,效果图如下所示:

image.png

2.实现过程

根据 Unity 中实现的 Shader,在 UE4 的材质连连看中复刻。

Shader Forge

image.png

UE4 材质

image.png

其中遇到的问题:

  1. 更改材质中的着色模型部分为无光照,否则总有自带的光照效果。

image.png

  1. LightDir 函数在 UE4 中没有提供,查询一些资料后( UE4 材质里如何获取到平行光方向),得到解决方案为利用蓝图(关卡蓝图)获得平行光方向,传给材质参数集,再从材质中读取,实现动态更新光照的方向(目前只考虑了平行光)。

获取方式如下:

image.png

动态更新(关卡蓝图中实现,但平行光方向好像一般不变,除非在游戏场景中有日落日升的效果):

image.png

  1. UE4 中颜色的通道只能为正数,这里微调两者中有差异的参数。

3. 完结撒花~~

image.png

image.png

我仿造实现的英文版

  • 蓝图中获取光的方向

image.png

  • 材质函数

image.png

  • 最终效果(还是略有偏差)

微信截图_20220319141918.png