Showing posts with label Free Download. Show all posts
Showing posts with label Free Download. Show all posts

Unity Basic Low Poly Shader

Unity Basic Low Poly Shader

Just starting out with Unity shader programming.

Made this low poly shader:
Unity Basic Low Poly Shader

Code:
Shader "Custom/LowPoly2"
{
 Properties
 {
  _BaseColor ("BaseColor", Color) = (1,1,1,1)
 }
 SubShader
 {
  Tags { "RenderType"="Opaque" "LightMode"="ForwardBase" }
  LOD 100

  Pass
  {
   CGPROGRAM
   #pragma vertex vert
   #pragma geometry geom
   #pragma fragment frag
   
   #include "UnityCG.cginc"
   #include "UnityLightingCommon.cginc"

   struct appdata
   {
    float4 pos : POSITION;
    float3 norm : NORMAL;
   };

   struct v2g
   {
    float4 pos : SV_POSITION;
    float3 norm : TEXCOORD0;
   };

   struct g2f {
    float4 pos : SV_POSITION;
    fixed4 diffColor : COLOR0;
   };
   
   v2g vert (appdata v)
   {
    v2g o;
    o.pos = v.pos;
    o.norm = v.norm;
    return o;
   }

   [maxvertexcount(3)]
   void geom(triangle v2g i[3], inout TriangleStream triStream)
   {
    float3 commonNorm = i[0].norm;
    float4 worldPos = mul(unity_ObjectToWorld, i[0].pos);

    half3 worldNormal = normalize(mul((float3x3)unity_ObjectToWorld, commonNorm));
    half nl = max(0, dot(worldNormal, _WorldSpaceLightPos0.xyz));
    fixed4 diff = nl * _LightColor0;

    g2f o;
    o.pos = mul(UNITY_MATRIX_MVP, i[0].pos);
    o.diffColor = diff;
    triStream.Append(o);

    o.pos = mul(UNITY_MATRIX_MVP, i[1].pos);
    o.diffColor = diff;
    triStream.Append(o);

    o.pos = mul(UNITY_MATRIX_MVP, i[2].pos);
    o.diffColor = diff;
    triStream.Append(o);
   }

   uniform float4 _BaseColor;
   fixed4 frag (g2f i) : SV_Target
   {
    fixed4 mainColor = _BaseColor * i.diffColor;
    return mainColor;
   }
   ENDCG
  }
 }
}

Unity Basic Low Poly Shader

Low Poly Rocks Pack

Low Poly Rocks Pack - Free Download

Few day ago I posted several screenshots of my rocks and you guys liked it so much. Thanks.