You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
9.5 KiB
Plaintext

// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "MudBun/Mud Decal Mesh (Built-In RP)"
{
Properties
{
_EdgeFadeDistance("Edge Fade Distance", Float) = 0
_EdgeFadeColor("Edge Fade Color", Color) = (1,1,1,1)
_ColorBlendSrc("Color Blend Src", Int) = 2
_ColorBlendDst("Color Blend Dst", Int) = 10
[HideInInspector]_Color("Color", Color) = (1,1,1,1)
[HideInInspector]_MaterialNeedsSdfProperties("Material Needs SDF Properties", Float) = 1
[HideInInspector]_MaterialNeedsVoxelExpansion("Material Needs Voxel Expansion", Float) = 1
_StencilMask("Stencil Mask", Int) = 32
[HideInInspector] __dirty( "", Int ) = 1
}
SubShader
{
Tags{ "RenderType" = "Transparent" "Queue" = "AlphaTest+0" "IgnoreProjector" = "True" }
Cull Back
ZWrite Off
ZTest Always
Stencil
{
Ref [_StencilMask]
ReadMask [_StencilMask]
WriteMask [_StencilMask]
Comp NotEqual
Pass Keep
Fail Keep
ZFail Keep
}
Blend [_ColorBlendSrc] [_ColorBlendDst]
CGPROGRAM
#include "UnityPBSLighting.cginc"
#include "UnityShaderVariables.cginc"
#include "UnityCG.cginc"
#pragma target 3.5
#define SHADER_GRAPH
#pragma multi_compile _ MUDBUN_PROCEDURAL
#include "Assets/MudBun/Shader/Render/ShaderCommon.cginc"
#include "Assets/MudBun/Shader/Render/MeshCommon.cginc"
#include "Assets/MudBun/Shader/Decal.cginc"
#pragma surface surf StandardCustomLighting keepalpha noshadow vertex:vertexDataFunc
struct Input
{
float3 vertexToFrag107_g26;
};
struct SurfaceOutputCustomLightingCustom
{
half3 Albedo;
half3 Normal;
half3 Emission;
half Metallic;
half Smoothness;
half Occlusion;
half Alpha;
Input SurfInput;
UnityGIInput GIData;
};
uniform float4 _EdgeFadeColor;
uniform int _StencilMask;
uniform int _ColorBlendSrc;
uniform int _ColorBlendDst;
uniform float _MaterialNeedsSdfProperties;
uniform float _MaterialNeedsVoxelExpansion;
UNITY_DECLARE_DEPTH_TEXTURE( _CameraDepthTexture );
uniform float4 _CameraDepthTexture_TexelSize;
uniform float _EdgeFadeDistance;
float2 UnStereo( float2 UV )
{
#if UNITY_SINGLE_PASS_STEREO
float4 scaleOffset = unity_StereoScaleOffset[ unity_StereoEyeIndex ];
UV.xy = (UV.xy - scaleOffset.zw) / scaleOffset.xy;
#endif
return UV;
}
float3 InvertDepthDir6_g27( float3 In )
{
float3 result = In;
#if !defined(ASE_SRP_VERSION) || ASE_SRP_VERSION <= 70301
result *= float3(1,1,-1);
#endif
return result;
}
int MyCustomExpression49_g26( float3 PositionWs, out float4 Color, out float3 Emission, out float Metallic, out float Smoothness, out float SdfValue )
{
DecalResults res = sdf_decal(PositionWs);
Color = res.mat.color;
Emission = res.mat.emissionHash.rgb;
Metallic = res.mat.metallicSmoothnessSizeTightness.x;
Smoothness = res.mat.metallicSmoothnessSizeTightness.y;
SdfValue = res.sdfValue;
return res.hit;
}
void vertexDataFunc( inout appdata_full v, out Input o )
{
UNITY_INITIALIZE_OUTPUT( Input, o );
float3 ase_vertex3Pos = v.vertex.xyz;
o.vertexToFrag107_g26 = ase_vertex3Pos;
}
inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi )
{
UnityGIInput data = s.GIData;
Input i = s.SurfInput;
half4 c = 0;
float4 unityObjectToClipPos20_g27 = UnityObjectToClipPos( i.vertexToFrag107_g26 );
float4 computeScreenPos23_g27 = ComputeScreenPos( unityObjectToClipPos20_g27 );
computeScreenPos23_g27 = computeScreenPos23_g27 / computeScreenPos23_g27.w;
computeScreenPos23_g27.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? computeScreenPos23_g27.z : computeScreenPos23_g27.z* 0.5 + 0.5;
float2 UV22_g30 = computeScreenPos23_g27.xy;
float2 localUnStereo22_g30 = UnStereo( UV22_g30 );
float2 break9_g27 = localUnStereo22_g30;
float clampDepth12_g27 = SAMPLE_DEPTH_TEXTURE( _CameraDepthTexture, computeScreenPos23_g27.xy );
#ifdef UNITY_REVERSED_Z
float staticSwitch14_g27 = ( 1.0 - clampDepth12_g27 );
#else
float staticSwitch14_g27 = clampDepth12_g27;
#endif
float3 appendResult16_g27 = (float3(break9_g27.x , break9_g27.y , staticSwitch14_g27));
float4 appendResult8_g27 = (float4((appendResult16_g27*2.0 + -1.0) , 1.0));
float4 temp_output_15_0_g27 = mul( unity_CameraInvProjection, appendResult8_g27 );
float3 temp_output_10_0_g27 = ( (temp_output_15_0_g27).xyz / (temp_output_15_0_g27).w );
float3 In6_g27 = temp_output_10_0_g27;
float3 localInvertDepthDir6_g27 = InvertDepthDir6_g27( In6_g27 );
float4 appendResult2_g27 = (float4(localInvertDepthDir6_g27 , 1.0));
float3 PositionWs49_g26 = ( _MaterialNeedsSdfProperties * _MaterialNeedsVoxelExpansion * mul( unity_CameraToWorld, appendResult2_g27 ) ).xyz;
float4 Color49_g26 = float4( 0,0,0,0 );
float3 Emission49_g26 = float3( 0,0,0 );
float Metallic49_g26 = 0.0;
float Smoothness49_g26 = 0.0;
float SdfValue49_g26 = 0.0;
int localMyCustomExpression49_g26 = MyCustomExpression49_g26( PositionWs49_g26 , Color49_g26 , Emission49_g26 , Metallic49_g26 , Smoothness49_g26 , SdfValue49_g26 );
float4 temp_output_25_0_g26 = ( _Color * Color49_g26 );
float4 lerpResult93 = lerp( _EdgeFadeColor , ( ( ( ( _StencilMask + _ColorBlendSrc + _ColorBlendDst ) * 0 ) + 1 ) * temp_output_25_0_g26 ) , saturate( ( -SdfValue49_g26 / max( _EdgeFadeDistance , 0.0 ) ) ));
c.rgb = lerpResult93.rgb;
c.a = (lerpResult93).a;
return c;
}
inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi )
{
s.GIData = data;
}
void surf( Input i , inout SurfaceOutputCustomLightingCustom o )
{
o.SurfInput = i;
}
ENDCG
}
CustomEditor "MudBun.DecalMeshMaterialEditor"
}
/*ASEBEGIN
Version=18800
-1593;178;1302;678;1431.017;353.4172;1.786809;True;False
Node;AmplifyShaderEditor.IntNode;80;-768,32;Inherit;False;Property;_ColorBlendDst;Color Blend Dst;3;0;Create;True;0;0;0;False;0;False;10;10;False;0;1;INT;0
Node;AmplifyShaderEditor.IntNode;79;-768,-64;Inherit;False;Property;_ColorBlendSrc;Color Blend Src;2;0;Create;True;0;0;0;False;0;False;2;2;False;0;1;INT;0
Node;AmplifyShaderEditor.IntNode;101;-768,-160;Inherit;False;Property;_StencilMask;Stencil Mask;11;0;Create;True;0;0;0;False;0;False;32;32;False;0;1;INT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;82;-512,-32;Inherit;False;3;3;0;INT;0;False;1;INT;0;False;2;INT;0;False;1;INT;0
Node;AmplifyShaderEditor.RangedFloatNode;85;-768,480;Inherit;False;Property;_EdgeFadeDistance;Edge Fade Distance;0;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.FunctionNode;100;-768,128;Inherit;False;Mud Decal;4;;26;680e80eee6c3d494fb7f6eab0eef7416;0;0;6;COLOR;9;FLOAT;13;FLOAT3;10;FLOAT;11;FLOAT;12;FLOAT;45
Node;AmplifyShaderEditor.NegateNode;88;-448,304;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMaxOpNode;86;-512,480;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;81;-384,-32;Inherit;False;2;2;0;INT;0;False;1;INT;0;False;1;INT;0
Node;AmplifyShaderEditor.SimpleDivideOpNode;87;-256,384;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;83;-240,-32;Inherit;False;2;2;0;INT;0;False;1;INT;1;False;1;INT;0
Node;AmplifyShaderEditor.SaturateNode;90;-96,384;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;94;0,512;Inherit;False;Property;_EdgeFadeColor;Edge Fade Color;1;0;Create;True;0;0;0;False;0;False;1,1,1,1;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;84;0,32;Inherit;False;2;2;0;INT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.LerpOp;93;256,256;Inherit;False;3;0;COLOR;1,1,1,0;False;1;COLOR;1,1,1,0;False;2;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.ComponentMaskNode;95;512,368;Inherit;False;False;False;False;True;1;0;COLOR;0,0,0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;6;768,-64;Float;False;True;-1;3;MudBun.DecalMeshMaterialEditor;0;0;CustomLighting;MudBun/Mud Decal Mesh (Built-In RP);False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;2;False;-1;7;False;-1;False;0;False;-1;0;False;-1;False;0;Custom;0.5;True;False;0;True;Transparent;;AlphaTest;All;14;all;True;True;True;True;0;False;-1;True;0;True;101;0;True;101;0;True;101;6;False;-1;1;False;-1;1;False;-1;1;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;False;1;2;True;79;10;True;80;0;5;False;-1;10;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;12;-1;-1;-1;0;False;0;0;False;-1;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;False;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
WireConnection;82;0;101;0
WireConnection;82;1;79;0
WireConnection;82;2;80;0
WireConnection;88;0;100;45
WireConnection;86;0;85;0
WireConnection;81;0;82;0
WireConnection;87;0;88;0
WireConnection;87;1;86;0
WireConnection;83;0;81;0
WireConnection;90;0;87;0
WireConnection;84;0;83;0
WireConnection;84;1;100;9
WireConnection;93;0;94;0
WireConnection;93;1;84;0
WireConnection;93;2;90;0
WireConnection;95;0;93;0
WireConnection;6;9;95;0
WireConnection;6;13;93;0
ASEEND*/
//CHKSM=7BA9812F950D60612C6391A55907ABA878D8112B