anchor.diff:  const int NUM_BOUNCES = 8;
   const float max_t = 100000.0;
   const float n1 = 1.0;
  -const float n2 = 1.43;
  +const float n2 = 1.2;
   const float EPSILON = 0.000001;
   const float sr = n1/n2;
   const float r0 = ((n1 - n2)/(n1 + n2))*((n1 - n2)/(n1 + n2));
  
positive.code:  float theta = 2.0 * M_PI * rand(seed.zx);
   float x = r * cos(theta);
   float y = r * sin(theta);
   vec3 rv = vec3(x, y, sqrt(1.0 - r*r));
   float phi = getAngle(normal);
   return rotationMatrix(cross(normal,vec3(0.0,0.0,1.0)),phi) * rv;
  }
  
  // Moller-Trumbore
  
negative.code:   vec3 color = vec3(0);
    int bounces = 0;
    bool specular = true;
    for(int i=0; i < NUM_BOUNCES; ++i){
      result = traverseTree(ray);
      vec3 origin = ray.origin + ray.dir * result.t;
      bounces++;
  