标准的渲染流水线分为:
1.应用阶段 输出渲染图元
2.几何阶段 输出屏幕空间的顶点信息
3.光栅化阶段 输出游戏画面
几何阶段流:顶点着色器 -> 曲面细分着色器->几何着色器->裁剪->屏幕映射
光栅化阶段:三角形设置->三角形遍历->片元着色器->逐片元操作-> 输出图片
SubShader:
常见的渲染状态设置选项:
Cull Back|Front|Off 设置剔除模式:剔除背面/正面/关闭剔除
ZTest Less Greater | LEqual | GEqual | Equal | NotEqual | Always 设置深度测试时使用的函数
ZWrite On | Off 开启/关闭深度写入
Blend SrcFactor DstFactor 开启并设置混合模式
Tag块参考
Unity Shader 中各种Tag_unity atlas和tag-CSDN博客
Unity内置的变换矩阵和常用的帮助函数:
Unity编写Shader内置各种矩阵和方法介绍_unity_matrix_p_阿赵3D的博客-CSDN博客
Unity封装的文件:
UniutyCG.cginc 最常使用的帮助函数、宏和结构体等
UnityShaderVariables.cginc 内置的全局变量,如UNITY_MATRAIX_MVP等
Lighting.cginc 内置的光照模型,编写SurfaceShader时会自动包含
HLSLSupport.cginc 编写UnityShader时自动包含,包含跨平台编译的宏和定义
应用阶段到顶点着色器时可定义的语义
POSITION 模型空间中的顶点坐标
NORMAL 顶点法线
TANGENT 顶点切线
TEXCOORDn 第n组纹理坐标
COLOR 顶点颜色
顶点着色器到片元着色器时可定义的语义
SV_POSITION 裁剪空间中的顶点坐标
COLOR0/COLOR1 输出第0/1组顶点颜色
TEXCOORD0~TEXCOORD7 输出纹理坐标
SV_Target 片元着色器输出值,会存储到渲染目标中