版权声明:本文为CSDN博主「武功高强的盲僧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
1.背景
在《庄懂的技术美术入门课(美术向)》 Lesson 1 课后作业中,一位学员制作了类似翡翠效果的卡通渲染Shader,效果图如下所示:
现在想要做的事情是在 UE4 中复现这个渲染效果,效果图如下所示:
2.实现过程
根据 Unity 中实现的 Shader,在 UE4 的材质连连看中复刻。
Shader Forge
UE4 材质
其中遇到的问题:
- 更改材质中的着色模型部分为无光照,否则总有自带的光照效果。
- LightDir 函数在 UE4 中没有提供,查询一些资料后( UE4 材质里如何获取到平行光方向),得到解决方案为利用蓝图(关卡蓝图)获得平行光方向,传给材质参数集,再从材质中读取,实现动态更新光照的方向(目前只考虑了平行光)。
获取方式如下:
动态更新(关卡蓝图中实现,但平行光方向好像一般不变,除非在游戏场景中有日落日升的效果):
- UE4 中颜色的通道只能为正数,这里微调两者中有差异的参数。
3. 完结撒花~~
我仿造实现的英文版
- 蓝图中获取光的方向
- 材质函数
- 最终效果(还是略有偏差)