shader从入门到精通——Shader的组织形式
Posted 99LAN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shader从入门到精通——Shader的组织形式相关的知识,希望对你有一定的参考价值。
GPU“图形处理器”
GPU并行处理能力强于CPU
目前GPU无法代替CPU
|
unity用户手册Unity 用户手册 2020.3 (LTS) - Unity 手册
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(“回滚”——撤退)
以上是关于shader从入门到精通——Shader的组织形式的主要内容,如果未能解决你的问题,请参考以下文章
Cg入门16:Fragment shader - 片段级光照