anchor.diff:      (if (eq proj-type 'orthographic)
           (let* ((right (max (float (/ width height)) 1.0))
                  (top (max (float (/ height width)) 1.0)))
  -          (kit.math:ortho-matrix (- right) right (- top) top 1.0 10.0))
  -        (kit.math:perspective-matrix (/ (float pi 1.0) 4.0) (/ width height) 1.0 10.0))))
  +          (kit.math:ortho-matrix (- right) right (- top) top near far))
  +        (kit.math:perspective-matrix (/ (float pi 1.0) 4.0) (/ width height) near far))))
  +
  +(defun compute-view-matrix ()
  +  (kit.math:look-at (sb-cga:vec 1.0 1.0 0.0)
  +                    (sb-cga:vec 0.0 0.0 -5.0)
  +                    (sb-cga:vec 0.0 1.0 0.0)))
   
   (defmethod glop:on-event :after ((window cube-window) (event glop:expose-event))
     (unless (exposed window)
  
positive.code: vec4 lightDir = vec4(-0.577350, -0.577350, -0.577350, 0);
  
  uniform mat4 projectionMatrix;
  uniform mat4 modelMatrix;
  
  void main()
  {
    // add a temporary model and view transform
    vec4 modelPos = modelMatrix * in_Position - vec4(0.25, 0.75, 0.0, 0.0);
    gl_Position = projectionMatrix * modelPos;
    float intense = max(dot(-in_Normal, lightDir.xyz), 0.0);
    theColor = intense * in_Color;
  
negative.code:                            :shaders (list (make-instance 'lpsg:shader
                                                           :shader-type :vertex-shader
                                                           :source *vertex-shader-source*
                                                           :usets '(camera model))
                                            (make-instance 'lpsg:shader
                                                           :shader-type :fragment-shader
                                                           :source *fragment-shader-source*
  