   while (!nextFragmentReadStatus && age <= maxAge)
   {
       nextFragmentReadStatus = fetchFragment(ij, age, nextFragment);
-      endPos_eye = nextFragment.eyePos.xyz;
+      endPos_eye = nextFragment.eyePos;
       ++age;
   }
 
   for (--age; age < maxAge; age++)  // all fragments
   {
     currentFragment = nextFragment;
-    vec3 segmentStartPos_eye = endPos_eye;
+    vec4 segmentStartPos_eye = endPos_eye;
     vec4 fragmentColor = currentFragment.color;
     fragmentColor.xyz *= fragmentColor.w;
 

    --age;

    endPos_eye = nextFragmentReadStatus ?
      nextFragment.eyePos.xyz : segmentStartPos_eye;

    if (activeObjectCount > 0)
    {

  FragmentData nextFragment;
  bool nextFragmentReadStatus = false;

  vec4 endPos_eye;

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

