home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / graphics / rshade30 / doc / readme < prev    next >
Text File  |  1992-02-19  |  6KB  |  116 lines

  1. This is version 3.0 of rayshade, a ray tracing program.  Rayshade reads
  2. a multi-line ASCII file describing a scene to be rendered and produces
  3. a Utah Raster RLE format file of the ray-traced image.
  4.  
  5. Rayshade features:
  6.  
  7.     Nine types of primitives (box, cone, cylinder, height field,
  8.     plane, polygon, sphere, superquadric, flat- and Phong-shaded triangle)
  9.  
  10.     Composite objects
  11.  
  12.     Point, directional, and extended (area) light sources
  13.  
  14.     Solid procedural texturing and bump mapping of primitives, objects,
  15.         and individual instances of objects
  16.  
  17.     Antialiasing through adaptive supersampling or "jittered" sampling
  18.  
  19.     Arbitrary linear transformations on primitives,
  20.         instances of objects, and texture/bump maps
  21.  
  22.     Use of uniform spatial subdivision or hierarchy of bounding
  23.         volumes to speed rendering
  24.  
  25.     Options to facilitate rendering of stereo pairs
  26.  
  27.     Support for the C-Linda parallel programming language
  28.  
  29.  
  30. This version supersedes all previous versions, and it is to this release
  31. that subsequent patches should be applied.
  32.  
  33. Rayshade has been tested on many different UNIX-based computers.  If your
  34. machine has a C compiler and enough memory (at least 2Mb), rayshade should
  35. be fairly easy to port.  Be warned that rayshade uses yacc and lex to
  36. process input files.  If you do not have lex and yacc, try to get flex and
  37. bison from the Free Software Foundation folks (ftp to prep.ai.mit.edu).
  38.  
  39. Normally, rayshade makes use of the Utah Raster toolkit.  I strongly
  40. suggest you get a copy of the toolkit, as it provides a host of useful tools
  41. for image manipulation and a library for reading/reading the toolkit's
  42. "RLE" format image files.  UTAH.BLURB is the "blurb" file from the latest
  43. distribution of the toolkit, which can be obtained via anonymous ftp from
  44. cs.utah.edu (128.110.4.21), weedeater.math.yale.edu (130.132.23.17),
  45. nl.cs.cmu.edu (128.22.222.56), and uunet.uu.net.  Also of interest is the
  46. "fbm" library, available from nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, which
  47. provides tools for converting Utah Raster RLE format images to/from other
  48. formats.
  49.  
  50. If you do not want to or cannot use the Utah Raster toolkit, compile-time
  51. switches are provided to create image files using a generic format
  52. identical to that used by Mark VandeWettering's "mtv" ray tracer.  See the
  53. Makefile and src/outputp.c for details.
  54.  
  55. The directory "src" contains the source to rayshade.  To compile, edit the
  56. Makefile in that directory and change include file and library paths and set
  57. CFLAGS and LIBS to whatever is appropriate for your particular hardware/
  58. software configuration.
  59.  
  60. The file doc/rayshade.1 contains a brief manual page which covers most things
  61. a casual user will need to know in order to produce ray-traced images.
  62. A tutorial on adding new textures on rayshade is included in doc/texture.ms.
  63. A similar document on adding new primitives to rayshade is in
  64. doc/primitive.ms.  Unfortunately, there is as yet no technical documentation.
  65.  
  66. Once you've compiled rayshade, you can test it using the example input
  67. files in the Examples directory.  You can also run the output of
  68. Eric Haines' Standard Procedural Database through awk using the
  69. "nff2shade.awk" script, and feed the results to rayshade.  Note that for
  70. several of the databases, you will need to tweak the data a bit to achieve
  71. optimal runtimes.  See nff2shade.awk for details.
  72.  
  73. As of patch #2, rayshade no longer processes #include directives in the
  74. input file.  Instead, you are encouraged to make use of cpp in the
  75. design of your input files.  Rayshade will use cpp-generated lines
  76. of the form '#n "filename"' to perform meaningful error reporting.
  77. See Examples/planet.ray for more details.
  78.  
  79. Rayshade was not designed to be, nor is it, the be-all and end-all of
  80. ray tracers.  It was meant to be reasonably fast, portable, and easy to 
  81. modify.  It has some nice features which allow you to produce
  82. pretty pictures, but there are countless extensions, modifications,
  83. and improvements which could be made.  There are many routines which may be
  84. optimized and many features which could be added.  For a list of suggested
  85. improvements and projects see "TODO".  You are encouraged to modify the
  86. source code left and right.
  87.  
  88. Rayshade had its start as an "introductory" public domain ray tracer written
  89. by Roman Kuchkuda.  During 1987-88 the first version of rayshade was written
  90. by Craig Kolb, David P. Dobkin (the original cylinder, cone and extinct torus-
  91. tracing code), and David C. Hoffman (the original octree code).  Craig Kolb
  92. wrote the current version of rayshade during the fall of 1988 and has made a
  93. large number of changes since then.
  94.  
  95. The current version of rayshade owes much to a number of people who have
  96. made suggestions, fixed bugs, and who have been all-around good sports about
  97. the whole thing.  Thanks to David Dobkin, Eric Haines, Lefteris Koutsofios,
  98. Ken Musgrave, Przemek Prusinkiewicz, and Allan Snider for their encouragement,
  99. comments, and willingness to be on the Front Lines.  Thanks also to Roman
  100. Kuchkuda for providing a base upon which to build.  Special thanks to Robert
  101. Skinner for providing the Noise(), DNoise(), and other texturing functions
  102. and allowing them to be redistributed.  Thanks also to Rodney G. Bogart for
  103. providing the depth of field code.
  104.  
  105. If you find any bugs, make any useful extensions, have a nice input
  106. file, port rayshade to a new environment, or need assistance understanding a
  107. particularly braindamaged section of code, please let me know.  I can be most
  108. easily reached by email.
  109.  
  110. Craig Kolb 7 Dec 89
  111. kolb@yale.edu
  112.  
  113. Yale University Dept. of Mathematics
  114. P.O. Box 2155 Yale Station
  115. New Haven, CT  06520-2155
  116.