anchor.diff:  (ql:quickload :clinch)
   
   (defvar shader)
  +(defvar alpha)
  +
  +;; alpha is the amount of alpha to use
  +;; vertexColor is the color value of the vertex
  +;; fragmentColor takes the vertexColors, mixes them by distance and sends them to the fragment shader
   (defvar vertex-shader-source
         "
   #version 120
   
  -attribute vec4 vertexColor;
  +uniform  float alpha;
  +attribute vec3 vertexColor;
   varying   vec4 fragmentColor;
   
   void main() {
               gl_Position = ftransform();
  -            fragmentColor = vertexColor;
  +            fragmentColor = vec4(vertexColor, alpha);
           }")
   
   
  
positive.code: 		       :shader  shader
  		       :indexes triangle-indices-buffer 
  		       :values `((:vertices ,triangle-point-buffer)
  				 (:attribute "vertexColor" ,triangle-color-buffer)))))
  
    
  (defun main-loop ()
    (gl:clear-color 0.0 0.0 0.0 0.0)
    (gl:clear :color-buffer-bit :depth-buffer-bit)
    (clinch:render triangle))
  
negative.code: 				   :name "shader"
  				   :vertex-shader-text vertex-shader-source
  				   :fragment-shader-text fragment-shader-source
  				   :attributes '(("vertexColor" :float))
  				   :uniforms   '(("alpha" :float))))
  
  
    (setf triangle-point-buffer 
  