188 lines
6.7 KiB
Plaintext
188 lines
6.7 KiB
Plaintext
|
|
Shader "Genshin"
|
||
|
|
{
|
||
|
|
Properties
|
||
|
|
{
|
||
|
|
[Header(General)]
|
||
|
|
[MainTexture]_BaseMap("Base Map", 2D) = "white" {}
|
||
|
|
[MainColor] _BaseColor("Base Color", Color) = (1,1,1,1)
|
||
|
|
[ToggleUI] _IsDay("Is Day", Float) = 1
|
||
|
|
[Toggle(_DOUBLE_SIDED)] _DoubleSided("Double Sided", Float) = 0
|
||
|
|
[Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2
|
||
|
|
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Src Blend", Float) = 1
|
||
|
|
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Dst Blend", Float) = 0
|
||
|
|
|
||
|
|
[Header(Shadow)]
|
||
|
|
_LightMap("Light Map", 2D) = "white" {}
|
||
|
|
_LightDirectionMultiplier("Light Direction Multiplier", Vector) = (1,1,1,0)
|
||
|
|
_ShadowOffset("Shadow Offset", Float) = 0
|
||
|
|
_ShadowSmoothness("Shadow Smoothness", Float) = 0
|
||
|
|
[HDR] _ShadowColor("Shadow Color", Color) = (1,1,1,1)
|
||
|
|
_ShadowRamp("Shadow Ramp", 2D) = "white" {}
|
||
|
|
[ToggleUI] _UseCustomMaterialType("Use Custom Material Type", Float) = 0
|
||
|
|
_CustomMaterialType("Custom Material Type", Float) = 1
|
||
|
|
|
||
|
|
[Header(Emission)]
|
||
|
|
[Toggle(_EMISSION)] _UseEmission("Use Emission", Float) = 0
|
||
|
|
_EmissionIntensity("Emission Intensity", Float) = 1
|
||
|
|
|
||
|
|
[Header(Normal)]
|
||
|
|
[Toggle(_NORMAL_MAP)] _UseNormalMap("Use Normal Map", Float) = 0
|
||
|
|
[Normal] _NormalMap("Normal Map", 2D) = "bump" {}
|
||
|
|
|
||
|
|
[Header(Face)]
|
||
|
|
[Toggle(_IS_FACE)] _IsFace("Is Face", Float) = 0
|
||
|
|
_FaceDirection("Face Direction", Vector) = (0,0,1,0)
|
||
|
|
_FaceShadowOffset("Face Shadow Offset", Float) = 0
|
||
|
|
_FaceBlushColor("Face Blush Color", Color) = (1,1,1,1)
|
||
|
|
_FaceBlushStrength("Face Blush Strength", Float) = 1
|
||
|
|
_FaceLightMap("Face Light Map", 2D) = "white" {}
|
||
|
|
_FaceShadow("Face Shadow", 2D) = "white" {}
|
||
|
|
|
||
|
|
[Header(Specular)]
|
||
|
|
[Toggle(_SPECULAR)] _UseSpecular("Use Specular", Float) = 0
|
||
|
|
_SpecularSmoothness("Specular Smoothness", Float) = 1
|
||
|
|
_NonmetallicIntensity("Nonmetallic Intensity", Float) = 1
|
||
|
|
_MetallicIntensity("Metallic Intensity", Float) = 1
|
||
|
|
_MetalMap("Metal Map", 2D) = "white" {}
|
||
|
|
|
||
|
|
[Header(Rim Light)]
|
||
|
|
[Toggle(_RIM)] _UseRim("Use Rim", Float) = 0
|
||
|
|
_RimOffset("Rim Offset", Float) = 1
|
||
|
|
_RimThreshold("Rim Threshold", Float) = 1
|
||
|
|
_RimIntensity("Rim Intensity", Float) = 1
|
||
|
|
|
||
|
|
[Header(Outline)]
|
||
|
|
[ToggleUI] _UseSmoothNormal("Use Smooth Normal", Float) = 0
|
||
|
|
_OutlineWidth("Outline Width", Float) = 1
|
||
|
|
_OutlineWidthParams("Outline Width Params", Vector) = (0,1,0,1)
|
||
|
|
_OutlineZOffset("Outline Z Offset", Float) = 0
|
||
|
|
_ScreenOffset("Screen Offset", Vector) = (0,0,0,0)
|
||
|
|
_OutlineColor("Outline Color", Color) = (0,0,0,1)
|
||
|
|
_OutlineColor2("Outline Color 2", Color) = (0,0,0,1)
|
||
|
|
_OutlineColor3("Outline Color 3", Color) = (0,0,0,1)
|
||
|
|
_OutlineColor4("Outline Color 4", Color) = (0,0,0,1)
|
||
|
|
_OutlineColor5("Outline Color 5", Color) = (0,0,0,1)
|
||
|
|
}
|
||
|
|
|
||
|
|
Subshader
|
||
|
|
{
|
||
|
|
Tags
|
||
|
|
{
|
||
|
|
"RenderType" = "Opaque"
|
||
|
|
"RenderPipeline" = "UniversalPipeline"
|
||
|
|
"UniversalMaterialType" = "Lit"
|
||
|
|
"IgnoreProjector" = "True"
|
||
|
|
}
|
||
|
|
|
||
|
|
Pass
|
||
|
|
{
|
||
|
|
Name "Forward"
|
||
|
|
Tags {"LightMode" = "UniversalForward"}
|
||
|
|
|
||
|
|
Cull[_Cull]
|
||
|
|
ZWrite On
|
||
|
|
Blend[_SrcBlend][_DstBlend]
|
||
|
|
|
||
|
|
HLSLPROGRAM
|
||
|
|
|
||
|
|
// 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 _ _FORWARD_PLUS
|
||
|
|
#pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS
|
||
|
|
|
||
|
|
// 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 _ LOD_FADE_CROSSFADE
|
||
|
|
#pragma multi_compile_fog
|
||
|
|
#pragma multi_compile_fragment _ DEBUG_DISPLAY
|
||
|
|
|
||
|
|
#pragma shader_feature_local_fragment _DOUBLE_SIDED
|
||
|
|
#pragma shader_feature_local_fragment _EMISSION
|
||
|
|
#pragma shader_feature_local_fragment _NORMAL_MAP
|
||
|
|
#pragma shader_feature_local_fragment _IS_FACE
|
||
|
|
#pragma shader_feature_local_fragment _SPECULAR
|
||
|
|
#pragma shader_feature_local_fragment _RIM
|
||
|
|
|
||
|
|
#pragma vertex ForwardPassVertex
|
||
|
|
#pragma fragment ForwardPassFragment
|
||
|
|
|
||
|
|
#include "GenshinInput.hlsl"
|
||
|
|
#include "GenshinForwardPass.hlsl"
|
||
|
|
|
||
|
|
ENDHLSL
|
||
|
|
}
|
||
|
|
|
||
|
|
Pass
|
||
|
|
{
|
||
|
|
Name "ShadowCaster"
|
||
|
|
Tags{"LightMode" = "ShadowCaster"}
|
||
|
|
|
||
|
|
ZWrite On
|
||
|
|
ZTest LEqual
|
||
|
|
ColorMask 0
|
||
|
|
Cull[_Cull]
|
||
|
|
|
||
|
|
HLSLPROGRAM
|
||
|
|
|
||
|
|
#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 On
|
||
|
|
ColorMask R
|
||
|
|
Cull[_Cull]
|
||
|
|
|
||
|
|
HLSLPROGRAM
|
||
|
|
|
||
|
|
#pragma vertex DepthOnlyVertex
|
||
|
|
#pragma fragment DepthOnlyFragment
|
||
|
|
|
||
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
|
||
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl"
|
||
|
|
|
||
|
|
ENDHLSL
|
||
|
|
}
|
||
|
|
|
||
|
|
Pass
|
||
|
|
{
|
||
|
|
Name "Outline"
|
||
|
|
Tags {"LightMode" = "SRPDefaultUnlit"}
|
||
|
|
|
||
|
|
Cull Front
|
||
|
|
|
||
|
|
HLSLPROGRAM
|
||
|
|
|
||
|
|
#pragma vertex OutlinePassVertex
|
||
|
|
#pragma fragment OutlinePassFragment
|
||
|
|
|
||
|
|
#include "GenshinInput.hlsl"
|
||
|
|
#include "GenshinOutlinePass.hlsl"
|
||
|
|
|
||
|
|
ENDHLSL
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|