Added HairBlending shader pass;
Added HairBlendingSetting in UTSRenderPassSetting; Added MaterialType to UTS; Added MaterialFeature scope to UTS material editor; Merged HairBlendingPass and HairShadowPass into UTSPass; Fixed the bug that character box light can not update rotation correctly according to bound light source;
This commit is contained in:
@@ -22,6 +22,9 @@ Shader "HDRP/Toon"
|
||||
_BaseColorMap("BaseColorMap", 2D) = "white" {}
|
||||
[HideInInspector] _BaseColorMap_MipInfo("_BaseColorMap_MipInfo", Vector) = (0, 0, 0, 0)
|
||||
|
||||
_HairBlendingMap("HairBlendingMap", 2D) = "black" {}
|
||||
|
||||
[KeywordEnum(OFF, FrontHair, Face, Eye)] _Material_Type("Material Type", Float) = 0
|
||||
[KeywordEnum(OFF, ST, ANISO, KK, TOON)] _PBR_Mode("PBR MODE", Float) = 0
|
||||
_Metallic("_Metallic", Range(0.0, 1.0)) = 0
|
||||
_Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5
|
||||
@@ -330,8 +333,8 @@ Shader "HDRP/Toon"
|
||||
_EyeParallaxAmount("EyeParallaxAmount", Float) = 0.1
|
||||
|
||||
// Eyebrow Seethrough
|
||||
[Togle(_)] _Is_EyebrowSeethrough("_Is_EyebrowSeethrough", Float) = 0
|
||||
_EyeBrowBlendingFactor("EyeBrowBlendingFactor", Float) = 0.5
|
||||
[Togle(_)] _Is_HairBlendingTarget("_Is_HairBlendingTarget", Float) = 0
|
||||
_HairBlendingFactor("EyeBrowBlendingFactor", Float) = 0.5
|
||||
|
||||
//v.2.0.6
|
||||
_BaseColor_Step("BaseColor_Step", Range(0, 1)) = 0.5
|
||||
@@ -516,8 +519,6 @@ Shader "HDRP/Toon"
|
||||
// Variant
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#pragma shader_feature _HAIR_SHADOWS
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
#pragma shader_feature_local _DEPTHOFFSET_ON
|
||||
#pragma shader_feature_local _DOUBLESIDED_ON
|
||||
@@ -530,15 +531,6 @@ Shader "HDRP/Toon"
|
||||
#pragma shader_feature_local _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local _ _REQUIRE_UV2 _REQUIRE_UV3
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local _DISABLE_DECALS
|
||||
#pragma shader_feature_local _DISABLE_SSR
|
||||
|
||||
#pragma shader_feature_local _MASKMAP
|
||||
#pragma shader_feature_local _ANISOTROPYMAP
|
||||
#pragma shader_feature_local _SDFShadow
|
||||
#pragma shader_feature_local _SPECULARCOLORMAP
|
||||
|
||||
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
|
||||
#pragma shader_feature_local _TRANSPARENT_WRITES_MOTION_VEC
|
||||
|
||||
@@ -963,7 +955,7 @@ Shader "HDRP/Toon"
|
||||
|
||||
|
||||
HLSLPROGRAM
|
||||
// #pragma multi_compile _ UTS_DEBUG_SHADOWMAP_BINALIZATION
|
||||
//#pragma multi_compile _ UTS_DEBUG_SHADOWMAP_BINALIZATION
|
||||
#pragma multi_compile _ DEBUG_DISPLAY
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
|
||||
@@ -974,9 +966,10 @@ Shader "HDRP/Toon"
|
||||
#pragma multi_compile SCREEN_SPACE_SHADOWS_OFF SCREEN_SPACE_SHADOWS_ON
|
||||
// Supported shadow modes per light type
|
||||
#pragma multi_compile SHADOW_LOW SHADOW_MEDIUM SHADOW_HIGH
|
||||
#pragma multi_compile MATERIAL_TYPE_STANDARD MATERIAL_TYPE_FRONT_HAIR MATERIAL_TYPE_FACE MATERIAL_TYPE_EYE
|
||||
#pragma multi_compile _PBR_Mode_OFF _PBR_Mode_ST _PBR_Mode_ANISO _PBR_Mode_KK _PBR_Mode_TOON
|
||||
#define LIGHTLOOP_DISABLE_TILE_AND_CLUSTER
|
||||
// #pragma multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST
|
||||
//#pragma multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST
|
||||
#define AREA_SHADOW_LOW
|
||||
#define SHADERPASS SHADERPASS_FORWARD
|
||||
// In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI)
|
||||
@@ -998,23 +991,27 @@ Shader "HDRP/Toon"
|
||||
//Probe volume
|
||||
#pragma multi_compile PROBE_VOLUMES_OFF PROBE_VOLUMES_L1 PROBE_VOLUMES_L2
|
||||
|
||||
// Sample Face Shadow
|
||||
#pragma shader_feature ENABLE_UTS_HAIR_SHAOW
|
||||
#pragma shader_feature ENABLE_UTS_HAIR_BLENDING
|
||||
|
||||
#pragma shader_feature_local _MASKMAP
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local _ANISOTROPYMAP
|
||||
#pragma shader_feature_local _SPECULARCOLORMAP
|
||||
|
||||
#pragma shader_feature_local _SDFShadow
|
||||
#pragma shader_feature_local _RECEIVE_HAIR_SHADOW
|
||||
// Eye parallax
|
||||
#pragma shader_feature_local _EYE_PARALLAX
|
||||
// Eyebrow Blending with hair
|
||||
#pragma shader_feature_local _EYEBROW_SEETHROUGH
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Lighting.hlsl"
|
||||
|
||||
#ifdef DEBUG_DISPLAY
|
||||
# if (SHADER_LIBRARY_VERSION_MAJOR >= 10)
|
||||
#include "DebugDisplay.hlsl"
|
||||
# else
|
||||
#include "DebugDisplayHDRP7.hlsl"
|
||||
# endif
|
||||
#endif
|
||||
#ifdef DEBUG_DISPLAY
|
||||
# if (SHADER_LIBRARY_VERSION_MAJOR >= 10)
|
||||
#include "DebugDisplay.hlsl"
|
||||
# else
|
||||
#include "DebugDisplayHDRP7.hlsl"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// The light loop (or lighting architecture) is in charge to:
|
||||
// - Define light list
|
||||
@@ -1032,16 +1029,16 @@ Shader "HDRP/Toon"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl"
|
||||
#ifdef DEBUG_DISPLAY
|
||||
# if (SHADER_LIBRARY_VERSION_MAJOR >= 10)
|
||||
#include "ShaderPassForward.hlsl"
|
||||
# else
|
||||
#include "ShaderPassForwardHDRP7.hlsl"
|
||||
# endif
|
||||
#else
|
||||
#include "UtsLightLoop.hlsl"
|
||||
#include "ShaderPassForwardUTS.hlsl"
|
||||
#endif
|
||||
#ifdef DEBUG_DISPLAY
|
||||
# if (SHADER_LIBRARY_VERSION_MAJOR >= 10)
|
||||
#include "ShaderPassForward.hlsl"
|
||||
# else
|
||||
#include "ShaderPassForwardHDRP7.hlsl"
|
||||
# endif
|
||||
#else
|
||||
#include "UtsLightLoop.hlsl"
|
||||
#include "ShaderPassForwardUTS.hlsl"
|
||||
#endif
|
||||
|
||||
#pragma vertex Vert
|
||||
#pragma fragment Frag
|
||||
@@ -1110,7 +1107,6 @@ Shader "HDRP/Toon"
|
||||
Cull Front
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
|
||||
@@ -1185,6 +1181,39 @@ Shader "HDRP/Toon"
|
||||
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
Name "HairBlendingTarget"
|
||||
Tags{ "LightMode" = "HairBlendingTarget" }
|
||||
|
||||
Cull[_CullMode]
|
||||
|
||||
ZClip [_ZClip]
|
||||
ZWrite On
|
||||
ZTest LEqual
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#define SHADERPASS SHADERPASS_FORWARD
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitSharePass.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl"
|
||||
|
||||
#ifdef DEBUG_DISPLAY
|
||||
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugDisplay.hlsl"
|
||||
#endif
|
||||
|
||||
#include "HDRPToonHead.hlsl"
|
||||
#include "HDRPToonHairBlending.hlsl"
|
||||
|
||||
#pragma vertex Vert
|
||||
#pragma fragment Frag
|
||||
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
SubShader
|
||||
|
||||
Reference in New Issue
Block a user