unity shader编程参考
标签:rev not text color 选项 法线 结构 知识 min
这篇不会有理论的学习,只是一些编程参考知识。
Properties语义块支持的属性类型:
属性类型 |
属性类型默认值的定义语法 |
例 子 |
Int |
number |
_Int("Int",Int) = 2 |
Float |
number |
_Float("Float",Float) = 1.5 |
Range(min,max) |
number |
_Range("Range",Range(0.0,5.0)) = 3.0 |
Color |
(number,number,number,number) |
_Color("Color",Color) = (1,1,1,1) |
Vector |
(number,number,number,number) |
_Vector("Vector",Vector) = (2,3,6,1) |
2D |
"defaulttexture"{} |
_2D("2D",2D) = ""{} |
Cube |
"defaulttexture"{} |
_Cube("Cube",Cube) = "white"{} |
3D |
"defaulttexture"{} |
_3D("3D",3D) = "black"{} |
常见的渲染状态设置选项:
状态名称 |
设置指令 |
解释 |
Cull |
Cull Back|Front|Off |
设置提出模式,剔除背面/正面/关闭剔除 |
ZTest |
ZTest Less Greator|LEqual|GEqual|Equal|NotEqual|Always |
设置深度测试时使用的函数 |
Zwrite |
Zwrite On|Off |
开启/关闭深度写入 |
Blend |
Blend SrcFactor DsFactor |
开启并设置混合模式 |
SubShader的标签类型:
标签类型 |
说明 |
例子 |
Queue |
控制渲染顺序,指定该物体属于哪一渲染队列,通过这种方式可以保证所有的透明物体可以在所有不透明后面被渲染,我们也可以自定义使用的渲染队列来控制物体的渲染顺序。 |
"Queue" = "Transparent" |
RenderType |
对着色器进行分类,例如这是一个不透明的着色器或是一个透明的着色器等,这可以被用于着色器替换(Shader Replacement)功能。 |
"RenderType" = "Queue" |
DisableBatching |
一些Shader在使用批处理是会出现问题,例如使用模型空间下的坐标进行顶点动画。这是可以通过该标签来直接知名是否对改SubShader使用批处理。 |
"DisableBatching"="True" |
ForceNoShadowCasting |
控制使用该SubShader的物体是否会投射阴影 |
|
IgnoreProjector |
如果该标签值为“True”,那么使用该SubShader的物体将不会受Projector的影响,通常用于半透明。 |
|
CanUseSpriteAltas |
当SubShader用于精灵(Sprites)时,将该标签设置为False |
|
PreviewType |
指明材质面板将如何预览该材质,默认情况下,材质将显示为一个球形,我们可以通过把该标签设置为"Plane" "SkyBox"来改变预览类型 |
|
Pass的标签类型:
标签类型 |
说明 |
例子 |
LightMode |
定义该Pass在Unity的渲染流水线中的角色 |
"LightMode"="ForwardBase" |
RequirOptions |
用于指定当满足某些条件是才渲染该Pass,它的值是一个由空格分隔的字符串。目前,Unity支持的选项有SoftVegetation。在后面的版本中,可能会增加更多的选项 |
"RequirOptions"="SoftVegetation" |
Unity支持的语义:
POSITION,
TANGENT,
NORMAL,
TEXCOORD0,TEXCOORD1, TEXCOORD2, TEXCOORD3,
COLOR等
ShaderLab属性类型和CG变量类型的匹配关系:
ShaderLab属性类型 |
CG变量类型 |
Color, Vector |
float4, half4, fixed4 |
Range, Float |
float, half, fixed |
2D |
sampler2D |
Cube |
samplerCube |
3D |
sampler3D |
从应用阶段传递模型数据给顶点着色器时Unity支持的常用语义:
语义 |
描述 |
POSITION |
模型中的顶点位置,通常是float4类型 |
NORMAL |
顶点法线,通常是float3类型 |
TANGENT |
顶点切线,通常是float4类型 |
TEXCOORDn |
该顶点的纹理坐标,TEXCOORD0表示第一组纹理坐标,以此类推,通常是float2或float4类型 |
COLOR |
顶点颜色,通常是fixed4或float4类型 |
从顶点着色器传递数据给片元着色器时Unity使用的常用语义:
语义 |
描述 |
SV_POSITION |
裁剪空间中的顶点坐标,结构体中必须包含一个用该语义修饰的变量,等同于DirectX9中的POSITION。但最好使用SV_POSITON |
COLOR0 |
通常用于输出第一组顶点颜色,但不是必要的 |
COLOR1 |
通常用于输出第二组顶点颜色,但不是必要的 |
TEXCOORD0-TEXCOORD7 |
通常用于输出纹理坐标,但不是必要的 |
unity shader编程参考
标签:rev not text color 选项 法线 结构 知识 min
原文地址:https://www.cnblogs.com/gy881223/p/14292795.html
评论