anchor.diff:    return createNode(index);
   }
   
  +float nearChildIndex(Node node, Ray ray){
  +  uint axis = uint(node.split);
  +  float index = ray.dir[axis] > 0.0 ? node.left : node.right;
  +  return index;
  +}
  +
   Node farChild(Node node, Ray ray){
     uint axis = uint(node.split);
     float index = ray.dir[axis] <= 0.0 ? node.left : node.right;
     return createNode(index);
  +}
  +
  +float farChildIndex(Node node, Ray ray){
  +  uint axis = uint(node.split);
  +  float index = ray.dir[axis] <= 0.0 ? node.left : node.right;
  +  return index;
   }
   
   
  
positive.code:         return result;
        }
        Node parentNear = nearChild(createNode(current.parent), ray);
        if(current.index == parentNear.index){
          current = createNode(current.sibling);
          state = FROM_SIBLING;
        } else {
          current = createNode(current.parent);
          state = FROM_CHILD;
        }
      } else {
        bool fromParent = state == FROM_PARENT;
        uint nextState = fromParent ? FROM_SIBLING : FROM_CHILD;
        float nextIndex = fromParent ? current.sibling : current.parent;
        if(rayBoxIntersect(current, ray) >= result.t){
          current = createNode(nextIndex);
          state = nextState;
        } else if (current.triangles > -1.0) {
          processLeaf(current, ray, result);
          current = createNode(nextIndex);
          state = nextState;
        } else {
          current = nearChild(current, ray);
          state = FROM_PARENT;
        }
      }
    }
  }
  
negative.code:     vec2 texCoord = barycentricTexCoord(weights, createTexCoords(result.index)) + 0.5 / vec2(textureSize(atlasTex, 0));
      Material mat = createMaterial(result.index);
      vec3 macroNormal = barycentricNormal(weights, createNormals(result.index));
      vec3 microNormal = randomNormal(macroNormal, mat.specular, origin);
      vec3 incident = ray.dir;
      vec3 implicit = specular ? mat.emittance : vec3(0);
      specular = rand(origin.zx) < schlick(incident, microNormal) || mat.metal > 0.0;
      ray.origin = origin + macroNormal * EPSILON;
  