home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume21 / rayshade / part01 / README < prev    next >
Encoding:
Text File  |  1990-03-21  |  5.1 KB  |  109 lines

  1. This is version 3.0 of rayshade, a raytracing 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 raytraced image.
  4.  
  5. Rayshade features:
  6.  
  7.     Eight types of primitives (box, cone, cylinder, height field,
  8.     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 (192.26.88.42),
  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 very
  52. similar to that used by Mark VandeWettering's raytracer.  See the Makefile
  53. 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 raytraced 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. Rayshade was not designed to be, nor is it, the be-all and end-all of
  74. raytracers.  It was meant to be reasonably fast, portable, and easy to 
  75. modify.  It has some nice features which allow you to produce
  76. pretty pictures, but there are countless extensions, modifications,
  77. and improvements which could be made.  There are many routines which may be
  78. optimized and many features which could be added.  For a list of suggested
  79. improvements and projects see "TODO".  You are encouraged to modify the
  80. source code left and right.
  81.  
  82. Rayshade had its start as an "introductory" public domain raytracer written
  83. by Roman Kuchkuda.  During 1987-88 the first version of rayshade was written
  84. by Craig Kolb, David P. Dobkin (the original cylinder, cone and extinct torus-
  85. tracing code), and David C. Hoffman (the original octree code).  Craig Kolb
  86. wrote the current version of rayshade during the fall of 1988 and has made a
  87. large number of changes since then.
  88.  
  89. The current version of rayshade owes much to a number of people who have
  90. made suggestions, fixed bugs, and who have been all-around good sports about
  91. the whole thing.  Thanks to David Dobkin, Eric Haines, Lefteris Koutsofios,
  92. Ken Musgrave, Przemek Prusinkiewicz, and Allan Snider for their encouragement,
  93. comments, and willingness to be on the Front Lines.  Thanks also to Roman
  94. Kuchkuda for providing a base upon which to build.  Special thanks to Robert
  95. Skinner for providing the Noise(), DNoise(), and other texturing functions
  96. and allowing them to be redistributed.
  97.  
  98. If you find any bugs, make any useful extensions, have a nice input
  99. file, port rayshade to a new environment, or need assistance understanding a
  100. particularly braindamaged section of code, please let me know.  I can be most
  101. easily reached by email.
  102.  
  103. Craig Kolb 10/27/89
  104. kolb@yale.edu
  105.  
  106. Yale University Dept. of Mathematics
  107. P.O. Box 2155 Yale Station
  108. New Haven, CT  06520-2155
  109.