【说明】

URP 版本为12.1.1,Lit Shader最复杂,明白了这个Shader,其他的都可以搞明白。

会拆分成一步步地解析,所有解析都写在源码中。

如有错误,欢迎指正!

Shader "Universal Render Pipeline/Lit"//文件位于Packages/Universal RP/Shaders/Lit,当前版本为12.1.1
{Properties{// Specular vs Metallic workflow  高光和金属工作流,默认为金属工作流_WorkflowMode("WorkflowMode", Float) = 1.0//MainTexture特性将_BaseMap设置为主纹理,与材质的主纹理字段对应Material.mainTexture[MainTexture] _BaseMap("Albedo", 2D) = "white" {}//MainColor特性将_BaseColor设置为主颜色,与材质的颜色字段对应Material.color[MainColor] _BaseColor("Color", Color) = (1,1,1,1)//Alpha通道的截断值_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5//光泽度_Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5_SmoothnessTextureChannel("Smoothness texture channel", Float) = 0//金属度_Metallic("Metallic", Range(0.0, 1.0)) = 0.0_MetallicGlossMap("Metallic", 2D) = "white" {}//高光_SpecColor("Specular", Color) = (0.2, 0.2, 0.2)_SpecGlossMap("Specular", 2D) = "white" {}//ToggleOff特性使该属性在面板上显示为开关的样式,在材质面板上位于Advanced Options[ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0[ToggleOff] _EnvironmentReflections("Environment Reflections", Float) = 1.0//法线贴图_BumpScale("Scale", Float) = 1.0_BumpMap("Normal Map", 2D) = "bump" {}//高度图_Parallax("Scale", Range(0.005, 0.08)) = 0.005_ParallaxMap("Height Map", 2D) = "black" {}//环境光遮挡_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0_OcclusionMap("Occlusion", 2D) = "white" {}//自发光,指定使用HDR颜色,该颜色亮度值可以超过1[HDR] _EmissionColor("Color", Color) = (0,0,0)_EmissionMap("Emission", 2D) = "white" {}//细节贴图,可以给表面更多的细节信息_DetailMask("Detail Mask", 2D) = "white" {}_DetailAlbedoMapScale("Scale", Range(0.0, 2.0)) = 1.0_DetailAlbedoMap("Detail Albedo x2", 2D) = "linearGrey" {}_DetailNormalMapScale("Scale", Range(0.0, 2.0)) = 1.0//Normal特性添加在2D Property之前,可以检测关联的纹理贴图是否为法线贴图,如果不是,则会弹出修复提示[Normal] _DetailNormalMap("Normal Map", 2D) = "bump" {}// SRP batching compatibility for Clear Coat (Not used in Lit)[HideInInspector] _ClearCoatMask("_ClearCoatMask", Float) = 0.0[HideInInspector] _ClearCoatSmoothness("_ClearCoatSmoothness", Float) = 0.0// Blending state 混合状态参数_Surface("__surface", Float) = 0.0_Blend("__blend", Float) = 0.0_Cull("__cull", Float) = 2.0[ToggleUI] _AlphaClip("__clip", Float) = 0.0[HideInInspector] _SrcBlend("__src", Float) = 1.0[HideInInspector] _DstBlend("__dst", Float) = 0.0[HideInInspector] _ZWrite("__zw", Float) = 1.0[ToggleUI] _ReceiveShadows("Receive Shadows", Float) = 1.0// Editmode props_QueueOffset("Queue offset", Float) = 0.0// ObsoleteProperties[HideInInspector] _MainTex("BaseMap", 2D) = "white" {}[HideInInspector] _Color("Base Color", Color) = (1, 1, 1, 1)[HideInInspector] _GlossMapScale("Smoothness", Float) = 0.0[HideInInspector] _Glossiness("Smoothness", Float) = 0.0[HideInInspector] _GlossyReflections("EnvironmentReflections", Float) = 0.0//NoScaleOffset 在材质面板上隐藏纹理贴图的Tiling和Offset选项[HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}[HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}[HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}}SubShader{// Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings// this Subshader will fail. One can add a subshader below or fallback to Standard built-in to make this// material work with both Universal Render Pipeline and Builtin Unity Pipeline//使用URP管线,需要指定渲染管线为UniversalPipeline,否则这个SubShader将失败。如果想使该材质同时在URP和内置管线中运行,可在下面添加一个新的SubShader或者Fallback到内置管线Tags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "Lit" "IgnoreProjector" = "True" "ShaderModel"="4.5"}//指定ShaderModel为4.5,平台需要支持OpenGL ES 3.1LOD 300//连续七个Pass,分为是前向渲染、阴影投射、GBuffer、深度、相机法线、光照贴图、2D渲染// ------------------------------------------------------------------//  Forward pass. Shades all light in a single pass. GI + emission + FogPass{// Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with// no LightMode tag are also rendered by Universal Render PipelineName "ForwardLit"Tags{"LightMode" = "UniversalForward"}Blend[_SrcBlend][_DstBlend]ZWrite[_ZWrite]Cull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5// -------------------------------------// Material Keywords#pragma shader_feature_local _NORMALMAP#pragma shader_feature_local _PARALLAXMAP#pragma shader_feature_local _RECEIVE_SHADOWS_OFF#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON#pragma shader_feature_local_fragment _EMISSION#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#pragma shader_feature_local_fragment _OCCLUSIONMAP#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF#pragma shader_feature_local_fragment _SPECULAR_SETUP// -------------------------------------// Universal Pipeline keywords#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION#pragma multi_compile_fragment _ _SHADOWS_SOFT#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3#pragma multi_compile_fragment _ _LIGHT_LAYERS#pragma multi_compile_fragment _ _LIGHT_COOKIES#pragma multi_compile _ _CLUSTERED_RENDERING// -------------------------------------// Unity defined keywords#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING#pragma multi_compile _ SHADOWS_SHADOWMASK#pragma multi_compile _ DIRLIGHTMAP_COMBINED#pragma multi_compile _ LIGHTMAP_ON#pragma multi_compile _ DYNAMICLIGHTMAP_ON#pragma multi_compile_fog#pragma multi_compile_fragment _ DEBUG_DISPLAY//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma instancing_options renderinglayer#pragma multi_compile _ DOTS_INSTANCING_ON#pragma vertex LitPassVertex#pragma fragment LitPassFragment#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"ENDHLSL}Pass{Name "ShadowCaster"Tags{"LightMode" = "ShadowCaster"}ZWrite OnZTest LEqualColorMask 0Cull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5// -------------------------------------// Material Keywords#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma multi_compile _ DOTS_INSTANCING_ON// -------------------------------------// Universal Pipeline keywords// This is used during shadow map generation to differentiate between directional and punctual light shadows, as they use different formulas to apply Normal Bias#pragma multi_compile_vertex _ _CASTING_PUNCTUAL_LIGHT_SHADOW#pragma vertex ShadowPassVertex#pragma fragment ShadowPassFragment#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"ENDHLSL}Pass{// Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with// no LightMode tag are also rendered by Universal Render PipelineName "GBuffer"Tags{"LightMode" = "UniversalGBuffer"}ZWrite[_ZWrite]ZTest LEqualCull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5// -------------------------------------// Material Keywords#pragma shader_feature_local _NORMALMAP#pragma shader_feature_local_fragment _ALPHATEST_ON//#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON#pragma shader_feature_local_fragment _EMISSION#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#pragma shader_feature_local_fragment _OCCLUSIONMAP#pragma shader_feature_local _PARALLAXMAP#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF#pragma shader_feature_local_fragment _SPECULAR_SETUP#pragma shader_feature_local _RECEIVE_SHADOWS_OFF// -------------------------------------// Universal Pipeline keywords#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN//#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS//#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION#pragma multi_compile_fragment _ _SHADOWS_SOFT#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3#pragma multi_compile_fragment _ _LIGHT_LAYERS#pragma multi_compile_fragment _ _RENDER_PASS_ENABLED// -------------------------------------// Unity defined keywords#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING#pragma multi_compile _ SHADOWS_SHADOWMASK#pragma multi_compile _ DIRLIGHTMAP_COMBINED#pragma multi_compile _ LIGHTMAP_ON#pragma multi_compile _ DYNAMICLIGHTMAP_ON#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma instancing_options renderinglayer#pragma multi_compile _ DOTS_INSTANCING_ON#pragma vertex LitGBufferPassVertex#pragma fragment LitGBufferPassFragment#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl"ENDHLSL}Pass{Name "DepthOnly"Tags{"LightMode" = "DepthOnly"}ZWrite OnColorMask 0Cull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5#pragma vertex DepthOnlyVertex#pragma fragment DepthOnlyFragment// -------------------------------------// Material Keywords#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma multi_compile _ DOTS_INSTANCING_ON#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"ENDHLSL}// This pass is used when drawing to a _CameraNormalsTexture texturePass{Name "DepthNormals"Tags{"LightMode" = "DepthNormals"}ZWrite OnCull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5#pragma vertex DepthNormalsVertex#pragma fragment DepthNormalsFragment// -------------------------------------// Material Keywords#pragma shader_feature_local _NORMALMAP#pragma shader_feature_local _PARALLAXMAP#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma multi_compile _ DOTS_INSTANCING_ON#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitDepthNormalsPass.hlsl"ENDHLSL}// This pass it not used during regular rendering, only for lightmap baking.Pass{Name "Meta"Tags{"LightMode" = "Meta"}Cull OffHLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5#pragma vertex UniversalVertexMeta#pragma fragment UniversalFragmentMetaLit#pragma shader_feature EDITOR_VISUALIZATION#pragma shader_feature_local_fragment _SPECULAR_SETUP#pragma shader_feature_local_fragment _EMISSION#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _SPECGLOSSMAP#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl"ENDHLSL}Pass{Name "Universal2D"Tags{ "LightMode" = "Universal2D" }Blend[_SrcBlend][_DstBlend]ZWrite[_ZWrite]Cull[_Cull]HLSLPROGRAM#pragma exclude_renderers gles gles3 glcore#pragma target 4.5#pragma vertex vert#pragma fragment frag#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"ENDHLSL}}SubShader{// Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings// this Subshader will fail. One can add a subshader below or fallback to Standard built-in to make this// material work with both Universal Render Pipeline and Builtin Unity Pipeline//同上一个SubShader一样,区别是ShaderModel为2.0,在unity所有支持的平台上都能够工作,如果上一个SubShader不能运行,则使用这个SubShaderTags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "Lit" "IgnoreProjector" = "True" "ShaderModel"="2.0"}LOD 300// ------------------------------------------------------------------//  Forward pass. Shades all light in a single pass. GI + emission + FogPass{// Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with// no LightMode tag are also rendered by Universal Render PipelineName "ForwardLit"Tags{"LightMode" = "UniversalForward"}Blend[_SrcBlend][_DstBlend]ZWrite[_ZWrite]Cull[_Cull]HLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma instancing_options renderinglayer// -------------------------------------// Material Keywords#pragma shader_feature_local _NORMALMAP#pragma shader_feature_local _PARALLAXMAP#pragma shader_feature_local _RECEIVE_SHADOWS_OFF#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON#pragma shader_feature_local_fragment _EMISSION#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#pragma shader_feature_local_fragment _OCCLUSIONMAP#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF#pragma shader_feature_local_fragment _SPECULAR_SETUP// -------------------------------------// Universal Pipeline keywords#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS#pragma multi_compile_fragment _ _SHADOWS_SOFT#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION#pragma multi_compile_fragment _ _LIGHT_LAYERS#pragma multi_compile_fragment _ _LIGHT_COOKIES#pragma multi_compile _ _CLUSTERED_RENDERING// -------------------------------------// Unity defined keywords#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING#pragma multi_compile _ SHADOWS_SHADOWMASK#pragma multi_compile _ DIRLIGHTMAP_COMBINED#pragma multi_compile _ LIGHTMAP_ON#pragma multi_compile_fog#pragma multi_compile_fragment _ DEBUG_DISPLAY#pragma vertex LitPassVertex#pragma fragment LitPassFragment#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl"ENDHLSL}Pass{Name "ShadowCaster"Tags{"LightMode" = "ShadowCaster"}ZWrite OnZTest LEqualColorMask 0Cull[_Cull]HLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0//--------------------------------------// GPU Instancing#pragma multi_compile_instancing// -------------------------------------// Material Keywords#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A// -------------------------------------// Universal Pipeline keywords// This is used during shadow map generation to differentiate between directional and punctual light shadows, as they use different formulas to apply Normal Bias#pragma multi_compile_vertex _ _CASTING_PUNCTUAL_LIGHT_SHADOW#pragma vertex ShadowPassVertex#pragma fragment ShadowPassFragment#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl"ENDHLSL}Pass{Name "DepthOnly"Tags{"LightMode" = "DepthOnly"}ZWrite OnColorMask 0Cull[_Cull]HLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#pragma vertex DepthOnlyVertex#pragma fragment DepthOnlyFragment// -------------------------------------// Material Keywords#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"ENDHLSL}// This pass is used when drawing to a _CameraNormalsTexture texturePass{Name "DepthNormals"Tags{"LightMode" = "DepthNormals"}ZWrite OnCull[_Cull]HLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0#pragma vertex DepthNormalsVertex#pragma fragment DepthNormalsFragment// -------------------------------------// Material Keywords#pragma shader_feature_local _NORMALMAP#pragma shader_feature_local _PARALLAXMAP#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A//--------------------------------------// GPU Instancing#pragma multi_compile_instancing#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitDepthNormalsPass.hlsl"ENDHLSL}// This pass it not used during regular rendering, only for lightmap baking.Pass{Name "Meta"Tags{"LightMode" = "Meta"}Cull OffHLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0#pragma vertex UniversalVertexMeta#pragma fragment UniversalFragmentMetaLit#pragma shader_feature EDITOR_VISUALIZATION#pragma shader_feature_local_fragment _SPECULAR_SETUP#pragma shader_feature_local_fragment _EMISSION#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED#pragma shader_feature_local_fragment _SPECGLOSSMAP#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/LitMetaPass.hlsl"ENDHLSL}Pass{Name "Universal2D"Tags{ "LightMode" = "Universal2D" }Blend[_SrcBlend][_DstBlend]ZWrite[_ZWrite]Cull[_Cull]HLSLPROGRAM#pragma only_renderers gles gles3 glcore d3d11#pragma target 2.0#pragma vertex vert#pragma fragment frag#pragma shader_feature_local_fragment _ALPHATEST_ON#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl"ENDHLSL}}FallBack "Hidden/Universal Render Pipeline/FallbackError"//回退到FallBackError,该文件在Packages/Universal RP/Shaders/Utils/FallbackError.shaderCustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.LitShader"//自定义的材质编辑界面
}

URP Lit Shader解析(1)相关推荐

  1. URP Lit Shader解析(2)—LitInput.hlsl

    #ifndef UNIVERSAL_LIT_INPUT_INCLUDED //使用#ifndef 指令判断该文件是否已经引入,防止在编写Shader过程中重复引入该文件,作用类同C++中的头文件定义方 ...

  2. 深入URP之Shader篇8: SimpleLit Shader分析(4)

    Simple Lit Forward Pass 本篇继续 Fragment shader 函数 InitializeInputData InputData inputData; InitializeI ...

  3. URP/LWRP Shader实现描边效果

    2021.1.11 更新: 我觉得我写得比较老了,可以看看下面新整理的文章 LWRP/URP/HDRP中的描边shader:https://zhuanlan.zhihu.com/p/354190065 ...

  4. [HDRP] PBR Lit shader(一.基础用法篇)

    本文转自Unity Connect博主 樱花兔 借助这默认的HDRP Shader,小伙伴们可以轻松地在HDRP中创建逼真的物理材质.它包括一些效果选项,例如次表面散射,虹彩,顶点或像素位移等各种表现 ...

  5. URP渲染管线初步解析

    URP渲染管线初步解析 LWRP现在在unity2019已经成为默认的管线了,并更名为URP(通用渲染管线),替代了原来的builtin管线,以下是应用阶段的渲染流程顺序. 步骤分析 URP整个渲染的 ...

  6. 深入URP之Shader篇5: SimpleLit Shader分析(1)

    SimpleLit.shader 本篇开始分析simple lit shader.我们通过分析unlit shader了解了URP shader的结构,以及一些基础功能.而simple lit sha ...

  7. 深入URP之Shader篇3: Unlit Shader分析[下]

    Unlit shader 上篇中我们分析了Unlit shader的Properties在ShaderGUI中的处理,接下来看Sub Shader. SubShader unlit shader以及其 ...

  8. 【内置渲染管线】Unity标准Shader解析(渲染模式,贴图类型)

    目录 一.标准Shader之四大渲染模式 1.Opaque(不透明) 2.Cutout(镂空) 3.Fade(隐现) 4.Transparent(透明) 二.标准Shader之十种贴图类型 1.标准 ...

  9. unity3d学习笔记-着色器(4.一些贴图)

    1.遮挡贴图occlusion maps 即使在 PBR (基于物理的渲染)中,环境光也会以奇怪的方式反射它应该被遮挡的地方.遮挡贴图为这些遮挡区域添加阴影. 遮挡图与 3D 建模软件中的大多数模型一 ...

最新文章

  1. Vs2008不能调试的问题
  2. MSSSQL 脚本收藏
  3. 解决oracle语句中 含数字的字符串按数字排序问题
  4. Statement对象
  5. Pytorch 自定义激活函数前向与反向传播 sigmoid
  6. arm shellcode 编写详析2
  7. 量子计算在秘密分析中的应用【会议】
  8. MySQL每秒57万的写入,快还是慢?
  9. Apk打包-apk的解压和压缩实验
  10. 如何查看 Swift 的源代码
  11. brew下载资源失败解决办法
  12. 教室多媒体计算机主频,多媒体教室配置和列表.doc
  13. 怎样关闭域用户电脑中的趋势杀毒软件
  14. 湖大计算机学院博士后李晓灿,李蕊-湖大信息科学与工程学院
  15. 知识付费海哥:知识变现三剑客
  16. 三星 android 调试模式设置,三星盖世4 usb调试怎么打开?安卓4.2怎样打开USB调试...
  17. Cascaded Partial Decoder for Fast and Accurate Salient Object Detection
  18. 洛谷 CF311B Cats Transport
  19. 2021-2027中国内部威胁管理(ITM)软件市场现状及未来发展趋势
  20. 【一起学UniGUI】--UniGUI的界面与程序架构(4)

热门文章

  1. 淘宝商品详情 API 返回值说明
  2. Eclipse搭建scala环境(解决“JDT weaving is currently disabled”)
  3. 携手亚马逊云科技帆软,淄博热力开启传统企业数字化转型新征程。
  4. 微信小程序获取手机号的乱码问题
  5. git 和 linux、_linux和git拔掉
  6. webpack多页面打包
  7. 全国计算机二级抵免自考,自考计算机可以抵免吗?
  8. 服务器上传图片显示图片404,关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题...
  9. 腾讯未来交通白皮书 附下载地址
  10. Synology NAS多媒体(Photo Station管理照片)