home *** CD-ROM | disk | FTP | other *** search
/ Borland Programmer's Resource / Borland_Programmers_Resource_CD_1995.iso / code / graphics / rtnews / rtnv4n2 < prev    next >
Encoding:
Internet Message Format  |  1995-05-19  |  54.5 KB

  1. From nucsrl!casbah.acns.nwu.edu!raven.alaska.edu!bionet!ucselx!sol.ctr.columbia.edu!spool.mu.edu!mips!dimacs.rutgers.edu!dorm.rutgers.edu!uupsi!eye!erich Tue Jul 16 21:36:32 CDT 1991
  2. Article: 2971 of comp.graphics
  3. Path: nucsrl!casbah.acns.nwu.edu!raven.alaska.edu!bionet!ucselx!sol.ctr.columbia.edu!spool.mu.edu!mips!dimacs.rutgers.edu!dorm.rutgers.edu!uupsi!eye!erich
  4. From: erich@eye.com (Eric Haines)
  5. Newsgroups: comp.graphics
  6. Subject: Ray Tracing News, Volume 4, Number 2 (pretty darn long)
  7. Keywords: ray tracing
  8. Message-ID: <1991Jul15.144908.8079@eye.com>
  9. Date: 15 Jul 91 14:49:08 GMT
  10. Sender: Eric Haines
  11. Reply-To: erich@eye.com (Eric Haines)
  12. Organization: "3D/Eye Inc., Ithaca, NY"
  13. Lines: 1165
  14.  
  15.  
  16.  _ __                 ______                         _ __
  17. ' )  )                  /                           ' )  )
  18.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  19. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  20.          /                               /|
  21.         '                               |/
  22.  
  23.             "Light Makes Right"
  24.  
  25.               July 15, 1991
  26.             Volume 4, Number 2
  27.  
  28. Compiled by Eric Haines, 3D/Eye Inc, 2359 Triphammer Rd, Ithaca, NY 14850
  29.     erich@eye.com or uupsi!eye!erich
  30. Archive locations: anonymous FTP at weedeater.math.yale.edu [130.132.23.17],
  31.     /pub/RTNews, and others.
  32. UUCP archive access: write Kory Hamzeh (quad.com!avatar!kory) for info.
  33.  
  34. Contents:
  35.     Introduction - SIGGRAPH get-together, etc
  36.     New People, Address Changes, etc
  37.     Ray Tracing Related FTP sites, compiled by Eric Haines
  38.     Ray Tracing, the way I do it, by Haakan 'Zap' Andersson
  39.     More Thoughts on Anti-Aliasing, by John Woolverton
  40.     Spatial Measures for Accelerated Ray Tracing, by John Spackman
  41.     Barcelona Workshop Summary, by Arjan Kok
  42.     Book Announcement, from Stuart Green
  43.     Spiral Scene Generator, by Tom Wilson
  44.     An Announcement From The 'Paper Bank' Project, by Juhana Kouhia
  45.     Proceedings of Graphics Interface '91 Availability, by Irene Gargantini
  46.     NFF Previewers, by Bernie Kirby, Patrick Flynn, Mike Gigante, Eric Haines
  47.     RayTracker Demos Available, by Jari Kahkonen
  48.     RayTracker Info, by Zap Andersson
  49.  
  50. -------------------------------------------------------------------------------
  51.  
  52. Introduction
  53.  
  54.     I admit it, I've strayed from the One True Way of pure ray tracing:  I've
  55. been dabbling in radiosity.  We recently finished a film of Ronchamp chapel
  56. illuminated with radiosity techniques, rendered with an a-buffer, and with
  57. stochastic ray traced beams of lights streaming in the windows, coming to a
  58. film show near you (SIGGRAPH and Eurographics, I hope).  My one piece of
  59. advice from doing the film is this:  try to make everything originate from
  60. you.  The rights to music are amazingly expensive (in our case, thousands of
  61. dollars for just one showing at SIGGRAPH), and tracking down and obtaining
  62. permission to use quotes, drawings, or photos can be a real hassle.
  63.  
  64.     If you want to know how we did the beams of light effect, get the
  65. "Frontiers in Rendering" course notes (or even go to the course).  There
  66. should be some good & weird topics at this course, such as Charlie Gunn's
  67. animations of hyperbolic space (where dodecahedra meet 8 at a corner) and
  68. Peter Kochevar's shading computations via cellular automata ("the lunatic
  69. fringe of rendering", as he puts it).  Me, I'm going to talk about ray
  70. casting for radiosity, and also all the things that drive me crazy about
  71. radiosity (with lots of dirty laundry pictures showing where and how radiosity
  72. falls apart, and some solutions).
  73.  
  74.     As usual, there will be a ray tracing researchers get-together at SIGGRAPH,
  75. open to anyone.  On Thursday from 5:15 to 6:30 at room N223 in the convention
  76. center we'll meet and gab about this and that.  No planned activities, just a
  77. place and time to connect names to faces.
  78.  
  79.     When our son Ryan was born, Zap Andersson sent a nice little GIF from his
  80. ray tracer of a cigar in an ashtray as congratulations; the texture mapped
  81. smoke was particularly well done.  Zap was just married, so I was able to send
  82. two interlinked rings with his wife's & his names inscribed in them.
  83. Definitely a future trend:  graphical greeting cards/presents by e-mail.
  84.  
  85.     The wedding rings picture was also my first worthwhile test image using
  86. the two-pass software we've developed to blend radiosity and ray-tracing.  The
  87. nice thing about two-pass algorithms is that you generally get soft shadows
  88. cheaply, as the radiosity mesh picks up the shadows adaptively and so saves
  89. the ray tracer much shadow-testing time.  You also get all the nice features
  90. of ray tracing, including exact geometry:  spheres are truly spherical,
  91. instead of straight radiosity's polygonalized representation.  Being able to
  92. combine the sampling mesh from radiosity and the geometry from ray tracing is
  93. usually a great combination.
  94.  
  95.     Just so it is not buried in the bits:  note that Greg Ward's Radiance ray
  96. tracer with radiosity effects built in (see his SIGGRAPH paper) is now
  97. available via FTP.  As important, he has also begun a directory of "test"
  98. radiosity scenes which researchers can use to attempt to compare radiosities
  99. generated for these scenes.  For those of you trying to write your own
  100. radiosity system this is a valuable tool for checking if you're getting
  101. anything near the right answer.  Finally, Greg has also collected various
  102. object models and made them available.
  103.  
  104.     Books of note:  _Digital Image Warping_ by George Wolberg (IEEE Computer
  105. Society Press Monograph, 1990) is very handy if you're involved in texture
  106. mapping.  Many different topics are covered, with good illustrations and
  107. sample code.  It's not the ultimate book from a theory standpoint, but is very
  108. practical and understandable.  Recommended.
  109.  
  110.     Last issue someone mentioned the book _Fractal Programming and Ray Tracing
  111. with C++_ by Roger Stevens (M&T Books for $30, $20 more for the disk of code).
  112. I bought it, and cannot recommend it to the general reader.  If you are
  113. getting your feet wet with C++ it might be of some interest, and beginning PC
  114. programmers might find bits of it useful.  The author takes Steve Koren's QRT
  115. input language and develops a C++ ray tracer for it.  One major problem with
  116. such a ray tracer is that there is no definition for a general polygon; only
  117. triangles and parallelograms are provided.  There's a lot of padding in the
  118. book, with 20 or 30 page stretches of nothing but code listings, and 70 pages
  119. of data file listings (42 pages for his version of "sphereflake" alone - he
  120. could have printed the listings for the whole SPD package in that space!).
  121. The index is somewhat dysfunctional, e.g. minor variations on the words
  122. "bounding boxes" are given separate listings, some with wrong page numbers.
  123. References to almost all other work in ray tracing is missing, and the
  124. interested reader is given almost no help on where to go for more information.
  125. I wish it had been better.
  126.  
  127.     Coming out at SIGGRAPH is "Graphics Gems II", edited by Jim Arvo this time
  128. around.  Does anyone else know of good books to look for there?  The other
  129. SIGGRAPH question:  any guesses on how many times humorous references to
  130. "Monte Carlo" techniques will be made?
  131.  
  132.     Get a job:  one subscriber pointed out an interesting relationship between
  133. public domain ray tracers and future employment.  The authors of two of the
  134. more popular public domain ray tracers (MTV by Mark VandeWettering and
  135. RayShade by Craig Kolb) are currently employed by PIXAR.  Now if David Buck of
  136. DKBtrace gets a job there (no, I have no idea if he's even looking for work)
  137. this relationship can become a firmly established principle...
  138.  
  139.     Finally:  I've pretty much stopped culling USENET for news in
  140. comp.graphics, figuring that most everyone plows through this stuff by now.
  141. What convinced me was looking at my file of comp.graphics clippings and seeing
  142. that the accumulation surpassed half a megabyte!  Updating the ray tracing and
  143. radiosity bibliographies, mailing list, and the FTP site list are time
  144. consuming enough; also running a clipping service was too much.
  145.  
  146. -------------------------------------------------------------------------------
  147.  
  148. New People, Address Changes, etc
  149.  
  150.  
  151. The first subscriber connected across the now-slagged Iron Curtain:
  152.  
  153. # Janusz Kalinowski - density clouds (metaballs), parallelism, textures
  154. # Technical University of Wroclaw, Computing Center
  155. # Wybrzeze Wyspianskiego 27
  156. # Wroclaw, Poland
  157. alias    janusz_kalinowski    kalinows@plwrtu11
  158.  
  159. I am a lecturer at Technical University of Wroclaw.  I am mainly involved in
  160. CG-related subjects, but also in system software.  We are preparing a
  161. metaballs system (modeller, renderer).  I made my MS in DataFlow (I wrote an
  162. emulator of Manchester Prototype Dataflow System), but I prefer CG now.  Maybe
  163. I will marry both domains in the future?
  164.  
  165. --------
  166.  
  167. # Chris Green - efficiency, fancy primitives, radiosity, textures
  168. # Commodore Business Machines
  169. # 1200 Wilson Drive
  170. # West Chester, PA 19380
  171. # (215)-431-9100
  172. alias    chris_green njin!cbmvax.cbm.commodore.com!chrisg
  173.  
  174. When I've got spare time away from working on Amiga graphics, and doing
  175. contract work on 3d games, I spend it working on my ray tracer.  My ray tracer
  176. is extremely fast, due to being written completely in 680x0 assembly with all
  177. fixed point math.  I support spheres, triangles, hypertexture (!), and general
  178. implicit functions.  It also has depth of field, penumbras, procedural
  179. textures, and more.  The efficiency scheme used is my own invention and is
  180. especially fast for radiosity ray tracing (some day) and penumbras (now).
  181.  
  182. --------
  183.  
  184. Russ Tuck
  185. tuck@maspar.com
  186. MasPar Computer Corporation, 749 N. Mary Ave, Sunnyvale, CA 94086
  187.  
  188. (Old:  tuck@cs.unc.edu)
  189.  
  190. --------
  191.  
  192. # Billy Ferrer - ray tracing on the Atari STe, efficiency.
  193. # University of California, Irvine
  194. # 2520 Golden Ave.
  195. # Long Beach, CA 90806
  196. # (213) 595-5279
  197. alias bill_ferrer bferrer@bonnie.ics.uci.edu
  198.  
  199. I am a sophomore at University of California, Irvine studying computer
  200. science.  My interest in ray tracing stemmed from seeing impressive displays
  201. from Amiga, NCGA and Siggraph shows.  I am just a beginner in the ray tracing
  202. programming department, but during my spare, spare, spare time I am writing a
  203. ray tracing program for the Atari STe because first there isn't a good and
  204. reliable ray tracing program on the ST/STe and second to write a ray tracing
  205. program for learning purposes.  Currently my program traces checkered floors,
  206. spheres, and reflections.  Right now, my effort is going towards texture
  207. mapping the floor by mapping an image on the floor.  Hopefully my program will
  208. support refractions and other various 3d object formats.
  209.  
  210. --------
  211.  
  212. Name:    Thomas Michael Burgey
  213. Goals:   modelling of objects, modelling of textures, RT art
  214. Company: Cadlab - Kooperation Uni-GH Paderborn / Siemens Nixdorf AG
  215.          Bahnhofstrasse 32
  216.          W-4790 Paderborn
  217. Tel:     +49 5251 284 151
  218. Mail:    tmb@cadlab.cadlab.de
  219.  
  220. -------------------------------------------------------------------------------
  221.  
  222. Ray Tracing related FTP sites (and maintainers), 7/15/91
  223.     compiled by Eric Haines, erich@eye.com
  224.  
  225. [Ironically, we still don't have our FTP connection yet (it's been "one month
  226. away" since last December...), so I can't verify much of this data!  Please do
  227. send me any updates & corrections.]
  228.  
  229. Some highlights:
  230.  
  231. RayShade - a great ray tracer for workstations on up.
  232. DKBtrace - another good ray tracer, from all reports; works on PCs.
  233. Radiance - a ray tracer w/radiosity effects, a la Greg Ward (who wrote it).
  234. VORT,QRT,MTV,DBW - yet more ray tracers, some with interesting features.
  235. prt, VM_pRAY - parallel ray tracers.
  236. SIPP - scanline Z-buffer renderer.
  237. VOGLE - graphics learning environment (device portable).
  238.  
  239. SPD - a set of procedural databases for testing ray tracers.
  240. NFF - simplistic file format used by SPD.
  241. OFF - another file format.
  242.  
  243. RT News - collections of articles on ray tracing.
  244. RT bib - all known (by me) articles on ray tracing, in "refer" format.
  245. RT abstracts - collection of abstracts of many many RT articles.
  246.  
  247. Utah Raster Toolkit - nice image manipulation tools.
  248. FBM - another set of image manipulation tools.
  249. Graphics Gems - code from the ever so useful book.
  250.  
  251. (*) means site is an "official" distributor, so is most up to date.
  252.  
  253.  
  254. weedeater.math.yale.edu [130.132.23.17]:  /pub - *Rayshade 3.0 ray tracer*,
  255.     *color quantization code*, *SPD*, *RT News*, *Wilson's RT
  256.     abstracts*, "RT bib*, *new Utah raster toolkit*, newer FBM,
  257.     *Graphics Gems code*.  Craig Kolb <kolb@yale.edu>
  258.  
  259. rascal.ics.utexas.edu [128.83.144.1]:  /misc/mac/inqueue - VISION-3D facet
  260.     based modeller, can output RayShade files.
  261.  
  262. ccu1.aukuni.ac.nz [130.216.1.5]:  ftp/mac/architec - *VISION-3D facet
  263.     based modeller, can output RayShade files*.  P.D. Bourke
  264.     <pdbourke@ccu1.aukuni.ac.nz>
  265.  
  266. alfred.ccs.carleton.ca [134.117.1.1]:  /pub/dkbtrace - *DKB ray tracer*.
  267.     David Buck <david_buck@carleton.ca>
  268.  
  269. hobbes.lbl.gov [128.3.12.38]: Radiance ray trace/radiosity package.  Greg Ward
  270.     <gjward@lbl.gov>
  271.  
  272. nic.funet.fi [128.214.6.100]:  pub/graphics/papers - *Paper bank project,
  273.     including Pete Shirley's entire thesis (with pics)*, *Wilson's RT
  274.     abstracts in PostScript*, Kouhia Juhana Krister <jk87377@cs.tut.fi>
  275.  
  276. isy.liu.se [130.236.1.3]:  pub/sipp-2.0.tar.Z scan line z-buffer and Phong
  277.     shading renderer.  Jonas Yngvesson <jonas-y@isy.liu.se>
  278.  
  279. calpe.psc.edu [128.182.66.148]:  pub/p3d - p3d_2_0.tar P3D lispy scene
  280.     language & renderers.  Joel Welling <welling@seurat.psc.edu>
  281.  
  282. ftp.ee.lbl.gov [128.3.254.68]: *pbmplus.tar.Z*, RayShade data files.  Jef
  283.     Poskanzer <jef@ace.ee.lbl.gov>
  284.  
  285. irisa.fr [131.254.2.3]:  */iPSC2/VM_pRAY ray tracer*, SPD, /NFF - many non-SPD
  286.     NFF format scenes, RayShade data files (Americans: check
  287.     ftp.ee.lbl.gov first).  Didier Badouel <badouel@irisa.irisa.fr>
  288.  
  289. wuarchive.wustl.edu [128.252.135.4]:  /mirrors/unix-c/graphics - Rayshade ray
  290.     tracer, MTV ray tracer, Vort ray tracer, FBM, PBM, popi, Utah raster
  291.     toolkit.  /mirrors/msdos/graphics - DKB ray tracer, FLI RayTracker
  292.     demos.  Tracey Bernath <tmbernath@tiger.waterloo.edu>
  293.  
  294. tolsun.oulu.fi [128.214.5.6]:  *FLI RayTracker animation files (PC VGA)*,
  295.     *RayScene demos* (Americans:  check wustl first).  Jari Kahkonen
  296.     <hole@rieska.oulu.fi>
  297.  
  298. cs.uoregon.edu [128.223.4.13]:  /pub - *MTV ray tracer*, *RT News*, *RT
  299.     bibliography*, other raytracers (including RayShade, QRT, VM_pRAY),
  300.     SPD/NFF, OFF objects, musgrave papers, some Netlib polyhedra, Roy Hall
  301.     book source code, Hershey fonts, old FBM.  Mark VandeWettering
  302.     <markv@acm.princeton.edu>
  303.  
  304. hanauma.stanford.edu [36.51.0.16]: /pub/graphics/Comp.graphics - best of
  305.     comp.graphics (very extensive), ray-tracers - DBW, MTV, QRT, and more.
  306.     Joe Dellinger <joe@hanauma.stanford.edu>
  307.  
  308. freedom.graphics.cornell.edu [128.84.247.85]:  *RT News back issues*, *source
  309.     code from Roy Hall's book "Illumination and Color in Computer
  310.     Generated Imagery"*, SPD package, *Heckbert/Haines ray tracing article
  311.     bibliography*, Muuss timing papers.
  312.  
  313. uunet.uu.net [192.48.96.2]:  /graphics - RT News back issues (not complete),
  314.     NURBS models, other graphics related material.
  315.  
  316. iear.arts.rpi.edu [128.113.6.10]:  /pub - *Kyriazis stochastic Ray Tracer*.
  317.     qrt, ohta's ray tracer, prt, other RT's (including one for the AT&T
  318.     Pixel Machine), RT News, *Wilson's RT abstracts*, Graphics Gems, wave
  319.     ray tracing using digital filter method.  George Kyriazis
  320.     <kyriazis@turing.cs.rpi.edu>
  321.  
  322. jyu.fi [128.214.7.5]: /pub/graphics/ray-traces - many ray tracers, including
  323.     VM_pRAY, DBW, DKB, MTV, QRT, RayShade, some RT News, NFF files.  Jari
  324.     Toivanen <toivanen@jyu.fi>
  325.  
  326. life.pawl.rpi.edu [128.113.10.2]: /pub/ray - *Kyriazis stochastic Ray Tracer*.
  327.     George Kyriazis <kyriazis@turing.cs.rpi.edu>
  328.  
  329. ab20.larc.nasa.gov [128.155.23.64]: /amiga - DBW,
  330.     /usenet/comp.{sources|binaries}.amiga/volume90/applications -
  331.     DKBTrace 2.01.  <ftp@abcfd20.larc.nasa.gov>
  332.  
  333. munnari.oz.au [128.250.1.21]:  pub/graphics/vort.tar.Z - *VORT CSG and
  334.     algebraic surface ray tracer*, *VOGLE*, /pub - DBW, pbmplus.  David
  335.     Hook <dgh@munnari.oz.au>
  336.  
  337. gondwana.ecr.mu.oz.au [128.250.1.63]:  pub - *VORT ray tracer*, *VOGLE*,
  338.     Wilson's ray tracing abstracts.  Bernie Kirby <bernie@ecr.mu.oz.au>
  339.  
  340. freebie.engin.umich.edu [141.212.68.23]:  *Utah Raster Toolkit*, Spencer Thomas
  341.     <thomas@eecs.umich.edu> or Rod Bogart <rgb@caen.engin.umich.edu>.
  342.  
  343. cs.utah.edu [128.110.4.21]: /pub - Utah raster toolkit, *NURBS databases*.
  344.     Jamie Painter <jamie@cs.utah.edu>
  345.  
  346. gatekeeper.dec.com [16.1.0.2]: /pub/DEC/off.tar.Z - *OFF objects*,
  347.     /pub/misc/graf-bib - *graphics bibliographies (incomplete)*.  Randi
  348.     Rost <rost@granite.dec.com>
  349.  
  350. expo.lcs.mit.edu [18.30.0.212]:  contrib - *pbm.tar.Z portable bitmap
  351.     package*, *poskbitmaptars bitmap collection*, *Raveling Img*,
  352.     xloadimage.  Jef Poskanzer <jef@well.sf.ca.us>
  353.  
  354. venera.isi.edu [128.9.0.32]:  */pub/Img.tar.z and img.tar.z - some image
  355.     manipulation*, /pub/images - RGB separation photos.  Paul Raveling
  356.     <raveling@venera.isi.edu>
  357.  
  358. wuarchive.wustl.edu [128.252.135.4]:  /mirrors/unix-c/graphics - Rayshade ray
  359.     tracer, MTV ray tracer, Vort ray tracer, FBM, PBM, popi, Utah raster
  360.     toolkit.  /mirrors/msdos/graphics - DKB ray tracer.
  361.  
  362. ucsd.edu [128.54.16.1]:  /graphics - utah rle toolkit, pbmplus, fbm,
  363.     databases, MTV, DBW and other ray tracers, world map, other stuff.
  364.     Not updated much recently.
  365.  
  366. okeeffe.berkeley.edu [128.32.130.3]:  /pub - TIFF software and pics.  Sam
  367.     Leffler <sam@okeeffe.berkeley.edu>
  368.  
  369. surya.waterloo.edu [129.97.129.72]: /graphics - FBM, ray tracers
  370.  
  371. vega.hut.fi [128.214.3.82]: /graphics - RTN archive, ray tracers (MTV, QRT,
  372.     others), NFF, some models
  373.  
  374. gondwana.ecr.mu.oz.au [128.250.1.63]:  SPD, NFF & OFF databases, Graphics Gems
  375.     code.  Bernie Kirby <bernie@ecr.mu.oz.au>
  376.  
  377. hp4nl.nluug.nl [192.16.202.2]: /pub/graphics/raytrace - DBW.microray, MTV,
  378.     etc.
  379.  
  380. ftp.brl.mil [128.63.16.158]: /old/brl-cad - information on how to get the
  381.     BRL CAD package & ray tracer.
  382.  
  383. karazm.math.uh.edu [129.7.7.6]:  pub/Graphics/rtabs.shar.12.90.Z - *Wilson's
  384.     RT abstracts*, VM_pRAY.  J. Eric Townsend
  385.     <jet@karazm.math.uh.edu>
  386.  
  387. maeglin.mt.luth.se [130.240.0.25]:  graphics/raytracing/Doc - *Wilson's RT
  388.     abstracts*.
  389.  
  390. ftp.fu-berlin.de []:  /pub/unix/graphics/rayshade4.0/inputs - aq.tar.Z is
  391.     RayShade aquarium (Americans:  check ftp.ee.lbl.gov first).  Heiko
  392.     Schlichting <heiko@math.fu-berlin.de>
  393.  
  394. apple.apple.com [130.43.2.2?]:  /pub/ArchiveVol2/prt.
  395.  
  396. netlib automatic mail replier:  UUCP - research!netlib, Internet -
  397.     netlib@ornl.gov.  *SPD package*, *polyhedra databases*.  Send one
  398.     line message "send index" for more info, "send haines from graphics"
  399.     to get the SPD.
  400.  
  401. UUCP archive: avatar - RT News back issues.  For details, write Kory Hamzeh
  402.     <kory@avatar.avatar.com>
  403.  
  404. -------------------------------------------------------------------------------
  405.  
  406. Ray Tracing, the way I do it, by Haakan 'Zap' Andersson
  407.  
  408. [See the RayTracker description later in this issue for what his system looks
  409. like.  I don't agree with the usefulness of some of these, but find them
  410. interesting reading.  I particularly like the idea of hashing, though as
  411. John Woolverton points out, this idea has problems with soft shadows. - EAH]
  412.  
  413. * TIGHT screen space bounding.
  414.   Some people neglect screen space bounding, and don't use it. MANY people
  415.   use it, but they project the 3D bounding box onto screen space, potenti-
  416.   ally getting a lot of 'slack' around 'em.
  417.      Gain: Speedier bounding box generation
  418.      Loss: Slack around objects = more wasteful intersections.
  419.   My Way: Do a vector rendering and get minmax screen coordinates from
  420.           that.  Yes, a vector rendering might take time, but hey, what's that
  421.       compared to the tracing time, eh?
  422.   (Yes I know about the method of doing a Z buffer rendering first... but
  423.    then you have to write a Z buffer renderer first, right?)
  424.   Comments:
  425.     Think about the standard axis-aligned bounding box around an object.
  426.     Seen from the vector 1,1,1 you will have the corners 'sticking out'
  427.     maximally. Also, bounding box intersection takes this 'n that amount
  428.     of FP operation. A screen space bounding box is done with four integer
  429.     compares. For eye rays I NEVER intersect the actual bounding boxes at
  430.     all, ONLY use the screenspace bounding, plus a stored minimum distance
  431.     to the eye for each bounding box. So my bounding box intersection for
  432.     eye rays is 4 integer and one FP compare.
  433.  
  434. * Self sorting list
  435.   Most objects in my structure has the minimum distance to the eye recorded.
  436.   When intersection the object, the first thing you do is to see if the
  437.   currently valid 't' is smaller than this distance. If so we have already
  438.   hit a closer object, and can never hit this object. Also, when the ray-
  439.   intersection checker has found the closest object, this is put first in
  440.   the list and will be checked first next time. 
  441.  
  442.   Since the intersection check function is called recursively when we enter
  443.   a bounding box, objects INSIDE the bounding box is also sorted, so for
  444.   each 'level' in the ray tree we always have the object we hit last first.
  445.  
  446. * Light buffer
  447.   Similar to the 2d bounding boxes on screen for eye rays, shadow rays have
  448.   their 2d bounding boxes, but since a light source can shine all around and
  449.   is not limited to one direction, this is done in polar coordinates (a
  450.   spherical coordinate system). So, for shadow rays I don't intersect any
  451.   real bounding boxes either, but do some more compare operations. And since
  452.   the ranges for a spherical coordinate system is fixed (i.e. 2 pi * pi) 
  453.   there is no point in using floating point, so fixed point integers can be
  454.   used instead.
  455.  
  456.   The minimum distance to each object is also constant for each light, and
  457.   may then be calculated and stored when we set up things and do the wire
  458.   frame rendering.
  459.  
  460. * Reflected/fracted rays
  461.   This is the only case where I actually intersect bounding boxes. And now
  462.   to the next weird issue: I do NOT use axis-aligned bounding boxes, they
  463.   are transformed together with the rest of things, since my bounding boxes
  464.   actually work as "transformers" for my objects. But FIRST, for each box,
  465.   I check the MINIMUM distance with the current 't' and if bigger, just
  466.   discard. 
  467.  
  468.   To find the minimum distance, I am helped by the fact that my bounding 
  469.   boxes are stored as a center point and x, y and z extends from that
  470.   centre. So I can use a rough (distance to center) - (x_size + y_size +
  471.   z_size), and I get a value that is guaranteed to be SMALLER than the
  472.   actual distance. And to avoid square roots, my actual comparisons is
  473.   of course done on the distances squared, i.e. from the ray origin, I take
  474.   the x distance to the bbox centre squared, plus y distance squared, plus
  475.   z distance squared. Now I have the distance from ray origin to the
  476.   center of the bbox squared. Now subtract from that (x_size + y_size +
  477.   z_size) squared, and compare that to 't' squared. If 't' is smaller, we
  478.   can never hit that bounding box.
  479.  
  480. * Transformed bounding boxes
  481.   I've always been in love with tight bounding volumes, because they avoid
  482.   unnecessary TRUE intersections. Thus, my bounding boxes are transformed
  483.   with everything else. Actually, it works like this (pseudo code-ish):
  484.  
  485.   trace_ray(first_object,ray)
  486.   {
  487.     object = first_object;
  488.  
  489.     while (object)
  490.     {
  491.       .
  492.       .
  493.       (( do the 2d intersection checking, either eye-ray 2d or
  494.          polar 2d for lamps. only do rest of code if 2d hit, and
  495.          distance is below current 't' ))
  496.       .
  497.       (( Ok, we hit 2D-wise, OR this was a reflected/fracted ray then:
  498.          transform ray to object's coordinate system ))
  499.       .
  500.       switch(object->type)
  501.       {
  502.          case SPHERE: /* Intersect sphere(oids) */
  503.                  .
  504.                  .
  505.          case BOUNDING_BOX:
  506.                 ((check boundbox intersection, if refl/frac ray, 
  507.                   if not refl/frac ray, set hit to true.))
  508.  
  509.                 if (hit)
  510.                 {
  511.                    /* Ok, let's trace rays in this new coordinate system
  512.                       we are in now */
  513.                    trace_ray(object->bbox->contents_of_box,transformed_ray);
  514.                 }
  515.       }
  516.       object = object->next;
  517.     }
  518.   }
  519.  
  520.   What this gives me, besides the ability to twiddle my bounding boxes, is
  521.   local coordinate systems WITHIN those boxes. So if I have a HUNDRED objects
  522.   that would feel happy if they got their bounding boxes tilted 30 degrees
  523.   to the right, I could create ONE bounding box that transforms the ray 30
  524.   degrees to the right, and then use axis-aligned boxes (which of course are
  525.   faster) INSIDE the box for each of the hundred objects, making them happy.
  526.  
  527.   Also, it helps animating stuff a lot. Move the bounding box, ans wham you
  528.   have an aggregate object. Move a box within the box, and Wham you have
  529.   hierarchical motion control without sweating too much.
  530.  
  531. * Filtering texture maps
  532.   The way I filter texture maps may be considered "nasty" but it works OK
  533.   for me. I know the resolution, and I also know (from reverse engineering
  534.   my perspective ray creator ;-) how "big" the screen is in units, I can
  535.   easily calculate how "big" one pixel is in the screen plane. Deeper into
  536.   the model, the pixel covers a larger area, increasing linearly. So, the
  537.   distance an object is from the eye, guide the "pixel size" at that point
  538.   in a very simple and linear way.
  539.  
  540.   Now the first error you do when you want to sample from your texture map
  541.   is to sample an area that is pixel_size * pixel_size large. Well, that is
  542.   correct for planes that are facing you. But if we are looking almost para-
  543.   llell to the surface? No, the actual area covered by the pixel is roughly
  544.   pixel_size / cos(view_angle), and since cos() is simply a dot product 
  545.   (that you'll need later anyway) it's easily calculated. Now I simply grab
  546.   a square area that is this size large, and average it. Nasty, but looks
  547.   quite OK without overwhelming calculations.
  548.  
  549.    Oh yes, there is the pathetic case where you are supposed to sample
  550.   10000 x 10000 pixels and average. Well, I never sample more than 8 x 8,
  551.   then I start to pick out 64 pixels at random within an n x n grid, and I
  552.   don't bother if I get the same one twice, since the impact of that on an
  553.   average of 64 pixels is mostly killed by the dithering noise anyway ;-)
  554.  
  555.   Also, I use the eye-distance calculation ALL THE WAY DOWN THE RAY TREE,
  556.   which looks very OK as soon as the mirroring surfaces are flat, or there
  557.   is no heavy refraction going on. But now let's move on to other anti-
  558.   aliasing.
  559.  
  560.  
  561. * Hashing anti aliasing
  562.   I never use color difference as my subdivision criteria for supersampling.
  563.   What I do is this:
  564.  
  565.   Before each sample for a pixel, set hash_number to 0.
  566.   The trace_ray() procedure does the following:
  567.     If it hits an object
  568.       Is it a smoothed patch mesh or similar?
  569.          Add it's "smoothing group" or anything else that is
  570.          same for all faces smoothed together (I use the vertexlist
  571.          pointer) to the hashnumber
  572.       else
  573.          Add something unique for the object, it's "number" or the
  574.          objectpointer to the hashnumber.
  575.  
  576.       Set shadow_count to zero 
  577.       For each light source:
  578.          Check shadows. If in shadow, shadow_count++.
  579.  
  580.       
  581.       hash_number += shadow_count < 5 (or whatever);
  582.       
  583.       If object is reflecting/fracting, call trace_ray() recursively
  584.       as always in a raytracer....
  585.  
  586.  
  587.   So what is all this? Well the hashnumber we get we compare with the
  588.   hashnumber for last pixel and the pixel in the last scanline. If it is
  589.   different then:
  590.     * We have hit different objects than last pixel/line
  591.     * We are in/out of different number than shadows than last pixel/line
  592.   AND THIS IS FOR THE ENTIRE RAY TREE! So if we hit anything else, ANYWHERE
  593.   down the tree, the hashnumber is bound to be different.
  594.  
  595.   Oh yes, there are a number of weird cases where you just HAPPEN to miss
  596.   a supersample just because we get out of shadow the same time we move
  597.   from object 0 to object 32, and thereby by mistake get the same hash
  598.   number. But who cares? Don't worry, be happy.
  599.  
  600.  
  601. * Surface acne [NEW! NEW! NEW! NEW! NEW?] ??? Or is it? You tell me...
  602.  
  603.   How to avoid it. Well, somebody proposed normal vector testing, and that
  604.   is OK for the system with well behaved users. The rest of us do a small
  605.   epsilon to avoid it. But someone said that this epsilon might be too big
  606.   or small for a given scene. And the funniest of them all (I laughed quite
  607.   a while), he proposed scaling it to the "diameter of the scene" or
  608.   something else. Why on earth do things like this?
  609.  
  610.   The epsilon for displacing the ray for any object, is of course related
  611.   to the pixel_size as described above! I use pixel_size / 4 and it works
  612.   like a charm even if I model molecules or the solar system (which I have
  613.   done both, actually!) even in the same scene!!
  614.  
  615. -------------------------------------------------------------------------------
  616.  
  617. More Thoughts on Anti-Aliasing, John Woolverton (woolstar@cobalt.caltech.edu)
  618.  
  619. [Zap Andersson also talks about this problem and independently invented this
  620. hashing method.  I neglected to publish a rough draft of Zap's idea last issue
  621. - see his article this issue for a more polished version.  - EAH]
  622.  
  623.  
  624.    I was also troubled by the fact that my ray-tracer was anti-aliasing across
  625. textures (causing massive thrashing on my machine), and took the problem to
  626. the local gurus.
  627.  
  628.    I got back the suggestion of building a hash code, and putting all the
  629. things I wanted to detect for in the hash calculation.
  630.  
  631.    So I hashed together, object pointers, and light sources (when they weren't
  632. shadowed, or outside the cone of a spotlight...).  So first I'd check the hash
  633. code, skipping color changes due purely to textures.  Only if the hash
  634. differed, would I check the colors, just so I didn't SSamp a smooth edge also.
  635.  
  636.    However, this didn't fix sampling across a soft shadow edge.
  637.  
  638. -------------------------------------------------------------------------------
  639.  
  640. Spatial Measures for Accelerated Ray Tracing, by John Spackman
  641.  
  642. [Here are some interesting passages from a note from him to me]
  643.  
  644. ...Mind you, my thesis is more to do with the navigation of oct-trees AFTER
  645. they have been constructed with interval analysis.  This navigation seems
  646. more efficient than all that ARTS nonsense (navigating only half the vertical
  647. steps), naturally runs under integer addition and bit-shifting in a Bresenham-
  648. type way BUT WITHOUT the concept of a global driving axis, and being
  649. completely immune to division by zero requires no exception handling.
  650. I called the SMART method (Spatial Measures for Accelerated Ray Tracing) -
  651. perhaps my jocularity has back-fired & no-ones taking me seriously. 
  652. I can ray-trace 20,000+ triangles with two light sources & shadows at 512x512
  653. in under 8 minutes on a Sun SparcStation - in fact (outrageous claim time)
  654. SMART has been observed to achieve constant time ray tracing INDEPENDENT
  655. of object count.  Each ray simply navigates a few empty voxels, whose
  656. number is independent of the global object count, until reaching the first
  657. non-empty voxel where generally only one object need be intersected & 
  658. accepted as the nearest struck.  For example, I rendered a single torus in
  659. 7 mins 23 secs and 80 tori in 7 mins 20 secs.  This is all AFTER constructing
  660. the octtree - O(N) but very efficient with interval analysis.  Interval
  661. analysis allows one to decompose right down to the surface of a primitive or
  662. CSG object (none of this bounding box nonsense propounded in RTNews a couple
  663. of years back).  You'll be able to see some of the pictures of the Octtrees in
  664. my thesis - at a fine resolution they look great!
  665.  
  666. [...]
  667.  
  668. I think the work of Adrian Bowyer & John Woodwark at Bath would interest you -
  669. they're attacking things from a CAD/CAM angle (Adrian is a Mechanical
  670. Engineer) - email `ab@uk.ac.bath.maths'.  Another pocket of isolated English
  671. ray-tracing is established at Leeds university (which I only stumbled across
  672. recently).  They also have a CAD/CAM bent, & are particularly into multi-
  673. processors.  If you're interested, email Professor Peter Dew at
  674. `dew@uk.ac.leeds.dcs'.  A Dr Stuart Green also did some multi-processor work
  675. (using your SPD data base) at Bristol University, but has now moved out to
  676. industry & I don't have his new email address.  I've recently moved to
  677. Edinburgh to take advantage of a 420 Meiko transputer surface - there's quite
  678. a lot of knowledge in ray tracing accumulating here (Fractal planets etc).
  679.  
  680.  
  681. ...  Arvo & Kirk's formation of candidate lists for their 5D ray tracing
  682. efficiency scheme?  I'm not a great fan of this I'm afraid - the old problem,
  683. too much over-approximation for concave objects.  Consider a hoop with large
  684. major radius, small minor radius (e.g. bicycle tyre tube).  A view frustrum
  685. can easily intersect the hoops bounding box by passing through the hoop's
  686. central hole WITHOUT striking the tyre anywhere!
  687.  
  688.     Lazy Oct-tree construction is the one for me, with nice tight
  689. decompositions right down to object surfaces, allowing rays to pass through
  690. the centre of such hoops whilst ignoring them, (or indeed lazy Hex-tree
  691. construction for animated scenes...), and reduced storage & construction
  692. costs.  It's a bit difficult to convey the efficiency of the scheme without
  693. recourse to a black board, but the long and the short of it is that most rays
  694. missing all objects end up querying none (hoorah!)  whilst those hitting an
  695. object end up querying only that (ie just one) object.  One can't do much
  696. better than that on a ray by ray basis, and I gave up on ray coherence ages
  697. ago (not that it's not got great potential, but I got awful headaches trying
  698. to work out the action of a complex CSG object e.g. reflective engine block
  699. on a single incoming pyramid of rays, never mind refraction - perhaps you've
  700. got further ...  ?).  Oh, and you get free adaptive anti-aliasing with
  701. octtrees ..
  702.  
  703. -------------------------------------------------------------------------------
  704.  
  705. Barcelona Workshop Summary, by Arjan Kok (arjan@duticg.tudelft.nl)
  706.  
  707. [There were many interesting papers at this workshop.  What follows is
  708. excerpted from Arjan's summary, focusing on those papers directly concerned
  709. with classical ray tracing (e.g.  not including Monte Carlo methods, two-pass
  710. methods, etc).  The finished papers will be available from Springer-Verlag in
  711. book form some time next year.]
  712.  
  713. Summaries of papers presented at the second Eurographics Workshop on Rendering
  714. Barcelona, Spain, 13-15 May 1991
  715.  
  716.  
  717. Gregory Ward (greg@lesosun1.epfl.CH)
  718. Adaptive Shadow Testing for Ray Tracing
  719.  
  720. Method for reducing the number of shadow rays for scenes with a large number
  721. of light sources.  The sources are sorted on their contribution, and only for
  722. the most important sources rays are cast.  The influence of the other sources
  723. is estimated statistically.  Tests are done with different tolerances
  724. (threshold to determine whether sources are important) and certainties (rate
  725. of accuracy).  The method gives good reduction and is able to find the most
  726. important shadows because it selects contrast as criterion.
  727.  
  728.  
  729. Christophe Schlick (schlick@geocub.greco_prg.FR)
  730. An Adaptive Sampling Technique for Multidimensional Integration by Ray-
  731. Tracing
  732.  
  733. Describes a sampling method that includes the following characteristics:
  734. adaptivity, irregularity, complete stratification, importance sampling and
  735. uncorrelation.  It allows a fast reconstruction.  Implementation is done using
  736. look-up tables.
  737.  
  738.  
  739. J.P. Jessel, M. Paulin, R. Caubet
  740. An Extended Radiosity Using Parallel Ray-Traced Specular Transfers
  741.  
  742. Describes a parallel extended radiosity method.  The method is implemented on
  743. a parallel architecture dedicated to ray-tracing (based on transputers).
  744.  
  745.  
  746. Veysi Isler, Cevdet Aykanat, Bulent Ozguc (isler@TRBILUN.BITNET)
  747. Subdivision of 3D Space Based on the Graph Partitioning for Parallel Ray
  748. Tracing
  749.  
  750. Describes a heuristic algorithm to subdivide the 3D space by converting the
  751. problem into a graph partitioning problem.
  752.  
  753. -------------------------------------------------------------------------------
  754.  
  755. Book Announcement, from Stuart Green
  756.  
  757. [This is Stuart's thesis, further refined for publication.  To see if you
  758. might be interested in it, look at:  Stuart A. Green & D.J. Paddon,
  759. "Exploiting Coherence for Multiprocessor Ray Tracing," IEEE Computer Graphics
  760. and Applications, vol 9, no 6, p. 12-26, Nov. 1989. - EAH]
  761.  
  762. Green, Stuart. "Parallel Processing for Computer Graphics", 1991,
  763. in the series "Research Monographs in Parallel and Distributed Computing".
  764.  
  765. MIT Press, Cambridge, Massachusetts, 02142.  ISSN 0953-7767, 
  766. ISBN 0-262-57087-4.
  767.  
  768. Pitman Publishing, 12-14 Slaidburn Crescent, Southport PR9 9YF.
  769. ISBN 0-273-08834-3.
  770.  
  771. I don't have the US$ price, but in the UK it costs 27.95 Sterling.
  772.  
  773. -------------------------------------------------------------------------------
  774.  
  775. Spiral Scene Generator, by Tom Wilson
  776.  
  777. [This is a simple SPD-like scene generator, creating a 3D spiral loop]
  778.  
  779. There are two loops:  one which creates SIZE levels and the other that creates
  780. 2^SIZE balls on each level.  The balls on each level almost form a circle.
  781. the entire structure makes a spiral.  The thing I am most displeased with is
  782. the texture ("f" line).  I created it so that a scene would have a very
  783. nonuniform distribution of objects.
  784.  
  785.  
  786. #include <stdio.h>
  787. #include <math.h>
  788. #define PI 3.1415926
  789. #define DEFAULTSIZE 10
  790.  
  791. main(argc,argv)
  792.   int argc;
  793.   char *argv[];
  794. {double r, x, y, z, frac, angle, tmp, invs2;
  795.  int s, s2, w, SIZE, col;
  796.  
  797.  if (argc > 1)
  798.    sscanf(argv[1],"%d",&SIZE);
  799.  else SIZE = DEFAULTSIZE;
  800.  s2 = (int) pow(2.0,(double)SIZE);
  801.  x = (double) SIZE / 2.0;
  802.  printf("v\nfrom 40 20 -40\n");
  803.  printf("at 0 0 0\n");
  804.  printf("up 0 1 0\nangle 45\nhither 1\nresolution 512 512\n");
  805.  printf("b 0 0 0.3\n");
  806.  printf("l 90 90 0\n");
  807.  printf("l 0 90 -90\n");
  808.  printf("f 0.3 0.3 0.3 0.5 0.5 3 0 0\n");
  809.  printf("p 4\n");
  810.  printf("50 0 50\n");
  811.  printf("50 0 -50\n");
  812.  printf("-50 0 -50\n");
  813.  printf("-50 0 50\n");
  814.  for (s = col = 0; s < SIZE; s++)
  815.   {s2 = (int) pow(2.0,(double) s);
  816.    for (w = 0; w < s2; w++)
  817.     {frac = (double)w / (double)s2;
  818.      r = (double)s + frac;
  819.      angle = 2.0 * PI * frac;
  820.      x = 2*r*cos(angle);
  821.      z = 2*r*sin(angle);
  822.      tmp = (double)(SIZE - s) + (double)(s2 - w - 1) / (double)s2;
  823.      y = tmp*tmp*tmp / (double)(SIZE*SIZE);
  824.      col = (col + 1) & 7;
  825.      printf("f %d %d %d 0.8 0.2 3 0 0\n",(col&4)>0,(col&2)>0,col&1);
  826.      printf("s %g %g %g %g\n",x,y,z,2.0/(double)(s*s+1));
  827.     }
  828.   }
  829. }
  830.  
  831. -------------------------------------------------------------------------------
  832.  
  833. An Announcement From The 'Paper Bank' Project,
  834.     by Juhana Kouhia (jk87377@tut.fi)
  835.  
  836. The following new paper is available from nic.funet.fi [128.214.6.100] from
  837. the directory pub/graphics/papers/papers.
  838.  
  839. Eric A. Haines and John R. Wallace
  840. Shaft Culling for Efficient Ray-Traced Radiosity
  841. May 1991, Barcelona
  842. File: hain91.ps.Z   [about 70 kBytes]
  843.  
  844. If anonymous FTP is not available to you I will mail it if requested.
  845.  
  846. Please contact me for a full list of the papers.
  847.  
  848. [We have recently sent Juhana the last version of our paper (with thinko's
  849. removed) and so you might want to get this improved version.  The new version
  850. is called "Shaft Culling for Efficient Ray-Cast Radiosity".  It's a nice
  851. little algorithm for finding what objects potentially block light between any
  852. two given boxes in space.  Similar in some ways to Arvo & Kirk 5D but with
  853. hierarchy, it has some interesting potential uses and generally speeds up
  854. hierarchical bounding volume ray tracers.  - EAH]
  855.  
  856. -------------------------------------------------------------------------------
  857.  
  858. Radiance 1.4 via FTP, by Greg Ward
  859.  
  860. Radiance 1.4 is now available via tape distribution or anonymous ftp (for the
  861. first time).  Rather than including compiled executables as I have in the
  862. previous releases, only the source code and a global make script is provided
  863. that should work on most platforms.  Please let me know if you have any
  864. trouble with it.  I have also taken out the example images and the conference
  865. room model in order to trim back the distribution.  I hope to include these
  866. files in other anonymous ftp directories as suggested by Robert Amor since
  867. there seems to be general agreement that this is a good idea.
  868.  
  869. To pick up release 1.4 from anonymous ftp, connect to hobbes.lbl.gov
  870. (128.3.12.38) with ftp using the "anonymous" account and enter your e-mail
  871. address as the password.  Everything is in the directory pub, and the main
  872. distribution is called "Radiance1R4.tar.Z".  This file is about 3.5 Megabytes,
  873. so please do your transfers in binary mode the first time!  Also, you will
  874. probably experience less network traffic in the morning, when most computer
  875. scientists are asleep.
  876.  
  877. --------
  878.  
  879. Information on Models, Test Environments, etc for Radiance:
  880.  
  881. I've just set up an anonymous ftp archive site at hobbes.lbl.gov (128.3.12.38)
  882. for sharing Radiance models and programs.  In addition to the standard source
  883. distribution, this archive contains the following:
  884.  
  885. pub/generators    - Programs for generating specialized objects & shapes
  886. pub/libraries    - Libraries of patterns, textures, fonts, etc.
  887. pub/mac        - MacIntosh applications and utilities (for Radiance)
  888. pub/models    - Complete Radiance scene descriptions
  889. pub/objects    - Objects for including in Radiance scenes
  890. pub/programs    - Miscellaneous programs and utilities
  891. pub/tests    - Test scenes for validating global illumination programs
  892. pub/translators    - CAD file translators and image format converters
  893.  
  894. For those of you who I haven't dragged aside and told already, Radiance is
  895. free ray tracing software for lighting simulation and rendering that does a
  896. lot of neat stuff and tries very hard to do it accurately.
  897.  
  898. If you are interested in picking up or leaving off some nice environment
  899. models, this is a good place to do it.  Most of the scene descriptions are in
  900. Radiance format, but writing a translator shouldn't be too much work, and I'm
  901. willing to offer whatever help I can.
  902.  
  903. If you are working on your own radiosity or ray tracing program and want to
  904. compare results, please check out the pub/tests directory.  There is not much
  905. there now, but with your help we can make this archive into a valuable
  906. resource for researchers in global illumination.
  907.  
  908. Please send any questions or comments to greg@hobbes.lbl.gov.
  909.  
  910. --------
  911.  
  912. I finally finished putting together a library of objects from the various
  913. models I've created for Radiance.  It is in pub/objects/gjward.tar.Z.  I hope
  914. people find it useful.  It took me quite some time to get the my miscellany
  915. into a usable form.
  916.  
  917. If you have objects you are willing to submit, please take a look at the way
  918. this initial library is set up first.
  919.  
  920. --------
  921.  
  922. >From Paul D. Bourke (pdbourke@ccu1.aukuni.ac.nz) [130.216.1.5]
  923.  
  924. The public domain modeller Vision-3D for the Mac II family is about to
  925. support Radiance data files as an export option. This has already been
  926. done but the copy on our FTP site hasn't yet been updated (I want to put
  927. some more features in the next release) If anyone is interested however
  928. the current version of Vision-3D with Radiance file export can be made
  929. available.
  930.  
  931. -------------------------------------------------------------------------------
  932.  
  933. Proceedings of Graphics Interface '91 Availability, by Irene Gargantini
  934.  
  935. In the USA: Morgan Kaufmann Publishers
  936. Order Fulfillment Center
  937. P.O. Box 50490
  938. Palo Alto, Ca 94303 USA, phone (415) 965 4081
  939.  
  940. The proceedings should be available by now, and they can take your order in
  941. advance.
  942.  
  943. -------------------------------------------------------------------------------
  944.  
  945. NFF Previewers, by Bernie Kirby, Patrick Flynn, Mike Gigante, Eric Haines
  946.  
  947. >From Bernie Kirby (bernie@eric.ecr.mu.oz):
  948.  
  949. There is an NFF previewer available for anonymous FTP on gondwana.ecr.mu.oz.au
  950. [128.250.1.63] pub/preview.c.  It uses the vogle library which is also
  951. available as pub/vogle.tar.Z
  952.  
  953. >From Patrick Flynn (flynn@cse.nd.edu):
  954.  
  955. If anyone on this side of the pond wants the preview.c program, it's now
  956. available for anonymous FTP from shillelagh.cse.nd.edu (129.74.9.7).  You can
  957. get the VOGLE library from uunet.  I tried the previewer; it does what I need.
  958.  
  959. >From Mike Gigante (mg@godzilla.cgl.rmit.oz.au):
  960.  
  961. There is a NFF previewer for Silicon Graphics workstations available on
  962. godzilla.cgl.rmit.oz.au (131.170.14.2).  Make sure you grab the readme file
  963. also.  It uses the hardware lighting and Zbuffer on the SGI machines to give a
  964. very fast preview.
  965.  
  966. >From Eric Haines:
  967.  
  968. I also have two previewers for NFF files which work on HP workstations (one
  969. is static, the other uses the mouse for rotating & viewing the object).  I
  970. can send them to anyone who wants them (no FTP right now).
  971.  
  972. -------------------------------------------------------------------------------
  973.  
  974. RayTracker Demos Available, by Jari Kahkonen
  975.  
  976.     My Swedish friend Haakan Andersson sent me some RayTracker animation-
  977. demos and now they are ftp'able from tolsun.oulu.fi [128.214.5.6].  You need
  978. PC with VGA to run these animations.
  979.  
  980.   Because I'm sure that raytracer-fans have lotsa questions about RayTracker,
  981. after they have seen these animations, please mail all questions to the
  982. author, i.e. to Haakan Andersson, zap@lage.lysator.liu.se.  If you have
  983. problems with animations (they don't unpack etc...)  flame or hate-mail me...
  984.  
  985.   You can find animations from /pub/rayscene/zap, though it has nothing to do
  986. with Rayscene.  /pub/rayscene/anim.PC contains raytraced animations made with
  987. Rayscene and DKBtracer (my animations...).  /pub/rayscene/anim.AMIGA contains
  988. raytraced animations for Amiga made with Rayscene and DKBTracer (animations by
  989. Panu Hassi).
  990.  
  991.   Animations are packed with Lharc 2.05.  All animations are self-extracting
  992. archives (= .exe-files).  So, "run" them and they will unpack themselves.  For
  993. examples:  If you have "car.exe"-animation, just type "car".  Animation-arc-
  994. hives includes short README.TXT and animation (.fli).  If you want to give
  995. these animations to your friends, *do not* separate these parts.  Give .exe,
  996. since README.TXT contains contact-information to Haakan Andersson.  Also,
  997. every animation has little text for contact address.  (except "mesh", I didn't
  998. wanna "spoil" it...it moves so smoothly...:).  Remember to set "type binary"
  999. when downloading files...
  1000.  
  1001.   These animations need Autodesk Animation Player, and if you don't have it,
  1002. you can pick it from /pub/rayscene/anim.PC.  That directory contains my demos
  1003. made with Rayscene.  Filename is "aaplay.exe".
  1004.  
  1005.   Animations run faster if you are running them from RAM-disk.  If you have
  1006. mouse it's easier to control aaplay.exe.  Adjust animation speed to your
  1007. machine.
  1008.  
  1009.   Some animations are not full-screen because of their original size.
  1010.  
  1011.   Little description of animations:
  1012.  
  1013. BIKE.FLI: Fly-by over a bike in a brick basement.
  1014.  
  1015. HP-RIP2.FLI:  The 'famous' one of a Camshaft emerging from its own drawing.
  1016. Created for the 'Mechslide' demo video, available from Emt Inc in USA.  The
  1017. name 'HP-RIP' comes from the fact that the 'idea' of a camshaft came from
  1018. Hewlett-Packard's well known raytraced 'Camshaft on bed of ravioli' by Eric
  1019. Haines, a friend of mine.
  1020.  
  1021. ART.FLI:  Fly-by over a pen, a few bolts, a drawing and a book placed on a
  1022. wooden table under a green metal table lamp.
  1023.  
  1024. BLAHBLAH.FLI:  Here's a (relatively) new one:  Demo of 1.55 Beta's
  1025. transparent, animated texturemaps, using Autodesks 'BOSSTALK'.  Even funnier
  1026. is to use animated bump-maps.  To see them, watch out for 'Spaceman Spiff' at
  1027. a theatre near you.
  1028.  
  1029. BOING.FLI:  Newer version of BOUNCE.  A Red, bouncing chrome sphere on top of
  1030. a texture map from Imagetects(tm).  Rendered and Animated in RayTracker 1.4
  1031. Beta.
  1032.  
  1033. BOUNCE.FLI:  Very very simple animated bouncing ball.  The first RayTracker
  1034. animation EVER!
  1035.  
  1036. CAR.FLI:  Looking at a red car in sunset.  Image Rendered and Animated in
  1037. RayTracker 0.6 Beta.  Model built in AutoCAD R10 by:  Bertil Heden, Autodesk,
  1038. Sweden.  Thanks, Bert!
  1039.  
  1040. MESH.FLI:  Fly-round a bowling pin of glass and a bowling ball on a plate
  1041. suspended in space.  New effect in this version of RayTracker is the ability
  1042. create a feel of space via 'space mapping' a background to the universe.
  1043.  
  1044. ALARMCLK.FLI:  An image of an alarmclock, a matchbox, a table, and a wooden
  1045. table lamp.  Suddenly, without warning, we fly past the clock and up the lamp.
  1046. Why?  Beats me.
  1047.  
  1048. --------
  1049.  
  1050. Tracey Bernath (tmbernath@tiger.waterloo.edu) notes:
  1051.  
  1052. I recently uploaded the raytraced animations from tolsun.oulu.fi to
  1053. wuarchive.wustl.edu to try and cut down the trans-ocean net travel.  I can't
  1054. upload to SIMTEL because we have a lousy connection, and I always get the
  1055. usual "Too many anonymous users, Try Again" 8-}
  1056.  
  1057. in /pub/zap are the raytraced and animated images, some are really good, some,
  1058. well...  in /pub/raytracker are the original animations, including aaplay.lzh
  1059. (I don't know if aaplay.exe works, but I know the aaplay.lzh does )
  1060.  
  1061. Enjoy!
  1062.  
  1063. -------------------------------------------------------------------------------
  1064.  
  1065. RayTracker Info, by Zap Andersson
  1066.  
  1067. [Though a commercial product, I thought I would include this info, since the
  1068. FLI demos used this software to generate them.  Also, the interactive features
  1069. are of interest.  I received a demo copy to review, and it seemed pretty nice
  1070. (though I didn't do any serious rendering with my no-math-coprocessor 386).]
  1071.  
  1072. Current version (1.71)
  1073. Date: 24 april 1991
  1074.  
  1075. RayTracker is a commercial raytracing program, especially created to render
  1076. geometries from the well-known CAD software AutoCAD.  RayTracker reads models
  1077. in the AutoCAD DXF format, or in Autodesk 3D Studio 'ASCII' format.
  1078.  
  1079. RayTracker runs on MS-DOS PC computers, with a math co-processor, but porting
  1080. to other platforms (mainly Sparc, Amiga and Mac) are being considered.  It
  1081. utilizes Expanded (EMS) memory if it is found in the system.
  1082.  
  1083. RayTracker has a graphical user interface (GUI) with dialog boxes, pull-down
  1084. menus, and a built in hypertext help-system.  It runs in two modes, a
  1085. graphical mode (which requires an EGA/VGA display) and a text mode fore those
  1086. lacking graphics.  On a VGA you may also see the image as it is being
  1087. rendered.  You may view the finished image with a supplied program on your
  1088. VGA, Super-VGA or on your CAD display, if it has an AutoSHADE compatible real
  1089. mode ADI driver with version 4.0 or higher and at least 256 colors.
  1090.  
  1091. Materials are easily assigned to objects by simply loading them from the
  1092. provided material library, containing many useful materials.  You may also
  1093. create your own materials by setting parameters for color, ambient, diffuse
  1094. and specular reflection, mirroring, transparency, index of refraction, trans-
  1095. lucency, shadow-casting and many many other things.
  1096.  
  1097. The mapping functions in RayTracker use a very generalized model of a map.  A
  1098. 'map' can be any number of patterns, mixed or overlaid, placed on different
  1099. parts of one single surface, or repeated all over.  Each pattern can be both a
  1100. bitmapped graphic image (GIF, Targa 16/24/32, Animator CEL, Animator FLI and
  1101. Amiga IFF format is accepted), or one of the built in mathematically defined
  1102. functions (wood, marble, random noise, wavy, checkered etc.).
  1103.  
  1104. Each 'map' can be applied in many ways:
  1105.  
  1106. * Texture map - Changing the color of the surface.  This is the only thing
  1107.         that more primitive renderers, such as 'Big D' can do.
  1108.         Certain parts of a texturemap can also have a transparent
  1109.         color allowing one single surface to depict a complex object
  1110.         such as a tree or a person as a 'coulisse'.  Naturally, the
  1111.         shadow has the contour of the tree or person also.
  1112.  
  1113. * Bump map    - The 'brightness' at each spot in the map guides the surface
  1114.         'altitude', allowing you to create dented, scraped, wrinkled,
  1115.         engraved or in any other minor surface deviation.
  1116.  
  1117. * Mix map     - Allows you to mix between two totally different surface
  1118.         descriptions on one surface, such as a checkered pattern where
  1119.         some squares are of red glass and others of wood.
  1120.  
  1121. * Reflect. map- Allows you to simulate reflections without the increased
  1122.         rendering time using true mirroring.  Curved objects looks
  1123.         just as convincing with a reflection map.  You may also add
  1124.         amusing effects, such as 'window reflections' like in the film
  1125.         'Tin Toy' from Pixar.
  1126.  
  1127. Aside from this, a map can also be applied as the 'slide' in a slide projector
  1128. light source, or as the screen fore- or background.
  1129.  
  1130. Lightsources include point sources, directed, spotlights and slide-
  1131. projectors.  Light falloff can be none, linear or quadratic.  All types of
  1132. lights can cast shadows of two types:  Raytraced shadows, that are sharp and
  1133. accurate but requires one extra step in the ray tracing algo- rithm, and
  1134. shadows using a "shadow map", that can have 'fuzzy edges' and work very
  1135. quickly.
  1136.  
  1137. To ease the production of images, RayTracker renders every 16:th pixel first,
  1138. then every 8:th and so on, allowing you to quickly determine if there is
  1139. something wrong with the light, or a material.  You may also create 'test
  1140. renderings' on parts of your model by simply marking two points on the initial
  1141. wireframe.
  1142.  
  1143. Three modes are available, Quick Track, ignoring shadows and reflections,
  1144. Medium Track, accounting for shadows, but not reflection and refraction, and
  1145. finally Ray Track, performing the full raytracing calculation.
  1146.  
  1147. RayTracker can generate walkthrough animations from just a small set of 'key'
  1148. views, using a 7 dimensional spline interpolation technique.  The images can
  1149. be automatically concatenated to an Animator compatible FLI file.
  1150.  
  1151. The output format from RayTracker is GIF or Targa 16/24/32 (with alpha channel
  1152. in the 32 bit format) in any resolution (up to your diskspace limit).  A
  1153. conversion utility is also provided to convert a Targa file to a Amiga HAM
  1154. format.
  1155.  
  1156. RayTracker is *NOT* a PD or ShareWare program, it is a commercial product,
  1157. available from the addresses supplied below.  If you have any technical
  1158. questions about it's capabilities, you can contact me, the program author on
  1159. email address:
  1160.  
  1161.     zap@lysator.liu.se
  1162.  
  1163. ....or you can send ordinary mail to the LAST (Scandinavian) address listed
  1164. below, and attach my name: Hakan 'Zap' Andersson
  1165.  
  1166. U.S.A.                  Europe:             Scandinavia:
  1167. =================       =================   ===================
  1168. EMT Inc.  #250          EMT Ltd.            EMT Ab
  1169. 199 N. Commercial st.   PO Box 103          Box 40
  1170. Bellingham, WA          Rickmansworth       S-178 21 Ekeroe
  1171. 98255 USA               Herts WD3 5RF       SWEDEN
  1172.                         U.K.
  1173. Phone:
  1174. (USA)-206 647 2426     (UK)-923 285 496     (SW)-756 320 20
  1175. Fax:
  1176. (USA)-206 647 2890     (UK)-923 285 496     (SW)-756 346 50
  1177.  
  1178. -------------------------------------------------------------------------------
  1179. END OF RTNEWS
  1180.  
  1181.  
  1182.