Preview_ParallaxMappingNode.shader 877 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. Shader "Hidden/ParallaxMappingNode"
  2. {
  3. Properties
  4. {
  5. _A ("_UV", 2D) = "white" {}
  6. _B ("_Height", 2D) = "white" {}
  7. _C ("_Scale", 2D) = "white" {}
  8. _D ("_ViewDirTan", 2D) = "white" {}
  9. }
  10. SubShader
  11. {
  12. Pass
  13. {
  14. CGPROGRAM
  15. #include "UnityCG.cginc"
  16. #include "Preview.cginc"
  17. #pragma vertex vert_img
  18. #pragma fragment frag
  19. sampler2D _A;
  20. sampler2D _B;
  21. sampler2D _C;
  22. sampler2D _D;
  23. float _ParallaxType;
  24. float4 frag(v2f_img i) : SV_Target
  25. {
  26. float2 uv = tex2D( _A, i.uv ).rg;
  27. float h = tex2D( _B, i.uv ).r;
  28. float s = tex2D( _C, i.uv ).r;
  29. float3 vt = tex2D( _D, i.uv ).xyz;
  30. float2 parallaxed = uv;
  31. if ( _ParallaxType == 1 ) {
  32. parallaxed = ( ( h - 1 )*( vt.xy / vt.z ) * s ) + uv;
  33. }
  34. else {
  35. parallaxed = ( ( h - 1 )*( vt.xy ) * s ) + uv;
  36. }
  37. return float4(parallaxed, 0 , 0);
  38. }
  39. ENDCG
  40. }
  41. }
  42. }