anchor.diff:    }
     else {
       // get ray beginning in volume cube
  -    float t0, t1 = 0.0f;
  +    float t0, t1 = 0.0;
       bool is_t0 = intersectBox(CameraPos, sampleStep, t0, t1);
       float t_near = (is_t0 ? t0 : t1);
       // if camera is within cube, start from camera, else move inside a little
  -    t_near = (t_near < 0.0f ? 0.0f : t_near);
  +    t_near = (t_near < 0.0 ? 0.0 : t_near);
       float t_far = (is_t0 ? t1 : t0);
   
       sample_pos = CameraPos + sampleStep * t_near;
  
positive.code: }
  
  float[5] getWeights(const in vec3 sample_pos) {
    float weights[5] =float[5](0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
    for (uint i = 0u; i < num_kinects; ++i) {
      vec3 pos_calib = texture(cv_xyz_inv[i], sample_pos).xyz;
      float depth = texture(kinect_depths, vec3(pos_calib.xy, float(i))).r;
      float quality = 0.0f;
      // blend if in valid depth range
      float dist = abs(depth - pos_calib.z);
      if(dist < limit) {
  
negative.code: }
  
  vec4 blendColors2(const in vec3 sample_pos) {
    vec3 total_color = vec3(0.0);
    vec3[5] colors = getColors(sample_pos);
    float total_weight = 0.0;
    float[5] weights = getWeights(sample_pos);
    for(uint i = 0u; i < num_kinects; ++i) {
      total_color += colors[i] * weights[i];
  