//定义shader的显示等级以及名字 Shader "Level/Name"
Shader "Custom/SinShader"{ }
//定义shader中所用到的属性 Properties{ }
常用属性类型(格式: 属性变量名("Unity属性显示名称",属性类型)):
其中,属性变量名 以及 Unity属性显示名称 可自己定义,属性类型固定:
_Color("_Color",Color) = (1,1,1,1) // 颜色类型
_Vector("_Vector",Vector) = (1,2,3,4) // 四维向量类型 X Y Z W
_Int("_Int",Int) = 100 // 整数类型
_Float("Float",Float)=12.3 // 小数类型 默认值不加F shader里面没有double类型
_Range("Range",Range(1,100))=50 // 范围类型 从哪个范围到哪个范围 这里设置的范围是1-100 默认值是50 可以取到1和100
_2D("Texture",2D) = "white"{} // 指定图片 类型 若{}里指定图片了会显示图片的颜色 如果没有指定图片会显示为设置的纯色 这里为white
_Cube("_Cube",Cube) = "white"{} // 立方体纹理 立方体贴图
_3D("Texture",3D) = "white"{} //3D 纹理
// SubShader 可以有很多个 里面编写的是渲染的代码 利用属性编写一些 控制 渲染出来的效果
创建多个SubShader 因为不同的SubShader可以实现不同的效果 在不同的显卡上运行时需要,比如不同的显卡对应不同的SubShader 好一点的对应 一个SubShader 差一点的对应一个SubShader.显卡运行效果时,从第一个SubShader开始,如果里面的效果都可以实现,那么就使用第一个SubShader,如果这个SubShader满足不了这个显卡的需求,它会自动跳到下一个 如果没有可以实现的会调用 Fallback"VertexLit" 默认的,一般第一个SubShader是显示效果最好的 第二个比第一个次一点以此类推这样会增加shader的适应能力
//Pass块
SubShader 里面必须有一个 Pass块 也可以有多个,一个Pass块代表一个方法。
网友评论