anchor.diff:            // Note, this is equivalent to passing
             //   ${vPositionFromLight0} = gl_Position;
             // in the vertex shader and then computing
  -          //   d = ${vPositionFromLight0}.z / ${vPositionFromLight0}.w * 0.5 + 0.5;
  +          //float d = ${vPositionFromLight0}.z / ${vPositionFromLight0}.w * 0.5 + 0.5;
             float d  = gl_FragCoord.z;
             // d is value between 0.0 and 1.0
             gl_FragColor = packDepth(d);
  
positive.code:           //color = packDepth(unpackDepth(color));
            gl_FragColor = color;
            // necessary?
            gl_FragColor.a = 1.0;
        }
        """
        ])
  
negative.code:       ]),
      new ShaderObject("LightBlinnPhongF")
        ..AddVaryingVars([vVertexPosition, vNormal])
        ..AddUniformVars([uLightSourceInfo0, uEyePosition, uColor])
        ..SetBody([
          _lightHelpers,
          """
  