Advertisement
kadyr

Untitled

Oct 12th, 2021
2,281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "ErbGameArt/Lava" {
  2.     Properties {
  3.         _color ("color", Color) = (1,0.475862,0,1)
  4.         _FlowMap ("FlowMap", 2D) = "bump" {}
  5.         _U_Speed ("U_Speed", Float ) = 0.5
  6.         _V_Speed ("V_Speed", Float ) = 0.25
  7.         _Strench ("Strench", Float ) = 0.2
  8.         _MainTexture ("MainTexture", 2D) = "black" {}
  9.         _TextureDistanse ("TextureDistanse", Range(0, 1)) = 1
  10.         _FresnelStrench ("FresnelStrench", Float ) = 1
  11.         _TextureStrench ("TextureStrench", Range(-1, 1)) = 1
  12.         _UndoEffectTexture ("UndoEffectTexture", 2D) = "black" {}
  13.         [MaterialToggle] _Fresnel ("Fresnel", Float ) = 0
  14.         _EmmisionStrench ("EmmisionStrench", Range(0, 8)) = 1.8
  15.         _Relief ("Relief", Range(0, 10)) = 0.5
  16.         _TextureChangespeed ("TextureChange speed", Range(0, 20)) = 5
  17.         _Outlinefresnel ("Outline fresnel", Float ) = 2
  18.     }
  19.     SubShader {
  20.         Tags {
  21.             "RenderType"="Opaque"
  22.         }
  23.         Pass {
  24.             Name "FORWARD"
  25.             Tags {
  26.                 "LightMode"="ForwardBase"
  27.             }
  28.            
  29.            
  30.             CGPROGRAM
  31.             #pragma vertex vert
  32.             #pragma fragment frag
  33.             #define UNITY_PASS_FORWARDBASE
  34.             #include "UnityCG.cginc"
  35.             #pragma multi_compile_fwdbase_fullshadows
  36.             #pragma multi_compile_fog
  37.             #pragma glsl
  38.             uniform float4 _TimeEditor;
  39.             uniform sampler2D _FlowMap; uniform float4 _FlowMap_ST;
  40.             uniform float _U_Speed;
  41.             uniform float _V_Speed;
  42.             uniform float _Strench;
  43.             uniform sampler2D _MainTexture; uniform float4 _MainTexture_ST;
  44.             uniform float4 _color;
  45.             uniform float _TextureDistanse;
  46.             uniform float _FresnelStrench;
  47.             uniform float _TextureStrench;
  48.             uniform sampler2D _UndoEffectTexture; uniform float4 _UndoEffectTexture_ST;
  49.             uniform fixed _Fresnel;
  50.             uniform float _EmmisionStrench;
  51.             uniform float _Relief;
  52.             uniform float _TextureChangespeed;
  53.             uniform float _Outlinefresnel;
  54.             struct VertexInput {
  55.                 float4 vertex : POSITION;
  56.                 float3 normal : NORMAL;
  57.                 float2 texcoord0 : TEXCOORD0;
  58.             };
  59.             struct VertexOutput {
  60.                 float4 pos : SV_POSITION;
  61.                 float2 uv0 : TEXCOORD0;
  62.                 float4 posWorld : TEXCOORD1;
  63.                 float3 normalDir : TEXCOORD2;
  64.                 UNITY_FOG_COORDS(3)
  65.             };
  66.             VertexOutput vert (VertexInput v) {
  67.                 VertexOutput o = (VertexOutput)0;
  68.                 o.uv0 = v.texcoord0;
  69.                 o.normalDir = UnityObjectToWorldNormal(v.normal);
  70.                 float4 node_4620 = _Time + _TimeEditor;
  71.                 float2 node_1175 = (o.uv0+(node_4620.g*_TextureChangespeed)*float2(0.1,0.1));
  72.                 float4 node_7690 = tex2Dlod(_MainTexture,float4(TRANSFORM_TEX(node_1175, _MainTexture),0.0,0));
  73.                 v.vertex.xyz += (saturate(node_7690.rgb)*v.normal*_Relief);
  74.                 o.posWorld = mul(unity_ObjectToWorld, v.vertex);
  75.                 o.pos = UnityObjectToClipPos(v.vertex );
  76.                 UNITY_TRANSFER_FOG(o,o.pos);
  77.                 return o;
  78.             }
  79.             float4 frag(VertexOutput i) : COLOR {
  80.                 i.normalDir = normalize(i.normalDir);
  81.                 float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);
  82.                 float3 normalDirection = i.normalDir;
  83.                 float4 node_3379 = _Time + _TimeEditor;
  84.                 float2 node_388 = (i.uv0+(node_3379.g*_U_Speed)*float2(1,0));
  85.                 float3 node_1054 = UnpackNormal(tex2D(_FlowMap,TRANSFORM_TEX(node_388, _FlowMap)));
  86.                 float2 node_2673 = (i.uv0+(node_3379.g*_V_Speed)*float2(0,1));
  87.                 float3 node_7769 = UnpackNormal(tex2D(_FlowMap,TRANSFORM_TEX(node_2673, _FlowMap)));
  88.                 float2 node_7014 = ((i.uv0+(float2(node_1054.r,node_7769.g)*_Strench))+_TextureDistanse*float2(1,0));
  89.                 float4 node_9700 = tex2D(_MainTexture,TRANSFORM_TEX(node_7014, _MainTexture));
  90.                 float4 node_4620 = _Time + _TimeEditor;
  91.                 float2 node_1175 = (i.uv0+(node_4620.g*_TextureChangespeed)*float2(0.1,0.1));
  92.                 float4 node_7690 = tex2D(_MainTexture,TRANSFORM_TEX(node_1175, _MainTexture));
  93.                 float3 node_4951 = (_color.rgb*(node_9700.r*node_7690.g)*_EmmisionStrench);
  94.                 float2 UV = i.uv0;
  95.                 float2 node_4937 = UV;
  96.                 float4 _UndoEffectTexture_var = tex2D(_UndoEffectTexture,TRANSFORM_TEX(node_4937, _UndoEffectTexture));
  97.                 float3 node_6801 = saturate((_UndoEffectTexture_var.rgb+_TextureStrench));
  98.                 float node_3101 = (1.0 - pow(1.0-max(0,dot(normalDirection, viewDirection)),_FresnelStrench));
  99.                 float3 emissive = lerp( (node_4951*node_6801), (node_4951*saturate((node_3101*node_3101*_Outlinefresnel))*node_6801), _Fresnel );
  100.                 float3 finalColor = emissive;
  101.                 fixed4 finalRGBA = fixed4(finalColor,1);
  102.                 UNITY_APPLY_FOG(i.fogCoord, finalRGBA);
  103.                 return finalRGBA;
  104.             }
  105.             ENDCG
  106.         }
  107.         Pass {
  108.             Name "ShadowCaster"
  109.             Tags {
  110.                 "LightMode"="ShadowCaster"
  111.             }
  112.             Offset 1, 1
  113.            
  114.             CGPROGRAM
  115.             #pragma vertex vert
  116.             #pragma fragment frag
  117.             #define UNITY_PASS_SHADOWCASTER
  118.             #include "UnityCG.cginc"
  119.             #include "Lighting.cginc"
  120.             #pragma fragmentoption ARB_precision_hint_fastest
  121.             #pragma multi_compile_shadowcaster
  122.             #pragma multi_compile_fog
  123.             #pragma glsl
  124.             uniform float4 _TimeEditor;
  125.             uniform sampler2D _MainTexture; uniform float4 _MainTexture_ST;
  126.             uniform float _Relief;
  127.             uniform float _TextureChangespeed;
  128.             struct VertexInput {
  129.                 float4 vertex : POSITION;
  130.                 float3 normal : NORMAL;
  131.                 float2 texcoord0 : TEXCOORD0;
  132.             };
  133.             struct VertexOutput {
  134.                 V2F_SHADOW_CASTER;
  135.                 float2 uv0 : TEXCOORD1;
  136.                 float3 normalDir : TEXCOORD2;
  137.             };
  138.             VertexOutput vert (VertexInput v) {
  139.                 VertexOutput o = (VertexOutput)0;
  140.                 o.uv0 = v.texcoord0;
  141.                 o.normalDir = UnityObjectToWorldNormal(v.normal);
  142.                 float4 node_4620 = _Time + _TimeEditor;
  143.                 float2 node_1175 = (o.uv0+(node_4620.g*_TextureChangespeed)*float2(0.1,0.1));
  144.                 float4 node_7690 = tex2Dlod(_MainTexture,float4(TRANSFORM_TEX(node_1175, _MainTexture),0.0,0));
  145.                 v.vertex.xyz += (saturate(node_7690.rgb)*v.normal*_Relief);
  146.                 o.pos = UnityObjectToClipPos(v.vertex );
  147.                 TRANSFER_SHADOW_CASTER(o)
  148.                 return o;
  149.             }
  150.             float4 frag(VertexOutput i) : COLOR {
  151.                 i.normalDir = normalize(i.normalDir);
  152.                 float3 normalDirection = i.normalDir;
  153.                 SHADOW_CASTER_FRAGMENT(i)
  154.             }
  155.             ENDCG
  156.         }
  157.     }
  158.     FallBack "Diffuse"
  159. }
  160.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement