首页 小组 文章 唠叨 用户 我的社区
全部 最新资讯 干货分享 C++基础 人员招聘

UE4材质是什么样的机制

ZTRE
发表于 2018-10-04 23:54:15

材质的机制

写材质跟写程序非常不同,因为他们是不同的机制。

一般情况下,程序代码是顺序执行的,有跳转有循环。

但是材质不一样。


材质是并行运算的

材质是对每个像素(有时是每个顶点)并行运算的。

一个物体表面有多少像素,这个材质就会被同时执行多少遍。

材质没有循环

材质里面没有循环。如果材质里加上循环,可能直接把显卡给烧掉了(哈哈,这里不严谨了~)。

因为每个像素都要执行一遍,假设材质里有循环,每个循环的次数是100(好像并不太多),那么要执行的指令数是没有循环时的100倍(这里又不太严谨了。。)!

材质运行时没有分支

材质中确实可以放bool类型的参数,但是这个参数是Static的。含义就是只能在编辑期修改,运行期不能修改。

还有switch,也是static的。

这是官方文档:


简单来说,编译Shader需要对每一个分支进行编译,如果运行期允许修改,那可能会导致需要编译的Shader太多,出现Shader大爆炸。

如果你使用过StaticBoolParameter,那你可能会注意到,每次修改这个类型的变量,都会导致重新编译。

理解这些,对你写材质有帮助。


宽度468px黄金广告位招商中请联系管理
126 0

你的回应
加入Q群