|
// Made with Amplify Shader Editor
|
|
// Available at the Unity Asset Store - http://u3d.as/y3X
|
|
Shader "ASESampleShaders/TwoSideWithFace"
|
|
{
|
|
Properties
|
|
{
|
|
[HideInInspector] __dirty( "", Int ) = 1
|
|
_MaskClipValue( "Mask Clip Value", Float ) = 0.5
|
|
_Mask("Mask", 2D) = "white" {}
|
|
_FrontAlbedo("FrontAlbedo", 2D) = "white" {}
|
|
_FrontNormalMap("FrontNormalMap", 2D) = "bump" {}
|
|
_FrontColor("FrontColor", Color) = (1,0.6691177,0.6691177,0)
|
|
_BackAlbedo("BackAlbedo", 2D) = "white" {}
|
|
_BackNormalMap("BackNormalMap", 2D) = "bump" {}
|
|
_BackColor("BackColor", Color) = (0,0,1,0)
|
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest+0" }
|
|
Cull Off
|
|
CGPROGRAM
|
|
#pragma target 3.0
|
|
#pragma surface surf Standard keepalpha addshadow fullforwardshadows vertex:vertexDataFunc
|
|
struct Input
|
|
{
|
|
float2 texcoord_0;
|
|
fixed ASEVFace : VFACE;
|
|
float2 uv_texcoord;
|
|
};
|
|
|
|
uniform sampler2D _FrontNormalMap;
|
|
uniform sampler2D _BackNormalMap;
|
|
uniform sampler2D _FrontAlbedo;
|
|
uniform float4 _FrontColor;
|
|
uniform sampler2D _BackAlbedo;
|
|
uniform float4 _BackColor;
|
|
uniform sampler2D _Mask;
|
|
uniform float4 _Mask_ST;
|
|
uniform float _MaskClipValue = 0.5;
|
|
|
|
void vertexDataFunc( inout appdata_full v, out Input o )
|
|
{
|
|
UNITY_INITIALIZE_OUTPUT( Input, o );
|
|
o.texcoord_0.xy = v.texcoord.xy * float2( 1,1 ) + float2( 0,0 );
|
|
}
|
|
|
|
void surf( Input i , inout SurfaceOutputStandard o )
|
|
{
|
|
float3 switchResult3 = (((i.ASEVFace>0)?(UnpackNormal( tex2D( _FrontNormalMap,i.texcoord_0) )):(UnpackNormal( tex2D( _BackNormalMap,i.texcoord_0) ))));
|
|
o.Normal = switchResult3;
|
|
float4 switchResult2 = (((i.ASEVFace>0)?(( tex2D( _FrontAlbedo,i.texcoord_0) * _FrontColor )):(( tex2D( _BackAlbedo,i.texcoord_0) * _BackColor ))));
|
|
o.Albedo = switchResult2.rgb;
|
|
o.Alpha = 1;
|
|
float2 uv_Mask = i.uv_texcoord * _Mask_ST.xy + _Mask_ST.zw;
|
|
clip( tex2D( _Mask,uv_Mask).a - _MaskClipValue );
|
|
}
|
|
|
|
ENDCG
|
|
}
|
|
Fallback "Diffuse"
|
|
CustomEditor "ASEMaterialInspector"
|
|
}
|
|
/*ASEBEGIN
|
|
Version=7003
|
|
293;121;953;624;1981.486;934.496;1.3;True;False
|
|
Node;AmplifyShaderEditor.CommentaryNode;12;-1271.091,-592;Float;False;1252.009;1229.961;Inspired by 2Side Sample by The Four Headed Cat;12;14;4;5;8;7;10;11;6;9;3;1;2;Two Sided Shader using Switch by Face
|
|
Node;AmplifyShaderEditor.TextureCoordinatesNode;14;-1222.402,60.79997;Float;False;0;-1;2;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;FLOAT2;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SamplerNode;8;-865,-160;Float;True;Property;_BackAlbedo;BackAlbedo;4;0;Assets/AmplifyShaderEditor/Examples/Assets/Textures/Rock/rock_d.tif;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SamplerNode;4;-865,-528;Float;True;Property;_FrontAlbedo;FrontAlbedo;1;0;Assets/AmplifyShaderEditor/Examples/Assets/Textures/Grass/Grass_A.jpg;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.ColorNode;7;-785,32;Float;False;Property;_BackColor;BackColor;6;0;0,0,1,0;COLOR;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.ColorNode;5;-785,-336;Float;False;Property;_FrontColor;FrontColor;3;0;1,0.6691177,0.6691177,0;COLOR;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;9;-523.1008,-105.9;Float;False;0;FLOAT4;0,0,0,0;False;1;COLOR;0.0,0,0,0;False;COLOR
|
|
Node;AmplifyShaderEditor.SamplerNode;11;-809,408;Float;True;Property;_BackNormalMap;BackNormalMap;5;0;Assets/AmplifyShaderEditor/Examples/Assets/Textures/Rock/rock_n.jpg;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SamplerNode;10;-825,210;Float;True;Property;_FrontNormalMap;FrontNormalMap;2;0;Assets/AmplifyShaderEditor/Examples/Assets/Textures/Grass/Grass_N.jpg;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;FLOAT3;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;6;-518.001,-241.8997;Float;False;0;FLOAT4;0,0,0,0;False;1;COLOR;0.0,0,0,0;False;COLOR
|
|
Node;AmplifyShaderEditor.SwitchByFaceNode;3;-369,208;Float;False;0;FLOAT3;0.0,0,0;False;1;FLOAT3;0.0;False;FLOAT3
|
|
Node;AmplifyShaderEditor.SamplerNode;1;-353,336;Float;True;Property;_Mask;Mask;0;0;Assets/AmplifyShaderEditor/Examples/Community/2Sided/2smask.png;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1.0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1.0;False;FLOAT4;FLOAT;FLOAT;FLOAT;FLOAT
|
|
Node;AmplifyShaderEditor.SwitchByFaceNode;2;-257,-176;Float;False;0;COLOR;0.0;False;1;COLOR;0,0,0,0;False;COLOR
|
|
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;56.8,7.000003;Float;False;True;2;Float;ASEMaterialInspector;0;Standard;ASESampleShaders/TwoSideWithFace;False;False;False;False;False;False;False;False;False;False;False;False;Off;0;0;False;0;0;Masked;0.5;True;True;0;False;TransparentCutout;AlphaTest;All;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;False;0;255;255;0;0;0;0;False;0;4;10;25;False;0.5;True;0;Zero;Zero;0;Zero;Zero;Add;Add;0;False;0;0,0,0,0;VertexOffset;False;Cylindrical;Relative;0;;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0.0;False;4;FLOAT;0.0;False;5;FLOAT;0.0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0.0;False;9;FLOAT;0.0;False;10;OBJECT;0.0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;13;OBJECT;0.0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False
|
|
WireConnection;8;1;14;0
|
|
WireConnection;4;1;14;0
|
|
WireConnection;9;0;8;0
|
|
WireConnection;9;1;7;0
|
|
WireConnection;11;1;14;0
|
|
WireConnection;10;1;14;0
|
|
WireConnection;6;0;4;0
|
|
WireConnection;6;1;5;0
|
|
WireConnection;3;0;10;0
|
|
WireConnection;3;1;11;0
|
|
WireConnection;2;0;6;0
|
|
WireConnection;2;1;9;0
|
|
WireConnection;0;0;2;0
|
|
WireConnection;0;1;3;0
|
|
WireConnection;0;10;1;4
|
|
ASEEND*/
|
|
//CHKSM=06C08893D1EB311BDF9A3DAC56E6F187224BB806
|