// 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()
  {
  vec3 bump = (texture3D(random3d,oPosition * 0.1).xyz - vec3(0.5,0.5,0.5)) * 0.2;
  vec3 newnormal = normalize(normalize(vnormal) + bump);
  
  gl_FragColor = ApplyLight(gl_Color,veyeposition,newnormal,vmatspecular,vmatshininess);
  }
