Better System Definition

   DONE: Nikodemus 2003-04-09 (Not perfect, but better)

   Someone who understands asdf or defsystem should set things up 
   properly.

Better Rendering Window

   DONE: Dagit 2003-04-07

   Lightweight: the current one slows rendering down to crawl compared
   to rendering just to disk without the window. This is not accpetable
   in the long run.

README & INSTALL

   DONE: Nikodemus 2003-04-06

   For the release we need a README file with installation and getting
   started instructions.

Profile & Optimize

   DONE: Nikodemus 2003-04-06 (sufficent for 0.1 release)

   Profile using METERING, optimize the worst bottlenecks. These probably
   include CAMERA-CAST-RAY, which could be made to recycle rays.

   Inverse matrices should be procomputed.

   Some functions should be inlined, and additional type declarations
   might not hurt here and there. Though, since declarations are assertions
   THE style does not always help speed.

   Also look into compiler efficiency notes and see if block-compilation
   (or something like that) of CMUCL would be of use.

   Inline declarations should probably be hidden inside macroes.

Change GPL Commment Style

   DONE

   Change the beginning GPL comment in each file to use ";;" style.

Examples

   DONE: Nikodemus

   examples.lisp should be expanded to render a comprehensive
   set of sample scenes. Including:

    * box
    * gradient
    * turbulence

   The examples should also excercise the system in enough way to
   show the feasibility of various API choises.

Camera Bugfix

   DONE: Nikodemus (2003-04-03)

   NOTES: The camera implementation may still lead to degenerate images
          if the user supplies +Z+ as sky-vector and then points camera
          in +Z+ direction -- a tad unlikely, but a complete implementation
          should at least warn in this case. Also, a complete implemtantation
          should warn if the user has supplied and invalid sky-vector:
          now +Z+ is silently substituted. Tough cookies.

   Currently the camera's up- and right vectors are nearly
   always wrong, the worse the more the camera is off z-axis alignment.

   Fix the problem, while trying to maintain current interface,

   Optionally add sky, and/or angle-parameters. Stripping of adjustable
   right and up is also legal at this stage as long as the bug is fixed.

Affine transformation

   DONE: Nikodemus (2003-04-01)

   Implement affine transformations applicable to all objects and
   lights.

Packages

   DONE: Nikodemus (2003-03-30)

   The entire system should be contained within packages GRT.
   Package GRT should export user level API functions only.

Better rendering interface (*)

 story:

   Instead of separate render-on-screen and render-to-file
   functions there sould be just sinle, that then takes
   appropiate arguments.

Turbulence pattern (*)

 story:

   Basic turbulence pattern.

Noise (**)

 story:

   Noise function.

 time:

   2002-01-02 23:30 - 04:00
   2002-01-03 08:00 - 12:00
   2002-01-03 21:00 - 00:40

 comment:

   Damn! That was tricky. First confused bythe math, then haunted by
   billy typo-bug. Now it's perfect (but sightly unoptimized.) ;)

Rendering window (****)

 story:

   render-on-screen should render the scene in a window. CLX based?

 time:

   2002-01-02 01:00 - 03:00
   2002-01-02 19:00 - 22:00

Simple gradient pattern (*)

 story:

   A pattern that takes two values and
   returns a pattern function that gives a gradient blend of the two
   values along dependant on the Y-value of the argument vector.

   The given values can be either floats or colors.

 depends:

   - Blending functions

 time: 

   2002-01-02 00:20 - 00:55

Blending functions (*)

 story:

   Blending functions for floats and colors that take two values
   and a blend-value between 0.0 and 1.0 and return a blend of
   the two values in the given ratio.

 time:

   2002-01-01 23:40 - 00:20

Non-filtering transparency (*)

 story:

   Objects should have a "transmit" property as well: from 1.0 for
   totally transparent objects to 0.0 for opaque objects.

   Transmit-value is the relative amount of light that passes through
   an object unfiltered.

 time:

   2003-01-01 21:30 - 23:40

Testing framework (**)

 story:

   A testing framework that can be used for regression and other
   tests. Should not be an end in itself, but a development tool:
   features that can be expressed in terms of unit-tests are faster to
   develop than features that need rendering of test images to
   check functionality.

 time:

   2003-01-01 21:00 - 21:30

