博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UE4材质是什么样的机制
阅读量:5789 次
发布时间:2019-06-18

本文共 551 字,大约阅读时间需要 1 分钟。

 材质的机制

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

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

但是材质不一样。

材质是并行运算的

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

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

材质没有循环

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

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

材质运行时没有分支

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

还有switch,也是static的。

 

这是官方文档:

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

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

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


原文地址:

本文首发于翰者学堂

 

转载于:https://www.cnblogs.com/henzhe/p/9596424.html

你可能感兴趣的文章
[Java]Socket和ServerSocket学习笔记
查看>>
stupid soso spider
查看>>
svn命令在linux下的使用
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
人生第一个过万 Star 的 GitHub 项目诞生
查看>>
Mac下配置多个SSH-Key (gitLab)
查看>>
Gradle之module间依赖版本同步
查看>>
一些kindle资源
查看>>
页面搭建工具总结及扩展架构思考
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
SpringCloud使用Prometheus监控(基于Eureka)
查看>>
10g手动创建数据库
查看>>
Linux—文件系统
查看>>
运用Loadrunner测试Mysql数据库性能
查看>>
Spring MVC EL表达式不能显示
查看>>
【致青春】我们挥霍时间的年代
查看>>
WDS系列之四:自定义安装映像
查看>>
CentOS7 NTP server + keepalived
查看>>
jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换
查看>>
Castle 整合.NET Remoting
查看>>