You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
382 lines
13 KiB
382 lines
13 KiB
Shader "Universal Render Pipeline/Baked Lit" |
|
{ |
|
Properties |
|
{ |
|
[MainTexture] _BaseMap("Texture", 2D) = "white" {} |
|
[MainColor] _BaseColor("Color", Color) = (1, 1, 1, 1) |
|
_Cutoff("AlphaCutout", Range(0.0, 1.0)) = 0.5 |
|
_BumpMap("Normal Map", 2D) = "bump" {} |
|
|
|
// BlendMode |
|
_Surface("__surface", Float) = 0.0 |
|
_Blend("__mode", Float) = 0.0 |
|
_Cull("__cull", Float) = 2.0 |
|
[ToggleUI] _AlphaClip("__clip", Float) = 0.0 |
|
[HideInInspector] _BlendOp("__blendop", Float) = 0.0 |
|
[HideInInspector] _SrcBlend("__src", Float) = 1.0 |
|
[HideInInspector] _DstBlend("__dst", Float) = 0.0 |
|
[HideInInspector] _ZWrite("__zw", Float) = 1.0 |
|
|
|
// Editmode props |
|
_QueueOffset("Queue offset", Float) = 0.0 |
|
|
|
[HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} |
|
[HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} |
|
[HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} |
|
} |
|
|
|
SubShader |
|
{ |
|
Tags { "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel"="4.5"} |
|
LOD 100 |
|
|
|
Blend [_SrcBlend][_DstBlend] |
|
ZWrite [_ZWrite] |
|
Cull [_Cull] |
|
|
|
Pass |
|
{ |
|
Name "BakedLit" |
|
Tags{ "LightMode" = "UniversalForwardOnly" } |
|
|
|
HLSLPROGRAM |
|
#pragma exclude_renderers gles gles3 glcore |
|
#pragma target 4.5 |
|
|
|
|
|
// ------------------------------------- |
|
// Material Keywords |
|
#pragma shader_feature_local _NORMALMAP |
|
#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT |
|
#pragma shader_feature_local_fragment _ALPHATEST_ON |
|
#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON |
|
|
|
// ------------------------------------- |
|
// Universal Pipeline keywords |
|
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION |
|
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 |
|
|
|
// ------------------------------------- |
|
// Unity defined keywords |
|
#pragma multi_compile _ DIRLIGHTMAP_COMBINED |
|
#pragma multi_compile _ LIGHTMAP_ON |
|
#pragma multi_compile_fog |
|
#pragma multi_compile _ DEBUG_DISPLAY |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
#pragma multi_compile _ DOTS_INSTANCING_O |
|
|
|
#pragma vertex BakedLitForwardPassVertex |
|
#pragma fragment BakedLitForwardPassFragment |
|
|
|
// Lighting include is needed because of GI |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitForwardPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
Pass |
|
{ |
|
Tags{"LightMode" = "DepthOnly"} |
|
|
|
ZWrite On |
|
ColorMask 0 |
|
|
|
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 |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
#pragma multi_compile _ DOTS_INSTANCING_ON |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
// This pass is used when drawing to a _CameraNormalsTexture texture with the forward renderer or the depthNormal prepass with the deferred renderer. |
|
Pass |
|
{ |
|
Name "DepthNormalsOnly" |
|
Tags{"LightMode" = "DepthNormalsOnly"} |
|
|
|
ZWrite On |
|
Cull[_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_fragment _ALPHATEST_ON |
|
|
|
// ------------------------------------- |
|
// Unity defined keywords |
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
#pragma multi_compile _ DOTS_INSTANCING_ON |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitDepthNormalsPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
// Same as DepthNormals pass, but used for deferred renderer and forwardOnly materials. |
|
Pass |
|
{ |
|
Name "DepthNormalsOnly" |
|
Tags{"LightMode" = "DepthNormalsOnly"} |
|
|
|
ZWrite On |
|
Cull[_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_fragment _ALPHATEST_ON |
|
|
|
// ------------------------------------- |
|
// Unity defined keywords |
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant |
|
|
|
//-------------------------------------- |
|
// Defines |
|
#define BUMP_SCALE_NOT_SUPPORTED 1 |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
#pragma multi_compile _ DOTS_INSTANCING_ON |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
// This pass it not used during regular rendering, only for lightmap baking. |
|
Pass |
|
{ |
|
Name "Meta" |
|
Tags{"LightMode" = "Meta"} |
|
|
|
Cull Off |
|
|
|
HLSLPROGRAM |
|
#pragma exclude_renderers gles gles3 glcore |
|
#pragma target 4.5 |
|
|
|
#pragma vertex UniversalVertexMeta |
|
#pragma fragment UniversalFragmentMetaUnlit |
|
#pragma shader_feature EDITOR_VISUALIZATION |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitMetaPass.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/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl" |
|
ENDHLSL |
|
} |
|
} |
|
|
|
SubShader |
|
{ |
|
Tags { "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel"="2.0"} |
|
LOD 100 |
|
|
|
Blend [_SrcBlend][_DstBlend] |
|
ZWrite [_ZWrite] |
|
Cull [_Cull] |
|
|
|
Pass |
|
{ |
|
Name "BakedLit" |
|
Tags{ "LightMode" = "UniversalForwardOnly" } |
|
|
|
HLSLPROGRAM |
|
#pragma only_renderers gles gles3 glcore d3d11 |
|
#pragma target 2.0 |
|
|
|
|
|
// ------------------------------------- |
|
// Material Keywords |
|
#pragma shader_feature_local _NORMALMAP |
|
#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT |
|
#pragma shader_feature_local_fragment _ALPHATEST_ON |
|
#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON |
|
|
|
// ------------------------------------- |
|
// Universal Pipeline keywords |
|
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION |
|
|
|
// ------------------------------------- |
|
// Unity defined keywords |
|
#pragma multi_compile _ DIRLIGHTMAP_COMBINED |
|
#pragma multi_compile _ LIGHTMAP_ON |
|
#pragma multi_compile_fog |
|
#pragma multi_compile _ DEBUG_DISPLAY |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
|
|
#pragma vertex BakedLitForwardPassVertex |
|
#pragma fragment BakedLitForwardPassFragment |
|
|
|
// Lighting include is needed because of GI |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitForwardPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
Pass |
|
{ |
|
Tags{"LightMode" = "DepthOnly"} |
|
|
|
ZWrite On |
|
ColorMask 0 |
|
|
|
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 |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
// This pass is used when drawing to a _CameraNormalsTexture texture |
|
Pass |
|
{ |
|
Name "DepthNormals" |
|
Tags{"LightMode" = "DepthNormals"} |
|
|
|
ZWrite On |
|
Cull[_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_fragment _ALPHATEST_ON |
|
|
|
//-------------------------------------- |
|
// GPU Instancing |
|
#pragma multi_compile_instancing |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitDepthNormalsPass.hlsl" |
|
ENDHLSL |
|
} |
|
|
|
// This pass it not used during regular rendering, only for lightmap baking. |
|
Pass |
|
{ |
|
Name "Meta" |
|
Tags{"LightMode" = "Meta"} |
|
|
|
Cull Off |
|
|
|
HLSLPROGRAM |
|
#pragma only_renderers gles gles3 glcore d3d11 |
|
#pragma target 2.0 |
|
|
|
#pragma vertex UniversalVertexMeta |
|
#pragma fragment UniversalFragmentMetaUnlit |
|
#pragma shader_feature EDITOR_VISUALIZATION |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/BakedLitMetaPass.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/BakedLitInput.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/Universal2D.hlsl" |
|
ENDHLSL |
|
} |
|
} |
|
FallBack "Universal Render Pipeline/Unlit" |
|
CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.BakedLitShader" |
|
}
|
|
|