【说明】

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. ubuntu中使用apt命令安装ipython失败解决方案
  2. (转)javascript 杂谈之哪种写法你更喜欢?
  3. 京东刘海锋:过去十年架构领域最重要的三个变化
  4. linux7配置dns服务器,centOS7搭建DNS服务器配置详解
  5. java程序样例_一个完整的java程序示例
  6. 用python实现朴素贝叶斯算法_朴素贝叶斯算法 python 实现
  7. snm算法_网络发现中SNM及ICM算法的探讨
  8. java xml 解析 列表_用Java解析高级XML
  9. 串口通信中ReadFile和WriteFile的超时详解!
  10. python函数调用的例子_Python案例|混用C函数
  11. java砖头铺路面试题,Java基础知识面试题
  12. 专用集成电路设计实用教程(学习笔记一)
  13. css中如何使图标的旋转
  14. 解读arduino读取模拟信号实例
  15. 疯狂ios讲义之疯狂打飞机(2)
  16. 红米手机html文件,红米手机怎么传文件到电脑
  17. JavaScript判断浏览器内核
  18. 计算机科学与技术一级学科硕士点,计算机科学与技术一级学科(硕士)、软件工程一级学科(硕士)和计算机技术、软件工程专业硕士学位授权点通过专家评审...
  19. html模拟自动点击
  20. python 报错 被呼叫方拒绝接收呼叫_在对excel的操作中报错,被呼叫方拒绝接收呼叫...

热门文章

  1. android 设置全屏方法,Android中设置全屏的方法
  2. CodeForces - 768B Code For 1(找规律)
  3. 辽宁启迪电商:拼多多提升店铺流量的几个技巧
  4. C语言-思路与编程1
  5. C语言考试知识点汇总(实践知识点)
  6. 基于JavaWeb的MarkDown编辑器editor.md的使用
  7. Gibbs抽样方法详解
  8. 幽默笑话,来不及脱裤子,木子家原创
  9. [C++][muduo]1-muduo安装和运行
  10. 什么是“ parentalcontrolsd”,为什么它在我的Mac上运行?