包含文件
文件名 |
描述 |
UnityCG.cginc |
包含了最常使用的帮助函数,宏和结构体 |
UnityShaderVariables.cginc |
在编译Unity Shader时,会被自动包含进来。包含了许多内置的全局变量,如UNITY_MATRIX_MVP 等 |
Lighting.cginc |
包含了各种内置的光照模型,如果编写的是Surface Shader的话,会自动包含进来。 |
HLSLSupport.cginc |
在编译Unity Shader时,会被自动包含进来。声明了很多用于跨平台编译的宏和定义。 |
UnityCG.cginc
是我们最常接触的一个包含文件。我们使用很多该文件提供的结构体和函数,为我们的编写提供方便。例如,我们可以直接使用UnityCG.cginc中预定义的结构体作为顶点的输入输出。
名称 |
描述 |
包含的变量 |
appdata_base |
可用于顶点着色器的输入 |
顶点位置,顶点法线,第一组纹理坐标 |
appdata_tan |
可用于顶点着色器的输入 |
顶点位置,顶点切线,顶点法线,第一组纹理坐标 |
appdata_full |
可用于顶点着色器的输入 |
顶点位置,顶点切线,顶点法线,四组(或更多)纹理坐标 |
appdata_img |
可用于顶点着色器的输入 |
顶点位置,第一组纹理坐标 |
v2f_img |
可用于顶点着色器的输出 |
裁剪空间中位置,纹理坐标 |
语义
我们刚才看到的SV_POSITION,POSITION,COLOR0都是语义(Semantics)
。语义实际上就是一个赋给Shader输入和
语义 |
描述 |
POSITION |
模型空间中的顶点位置,通常是float4类型 |
NORMAL |
顶点法线,通常是float3类型 |
TANGENT |
顶点切线,通常是float4类型 |
TEXCOORDn |
该顶点的纹理坐标,通常是float2或float4类型 |
COLOR |
顶点颜色,通常是fixed4或float4类型 |
语义 |
描述 |
SV_POSITION |
裁剪空间中的顶点坐标。 |
COLOR0 |
通常用于输出第一组顶点颜色,但不是必需的 |
COLOR1 |
通常用于输出第二组顶点颜色,但不是必需的 |
TEXCOORD0 |
通常用于输出纹理坐标 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。