Files

347 lines
13 KiB
Plaintext
Raw Permalink Normal View History

2022-01-22 20:13:49 -08:00
// Alloy Physical Shader Framework
// Copyright 2013-2017 RUST LLC.
// http://www.alloy.rustltd.com/
Shader "Alloy/Decal/Alpha" {
Properties {
[Toggle(EFFECT_BUMP)]
_HasBumpMap ("'Normals Source' {Dropdown:{VertexNormals:{_BumpMap,_BumpScale,_DetailNormalMap,_DetailNormalMapScale,_WetNormalMap,_WetNormalMapScale}, NormalMaps:{}}}", Float) = 1
// Main Textures
_MainTextures ("'Main Textures' {Section:{Color:0}}", Float) = 0
[LM_Albedo] [LM_Transparency]
_Color ("'Tint' {}", Color) = (1,1,1,1)
[LM_MasterTilingOffset] [LM_Albedo]
_MainTex ("'Base Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_MainTexVelocity ("Scroll", Vector) = (0,0,0,0)
_MainTexUV ("UV Set", Float) = 0
[LM_Metallic]
_SpecTex ("'Metal(R) AO(G) Spec(B) Rough(A)' {Visualize:{R, G, B, A}, Parent:_MainTex}", 2D) = "white" {}
[LM_NormalMap]
_BumpMap ("'Normals' {Visualize:{NRM}, Parent:_MainTex}", 2D) = "bump" {}
_BaseColorVertexTint ("'Vertex Color Tint' {Min:0, Max:1}", Float) = 0
// Main Properties
_MainPhysicalProperties ("'Main Properties' {Section:{Color:1}}", Float) = 0
[LM_Metallic]
_Metal ("'Metallic' {Min:0, Max:1}", Float) = 1
_Specularity ("'Specularity' {Min:0, Max:1}", Float) = 1
_Roughness ("'Roughness' {Min:0, Max:1}", Float) = 1
_Occlusion ("'Occlusion Strength' {Min:0, Max:1}", Float) = 1
_BumpScale ("'Normal Strength' {}", Float) = 1
// Parallax
[Toggle(_PARALLAXMAP)]
_ParallaxT ("'Parallax' {Feature:{Color:5}}", Float) = 0
[Toggle(_BUMPMODE_POM)]
_BumpMode ("'Mode' {Dropdown:{Parallax:{_MinSamples, _MaxSamples}, POM:{}}}", Float) = 0
_ParallaxMap ("'Heightmap(G)' {Visualize:{RGB}, Parent:_MainTex}", 2D) = "black" {}
_Parallax ("'Height' {Min:0, Max:0.08}", Float) = 0.02
_MinSamples ("'Min Samples' {Min:1}", Float) = 4
_MaxSamples ("'Max Samples' {Min:1}", Float) = 20
// 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
// Team Color
[Toggle(_TEAMCOLOR_ON)]
_TeamColor ("'Team Color' {Feature:{Color:8}}", Float) = 0
[Enum(Masks, 0, Tint, 1)]
_TeamColorMasksAsTint ("'Texture Mode' {Dropdown:{Masks:{}, Tint:{_TeamColorMasks, _TeamColor0, _TeamColor1, _TeamColor2, _TeamColor3}}}", Float) = 0
_TeamColorMaskMap ("'Masks(RGBA)' {Visualize:{R, G, B, A, RGB}, Parent:_MainTex}", 2D) = "black" {}
_TeamColorMasks ("'Channels' {Vector:Channels}", Vector) = (1,1,1,0)
_TeamColor0 ("'Tint R' {}", Color) = (1,0,0)
_TeamColor1 ("'Tint G' {}", Color) = (0,1,0)
_TeamColor2 ("'Tint B' {}", Color) = (0,0,1)
_TeamColor3 ("'Tint A' {}", Color) = (0.5,0.5,0.5)
// 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
// Emission
[Toggle(_EMISSION)]
_Emission ("'Emission' {Feature:{Color:10}}", Float) = 0
[LM_Emission]
[HDR]
_EmissionColor ("'Tint' {}", Color) = (1,1,1)
[LM_Emission]
_EmissionMap ("'Mask(RGB)' {Visualize:{RGB}, Parent:_MainTex}", 2D) = "white" {}
_IncandescenceMap ("'Effect(RGB)' {Visualize:{RGB}}", 2D) = "white" {}
_IncandescenceMapVelocity ("Scroll", Vector) = (0,0,0,0)
_IncandescenceMapUV ("UV Set", Float) = 0
[Gamma]
_EmissionWeight ("'Weight' {Min:0, Max:1}", Float) = 1
// Rim Emission
[Toggle(_RIM_ON)]
_Rim ("'Rim Emission' {Feature:{Color:11}}", Float) = 0
[HDR]
_RimColor ("'Tint' {}", Color) = (1,1,1)
_RimTex ("'Effect(RGB)' {Visualize:{RGB}}", 2D) = "white" {}
_RimTexVelocity ("Scroll", Vector) = (0,0,0,0)
_RimTexUV ("UV Set", Float) = 0
[Gamma]
_RimWeight ("'Weight' {Min:0, Max:1}", Float) = 1
[Gamma]
_RimBias ("'Fill' {Min:0, Max:1}", Float) = 0
_RimPower ("'Falloff' {Min:0.01}", Float) = 4
// Dissolve
[Toggle(_DISSOLVE_ON)]
_Dissolve ("'Dissolve' {Feature:{Color:12}}", Float) = 0
[HDR]
_DissolveGlowColor ("'Glow Tint' {}", Color) = (1,1,1,1)
_DissolveTex ("'Glow Color(RGB) Opacity(A)' {Visualize:{RGB, A}}", 2D) = "white" {}
_DissolveTexUV ("UV Set", Float) = 0
_DissolveCutoff ("'Cutoff' {Min:0, Max:1}", Float) = 0
[Gamma]
_DissolveGlowWeight ("'Glow Weight' {Min:0, Max:1}", Float) = 1
_DissolveEdgeWidth ("'Glow Width' {Min:0, Max:1}", Float) = 0.01
// 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
_RenderQueue ("'Render Queue' {RenderQueue:{}}", Float) = 0
_EnableInstancing ("'Enable Instancing' {EnableInstancing:{}}", Float) = 0
}
SubShader {
Tags {
"Queue" = "AlphaTest"
"IgnoreProjector" = "True"
"RenderType" = "Opaque"
"ForceNoShadowCasting" = "True"
//"DisableBatching" = "LODFading"
}
LOD 300
Offset -1,-1
Pass {
Name "FORWARD"
Tags { "LightMode" = "ForwardBase" }
Blend SrcAlpha OneMinusSrcAlpha
ZWrite Off
Cull Back
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers gles
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _PARALLAXMAP
#pragma shader_feature _BUMPMODE_POM
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _TEAMCOLOR_ON
#pragma shader_feature _DECAL_ON
#pragma shader_feature _EMISSION
#pragma shader_feature _RIM_ON
#pragma shader_feature _DISSOLVE_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
#define _ALPHABLEND_ON
#include "Assets/Alloy/Shaders/Definition/DecalAlpha.cginc"
#include "Assets/Alloy/Shaders/Forward/Base.cginc"
ENDCG
}
Pass {
Name "FORWARD_DELTA"
Tags { "LightMode" = "ForwardAdd" }
Blend SrcAlpha One
ZWrite Off
Cull Back
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers gles
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _PARALLAXMAP
#pragma shader_feature _BUMPMODE_POM
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _TEAMCOLOR_ON
#pragma shader_feature _DECAL_ON
#pragma shader_feature _DISSOLVE_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
#define _ALPHABLEND_ON
#include "Assets/Alloy/Shaders/Definition/DecalAlpha.cginc"
#include "Assets/Alloy/Shaders/Forward/Add.cginc"
ENDCG
}
Pass {
Name "DEFERRED"
Tags { "LightMode" = "Deferred" }
// Only overwrite G-Buffer RGB, but weight whole G-Buffer.
Blend SrcAlpha OneMinusSrcAlpha, Zero OneMinusSrcAlpha
ZWrite Off
Cull Back
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers nomrt gles
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _PARALLAXMAP
#pragma shader_feature _BUMPMODE_POM
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _TEAMCOLOR_ON
#pragma shader_feature _DECAL_ON
#pragma shader_feature _EMISSION
#pragma shader_feature _RIM_ON
#pragma shader_feature _DISSOLVE_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
#define A_DECAL_ALPHA_FIRSTPASS_SHADER
#include "Assets/Alloy/Shaders/Definition/DecalAlpha.cginc"
#include "Assets/Alloy/Shaders/Forward/Gbuffer.cginc"
ENDCG
}
Pass {
Name "DEFERRED_ALPHA"
Tags { "LightMode" = "Deferred" }
// Only overwrite GBuffer A.
Blend One One
ColorMask A
ZWrite Off
Cull Back
CGPROGRAM
#pragma target 3.0
#pragma exclude_renderers nomrt gles
#pragma shader_feature EFFECT_BUMP
#pragma shader_feature _PARALLAXMAP
#pragma shader_feature _BUMPMODE_POM
#pragma shader_feature _AO2_ON
#pragma shader_feature _DETAIL_MULX2
#pragma shader_feature _NORMALMAP
#pragma shader_feature _DECAL_ON
#pragma shader_feature _DISSOLVE_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/DecalAlpha.cginc"
#include "Assets/Alloy/Shaders/Forward/Gbuffer.cginc"
ENDCG
}
}
FallBack Off
CustomEditor "AlloyFieldBasedEditor"
}