 
             vec3 textureSamplePos =
                 (volumes[0].textureMatrix * inverseViewMatrix *
-                 vec4(startpos_eye, 1.0f)).xyz;
+                 vec4(startPos_eye, 1.0f)).xyz;
 
             getVolumeSample(objectID, textureSamplePos, density, gradient);
             squareGradientLength = dot(gradient, gradient);

            break;

          // prepare next segment
          lastpos_eye = startpos_eye;
          startpos_eye += stepFactor * dirvec_eye;

          // FIXME: do we need it?
          // pos_proj = gl_ProjectionMatrix*vec4(startpos_eye,1.0f);
          // pos_proj.z /= pos_proj.w;
          // pos_proj.z += 1.0f;
          // pos_proj.z /=2.0f;
        }  // sampling steps

        finalColor = finalColor + fragmentColor * (1.0f - finalColor.a);
      }  // if (activeobjectcount > 0) ...
    }
    else
    {

  vec4 finalColor = vec4(0, 0, 0, 0);

  uint age = 1;
  while (!nextFragmentReadStatus && age < maxAge)
  {
      nextFragmentReadStatus = fetchFragment(ij, age, nextFragment);
      endPos_eye = nextFragment.eyePos.xyz;
      ++age;
  }

  for (--age; age < maxAge; age++)  // all fragments
  {
    currentFragmentReadStatus = nextFragmentReadStatus;
    currentFragment = nextFragment;
    segmentStartPos_eye = endPos_eye;
    vec4 fragmentColor = currentFragment.color;

    objectId = currentFragment.objectId;
    updateActiveObjects(objectId, activeObjects);
    activeObjectCount = bitCount(activeObjects);

    // fetch next Fragment
    nextFragmentReadStatus = false;
    while (!nextFragmentReadStatus && age < maxAge)
    {
      nextFragmentReadStatus = fetchFragment(ij, age + 1, nextFragment);
      ++age;
    }

    if (nextFragmentReadStatus)
    {
      endPos_eye = nextFragment.eyePos.xyz;
    }
    else
    {
      endPos_eye = segmentStartPos_eye;
    }

    // set up segment direction vector
    direction_eye = endPos_eye - segmentStartPos_eye;

    // FIXME: do we need it?
    // pos_proj = projectionMatrix*vec4(startPos_eye, 1.0f);
    // pos_proj.z /= pos_proj.w;
    // pos_proj += 1.0f;
    // pos_proj /= 2.0f;

    if (activeObjectCount > 0)  // in frag
    {
      uint ao = activeObjects;
      int aoc = activeObjectCount;

      // calculate length in texture space (needed for step width calculation)
      float segment_texture_length = 0.0;
      for (int oi = 0; oi < activeObjectCount; oi++)
      {
        int objectID = findLSB(ao);
        ao &= (~(1 << objectID));
