anchor.diff:    "
   #version 120
   
  -uniform  float alpha;
  +uniform   vec3 ambientLight;
  +uniform   vec3 lightDirection;
  +uniform   vec3 lightIntensity;
   attribute vec3 vertexColor;
   varying   vec4 fragmentColor;
   
   void main() {
               gl_Position = ftransform();
  -            fragmentColor = vec4(vertexColor, alpha);
  -        }")
  +
  +            float power = dot(normalize(lightDirection), gl_NormalMatrix * gl_Normal) ;
  +            if(power > 0) {
  +                fragmentColor = vec4(vertexColor * (ambientLight + (lightIntensity * power)), 1.0);
  +            }
  +            else {
  +                fragmentColor = vec4(vertexColor * ambientLight, 1.0);
  +            }
  +}")
   
   
   (defvar fragment-shader-source
  
positive.code: 
  (defun init ()
  
    (setf alpha 1.0)
    (setf frame-count 0)
  
    (setf viewport (make-instance 'clinch:viewport))
    (glfw:set-window-size-callback #'window-size-callback)
  
    (gl:enable :blend :depth-test :line-smooth :point-smooth :polygon-smooth :texture-2d)
    (%gl:blend-func :src-alpha :one-minus-src-alpha)
  
  
  
negative.code: 		       :indexes triangle-indices-buffer 
  		       :values `((:vertices ,triangle-point-buffer)
  				 (:attribute "vertexColor" ,triangle-color-buffer)
  				 (:normals ,triangle-normal-buffer)
  				 (:uniform "ambientLight" ambientLight)
  				 (:uniform "lightIntensity" lightIntensity)
  				 (:uniform "lightDirection" lightDirection)
  				 ))))
  
  
  (defun main-loop ()
  