Shader "File/Hibari"
{
Properties{}
SubShader
{
pass//一个SubShader中可以有多个Pass
{
//ShaderLabCommands //渲染命令
Name [string] //Pass名
UsePass [String] //使用哪个Shader的下的Pass ,
//Tags //Pass的标签
CGPRORAM //渲染标签开始
//程序体
ENDCG //渲染标签结束
}
}
Fallback "Diffuse"
}
Pass Tags标签
键值对的形式 文档:https://docs.unity3d.com/cn/2020.3/Manual/shader-predefined-pass-tags-built-in.html
键 | 值 | |
---|---|---|
LightMode | Always 始终渲染;不应用任何光照。这是默认值。 ForwardBase 在前向渲染中使用;应用环境光、主方向光、顶点/SH 光源和光照贴图。 ForwardAdd 在前向渲染中使用;应用附加的每像素光源(每个光源有一个通道)。 Deferred 在延迟渲染中使用;渲染 G 缓冲区。 ShadowCaster 将对象深度渲染到阴影贴图或深度纹理中。 MotionVectors 用于计算每个对象的运动矢量。 PrepassBase 用于旧版延迟光照,渲染法线和镜面反射指数。 PrepassFinal 用于旧版延迟光照;通过组合纹理、光照和发光来渲染最终颜色。 ShadowCaster 将对象深度渲染到阴影贴图或深度纹理中。 Vertex 用于旧版顶点光照渲染(当对象不进行光照贴图时);应用所有顶点光源。 VertexLMRGBM 用于旧版顶点光照渲染(当对象不进行光照贴图时), 以及光照贴图为 RGBM 编码的平台(PC 和游戏主机)。 VertexLM 用于旧版顶点光照渲染(当对象不进行光照贴图时), 以及光照贴图为双 LDR 编码的平台上(移动平台)。 Meta 在常规渲染期间不使用此通道,仅用于光照贴图烘焙或实时全局光照。 有关更多信息,请参阅光照贴图和 Meta 通道标签。 |
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@11.0/manual/urp-shaders/urp-shaderlab-pass-tags.html#urp-pass-tags-lightmode https://docs.unity3d.com/cn/2020.3/Manual/shader-predefined-pass-tags-built-in.html |
PassFlags | OnlyDirectional 仅在内置渲染管线中且渲染路径设置为 Forward, LightMode 标签值为 ForwardBase 的通道中有效。 Unity 只为该通道提供主方向光和环境光/光照探针数据。 这意味着非重要光源的数据将不会传递到顶点光源或球谐函数着色器变量。 请参阅前向渲染路径以了解详细信息。 |
|
RequireOptions | SoftVegetation 在内置渲染管线中,RequireOptions 通道标签根据项目设置启用或禁用一个通道。 |
渲染标签
CG | CGPROGRAM ENDCG |
---|---|
GLSL | GLSLPRORAM ENDGLSL |
HLSL | HLSLPRORAM ENDHLSL |
Cg:[Unity默认]
驱动:视平台而定 坐标系:左手坐标系 屏幕坐标系:
//Cg/Hlsh【DirectX】
Shader "Unity/Hibari"
{
SubShader
{
pass
{
CGPROGRAM //标签开始
ENDCG //标签结束
}
}
}
GLSL:
驱动:OpenGL 坐标系:右手坐标系 屏幕坐标系:
//GLSL【OpenGL】
Shader "Unity/Hibari"
{
SubShader
{
pass
{
GLSLPRORAM //OpenGL标签开始
ENDGLSL //OpenGL标签结束
}
}
}
HLSL:
驱动:DirectX 坐标系:左手坐标系 屏幕坐标系:
//HlsL【DirectX】
Shader "Unity/Hibari"
{
SubShader
{
pass
{
HLSLPROGRAM //DX标签开始
ENDHLSL //DX标签结束
}
}
}