anchor.diff:    vec3 color = vec3(0);
     int bounces = 0;
     bool specular = true;
  -  for(int i=0; i < NUM_BOUNCES; i++){
  +  for(int i=0; i < NUM_BOUNCES; ++i){
       result = traverseTree(ray);
       vec3 origin = ray.origin + ray.dir * result.t;
       bounces++;
  
positive.code:   float phi = 2.0f * M_PI * xi.x;
    float theta = acos(sqrt((1.0f - xi.y)/((a*a - 1.0f) * xi.y + 1.0f)));
    float sinTheta = sin(theta);
    vec3 facet = vec3(cos(phi) * sinTheta, sinTheta * sin(phi), cos(theta));
    float trans = getAngle(oNormal);
    return rotationMatrix(cross(oNormal,vec3(0.0,0.0,1.0)),trans) * facet;
  }
  
  // GGX PDF
  
negative.code: const int NUM_BOUNCES = 8;
  const float max_t = 100000.0;
  const float n1 = 1.0;
  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));
  