【UE4 材质编辑篇】1.0 shader编译逻辑

UE4新手,学起来()文章仅记录自己的思考。

参考:虚幻4渲染编程(材质编辑器篇)【第一卷:开篇基础】 - 知乎 (zhihu.com)


开篇基础就摸不着头脑,原因是此前完全没有摸过UE4,一点一点记录吧:

每个连连看都会编译节点后生成一个ShaderTemplate,

【UE4 材质编辑篇】1.0 shader编译逻辑_第1张图片

但是这篇文章之后的部分,我看的有点稀里糊涂的。

于是看了另一篇关于shader编译的文章:UE4 HLSL 和 Shader 开发指南和技巧 - 知乎 (zhihu.com)

蓝图里的Custom节点,其实就是自定义的一些函数,然后引擎帮你在编译shader的时候生成一个个完整的函数,比如我在UE4.3下一个默认的材质里加入一个简单的return 1的Custom节点:

【UE4 材质编辑篇】1.0 shader编译逻辑_第2张图片

我们window->HLSL code查看一下这个材质编译出来的code:

【UE4 材质编辑篇】1.0 shader编译逻辑_第3张图片

我们用VS Code打开,搜索return 1,可以定位到这一段:

【UE4 材质编辑篇】1.0 shader编译逻辑_第4张图片

没错!这就是我们刚刚加入的简单的Custom函数,并且后面还被用上了:

【UE4 材质编辑篇】1.0 shader编译逻辑_第5张图片

但还是只有自己动手才能发现,自定义的Custom只有参数遇到输出,才会被编译进HLSL code里:

【UE4 材质编辑篇】1.0 shader编译逻辑_第6张图片

这种情况下,HLSL Code里不再有我们定义的函数了。不仅仅是Custom,任何没参与的节点都不会被编译。

这下可算搞明白了ShaderTemplete的关系。

你可能感兴趣的:(UE学习,ue4,材质)