shader从入门到精通——(三)Shader的组织形式

GPU“图形处理器”
GPU并行处理能力强于CPU
目前GPU无法代替CPU
shaderlab基本结构
shader是一个程序片段(加工方案)
贴图是加工方案需要的材料
shader“name”
{
[Properties]  →→属性
SubShaders
[FallBack]
}
以上为所有shader的内容框架
【在unity中创建一个shader→在创建一个Material 材质→Material 的材质指定上shader→双击点开shader】
△Properties→属性  (以下的属性都是原材料)
color(“Color为属性名称”)
→shaderlab不区分大小写的,因此color也不区分大小写
→=(1,1,1,1)为默认白色
MainTex→纹理贴图
可以在unity中添加贴图
△SubShader(专门为GPU渲染编写shader的片段)
编写中要有一个至少有一个SubShader
也可以有多个Shader
多个SubShader的原因
♦每一次显卡去渲染只能去选择一个subshader去执行
为什么还要有多个SubShader的形式存在呢?
作为shader可能在某一种算法,某一种指令,当前的硬件等不能指令不能支持(当一个subshader文件被执行运行的时候会先检测能不能运行),
如果第一个SubShader能被良好的支持,就会使用当前的第一个SubShader,如果老版本不支持SubShader, 需要编写第二段SubShader来适配版本;如果还不适配可以继续往下编写第3个、第4个......
每下一个SubShader都要比上一个更加简化、运算指令要简单。
♦如果编写的SubShader一个都不能执行时就要使用FallBack(“回滚”——撤退)

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>