anchor.diff:    return [
       new ShaderObject("ShadowV")
         ..AddAttributeVar(aVertexPosition)
  +      ..AddVaryingVar(vPositionFromLight0)
         ..AddUniformVar(uLightPerspectiveViewMatrix0)
         ..AddUniformVar(uModelMatrix)
         ..SetBodyWithMain([
  
positive.code:                                      diffuseFactor, specularFactor);
  
           ${vColors} = diffuseFactor * info.diffuseColor +
                        specularFactor * info.specularColor;
          }
          """
        ]),
  
negative.code: List<ShaderObject> createLightShaderGourad() {
    return [
      new ShaderObject("LightGouradV")
        ..AddAttributeVars([aVertexPosition, aNormal])
        ..AddVaryingVars([vColors])
        ..AddUniformVar(uPerspectiveViewMatrix)
        ..AddUniformVar(uModelMatrix)
        ..AddUniformVar(uNormalMatrix)
        ..AddUniformVar(uLightSourceInfo0)
        ..AddUniformVar(uEyePosition)
        ..AddUniformVar(uColor)
        ..SetBody([
          _lightHelpers,
          """
  