Files
H3VR-TNH-Quality-of-Life-Im…/Assets/Alloy/Shaders/3.0/Specialist/Vertex Blend.shader
T
2022-01-22 20:13:49 -08:00

353 lines
14 KiB
Plaintext

// Alloy Physical Shader Framework
// Copyright 2013-2017 RUST LLC.
// http://www.alloy.rustltd.com/
Shader "Alloy/Vertex Blend" {
Properties {
// Global Settings
_Mode ("'Rendering Mode' {RenderingMode:{Opaque:{_Cutoff}, Cutout:{}, Fade:{_Cutoff}, Transparent:{_Cutoff}}}", Float) = 0
_SrcBlend ("__src", Float) = 0
_DstBlend ("__dst", Float) = 0
_ZWrite ("__zw", Float) = 1
[LM_TransparencyCutOff]
_Cutoff ("'Opacity Cutoff' {Min:0, Max:1}", Float) = 0.5
[Toggle(EFFECT_BUMP)]
_HasBumpMap ("'Normals Source' {Dropdown:{VertexNormals:{_Normal0,_SplatBumpScale0,_Normal1,_SplatBumpScale1,_Normal2,_SplatBumpScale2,_Normal3,_SplatBumpScale3,_DetailNormalMap,_DetailNormalMapScale,_WetNormalMap,_WetNormalMapScale}, NormalMaps:{}}}", Float) = 1
[Toggle(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A)]
_MainRoughnessSource ("'Roughness Source' {Dropdown:{PackedMapAlpha:{}, BaseColorAlpha:{_MaterialMap0,_SplatOcclusion0,_MaterialMap1,_SplatOcclusion1,_MaterialMap2,_SplatOcclusion2,_MaterialMap3,_SplatOcclusion3}}}", Float) = 0
// Red Splat
_Splat0Textures ("'Red Splat' {Section:{Color:{150,0,0}}}", Float) = 0
_Splat0Tint ("'Tint' {}", Color) = (1,1,1,1)
_Splat0 ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_Splat0Velocity ("Scroll", Vector) = (0,0,0,0)
_Splat0UV ("UV Set", Float) = 0
_MaterialMap0 ("'Metal(R) AO(G) Spec(B) Rough(A)' {Visualize:{R, G, B, A}, Parent:_Splat0}", 2D) = "white" {}
_Normal0 ("'Normals' {Visualize:{NRM}, Parent:_Splat0}", 2D) = "bump" {}
// Red Splat Properties
_Splat0PhysicalProperties("'Red Splat Properties' {Section:{Color:{150,0,0}}}", Float) = 0
_Metallic0 ("'Metallic' {Min:0, Max:1}", Float) = 0.0
_SplatSpecularity0 ("'Specularity' {Min:0, Max:1}", Float) = 0.5
_SplatSpecularTint0 ("'Specular Tint' {Min:0, Max:1}", Float) = 0.0
_SplatRoughness0 ("'Roughness' {Min:0, Max:1}", Float) = 1.0
_SplatOcclusion0 ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
_SplatBumpScale0 ("'Normal Strength' {}", Float) = 1
// Green Splat
_Splat1Textures ("'Green Splat' {Section:{Color:{0,149,0}}}", Float) = 0
_Splat1Tint ("'Tint' {}", Color) = (1,1,1,1)
_Splat1 ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_Splat1Velocity ("Scroll", Vector) = (0,0,0,0)
_Splat1UV ("UV Set", Float) = 0
_MaterialMap1 ("'Metal(R) AO(G) Spec(B) Rough(A)' {Visualize:{R, G, B, A}, Parent:_Splat1}", 2D) = "white" {}
_Normal1 ("'Normals' {Visualize:{NRM}, Parent:_Splat1}", 2D) = "bump" {}
// Green Splat Properties
_Splat1PhysicalProperties("'Green Splat Properties' {Section:{Color:{0,149,0}}}", Float) = 0
_Metallic1 ("'Metallic' {Min:0, Max:1}", Float) = 0.0
_SplatSpecularity1 ("'Specularity' {Min:0, Max:1}", Float) = 0.5
_SplatSpecularTint1 ("'Specular Tint' {Min:0, Max:1}", Float) = 0.0
_SplatRoughness1 ("'Roughness' {Min:0, Max:1}", Float) = 1.0
_SplatOcclusion1 ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
_SplatBumpScale1 ("'Normal Strength' {}", Float) = 1
// Blue Splat
_Splat2Textures ("'Blue Splat' {Section:{Color:{11,0,148}}}", Float) = 0
_Splat2Tint ("'Tint' {}", Color) = (1,1,1,1)
_Splat2 ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_Splat2Velocity ("Scroll", Vector) = (0,0,0,0)
_Splat2UV ("UV Set", Float) = 0
_MaterialMap2 ("'Metal(R) AO(G) Spec(B) Rough(A)' {Visualize:{R, G, B, A}, Parent:_Splat2}", 2D) = "white" {}
_Normal2 ("'Normals' {Visualize:{NRM}, Parent:_Splat2}", 2D) = "bump" {}
// Blue Splat Properties
_Splat2PhysicalProperties("'Blue Splat Properties' {Section:{Color:{11,0,148}}}", Float) = 0
_Metallic2 ("'Metallic' {Min:0, Max:1}", Float) = 0.0
_SplatSpecularity2 ("'Specularity' {Min:0, Max:1}", Float) = 0.5
_SplatSpecularTint2 ("'Specular Tint' {Min:0, Max:1}", Float) = 0.0
_SplatRoughness2 ("'Roughness' {Min:0, Max:1}", Float) = 1.0
_SplatOcclusion2 ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
_SplatBumpScale2 ("'Normal Strength' {}", Float) = 1
// Alpha Splat
[Toggle(_SPECGLOSSMAP)]
_Splat3Textures("'Alpha Splat' {Feature:{Color:{0,0,0},Hide:{_Splat3PhysicalProperties}}}", Float) = 0
_Splat3Tint ("'Tint' {}", Color) = (1,1,1,1)
_Splat3 ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_Splat3Velocity ("Scroll", Vector) = (0,0,0,0)
_Splat3UV ("UV Set", Float) = 0
_MaterialMap3 ("'Metal(R) AO(G) Spec(B) Rough(A)' {Visualize:{R, G, B, A}, Parent:_Splat3}", 2D) = "white" {}
_Normal3 ("'Normals' {Visualize:{NRM}, Parent:_Splat3}", 2D) = "bump" {}
// Alpha Splat Properties
_Splat3PhysicalProperties("'Alpha Splat Properties' {Section:{Color:{0,0,0}}}", Float) = 0
_Metallic3 ("'Metallic' {Min:0, Max:1}", Float) = 0.0
_SplatSpecularity3 ("'Specularity' {Min:0, Max:1}", Float) = 0.5
_SplatSpecularTint3 ("'Specular Tint' {Min:0, Max:1}", Float) = 0.0
_SplatRoughness3 ("'Roughness' {Min:0, Max:1}", Float) = 1.0
_SplatOcclusion3 ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
_SplatBumpScale3 ("'Normal Strength' {}", Float) = 1
// Triplanar
[Toggle(_METALLICGLOSSMAP)]
_TriplanarProperties ("'Triplanar' {Feature:{Color:4}}", Float) = 0
[Toggle(_TRIPLANARMODE_WORLD)]
_TriplanarMode ("'Mode' {Dropdown:{Object:{}, World:{}}}", Float) = 1
_TriplanarBlendSharpness ("'Sharpness' {Min:1, Max:50}", Float) = 2
// AO2
[Toggle(_AO2_ON)]
_AO2 ("'AO2' {Feature:{Color:6}}", Float) = 0
_Ao2Map ("'AO2(G)' {Visualize:{RGB}}", 2D) = "white" {}
_Ao2MapUV ("UV Set", Float) = 1
_Ao2Occlusion ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
// Detail
[Toggle(_DETAIL_MULX2)]
_DetailT ("'Detail' {Feature:{Color:7}}", Float) = 0
[Toggle(_NORMALMAP)]
_DetailMaskSource ("'Mask Source' {Dropdown:{TextureAlpha:{}, VertexColorAlpha:{_DetailMask}}}", Float) = 0
_DetailMask ("'Mask(A)' {Visualize:{A}, Parent:_MainTex}", 2D) = "white" {}
_DetailMaskStrength ("'Mask Strength' {Min:0, Max:1}", Float) = 1
[Enum(Mul, 0, MulX2, 1)]
_DetailMode ("'Color Mode' {Dropdown:{Mul:{}, MulX2:{}}}", Float) = 0
_DetailAlbedoMap ("'Color(RGB)' {Visualize:{RGB}}", 2D) = "white" {}
_DetailAlbedoMapVelocity ("Scroll", Vector) = (0,0,0,0)
_DetailAlbedoMapUV ("UV Set", Float) = 0
_DetailNormalMap ("'Normals' {Visualize:{NRM}, Parent:_DetailAlbedoMap}", 2D) = "bump" {}
_DetailWeight ("'Weight' {Min:0, Max:1}", Float) = 1
_DetailNormalMapScale ("'Normal Strength' {}", Float) = 1
// Decal
[Toggle(_DECAL_ON)]
_Decal ("'Decal' {Feature:{Color:9}}", Float) = 0
_DecalColor ("'Tint' {}", Color) = (1,1,1,1)
_DecalTex ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "black" {}
_DecalTexUV ("UV Set", Float) = 0
_DecalWeight ("'Weight' {Min:0, Max:1}", Float) = 1
_DecalSpecularity ("'Specularity' {Min:0, Max:1}", Float) = 0.5
_DecalAlphaVertexTint ("'Vertex Alpha Tint' {Min:0, Max:1}", Float) = 0
// Wetness
[Toggle(_WETNESS_ON)]
_WetnessProperties ("'Wetness' {Feature:{Color:13}}", Float) = 0
[Toggle(_WETMASKSOURCE_VERTEXCOLORALPHA)]
_WetMaskSource ("'Mask Source' {Dropdown:{TextureAlpha:{}, VertexColorAlpha:{_WetMask}}}", Float) = 0
_WetMask ("'Mask(A)' {Visualize:{A}}", 2D) = "white" {}
_WetMaskVelocity ("Scroll", Vector) = (0,0,0,0)
_WetMaskUV ("UV Set", Float) = 0
_WetMaskStrength ("'Mask Strength' {Min:0, Max:1}", Float) = 1
_WetTint ("'Tint' {}", Color) = (1,1,1,1)
_WetNormalMap ("'Normals' {Visualize:{NRM}}", 2D) = "bump" {}
_WetNormalMapVelocity ("Scroll", Vector) = (0,0,0,0)
_WetNormalMapUV ("UV Set", Float) = 0
_WetWeight ("'Weight' {Min:0, Max:1}", Float) = 1
_WetRoughness ("'Roughness' {Min:0, Max:1}", Float) = 0.2
_WetNormalMapScale ("'Normal Strength' {}", Float) = 1
// Forward Rendering Options
_ForwardRenderingOptions ("'Forward Rendering Options' {Section:{Color:19}}", Float) = 0
[ToggleOff]
_SpecularHighlights ("'Specular Highlights' {Toggle:{On:{}, Off:{}}}", Float) = 1.0
[ToggleOff]
_GlossyReflections ("'Glossy Reflections' {Toggle:{On:{}, Off:{}}}", Float) = 1.0
// Advanced Options
_AdvancedOptions ("'Advanced Options' {Section:{Color:20}}", Float) = 0
_Lightmapping ("'GI' {LightmapEmissionProperty:{}}", Float) = 1
_RenderQueue ("'Render Queue' {RenderQueue:{}}", Float) = 0
_EnableInstancing ("'Enable Instancing' {EnableInstancing:{}}", Float) = 0
}
SubShader {
Tags {
"RenderType" = "Opaque"
"PerformanceChecks" = "False"
//"DisableBatching" = "LODFading"
}
LOD 300
Pass {
Name "FORWARD"
Tags { "LightMode" = "ForwardBase" }
Blend [_SrcBlend] [_DstBlend]
ZWrite [_ZWrite]
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers gles
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature _SPECGLOSSMAP
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _TRIPLANARMODE_WORLD
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _DECAL_ON
#pragma shader_feature _WETNESS_ON
#pragma shader_feature _WETMASKSOURCE_VERTEXCOLORALPHA
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
//#pragma multi_compile __ LOD_FADE_PERCENTAGE LOD_FADE_CROSSFADE
#pragma multi_compile_fwdbase
#pragma multi_compile_fog
#pragma multi_compile_instancing
//#pragma multi_compile __ VTRANSPARENCY_ON
#pragma vertex aMainVertexShader
#pragma fragment aMainFragmentShader
#define UNITY_PASS_FORWARDBASE
#include "Assets/Alloy/Shaders/Definition/VertexBlend.cginc"
#include "Assets/Alloy/Shaders/Forward/Base.cginc"
ENDCG
}
Pass {
Name "FORWARD_DELTA"
Tags { "LightMode" = "ForwardAdd" }
Blend [_SrcBlend] One
ZWrite Off
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers gles
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature _SPECGLOSSMAP
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _TRIPLANARMODE_WORLD
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _DECAL_ON
#pragma shader_feature _WETNESS_ON
#pragma shader_feature _WETMASKSOURCE_VERTEXCOLORALPHA
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
//#pragma multi_compile __ LOD_FADE_PERCENTAGE LOD_FADE_CROSSFADE
#pragma multi_compile_fwdadd_fullshadows
#pragma multi_compile_fog
//#pragma multi_compile __ VTRANSPARENCY_ON
#pragma vertex aMainVertexShader
#pragma fragment aMainFragmentShader
#define UNITY_PASS_FORWARDADD
#include "Assets/Alloy/Shaders/Definition/VertexBlend.cginc"
#include "Assets/Alloy/Shaders/Forward/Add.cginc"
ENDCG
}
Pass {
Name "SHADOWCASTER"
Tags { "LightMode" = "ShadowCaster" }
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers gles
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _SPECGLOSSMAP
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _TRIPLANARMODE_WORLD
#pragma multi_compile_shadowcaster
#pragma multi_compile_instancing
#pragma vertex aMainVertexShader
#pragma fragment aMainFragmentShader
#define UNITY_PASS_SHADOWCASTER
#include "Assets/Alloy/Shaders/Definition/VertexBlend.cginc"
#include "Assets/Alloy/Shaders/Forward/Shadow.cginc"
ENDCG
}
Pass {
Name "DEFERRED"
Tags { "LightMode" = "Deferred" }
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers nomrt gles
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature _SPECGLOSSMAP
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _TRIPLANARMODE_WORLD
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _DECAL_ON
#pragma shader_feature _WETNESS_ON
#pragma shader_feature _WETMASKSOURCE_VERTEXCOLORALPHA
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
//#pragma multi_compile __ LOD_FADE_PERCENTAGE LOD_FADE_CROSSFADE
#pragma multi_compile_prepassfinal
#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
#pragma multi_compile_instancing
#pragma vertex aMainVertexShader
#pragma fragment aMainFragmentShader
#define UNITY_PASS_DEFERRED
#include "Assets/Alloy/Shaders/Definition/VertexBlend.cginc"
#include "Assets/Alloy/Shaders/Forward/Gbuffer.cginc"
ENDCG
}
Pass {
Name "Meta"
Tags { "LightMode" = "Meta" }
Cull Off
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers nomrt gles
#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature _SPECGLOSSMAP
#pragma shader_feature _METALLICGLOSSMAP
#pragma shader_feature _TRIPLANARMODE_WORLD
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _DECAL_ON
#pragma vertex aMainVertexShader
#pragma fragment aMainFragmentShader
#define UNITY_PASS_META
#include "Assets/Alloy/Shaders/Definition/VertexBlend.cginc"
#include "Assets/Alloy/Shaders/Forward/Meta.cginc"
ENDCG
}
}
Fallback "VertexLit"
CustomEditor "AlloyFieldBasedEditor"
}