Advertisement
Malzar

Shader PietM-Tableau

Feb 12th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "Malzar/PietM-Tableau"
  2. {
  3.     Properties
  4.     {
  5.         _MainTex ("Albedo (RGB)", 2D) = "white" {}
  6.     }
  7.     SubShader
  8.     {
  9.         Tags { "RenderType"="Opaque" }
  10.         LOD 200
  11.  
  12.         CGPROGRAM
  13.         #pragma surface surf Standard fullforwardshadows
  14.         #pragma target 3.0
  15.  
  16.         sampler2D _MainTex;
  17.  
  18.         struct Input
  19.         {
  20.             float2 uv_MainTex;
  21.         };
  22.  
  23.         float drawLine(float pos,float ini, float size){
  24.             half halfSize = size*0.5;
  25.             return smoothstep(ini-halfSize,ini-halfSize*0.9,pos)-
  26.                     smoothstep(ini+halfSize*0.9,ini+halfSize,pos);
  27.         }
  28.  
  29.         float drawLine(float2 pos,float2 ini, float dir,float size){
  30.             half halfSize = size*0.5;
  31.             half dirNormalized = dir>0;
  32.             return ((1-dirNormalized)+(dir*step(ini.x,pos.x)))*
  33.              (step(ini.y-halfSize,pos.y)-step(ini.y+halfSize,pos.y));
  34.         }
  35.  
  36.         float drawRectangle(float2 pos,float2 ini, float2 size){
  37.             return (step(ini.x,pos.x)-step(ini.x+ size.x,pos.x))*
  38.             (step(ini.y,pos.y)-step(ini.y+size.y,pos.y));
  39.         }
  40.  
  41.         void surf (Input IN, inout SurfaceOutputStandard o)
  42.         {
  43.             float2 st = (IN.uv_MainTex);
  44.             float size =8.0;
  45.             //remember, the uv are inverted
  46.             float3 pos =float3(((1-st.x)*size)-(size*0.5),0,((1-st.y)*size)-(size*0.5));
  47.  
  48.             float rectangleBackground = drawRectangle(pos.xz,float2(-4,-4),float2(8,8));
  49.             float rectangleRed = drawRectangle(pos.xz,float2(-4,1.5),float2(1.25,3));
  50.             float rectangleYellow = drawRectangle(pos.xz,float2(3.5,1.5),float2(0.5,3));
  51.             float rectangleBlue = drawRectangle(pos.xz,float2(2.25,-4),float2(1.75,1));
  52.             float line1 = drawLine(pos.z,1.5,0.25);
  53.             float line2 = drawLine(pos.z,2.75,0.25);
  54.             float line3 = drawLine(pos.x,-2.65,0.25);
  55.             float line4 = drawLine(pos.x,3.5,0.25);
  56.             float line5 = drawLine(pos.x,2.25,0.25);
  57.             float line6 = drawLine(pos.xz,float2(-2.65,-3),1,0.25);
  58.             float line7 = drawLine(pos.zx,float2(1.5,-3.5),1,0.25);
  59.  
  60.             //float line2= drawLine2(pos.xz,float2(0.5,1),1,0.25);  
  61.  
  62.             float3 color = rectangleBackground * float3(0.8,0.8,0.5)+(1-rectangleBackground)*float3(0,0,0);
  63.             color = rectangleRed*float3(1,0,0)+(1-rectangleRed)*color;
  64.             color = rectangleYellow*float3(1,0.8,0.1)+(1-rectangleYellow)*color;            
  65.             color = rectangleBlue*float3(0,0,1)+(1-rectangleBlue)*color;
  66.  
  67.             color = line1*float3(0,0,0)+(1-line1)*color;
  68.             color = line2*float3(0,0,0)+(1-line2)*color;
  69.             color = line3*float3(0,0,0)+(1-line3)*color;
  70.             color = line4*float3(0,0,0)+(1-line4)*color;
  71.             color = line5*float3(0,0,0)+(1-line5)*color;
  72.             color = line6*float3(0,0,0)+(1-line6)*color;
  73.             color = line7*float3(0,0,0)+(1-line7)*color;
  74.  
  75.             o.Albedo = color;
  76.  
  77.  
  78.             o.Metallic = 0;
  79.             o.Smoothness = 0;
  80.         }
  81.         ENDCG
  82.     }
  83.     FallBack "Diffuse"
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement