anchor.diff:  	// compute lighting at isosurface point
   	float val = texture3D(volume_texunit, iso_pos).r;
   
  -	vec4 color = texture1D(trfunc_texunit, val);
  -	vec3 color_tmp; // mic fixme: if I initialize this to vec3(0,0,0) the whole volume disappears!
  -
   	// compute the gradient and lighting only if the pixel is visible "enough"
   	vec3 N;
   	if (precomputed_gradient)
  
positive.code: uniform bool precomputed_gradient; // whether the gradient has been precomputed or not
  
  // computes a simplified lighting equation
  vec3 blinn_phong(vec3 N, vec3 V, vec3 L, int light)
  {
  	// material properties
  	// you might want to put this into a bunch or uniforms
  
negative.code: 	}
  
  	vec3 V  = normalize(eye_position - frag_position);
  	vec4 color = texture1D(trfunc_texunit, val);
  	vec3 final_color /*= vec3(0.0, 0.0, 0.0)*/; // mic fixme: if I initialize this to vec3(0,0,0) the whole volume disappears!
  	for( int i=0; i<4; i++ )
  	{
  		if (light_enable[i])
  		{
  			vec3 L = normalize(light_position[i] - frag_position);
  			final_color = final_color + color.rgb * blinn(N, V, L, i);
  		}
  	}	
  
  	return vec4(final_color, color.a);
  }
  
  void main(void)
  