  README.txt

  This file is part of the program "room" by Thomas E. Janzen
  to illustrate his article called "Rendering Line Drawings from 3D Models"
  in Dr. Dobb's Journal September 1999
  Thomas lives in the USA and can be reached at  http:world.std.com/~tej/
  email: tej@world.std.com
  Additional review of this literature can be found at 
        http:world.std.com/~tej/pni.html
  BIBLIOGRAPHY
  Edward Angel. Interactive Computer Graphics. 
  A top-down approach with OpenGL.
  Addison-Wesley.  1997.  Reading MA.

  Janzen, Thomas.  10 Papers on Non-Photorealistic Rendering.
  http:world.std.com/~tej/.  1998.
  Reviews of influential papers in the field.

  Lansdown, John; Schofield, Simon. "Expressive Rendering:
  A Review of Nonphotorealistic Techniques." IEEE Computer Graphics and
  Applications. May 1995.

  Paul, Brian.  Mesa 3.0.  brianp@elastic.avid.com
  ftp:iris.ssec.wisc.edu/pub/Mesa.

  Saito, Takafumi; Takahashi, Tokiichiro. "Comprehensible
  Rendering of 3-D Shapes." ACM Computer Graphics: Proc. SIGGRAPH.
  Vol. 24, No. 4. Aug 1990. Pp. 197-206, Aug 1990.

  Richard E. Williamson, hale F. Trotter.  Multivariable Mathmatics.
  Linear Algoebra, Calculus, Differential Equations.  Prentice-Hall,
  Inc.  Englewood Cliffs.  1979.

  SGI OpenGL resources:
    WWW Center:   http:www.sgi.com/Technology/openGL/
    Man pages:    http:www.digital.com:80/pub/doc/opengl/
    http:www.sgi.com/Technology/openGL/glspec/glspec.html

  OpenGL Programming Guide.  2nd Ed. The Official Guide to Learnign
  OpenGL, Version 1.1.  Mason Woo, Jackie Neider, Tom Davis.
  Addison-Wesley Developers Press.  1997.

  OpenGl Reference Manual.  2nd Edition.  The Official Reference
  Document to OpenGl, Version 1.1.  Ed. Renate Kempf, Chris Fazier.
  Addison-Wesley Developers Press.  1997.

  The source files needed are:
  room.cpp room.h
  bezier.cpp bezier.h
  roomutil.cpp roomutil.h
  world.cpp world.h

  Also, the file bezier.dat is needed to render the be'zier surface.
  It consists of 16 control points that should be in the room.
  The room is measured in inches, by the way.  See the draw_room function
  for its dimensions.

  The program room should build cleanly under linux 2.2.5-15 with
  epcs C++ gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
  You need to install Mesa (cf. above) or OpenGL (TM of SGI).
  It also builds cleanly under Windows 95 (TM of Microsoft) Visual C++ (TM).
  However, you may need to instal GLUT.  See the web sites above.

  The room program has a menu with the following items:

  camera
    pan
      right
      left
    truck
      forward
      backward
  render
    Z outlines
      none
      sobel
      laplace
    threshhold
      raise
      lower
      seek threshhold
    polygons
    2 color
      2 color
      raw
  bezier
    polygons
    isoparametric
    silhouette
  EXIT



  camera
    pan
      right : Turn right 20 degrees
      left  : Turn left 20 degrees
    truck
      forward  : move camera forward 10 inches
      backward : move camera back 10 inches
  render
    Z outlines
      none : show Z buffer
      sobel : Show Z buffer processed by the sobel operator
      laplace : Show Z buffer processed by the laplace operator
    threshhold
      raise : Raise the threshhold by .005 up to 1.0
             for forcing the Z buffer to white and black;
      lower : Lower the threshhold by .005 down to 0.
      seek threshhold : Automatically find a reasonable threshhold
    polygons
    2 color
      2 color : Show the Z buffer processed by operators 
                 and forced to white/black
      raw : Show the Z buffer processed by the operators
  bezier
    polygons : Render the bezier surface with polygon patches.
    isoparametric :  Render the bezier surface with isoparametric curves
    silhouette : Render the bezier surface with a silhouette and boundaries.
  EXIT  exit the program.

There are also keyboard shortcuts for raising and lowering the threshhold:
R for raise and L for lower.

Please see the article for more information.

OpenGL is a trademark of Silicon Graphics, Inc.

  Tom Janzen tej@world.std.com
  http://world.std.com/~tej/index.html

  MANIFEST

  README.txt -- this file
  Makefile -- make file for entire program, suitable for linux and epcs
              gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
  room.cpp -- source code
  room.h     -- source code
  bezier.cpp -- source code
  bezier.h -- source code
  roomutil.cpp -- source code
  roomutil.h -- source code     
  world.cpp -- source code
  world.h -- source code
  bezier.dat -- bezier control point data file


