float ao = smoothstep(0.0, 0.7, vGrassUv.y); ao = mix(0.05, 1.0, ao); vec3 rootColor = diffuseColor.rgb * 0.4; vec3 tipColor = diffuseColor.rgb * 1.5; vec3 grassColor = mix(rootColor, tipColor, vGrassUv.y); grassColor *= ao; float translucency = pow(vGrassUv.y, 2.0) * 0.5; grassColor += diffuseColor.rgb * translucency; diffuseColor.rgb = grassColor;