// Made with Amplify Shader Editor v1.9.1.5 // Available at the Unity Asset Store - http://u3d.as/y3X Shader "WickerEye" { Properties { _Power("Power", Range( 0 , 10)) = 0 _FresnelScale("FresnelScale", Range( 0 , 1)) = 1.071187 _Intensity("Intensity", Range( 0 , 1)) = 0 [HDR]_EyeColorRear("Eye Color Rear", Color) = (0,0,0,0) [HDR]_EyeColorFront("Eye Color Front", Color) = (0,0,0,0) _EyeDistance("EyeDistance", Range( 0 , 0.8)) = 0 _Sharping("Sharping", Float) = 0 [HideInInspector] __dirty( "", Int ) = 1 } SubShader { Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" } Cull Back CGINCLUDE #include "UnityShaderVariables.cginc" #include "UnityPBSLighting.cginc" #include "Lighting.cginc" #pragma target 3.0 #ifdef UNITY_PASS_SHADOWCASTER #undef INTERNAL_DATA #undef WorldReflectionVector #undef WorldNormalVector #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) #endif struct Input { float3 worldNormal; INTERNAL_DATA float3 worldPos; }; uniform float4 _EyeColorRear; uniform float4 _EyeColorFront; uniform float _EyeDistance; uniform float _FresnelScale; uniform float _Sharping; uniform float _Power; uniform float _Intensity; void surf( Input i , inout SurfaceOutputStandard o ) { o.Normal = float3(0,0,1); float temp_output_76_0 = 0.0; float3 temp_cast_0 = (temp_output_76_0).xxx; o.Albedo = temp_cast_0; float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); float4 appendResult41 = (float4(( ase_worldNormal.x + _EyeDistance ) , ase_worldNormal.y , ase_worldNormal.z , 0.0)); float4 normalizeResult15 = normalize( appendResult41 ); float3 ase_worldPos = i.worldPos; float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); float dotResult18 = dot( ( normalizeResult15 * _FresnelScale ) , float4( ( ase_worldViewDir * _Sharping ) , 0.0 ) ); float clampResult28 = clamp( pow( saturate( dotResult18 ) , _Power ) , 0.0 , 1.0 ); float3 ase_vertex3Pos = mul( unity_WorldToObject, float4( i.worldPos , 1 ) ); float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); float4 ase_vertexTangent = mul( unity_WorldToObject, float4( ase_worldTangent, 0 ) ); ase_vertexTangent = normalize( ase_vertexTangent ); float dotResult36 = dot( ase_vertex3Pos , ase_vertexTangent.xyz ); float normalizeResult38 = normalize( dotResult36 ); float clampResult40 = clamp( normalizeResult38 , 0.0 , 1.0 ); float4 appendResult53 = (float4(( ase_worldNormal.x + ( _EyeDistance * -1.0 ) ) , ase_worldNormal.y , ase_worldNormal.z , 0.0)); float4 normalizeResult52 = normalize( appendResult53 ); float dotResult49 = dot( ( normalizeResult52 * _FresnelScale ) , float4( ( ase_worldViewDir * _Sharping ) , 0.0 ) ); float clampResult45 = clamp( pow( saturate( dotResult49 ) , _Power ) , 0.0 , 1.0 ); float normalizeResult61 = normalize( dotResult36 ); float clampResult60 = clamp( ( 1.0 - normalizeResult61 ) , 0.0 , 1.0 ); float4 lerpResult59 = lerp( _EyeColorRear , _EyeColorFront , ( ( ( clampResult28 * _Intensity ) * clampResult40 ) + ( ( clampResult45 * _Intensity ) * clampResult60 ) )); o.Emission = lerpResult59.rgb; o.Metallic = temp_output_76_0; o.Smoothness = temp_output_76_0; o.Occlusion = temp_output_76_0; o.Alpha = 1; } ENDCG CGPROGRAM #pragma surface surf Standard keepalpha fullforwardshadows ENDCG Pass { Name "ShadowCaster" Tags{ "LightMode" = "ShadowCaster" } ZWrite On CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 3.0 #pragma multi_compile_shadowcaster #pragma multi_compile UNITY_PASS_SHADOWCASTER #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 #include "HLSLSupport.cginc" #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) #define CAN_SKIP_VPOS #endif #include "UnityCG.cginc" #include "Lighting.cginc" #include "UnityPBSLighting.cginc" struct v2f { V2F_SHADOW_CASTER; float4 tSpace0 : TEXCOORD1; float4 tSpace1 : TEXCOORD2; float4 tSpace2 : TEXCOORD3; UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; v2f vert( appdata_full v ) { v2f o; UNITY_SETUP_INSTANCE_ID( v ); UNITY_INITIALIZE_OUTPUT( v2f, o ); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); UNITY_TRANSFER_INSTANCE_ID( v, o ); float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; half3 worldNormal = UnityObjectToWorldNormal( v.normal ); half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); half tangentSign = v.tangent.w * unity_WorldTransformParams.w; half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) return o; } half4 frag( v2f IN #if !defined( CAN_SKIP_VPOS ) , UNITY_VPOS_TYPE vpos : VPOS #endif ) : SV_Target { UNITY_SETUP_INSTANCE_ID( IN ); Input surfIN; UNITY_INITIALIZE_OUTPUT( Input, surfIN ); float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); surfIN.worldPos = worldPos; surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; SurfaceOutputStandard o; UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o ) surf( surfIN, o ); #if defined( CAN_SKIP_VPOS ) float2 vpos = IN.pos; #endif SHADOW_CASTER_FRAGMENT( IN ) } ENDCG } } Fallback "Diffuse" CustomEditor "ASEMaterialInspector" } /*ASEBEGIN Version=19105 Node;AmplifyShaderEditor.PosVertexDataNode;34;-1358.111,608.7983;Inherit;True;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.TangentVertexDataNode;37;-1150.473,849.8594;Inherit;False;0;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.ClampOpNode;28;48,352;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.PowerNode;13;-256,336;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.SaturateNode;17;-400,288;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.DotProductOpNode;18;-704,272;Inherit;True;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;21;-832,208;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.NormalizeNode;15;-1056,176;Inherit;False;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.DynamicAppendNode;41;-1248,96;Inherit;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.SimpleAddOpNode;42;-1424,16;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0.2;False;1;FLOAT;0 Node;AmplifyShaderEditor.WorldNormalVector;14;-1840,-48;Inherit;True;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.ViewDirInputsCoordNode;19;-1104,320;Inherit;False;World;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.DotProductOpNode;49;-759.9717,1488.377;Inherit;True;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.NormalizeNode;52;-1111.972,1392.377;Inherit;False;False;1;0;FLOAT4;0,0,0,0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.DynamicAppendNode;53;-1303.972,1312.377;Inherit;False;FLOAT4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.ViewDirInputsCoordNode;56;-1159.972,1536.377;Inherit;False;World;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.ClampOpNode;45;-17.17137,1315.381;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;46;194.4663,1241.725;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;57;393.7654,1072.063;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;30;-438.9841,915.8807;Inherit;False;Property;_Intensity;Intensity;2;0;Create;True;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;9;-1642.447,345.3228;Inherit;False;Property;_FresnelScale;FresnelScale;1;0;Create;True;0;0;0;False;0;False;1.071187;0.042;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.NormalizeNode;38;-290.2471,779.758;Inherit;False;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.WorldNormalVector;55;-1899.4,1278.088;Inherit;True;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;50;-869.4067,1350.117;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT;0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.SaturateNode;48;-504.2408,1534.082;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.PowerNode;47;-280.4109,1502.251;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;29;250.8955,498.2431;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.ClampOpNode;60;-193.7302,1058.321;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.NormalizeNode;61;-650.0792,1031.838;Inherit;False;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.OneMinusNode;58;-470.1378,1068.604;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.ClampOpNode;40;-79.12469,758.1805;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;39;426.8851,475.8155;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.DotProductOpNode;36;-721.4898,694.7087;Inherit;True;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleAddOpNode;54;-1479.972,1232.377;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0.2;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;65;-1857.65,965.0712;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;-1;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;8;-1049.836,1035.18;Inherit;False;Property;_Power;Power;0;0;Create;True;0;0;0;False;0;False;0;1.51;0;10;0;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;66;-930.7152,1525.304;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode;68;-859.2183,384.4514;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0 Node;AmplifyShaderEditor.RangedFloatNode;67;-1412.12,1048.338;Inherit;False;Property;_Sharping;Sharping;6;0;Create;True;0;0;0;False;0;False;0;31.5;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.ColorNode;32;159.8639,646.7467;Inherit;False;Property;_EyeColorRear;Eye Color Rear;3;1;[HDR];Create;True;0;0;0;False;0;False;0,0,0,0;0,0.02163866,0.1411765,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.ColorNode;33;135.8639,819.7467;Inherit;False;Property;_EyeColorFront;Eye Color Front;4;1;[HDR];Create;True;0;0;0;False;0;False;0,0,0,0;0,0.3008556,1.717278,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;1211,520;Float;False;True;-1;2;ASEMaterialInspector;0;0;Standard;WickerEye;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;;0;False;;False;0;False;;0;False;;False;0;Opaque;0.5;True;True;0;False;Opaque;;Geometry;All;12;all;True;True;True;True;0;False;;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;2;15;10;25;False;0.5;True;0;0;False;;0;False;;0;0;False;;0;False;;0;False;;0;False;;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;True;Relative;0;;-1;-1;-1;-1;0;False;0;0;False;;-1;0;False;;0;0;0;False;0.1;False;;0;False;;False;16;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;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 Node;AmplifyShaderEditor.RangedFloatNode;76;952.1602,472.3149;Inherit;False;Constant;_Float0;Float 0;7;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.LerpOp;59;799.3596,771.4873;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 Node;AmplifyShaderEditor.SimpleAddOpNode;64;685.0843,964.4787;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode;43;-2324.47,642.6038;Inherit;False;Property;_EyeDistance;EyeDistance;5;0;Create;True;0;0;0;False;0;False;0;0.49;0;0.8;0;1;FLOAT;0 WireConnection;28;0;13;0 WireConnection;13;0;17;0 WireConnection;13;1;8;0 WireConnection;17;0;18;0 WireConnection;18;0;21;0 WireConnection;18;1;68;0 WireConnection;21;0;15;0 WireConnection;21;1;9;0 WireConnection;15;0;41;0 WireConnection;41;0;42;0 WireConnection;41;1;14;2 WireConnection;41;2;14;3 WireConnection;42;0;14;1 WireConnection;42;1;43;0 WireConnection;49;0;50;0 WireConnection;49;1;66;0 WireConnection;52;0;53;0 WireConnection;53;0;54;0 WireConnection;53;1;55;2 WireConnection;53;2;55;3 WireConnection;45;0;47;0 WireConnection;46;0;45;0 WireConnection;46;1;30;0 WireConnection;57;0;46;0 WireConnection;57;1;60;0 WireConnection;38;0;36;0 WireConnection;50;0;52;0 WireConnection;50;1;9;0 WireConnection;48;0;49;0 WireConnection;47;0;48;0 WireConnection;47;1;8;0 WireConnection;29;0;28;0 WireConnection;29;1;30;0 WireConnection;60;0;58;0 WireConnection;61;0;36;0 WireConnection;58;0;61;0 WireConnection;40;0;38;0 WireConnection;39;0;29;0 WireConnection;39;1;40;0 WireConnection;36;0;34;0 WireConnection;36;1;37;0 WireConnection;54;0;55;1 WireConnection;54;1;65;0 WireConnection;65;0;43;0 WireConnection;66;0;56;0 WireConnection;66;1;67;0 WireConnection;68;0;19;0 WireConnection;68;1;67;0 WireConnection;0;0;76;0 WireConnection;0;2;59;0 WireConnection;0;3;76;0 WireConnection;0;4;76;0 WireConnection;0;5;76;0 WireConnection;59;0;32;0 WireConnection;59;1;33;0 WireConnection;59;2;64;0 WireConnection;64;0;39;0 WireConnection;64;1;57;0 ASEEND*/ //CHKSM=D37FED6F426337506B30546AC65B9BB79EE7F89A