Advertisement
kadyr

Untitled

Oct 12th, 2021
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  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