// Copyright 2011 Riccardo Monica

#version 120

varying float vmatshininess;
varying vec3 vmatspecular;

varying vec3 veyeposition;
varying vec3 vnormal;

uniform sampler3D random3d;

varying vec3 oPosition;

vec4 ApplyLight(in vec4 oColor, in vec3 relativepos, in vec3 normal,in vec3 matspecular,in float matshininess);

void main()
  {
  float small = texture3D(random3d,oPosition * 0.5).r;
  float big = texture3D(random3d,oPosition * 0.05).g;
  float toDiscard = small * 0.10 + big * 0.90;
  if (toDiscard > 0.5)
    discard;
  
  gl_FragColor = ApplyLight(gl_Color,veyeposition,normalize(vnormal),vmatspecular,vmatshininess);
  }
