关键字 | 类型 | 对应Cg类型 | 例 |
---|---|---|---|
Float | 浮点数 | float | _MyFloat (“My float”, Float) = 0.5 |
Range | 浮点数 (在指定范围内) | float | _MyRange (“My Range”, Range(0.01, 0.5)) = 0.1 |
Color | 浮点四元组 | float4 | _MyColor (“Some Color”, Color) = (1,1,1,1) |
Vector | 浮点四元组 | float4 | _MyVector(“Some Vector”,Vector) = (1,1,1,1) |
2D | 2的阶数大小的贴图 | sampler2D | _MyTexture (“Texture”, 2D) = “white” {} |
Rect | 非2的阶数大小的贴图 | sampler2D | _MyRect(“My Rect”, Rect) = “white” {} |
CUBE | CubeMap | samplerCUBE | _MyCubemap (“Cubemap”, CUBE) = “” {} |
在CG里面类型必须要小写
Shader至少要包含一个subShader子着色器,多个子着色器,会从上往下匹配显卡性能,只执行其中一个,如果显卡很差,则会FallBack回滚执行指定的shader
标签:硬件将通过判定这些标签来决定什么时候调用该着色器
Tags { "RenderType"="Opaque" "Queue"="Transparent" "ForceNoShadowCasting"="True" "IgnoreProjector"="True"}
ForceNoShadowCasting 标签 是否不产生阴影 默认False
IgnoreProjector标签 是否不被Projectors影 响 默认False
RenderType 标签 渲染类型
Opaque :不透明
Transparent :含有透明的 粒子,字体
TransparentCutout:透明遮罩
Background:天空
Overlay :GUI 太阳光晕等效果
TreeOpaque:树干不透明
TreeTransparentCutout:树叶透明
TreeBillboard:树的Billboard 用2D的贴图替代三维物体来渲染
Grass:草
GrassBillboard:草的Billboard
Queue 标签 渲染顺序队列(预定义的值本质上是整数,数值越小越早渲染)
Background(1000) : 最早被调用的渲染,用来渲染天空盒或者背景
Geometry (2000):(默认值)用来渲染非透明物体
AlphaTest (2450): 用来渲染经过Alpha Test的像素,单独为AlphaTest设定一个Queue是出于对效率的考虑
Transparent(3000) : 以从后往前的顺序渲染透明物体
Overlay(4000) :用来渲染叠加的效果,是渲染的最后阶段(比如镜头光晕等特效)
设置剔除模式
Cull Back (默认背面剔除)
Cull Front 正面剔除
Cull Off 不剔除
设置颜色遮罩
ColorMask RGBA 保留全部通道
ColorMask RGB 保留RGB
ColorMask R 保留R
R红色 G绿色 B蓝色 A Alpha通道