anchor.diff:  				vec3 c = vec3(1, 0, 1);
   				vec3 normal = getNormal(p, rd);
   
  -				if (m == MAT_GROUND) {
  -					c = mix(vec3(0.3,0.9,0.3), vec3(0.9,0.8,0.3), min(normal.y * 1.0, 1));
  -				} else if (m == MAT_PEND) {
  -					c = vec3(1, 0.5, 1);
  -				} else if (m == MAT_WATER) {
  -					c = vec3(0, 0, 0);
  -				} else if (m == MAT_MIRROR) {
  +				if (m == MAT_MIRROR) {
   					c = vec3(0.0);
  +				} else if (m == MAT_BOX) {
  +					c = vec3(1.0, 0.0, 0.0);
  +				} else if (m == MAT_ROOM) {
  +					c = vec3(0.5);
   				}
   
   				c *= occlusion(p, normal, rd);
   				addLightning(c, normal, eye, p);
  +				
   				if (end) {
   					transmittance = 0;
   				}
   				col = mix(col, transmittance * c + scatteredLight, ref);
   
  -				if (m == MAT_GROUND) {
  +				if (m == MAT_ROOM) {
   					return col;
   				} else if (m == MAT_MIRROR) {
   					ref *= 0.9;
  -				} else if (m == MAT_PEND) {
  -					ref *= abs(normal.z);
  -				} else {
  -					ref *= 0.9;
  +				} else if (m == MAT_BOX) {
  +					ref *= 0.5;
   				}
   
   #ifdef REFLECTION
  
positive.code: 
  }
  
  #define MAT_GROUND 1.0
  #define MAT_PEND 2.0
  #define MAT_WATER 3.0
  #define MAT_MIRROR 4.0
  
  // TODO: cleanup and fix noise texture
  vec2 water(vec3 p, vec3 rd)
  {
  	if (rd.y > 0) {
  		return vec2(99999, MAT_WATER);
  
negative.code: float occlusion(vec3 p, vec3 normal, vec3 rd)
  {
  	float o = clamp(2*map(p + normal * 0.5, rd).x, 0, 1);
  	return 0.8 + 0.2*o;
  }
  
  
  