home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / info / rtnews / rtnv7n5 < prev   
Encoding:
Text File  |  1994-10-16  |  88.2 KB  |  2,255 lines

  1.  _ __                 ______                         _ __
  2. ' )  )                  /                           ' )  )
  3.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  4. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  5.          /                               /|
  6.         '                               |/
  7.  
  8.             "Light Makes Right"
  9.  
  10.              October 13, 1994
  11.             Volume 7, Number 5
  12.  
  13. Compiled by Eric Haines, 3D/Eye Inc, 1050 Craft Road, Ithaca, NY 14850
  14.     erich@eye.com
  15. All contents are copyright (c) 1994 by the individual authors,
  16.     all rights reserved
  17. Archive locations:  anonymous FTP at princeton.edu (128.112.128.1)
  18.     /pub/Graphics/RTNews, wuarchive.wustl.edu:/graphics/graphics/RTNews,
  19.     and many others.
  20.  
  21. Contents:
  22.     Introduction
  23.     New People
  24.     Ray Tracing Roundup
  25.     Recent Ray Tracing Papers
  26.     Rumor Mill
  27.     AERO Animation/Simulation System version 1.5.1, by Thomas Braeunl
  28.     A Brief Review of [an old] AERO, by Dave Negro
  29.     Photon Tracing, by Chris Thornborrow and Greg Ward
  30.     Faster Than POV-RAY 2.1, by Dieter Bayer
  31.     Z Buffer Based Rendering Program, by Raghu Karinthi
  32.     Gossamer, a Free Macintosh VR/3D Renderer, by Jon Blossom
  33.     Antialiasing Issues, by Arijan Siska
  34.     Microcosm, by Abe Megahed of Cosmic Software
  35.     Fisheye Lens Distortion, by Greg Ward
  36.     Optical Ray Tracers
  37.     Correcting Normal Direction, by Gavin Bell
  38.     Graphics Gems IV Table of Contents, by Paul Heckbert
  39.     Beyond Graphics Gems, by Paul Heckbert
  40.     Radiosity vs. Ray Tracing, by Rico Tsang
  41.     ACM SIGGRAPH Online Bibliography Updated, by Frank Kappe
  42.     How to be Notified of New POV Releases
  43.     PoVSB Windows-based Modeler v0.85, by Jeff Hauswirth
  44.     Porting Rayshade, PBM, etc from Unix to DOS, by Mike Castle
  45.     REYES & Patents, William C. Archibald
  46.     Going from AutoCAD and 3DS into Ray Tracing, by Sean Ross
  47.     Computer Lego Modeling, by Paul Gyugyi
  48.     Rowe's Ray Tracing World BBS, by Harry Rowe
  49.     On Using BSP trees, by Benton Jackson
  50.     Books about Commercial Renderers, by Don Lewis, Jimbo and Yury German
  51.  
  52. -------------------------------------------------------------------------------
  53.  
  54. Introduction
  55.  
  56.     Another SIGGRAPH has come and gone, and it was a pretty fun one.
  57. Getting soaked time and again along with other allegedly intelligent people by
  58. the whales at the SeaWorld reception was definitely memorable.  In many ways
  59. this conference was better than previous years.  The proceedings and course
  60. notes were also provided on CD-ROM (some headaches on some machines, but
  61. that's the norm).  Being able to move course to course was wonderful (even
  62. with the headache of getting to and from Stouffer's, which was no fault of the
  63. conference organizers).  The addition of the technical sketches sessions and
  64. parallel paper sessions were both plusses to me.  Note that there are a number
  65. of great resources on the various CD-ROMs, e.g. the latest release of
  66. Radiance (since there was a paper on the system in the proceedings this year).
  67.  
  68.     The most noticeable technology for me was Apple's QuickTime VR.
  69. Nothing earth-shattering, but something which looks to be popular.
  70. Essentially you can move from view to view of an environment.  You have a
  71. panoramic view of wherever you're located, so you can turn your head, zoom in
  72. on something, and even look up and down a bit:  there's a nice illusion that
  73. you're interacting with the environment but without having more than a single
  74. panoramic view for a location.  The software does all the distortion
  75. correction on the fly.  The first product that is out using this technique is
  76. a tour of the Enterprise (TNG) on CD-ROM, and I suspect you'll see a lot of
  77. Apple's technique in upcoming CD-ROM tours and adventure games (e.g. rumor
  78. has it the Myst guys were looking at the technique).
  79.  
  80.     So what's this have to do with ray tracing?  Well, ray tracing is a
  81. natural for rendering panoramic views (Ken Musgrave has a Gem on how to do
  82. this in "Graphics Gems III").  Scanline images can be used and glued together
  83. and then warped, but ray traced images give you the distortion you need for
  84. free and at the sampling rates you need where you need them.
  85.  
  86.     This is yet another catch-up issue, where the bits and pieces left in
  87. the queue since April are gathered up and spewed out now.  If anything, have
  88. the material molder in my files for a few months meant I've culled a bit more
  89. than usual, leaving a denser filling with a firm yet flakey crust.  Food
  90. imagery aside, there *are* some worthwhile bits in this issue:  AERO, a demo
  91. of Microcosm, a new z-buffer renderer, and so on.  Next issue will have more
  92. juicy stuff (and I really do hope to get it out before the Millenium arrives),
  93. including an announcement of a non-Pixar-produced shareware RenderMan
  94. implementation!
  95.  
  96. -------------------------------------------------------------------------------
  97.  
  98. New People
  99.  
  100. # Werner Purgathofer - radiosity, ray tracing, visualization, color
  101. # Technical University of Vienna
  102. # Institute of Computer Graphics
  103. # Karlsplatz 13 / 186-2
  104. # A-1040 Wien / Austria
  105. # +43 (1) 58801 4548
  106. alias purgathofer@cg.tuwien.ac.at
  107.  
  108. I am a professor of computer graphics, my main job consisting of teaching,
  109. administration and research.  My group consists of about 12 people, including
  110. a technician and a secretary.  We did a lot of ray tracing some years ago,
  111. including distributed ray tracing (see e.g. Eurographics 86), now we are
  112. concentrating on radiosity issues.  As (forward) ray tracing becomes more and
  113. more important here, we are almost back where we started!
  114.  
  115. -------------------------------------------------------------------------------
  116.  
  117. Ray Tracing Roundup
  118.  
  119.  
  120. Thought folks might be interested in the On-Line Ray-Tracing Bibliography,
  121. available over the World Wide Web via URL:
  122.  
  123.     http://www.cm.cf.ac.uk/Ray.Tracing/
  124.  
  125. Even those without Web clients like Mosaic can check this out by telneting to
  126. one of these sites:
  127.  
  128.     If you're near:         Telnet to:
  129.  
  130.     Switzerland:            info.cern.ch or 128.141.201.74
  131.     Kansas, USA:            ukanaix.cc.ukans.edu  (login as www)
  132.     New Jersey, USA:        www.njit.edu  (login as www)
  133.     Israel:                 vms.huji.ac.il or 128.139.4.3 (login as www)
  134.     Slovakia:               sun.uakom.cs (slow link; use only from nearby)
  135.     Hungary:                fserv.kfki.hu (slow link, login as www)
  136.     Finland:                info.funet.fi or 128.214.6.100
  137.  
  138. Mark Maimone (Mark.Maimone@A.GP.CS.CMU.EDU)
  139.  
  140. [This is Ian Grimstead's doing, and "bibliography" is a misnomer - it's a
  141. great place to start looking for all sorts of ray tracing and rendering
  142. resources, with links to just about everywhere.  Really, I could just list
  143. this site each issue and not have to list most of the other resources that I
  144. do.  -EAH]
  145.  
  146. --------
  147.  
  148. The FAQ for comp.graphics.algorithms are available at:
  149.  
  150. http://www.cis.ohio-state/hypertext/faq/usenet/graphics/algorithms-faq/faq.html
  151. ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/graphics/algorithms-faq
  152.  
  153. Also available at:
  154. ftp://wuarchive.wustl.edu/graphics/graphics/mail-lists/comp.graphics.algorithms
  155.  
  156. FYI, all usenet FAQ's are available with Mosaic via:
  157. http://www.cis.ohio-state/hypertext/faq/usenet/top.html
  158.  
  159. Jon Stone (jdstone@ingr.com)
  160.  
  161. --------
  162.  
  163. A computer graphics related FTP list [maintained by Nick Fotis and myself.
  164. -EAH] is kept at:
  165.  
  166. wuarchive.wustl.edu: /graphics/graphics/ray/GraphicsFTP.txt
  167.  
  168. George Kyriazis (kyriazis@esd.sgi.com)
  169.  
  170. --------
  171.  
  172. I've been playing around with HTML and the World-Wide Web lately, and I have
  173. created hypertext versions of the three latest RTNews issues, with more to
  174. come when I get the time and energy to do it...
  175.  
  176. RTNews is at
  177.     http://www.lysator.liu.se:7500/users/ture/rtnews.html
  178.  
  179. I also have some general graphics stuff att .../graphics.html, and my own
  180. presentation at .../ture.html
  181.  
  182. Ture P\aa{}lsson (ture@lysator.liu.se)
  183.  
  184. --------
  185.  
  186. Texture Collections
  187.  
  188. :       I'm looking into different texture collections on CD-ROMs.  Are
  189. :       there any that are absolutely awesome, or others that should be
  190. :       avoided (i.e. not worth the money)?  "Accents" looks pretty nice
  191. :       (in reviews, etc), and also Pixar's $99 offer for "One Twenty Eight"
  192. :       CD-ROM texture collection looks good.
  193.  
  194. I just finished writing an article on this very topic for Digital Video
  195. Magazine.  It should be in the September issue, and it covers about twenty or
  196. so packages for the Amiga, Mac and PC, most of them on CD-ROM.  The Pixar set
  197. you mentioned is very good, as are Autodesk's Texture Universe and Texture
  198. City.  Check the article out for more info on a bunch of packages.  Hope this
  199. is helpful.
  200.  
  201. [Digital Video Magazine is at 603-924-0100 in Peterborough, NH. -EAH]
  202.  
  203. Dave Thomas (dthomas@bbx.basis.com)
  204. Moving Pixels
  205. (Client, looking at image of a sphere on a monitor: "Can we make it rounder?")
  206.  
  207. --------
  208.  
  209. Recent Uploads to ftp.cica.indiana.edu
  210.  
  211. File: desktop/gcad110.zip                                Date:  940311
  212. Desc: GammaCAD v1.10 <ASP> - Full featured
  213.  
  214. File: programr/3dlib30a.zip                              Date:  940315
  215. File: programr/3dlib30b.zip                              Date:  940315
  216. Desc: C++ & Pascal 3D graphic animation
  217.  
  218. --------
  219.  
  220. As a new feature, the fractal FAQ has some links for use with the World Wide
  221. Web.  It can be accessed with a program such as xmosaic at
  222.   http://www.cis.ohio-state.edu/hypertext/faq/usenet/fractal-faq/faq.html
  223.  
  224. Ken Shirriff (shirriff@sprite.berkeley.edu)
  225.  
  226. --------
  227.  
  228. New version of RTrace 8.4.0
  229.  
  230. There is a new version of the RTrace ray-tracing package (8.4.0) at
  231. asterix.inescn.pt [192.35.246.17] in directory pub/RTrace.  Check the README
  232. file.
  233.  
  234. Antonio Costa, Comp. Graphics/CAD (cgcad@bart.inescn.pt)
  235.  
  236. --------
  237.  
  238. New Game Programming FTP-Place
  239.  
  240. I have the great pleasure to officially announce the new (pc) game programming
  241. oriented ftp-place teeri.oulu.fi.  It's currently an old sun3, has max 20
  242. user limit, is located in Finland (Europe) and has about 40M more or less game
  243. programming oriented material online + lots more to come.
  244.  
  245.     teeri.oulu.fi:/pub/msdos/programming
  246.     (uploads to teeri.oulu.fi:/incoming with a .txt file, please)
  247.  
  248. There are graphics libs, sound libs, hardware tech specs, file format specs,
  249. drawing utils, music composing utils, sample game source, some carefully
  250. selected FAQs, file format converters, all 3 known Game Programmers Magazines,
  251. is the official home && dist site for Game Programmers Encyclopedia etc.  etc.
  252.  
  253. The PC Games Programmers Encyclopedia 1.0 (PC-GPE) is in
  254. /pub/msdos/programming/gpe/pcgpe10.zip
  255.  
  256. Jouni Miettunen (jon@stekt.oulu.fi)
  257.  
  258. [Another place to look for PC related graphics source code is:
  259. ftp.uwp.edu: /pub/msdos/demos/programming/source  -EAH]
  260.  
  261. --------
  262.  
  263. PCFormat (UK) RTPics on cover CD
  264.  
  265. Just thought UK readers might like to know that this month, PC Format magazine
  266. have launched a copy which comes with a CD rather than the usual disks.  On it
  267. are over 150 ray-traced images, most of which are pretty stunning and in at
  268. least 640x480 (GIFs though :-(, so only 256 colours).  The ray-traced trees
  269. generated with LParser are particularly gobsmacking!  Even 'Frosty' is on
  270. there, but compared to the rest, I found it to be pretty average (sorry Dan,
  271. but I think some of your others are MUCH better).
  272.  
  273. IMHO, it's well worth a look, and Pc Format can be reached at
  274. format@compulink.cix.co.uk if you want to try & persuade them to put more
  275. ray-tracing stuff on the disc in future (such as source files, image data
  276. etc).
  277.  
  278. PS:  The Bowling.GIF has incredible motion blur (dunno what it was done on
  279. though!)
  280.  
  281. William Turner (wturner@acorn.co.uk)
  282.  
  283. --------
  284.  
  285. Geombib Reminder
  286.  
  287. Otfried Schwarzkopf has set up an experimental server on the world-wide web
  288. for the geometry biblio; you can try it by pointing your browser (e.g.  mosaic
  289. for xwindows) at
  290.  
  291.     http://www.cs.ruu.nl/people/otfried/html/geombib.html
  292.  
  293. The server can be used to do remote searches on the bibliography (it has
  294. biblook under the hood).  When the entry has been annotated with the new URL
  295. field, the server will recognize this and allow you to download the network
  296. object pointed to, e.g.  a Postscript copy of a techreport.  (You can find
  297. some examples by looking for "ftp" in "any" field.)  If you have comments or
  298. suggestions regarding the server, please send them to otfried@cs.ruu.nl.
  299.  
  300. If you wish to join the computational geometry mailing list, send email with
  301. body of "subscribe geombib" to majordomo@cs.usask.ca.  Beware that mail sent
  302. to geombib-request@cs.usask.ca gets a form letter from majordomo but not a
  303. subscription.
  304.  
  305. [You can FTP the bib from cs.usask.ca: /pub/geometry/geombib.tar.Z  -EAH]
  306.  
  307. Bill Jones (jones@skdad.usask.ca)
  308.  
  309. --------
  310.  
  311. Animation FTP Site
  312.  
  313. toe.cs.berkeley.edu in directory /pub/multimedia/mpeg/movies
  314.  
  315. has some quite good mpeg streams including the morphing sequence from Michael
  316. Jackson's 'Black and white' video.
  317.  
  318. Jim Marsden (ee_c456@vulture.dcs.kingston.ac.uk)
  319.  
  320. --------
  321.  
  322. I have recently completed version 1.1 of RenderCAD-PRO, a modeling and
  323. ray-tracing application for the Macintosh.  Its easy graphic user interface
  324. can be used to generate photo-realistic single images and multi-image
  325. animations.  A free demo (requires Mac w/ FPU co-pro) of this $45 package is
  326. available.  Please send info requests to...
  327.  
  328. Paul Rybarczyk (prybarc@heartland.bradley.edu)
  329.  
  330. --------
  331.  
  332. If you have direct Internet access, you can learn about BRL-CAD via:
  333.  
  334. ftp to ftp.arl.mil, directory /brl-cad
  335.  
  336. Mosaic/WWW to the following URL:
  337.     http://www.brl.mil/software/brlcad/index.html
  338.  
  339. Lee A. Butler (butler@ARL.MIL)
  340.  
  341. --------
  342.  
  343. The current version of the Stereogram FAQ is in the HTML file at
  344.     http://www.cs.waikato.ac.nz/~singlis/sirds.html
  345. or can be FTPed from:
  346.     katz.anu.edu.au [150.203.7.91] :  /pub/stereograms
  347. (which also has a lot of other SIRDS related information)
  348.  
  349. [Stereograms are those things you see in the mall (trade name "Hollusion")
  350. that you try to stare at and defocus and see the dinosaur or whatever in 3D.
  351. I could never see the effect until I learned about the techniques listed in the
  352. FAQ.  Fun illusion, and it turns out to be very easy to implement as a post
  353. process to a ray tracer - I believe people have already done it for POV and
  354. Rayshade.  Also, at the listed FTP site there is a ray tracer called raysis
  355. which is devoted to this task.  To do this stuff yourself you can try to
  356. decode the FAQ (it's a tad cryptic when it comes to actually saying what to do
  357. for SIS), buy the new book _Create Stereograms on Your PC_ by Dan Richardson,
  358. Waite Group Press, or wait an issue:  I hope to write up the 20-30 lines of
  359. code I used to add it to my renderer for the heck of it.  -EAH]
  360.  
  361. --------
  362.  
  363. Raytech is a BBS specialising in ray tracing.  It is located in northern
  364. Scotland, and their telephone number is 44-862-832020.
  365.  
  366. Adam Fulcher (afulcher@cix.compulink.co.uk)
  367.  
  368. --------
  369.  
  370. Just about everything that always gets asked over and over again on
  371. rec.games.programmer is covered in the latest Dr. Dobbs:  circle, ellipse,
  372. line, texture mapping, landscape generation, and even ray-tracing.  So before
  373. you ask get that episode (#216 July 1994 ddj).
  374.  
  375. Ben (sbc5a@helga6.acc.Virginia.EDU)
  376.  
  377. --------
  378.  
  379. RT Ray Tracer
  380.  
  381. I have implemented a CSG Ray Tracer with lots of primitives, textures,
  382. bounding volumes in C (but I've no multi-processing/wire-frame stuff).
  383.  
  384. My Ray Tracer is called RT and is available on
  385. ftp-os2.nmsu.edu:os2/2_x/graphics/rt.zip.  It comes with full portable C
  386. source and uses the GBM module for file I/O (found in same directory as
  387. gbmsrc.zip).  I will refresh it with a version less sensitive to rounding
  388. errors sometime soon.
  389.  
  390. Andy Key (ak@hursley.ibm.com)
  391.  
  392. --------
  393.  
  394. Equation for a Cow, er Frog
  395.  
  396. There are some datasets at:
  397.  
  398.     http://george.lbl.gov/ITG.html
  399.  
  400. including a rasterization of a frog that was made by freezing, slicing, and
  401. scanning.  (They planned to do an MRI scan, but frogs don't scan well.)
  402.  
  403. There's also MRI data for an orange, a tomato, a pumpkin, and a rat.
  404.  
  405. Roger Critchlow (rec@arris.com)
  406.  
  407. --------
  408.  
  409. The WorldToolKit User's Group (SIG-WTK) electronic archive is located at
  410.  
  411.     artemis.arc.nasa.gov: /sig-wtk
  412.  
  413. This anonymous ftp site serves as the software and documents library for the
  414. SIG-WTK.  It is intended to serve the needs of active WTK users and other
  415. parties interested in WorldToolKit.
  416.  
  417. The site is organized within the ~ftp/sig-wtk as follows:
  418.  
  419.         incoming/       for anonymous contributions
  420.         models/         3D objects in various formats (NFF, DXF, etc.)
  421.         textures/       textures in various formats (SGI, Targa, etc.)
  422.  
  423. [Note that the NFF format referred to is Sense8's NFF format, not mine. -EAH]
  424.  
  425. Terry Fong (terry@ptolemy.arc.nasa.gov)
  426.  
  427. --------
  428.  
  429. Wavefront site:
  430.  
  431.     http://wavefront.wti.com
  432.  
  433. (WWW only?)
  434.  
  435. Kevin Bjorke (bjorke@pixar.com)
  436.  
  437. --------
  438.  
  439. The author of TextureSynth (Joshua Jeffe) has written a new texture
  440. generating application called TextureScape, which uses postscript shapes as
  441. the basis of really cool, resolution-independent textures. It can also be used
  442. to create animated textures for use in multimedia.  TextureSynth is
  443. published by Specular International (call 1-800-433-SPEC for more info).
  444.  
  445. Peter E. Lee (lee@cs.umass.edu)
  446.  
  447. --------
  448.  
  449. 3D Studio utils uploaded to Avalon
  450.  
  451. I have uploaded 3D Studio IPAS routines and utilities to
  452. avalon.chinalake.navy.mil (129.131.1.225) /pub/utils/3ds/
  453.  
  454. Each file is accompanied by a .txt file.  I didn't write, haven't used, don't
  455. know anything else about these utilities.  Just passing them on.
  456.  
  457. If you have any problems connecting to avalon, try its mirror site:
  458.     Kubota Pacific, ftp.kpc.com (144.52.120.9) /pub/mirror/avalon
  459.  
  460. Pat Kane (prkane@nyx.cs.du.edu)
  461.  
  462. --------
  463.  
  464. Also at avalon.chinalake.navy.mil, in the pub/misc directory, are all sorts
  465. of interesting PC software, including the fabled TrueSpace Caligari demo
  466. version (doesn't save/restore; ts_demo.zip), a Real3D demo (which is supposed
  467. to be tough to use without the documentation), and other interesting things.
  468.  
  469. --------
  470.  
  471. Acoustic Simulation
  472.  
  473. Renkus-Heinz, a speaker manufacturer from California, distributes EASE
  474. (Electro Acoustic Simulation for Engineers), and EASE Jr.  Both run on MS-Dos
  475. systems.  Ease also supports aurilization using a companion program called
  476. EARS and a DSP board.  Ease allows you to calculate reverb time, impulse
  477. response, frequency response of systems, ray tracing, and perform sound system
  478. design.  Ease Jr allows reverb time and sound system design calculations.
  479. Both programs allow wireframe room models to be built in the program, or
  480. importation of 3-D DXF files.
  481.  
  482. Jay Paul (jaypaul1@aol.com)
  483.  
  484. [it had the magic words "ray tracing" in there, so I included it. -EAH]
  485.  
  486. --------
  487.  
  488. Blob Sculptor Update
  489.  
  490. We have released Blob Sculptor for Windows 1.0.  It has the same functionality
  491. as the DOS version.  Ron Praver ported the DOS version to Windoze.  [look
  492. around on ftp.povray.org, I think it's in there somewhere. -EAH]
  493.  
  494. Blob Sculptor, ver 2.0 for _DOS_ is almost ready to be released.  The new
  495. functionality includes:
  496.  
  497.         * better user interface
  498.         * camera can be interactively located
  499.         * support for multiple blobs, i.e. components within a blob interact
  500.           with each other but blobs don't interact with each other
  501.         * sphere, cones and cylinder shaped components
  502.         * faster preview mode
  503.  
  504. Version 2.0 has been beta tested for some time and already has produced some
  505. awesome images.  For example, Edgar L. Ibarra has produced various images
  506. including cartoon-like characters:  dog, candle holder (a la Beauty and the
  507. Beast), and a baby.  You can find these at CompuServe's GraphDev forum.  He
  508. renders the objects with Imagine 3.0.
  509.  
  510. I've been working on a spline blob component.  The component consists of 3
  511. points which are created in 3D space.  A spline is used to interpolate them
  512. and a radius is defined to give the object a bent cylinder look.  The
  513. component also permits the modification of a tension parameter which gives the
  514. user more versatility without the need to use more points.  Uses for this, you
  515. ask?  well, if you want to create the fingers in a hand you don't need to use
  516. spheres or 2 or more cylinders to do the job...just 1 spline blob will do the
  517. job.  Think of a spline blob as a generalized cylinder or playdough in the
  518. shape of a cylinder which can be bent.
  519.  
  520. Alfonso Hermida (AFANH@STDVAX.GSFC.NASA.GOV)
  521.  
  522. --------
  523.  
  524. Radiance Related
  525. ================
  526.  
  527. SIGGRAPH Proceedings Distribution
  528.  
  529. Other than a paper about the Radiance system in the SIGGRAPH '94 Proceedings,
  530. the entire Radiance system is included on the Proceedings CD ROM.  It's in
  531. /papers/ward/rad2r4.tz (uncompress and read .tar, I assume).
  532.  
  533. Eric Haines
  534.  
  535. ----
  536.  
  537. Radiance vs. POV
  538.  
  539. I have found Radiance to be comparable in speed to POV.  Once the octree is
  540. generated the tracing times are even shorter than POV.  It has very efficient
  541. pruning and the tracing times go up less than linearly with the increase in
  542. the number of polygons in a scene.  And besides - the results are MUCH better
  543. in terms of realistic-looking lighting and better-looking surfaces.  In my
  544. opinion Radiance is the best ray-tracing package on any platform - I use it on
  545. an Amiga.  The main problem with Radiance is lack of a good modeler and the
  546. many other support programs that are available for POV.
  547.  
  548. Alison Colman (acolman@magnus.acs.ohio-state.edu)
  549.  
  550. --------
  551.  
  552. POV Related
  553. ===========
  554.  
  555. Andy Wardley (abw@dsbc.icl.co.uk) notes:
  556.  
  557. I've just uploaded geodome1.zip to uniwa which is the utility for creating the
  558. geodome data models.
  559.  
  560. Non-PC users will be glad to hear that it *does* include source.
  561.  
  562. --
  563.  
  564. Harry Rowe (Harry.Rowe@wedowind.meaddata.com) comments:
  565.  
  566. Like others, I would just like to say GREAT scene!  The sky is one of the best
  567. I've seen.  I scarfed the GIF and your utility from uniwa and placed it on my
  568. BBS (Rowe's Ray Tracing World BBS (513) 866-8181).  It will be on my custom
  569. 600 meg Ray Tracing/Graphics CD coming this fall
  570.  
  571. ----
  572.  
  573. The POV-Utilities 2.0 for the Mac have hit the streets.  The package is now
  574. available on CompuServe, Go GRAPHDEV, Lib 8, POVUTL.SIT.  It is also available
  575. via anonymous ftp on the internet, from the Australian secondary official
  576. POV-Ray site, ftp.uwa.edu.au (and ftp.povray.org for N.American users, I
  577. assume), under pub/povray/utilities/.  As always, feedback and bug reports are
  578. encouraged.
  579.  
  580. Also look for my shareware System 7 "MooVer" utility, that converts a series
  581. of (POV-Ray animated?)  PICT files into a QuickTime movie with a simple
  582. drag-n-drop.  It should also be showing up on uniwa, and is on
  583. CIS/GRAPHDEV/Lib 6/MOOVER.SIT.
  584.  
  585. Eduard Schwan (71513.2161@CompuServe.COM)
  586.  
  587. ----
  588.  
  589. New Povray Clipart Available
  590.  
  591. I've uploaded Povray V2.0 files to avalon.chinalake.navy.mil.  They can be
  592. found at pub/objects/pov.  They were all converted from *.obj files found on
  593. avalon.chinalake.navy.mil in pub/objects/obj.
  594.  
  595. Keith D. Rule (keithr@tekig7.pen.tek.com)
  596.  
  597. [many are the free Viewpoint models, plus a few Star Trek thingies. -EAH]
  598.  
  599. ----
  600.  
  601. POV Utility Information on the WWW
  602.  
  603. I have just set up a WWW page for POV utilities, containing information about
  604. a few popular ones, and also allowing you to download them directly from the
  605. page.  For most people that should be faster than the various ftp sites, as
  606. well as having the advantage that you actually get some info on what the
  607. utility is about.
  608.  
  609. The URL is http://www.ifi.uio.no/~mariusw/pov/utilities.html
  610.  
  611. Please give me feedback and point me to utilities you think should be on the
  612. pages.
  613.  
  614. Marius Ibenhardt Watz (mariusw@ifi.uio.no)
  615.  
  616. ----
  617.  
  618. Some utilities of note:  MORAY (1.5 of course !), SUDS, CTDS, POVCAD, TGA2GIF,
  619. TTG, DXF2POV and RAYLATHE, just to mention a few.
  620.  
  621. [from the POV newsletter]
  622.  
  623. ----
  624.  
  625. Faces for POV (Frosty):
  626.  
  627.     There was a thread a while back about Dan Farmer's Frosty picture and
  628. how we wanted the .POV file.  I think in fact most people wanted the face
  629. data, and on someone's advice on this group I got hold of the face1.3ds,
  630. face2.3ds and face3.3ds files from avalon.chinalake.navy.mil and converted
  631. them into .pov form with a utility also on that ftp server.  The utility for
  632. conversion is something like 3dspov18.zip [source for conversion from 3DS is
  633. included.  -EAH]
  634.  
  635.     The results are good, although they come out as 230-320k files that
  636. might fill up too much space, and take a while to parse.  The face are more
  637. like masks than real faces, but do the job so long as expressions aren't
  638. needed.
  639.  
  640. Mr. Jonathan H. S. Peterson (zctyjhp@ucl.ac.uk)
  641.  
  642. ----
  643.  
  644. Parallel POV-Ray using PVM
  645.  
  646. I have written such a thing (somehow). It works like this:
  647.  
  648. A server is started, that takes all parameters and stuff.  The server divides
  649. the final picture in several stripes.  The server spawns some children, that
  650. each calculate one stripe (10 pixels high).  For this, each child starts
  651. povray with +SL and +EL and writes the result to a file.  This file is passed
  652. back to the server.  The server collects all files.
  653.  
  654. After all stripes have been calculated (a list of calculated stripes is
  655. maintained, so you can abort and restart the process), all stripes are
  656. collected into a final picture.
  657.  
  658. The results are impressive. texture1.pov-demo is rendered in 1-2 minutes
  659. at 1280x1024 pixels.
  660.  
  661. Aaron Digulla ([sorry, no address])
  662.  
  663. --------
  664.  
  665. Rayshade Related
  666. ================
  667.  
  668. Craig Kolb has moved to Stanford, following his advisor Pat Hanrahan, and so
  669. has pretty much bowed out of maintaining Rayshade.  In his place others are
  670. attempting to glue together all the additions and bug fixes over the years and
  671. get out a Rayshade 4.1.  More news as it happens.  Other than this effort,
  672. there has been an explosion of WWW stuff for Rayshade.
  673.  
  674. ----
  675.  
  676. Scattered notes from Craig Kolb:
  677.  
  678. There's an experimental version of a rayshade homepage available on the Web:
  679.  
  680.     http://www.cs.princeton.edu/grad/cek/rayshade
  681.  
  682. Thanks to Jelle van Zeijl and Stuart Warmink for providing documents, images,
  683. and encouragement to set this up.
  684.  
  685. As some of you might have noticed, I've reorganized and expanded the
  686. rayshade FTP archive a bit.  If you have anything that you'd like to add
  687. (new primitives, textures, whatever), drop me a line.
  688.  
  689. Hundreds of surface definitions for Rayshade are available in:
  690. ftp://ftp.princeton.edu/pub/Graphics/rayshade/Contrib/Libraries/surfdefs.rh.Z
  691.  
  692. Stephen Peter's excellent notes on using rayshade are now available
  693. via the rayshade homepage (http://www.cs.princeton.edu/grad/cek/rayshade/),
  694. and in source form on the rayshade FTP archive as Contrib/Docs/raynotes.tar.gz.
  695.  
  696. Craig Kolb (cek@Princeton.EDU)
  697.  
  698. ----
  699.  
  700. Z Buffer (Range Map) Extension
  701.  
  702. To get this extension, ftp vacation.venari.cs.cmu.edu (128.2.209.207), don't
  703. chdir, and use binary mode and download zbuf.tar.  You can get documentation
  704. updates (a patch file and a new file) in the same place: file zbuf-doc.tar.
  705.  
  706. Mark Maimone (Mark.Maimone@A.GP.CS.CMU.EDU)
  707.  
  708. ----
  709.  
  710. The RayShade docs done by Jelle are up as URL:
  711.     http://www.msi.umn.edu/miscdocs/Rayshade/index.html
  712.  
  713. -- Matt Hughes (hughes@msi.umn.edu)
  714.  
  715. The Rayshade users' manual can now be reach at MIT via two URLs:
  716.    http://web.mit.edu/afs/athena/activity/c/cgs/lib/html/rayshade/index.html
  717. and
  718.    http://www.mit.edu:8001/activities/cgs/rayshade/index.html
  719.  
  720. -Fred, Director, MIT Computer Graphics Society
  721.      (http://www.mit.edu:8001/activities/cgs/mitcgs.html)
  722.  
  723. ----
  724.  
  725.     For what it's worth, I've included a pointer to Rayshade in the
  726. Computer Vision Home Page:
  727.     http://www.cs.cmu.edu:8001/afs/cs/project/cil/ftp/html/vision.html
  728.  
  729. Mark Maimone (Mark.Maimone@A.GP.CS.CMU.EDU)
  730.  
  731. ----
  732.  
  733.     I've made a sample page of the standard Rayshade images (and just a
  734. few more :-) available to the Net.  There are several ways to get at them:
  735.  
  736.     AFS filesystem:
  737. cd /afs/cs.cmu.edu/misc/rayshade/all_mach/omega/doc/Examples/
  738.  
  739.     WWW with icons:
  740. http://www.cs.cmu.edu:8001/afs/cs/misc/rayshade/all_mach/omega/doc/Examples/
  741.     rayimages.html
  742.  
  743.     WWW without icons:
  744. http://www.cs.cmu.edu:8001/afs/cs/misc/rayshade/all_mach/omega/doc/Examples/
  745.     rayimgtxt.html
  746.  
  747.     anonymous FTP:
  748. ftp ftp.cs.cmu.edu
  749. login: anonymous
  750. passwd: email
  751. cd /afs/cs/misc/rayshade/all_mach/omega/doc/Examples/
  752.  
  753. -------------------------------------------------------------------------------
  754.  
  755. Recent Ray Tracing Papers
  756.  
  757. [This is a list of some recent research papers related to ray tracing from some
  758. of the lesser known conferences and journals. -EAH]
  759.  
  760. ----
  761.  
  762. [This paper is interesting in that it is the first independent testing of
  763. Arvo and Kirk's 5D space subdivision ray tracing scheme.  -EAH]
  764.  
  765. G. Simiakakis and A. Day
  766. Five-dimensional Adaptive Subdivision for Ray Tracing
  767. Computer Graphics Forum, volume 13, number 2
  768. (Special Issue: Rendering), pp. 133-140, June 1994.
  769.  
  770. [George Simiakis can be reached at gns@sys.uea.ac.uk]
  771.  
  772. ----
  773.  
  774. Fifth Eurographics Workshop on Rendering
  775. 13-15 June 1994
  776. Darmstadt, Germany
  777.  
  778. RAY TRACING (Chair: Erik Jansen (fwj@duticg.twi.tudelft.nl))
  779.     [Summaries courtesy of Erik Jansen]
  780.     [Really this session is more for global illumination via rays.  There
  781.     were many other global illumination papers here.  -EAH]
  782.  
  783. Adaptive Splatting for Specular to Diffuse Light Transport
  784.     Steve Collins
  785.  
  786. For a two-pass algorithm an adaptive light pass is used that deposits the
  787. power carried by rays as 'splats' of energy flux on the surfaces using a
  788. Gaussian distribution kernel.  The kernel of the splat is adaptively scaled
  789. according to the 'ray wavefront' convergence or divergence, thus resolving
  790. sharp intensity gradients in regions of high wavefront convergence and smooth
  791. gradients in areas of divergence.
  792.  
  793.  
  794. Rayvolution, An Evolutionary Ray Tracing Algorithm
  795.     Markus Beyer, N. Sander, Brigitta Lange
  796.  
  797. In order to increase the statistical efficiency of Monte Carlo integration of
  798. the rendering equation, evolutionary algorithms are applied to optimize the
  799. sample distribution.  An initial population of rays evolves towards an optimal
  800. sample ray distribution by application of generic operators and selection
  801. mechanisms.  As a result we achieve an implicit stratification and a better
  802. convergence towards the actual value.
  803.  
  804.  
  805. Bidirectional Estimators for Light Transport
  806.     Eric Veach, Leonidas Guibas
  807.  
  808. Monte Carlo methods do not suffer from the artifacts and limitations that
  809. standard radisoity methods have to address, but have another well-known
  810. artifact: noise. A major source of noise is bright indirect light. We can
  811. construct different light paths between the light sources and the eye
  812. either starting from the eye or from the light sources, or starting from
  813. both meeting halfway. The different paths leads to a partitioning of the
  814. rays. Each partition gives us a different unbiased estimator. Combining
  815. these estimators may lead to near-optimal variance reduction.
  816.  
  817.  
  818. A New Raytracing Architecture
  819.     Robert E. Bacon, John A. Gerth, V. Alan Norton, James Kajiya
  820.  
  821. [withdrawn, unfortunately; mentioned because it sounded interesting. -EAH]
  822.  
  823. ----
  824.  
  825. Computer Graphics International '94
  826. Royal Melbourne Institute of Technology
  827.  Melbourne, Australia, June 27 - July 1, 1994
  828.  
  829. Rendering and Display
  830.     Kenjiro Takai Miura
  831.     Ray Tracing Gregory-type Patches
  832.     W. Lamotte, K. Elens, F. van Reeth and E. Flerackers
  833.     A Parallel Ray Tracing Algorithm Using Hierarchical Bounding Volumes
  834.  
  835. Kerry Gigante (kerry@cgl.citri.edu.au)
  836.  
  837. ----
  838.  
  839. The Fourth Eurographics Workshop on Animation and Simulation was held
  840. in Barcelona, Spain September 4-5, 1993.
  841.  
  842. [This workshop had many papers with interesting titles, but here's the one
  843. with those magic words "raytracing":]
  844.  
  845. Combining computer animation and video using bluebox raytracing
  846.   M. Zeiller
  847.   Technical University of Vienna - Austria.
  848.  
  849. Sabine Coquillart (Sabine.Coquillart@inria.fr)
  850.  
  851. ----
  852.  
  853. Abstract from the Sharp Technical Journal, #57 Nov 1993.
  854.  
  855. The Sharp Technical Journal is a Japanese language publication which
  856. contains English abstracts for most of the articles.
  857.  
  858.  
  859. Optimization of Illumination System for LC Projector Using Newly
  860. Developed "Reverse Ray Tracing Method"
  861.  
  862. Takashi Shibatani, Hiroshi Nakanishi, Hiroshi Hamada
  863.  
  864. A new illumination simulation technique using "Reverse ray tracing
  865. method" has been developed as a design tool for an illumination system
  866. of an LC projector with a microlens array.  In this method, rays are
  867. traced from an illuminated plane to a light source in opposite direction
  868. compared to the conventional method.  This method have an advantage that
  869. the numbers of rays to be traced is much smaller than in the case of
  870. conventional method for required accuracy, and it presents 2-dimensional
  871. angular distribution of the incident rays, which affect the efficiency
  872. of the microlens array.
  873.  
  874. An illumination system for a single-panel LC projector with microlens
  875. array with a newly developed correction lens and an aspherical mirror is
  876. optimized to improve brightness of a screen employing this simulation
  877. method.
  878.  
  879. Dr. David K. Kahaner (kahaner@cs.titech.ac.jp)
  880.  
  881. [Copies of previous reports written by Kahaner can be obtained using
  882. anonymous FTP from host cs.arizona.edu, directory japan/kahaner.reports.]
  883.  
  884. -------------------------------------------------------------------------------
  885.  
  886. Rumor Mill
  887.  
  888. [A new feature - this is simply snippets of tantalizing information from the
  889. net that I saw no follow-up about.  If anyone has any details about these
  890. items, let us all know.  -EAH]
  891.  
  892. John T. Chapman (jtc1@cornell.edu) notes:
  893.  
  894. By the way - there's a CD-ROM rendering/ray-tracing tutorial offered through
  895. Tiger Software and others.  It supposedly has stuff on Ray Dream Designer,
  896. along with other programs.  Has anyone seen this?  Is it for RDD 3.0 or
  897. earlier?  Is it worth the money?  (There is apparently two versions - a
  898. 'sampler' at about $19 or so and the full version at about $90 or so.)
  899.  
  900. ----
  901.  
  902. Vareck Bostrom (bostrov@CSOS.ORST.EDU) says:
  903.  
  904. Didn't they have a Intel Paragon doing 1 frame/sec 1024x768 or so ray tracing
  905. at supercomputing '93?  I didn't see it myself, but my friends that did said
  906. it was impressive.
  907.  
  908. ----
  909.  
  910. NURBS Rendering, by Henrik Wann Jensen
  911.  
  912. Jouko Vuoskoski (jvuoskos@suca01.cern.ch) wrote:
  913. : 1) What is the "normal" method to do ray-tracing with
  914. : B-splines (or NURBS)?
  915.  
  916. : 2) How can I do it fast (with less accuracy)?
  917.  
  918. : I was thinking to ray-trace with facets from the control
  919. : polygon of the B-spline. Halving the knot intervals I could
  920. : get more accuracy. Is this right approach?
  921.  
  922. You are right.  The easiest way and also fastest (often stated) is to created
  923. a facet representation of the NURBS-surface and halving the knot intervals is
  924. the way to do it.  I know there is some source-code floating around - try
  925. archie and search for nurbs.
  926.  
  927. [I vaguely recall there being some spline surface intersection code around and
  928. about, but does anyone have any hard info?  -EAH]
  929.  
  930. -------------------------------------------------------------------------------
  931.  
  932. AERO Animation/Simulation System version 1.5.1, by Thomas Braeunl
  933.     (braunl@hermes.informatik.uni-stuttgart.de)
  934.  
  935. AERO is an X-window based tool for simulation and visualization of rigid-body
  936. systems.  AERO contains a 3D scene editor for designing simple blocks world
  937. scenes.  Objects may be placed in space, linked to each other, and forces may
  938. be exerted onto them.
  939.  
  940. In animation mode, the simulation of the scene entered is carried out in real
  941. time (depending on scene complexity) displaying 3D wire frames.  Also, a flag
  942. can be set to generate scene description files for each time point as input
  943. files for a ray tracing program, producing photorealistic output.
  944.  
  945. In both modes, wire frame and ray tracing scenes, the generation of stereo
  946. images is possible.  In the case of real time wire frames a red-green
  947. representation of the scene is rendered, which can be viewed with red-green
  948. glasses.  For the ray tracing output, a binocular pair of scene descriptions
  949. is generated for each time step.
  950.  
  951. AERO can be used for exploring the physical laws of mechanics and also for
  952. generating realistic computer animations.  AERO is available free of charge as
  953. public domain software.  Software and documentation can be copied via
  954. "anonymous ftp" over the Internet.
  955.  
  956. The address of our server is:
  957.     ftp.informatik.uni-stuttgart.de  (currently 129.69.211.2)
  958. The directory is:
  959.     pub/AERO
  960.  
  961. [Note that AERO 1.5.1 now outputs POV-Ray 2.2 format.  I believe AERO is
  962. mirrored on wuarchive, though check version numbers with archie.  This system
  963. looked to be pretty cool - you can simulate physically based phenomena.
  964. There's also a paper about the system and the algorithms used.  Admittedly the
  965. primitive set is limited (spheres and boxes), but Olli Vinberg
  966. (vinberg@cc.helsinki.fi) pointed out that you can run the simulation, output
  967. the results, and substitute the primitives with your own complex objects.
  968. -EAH]
  969.  
  970. -------------------------------------------------------------------------------
  971.  
  972. A Brief Review of [an old] AERO, by Dave Negro (dln2@cornell.edu)
  973.  
  974. My room-mate is running Linux and I learned about AERO last [school] year and
  975. made him install it.  Haven't had any time to play with it this year, though.
  976. I can tell you some of the things that I remeber from last year.
  977.  
  978. 1) The simulations were great!  I found the emulation of real life was great
  979. and could be used to make some great animations.
  980.  
  981. 2) Editing was a little awkward but then again I wasn't able to fully get
  982. accustomed to it myself.  There was of course the standard primitives (Sphere,
  983. Cone, box etc)
  984.  
  985. 3) Textures were lacking.  The selection and editing of textures left a lot to
  986. be desired.
  987.  
  988. 4) A separate .pov file is created for each frame!  There is no way to make an
  989. include or anything for static objects.  Thus editing the files would be
  990. nearly impossible to do with each frame!
  991.  
  992. 5) Adding things to the scene but not with the tools in the AERO editor would
  993. again be extremely difficult.
  994.  
  995. 6) There were still some things that needed to be worked on like the open
  996. dialog and save.  Biggies in my opinion.
  997.  
  998. Well, that is all I can remember for the moment.  But let me remind you that I
  999. have not touched the program in a year, so I don't know if has changed at all,
  1000. and I wouldn't totally trust my memory either.
  1001.  
  1002. -------------------------------------------------------------------------------
  1003.  
  1004. Photon Tracing, by Chris Thornborrow (ct@opal.epcc.ed.ac.uk) and Greg Ward
  1005.     (greg@pink.lbl.gov)
  1006.  
  1007. Chris Thornborrow writes:
  1008. OK onto the questions. I am writing a raytracer which does the following:
  1009.  
  1010.   a) Ordinary raytracing
  1011.   b) Distributed raytracing for lighting
  1012.   c) Path tracing (Kajiya)
  1013.   d) Photon tracing
  1014.  
  1015.   Now I need to be able to bias random vectors to do these *efficiently* but I
  1016. am unsure how to do this.  First off then, to generate a random direction
  1017. vector from a point, I generate a random vector in the unit cube and reject
  1018. those that lie outside the unit sphere.  This has a 50% rejection rate.  Can I
  1019. do better without approximations (I know about generating a 0..1 element and
  1020. then a random angle).
  1021.  
  1022.   The problem above appears compounded for a random vector within some solid
  1023. angle of another vector.  Currently I generate a random vector (as above) and
  1024. then reject ones out with the solid angle (using a dot product).  This is
  1025. awful.  Very small angles can be approximated by generating within a cone but
  1026. larger (say 20 solid degrees) give obviously biased distributions this way.
  1027.  
  1028.   Now my real problem.  Given an incident angle of a photon (ray) and the
  1029. surface normal and the BRDF, how can I generate a random reflection/refraction
  1030. angle that done many times would give the proper distribution defined by the
  1031. BRDF.  In other words, how can I bias the angle of perfect reflection in some
  1032. pseudo-random manner, so that a great number of samples of those directions
  1033. have the same distribution as the BRDF ?
  1034.  
  1035.   Obviously this is trivial for perfectly diffuse surfaces, its the others I
  1036. worry about :-).  I'd like to do this without rejection testing - is this even
  1037. possible without rejection testing ?
  1038.  
  1039. ----
  1040.  
  1041. Greg Ward answers:
  1042.  
  1043. Let me start by saying that I'm not the world's foremost expert on Monte Carlo
  1044. sampling, but I have written a ray-tracer that does some of what you're
  1045. asking.  I assume you have read some books on Monte Carlo sampling already,
  1046. such as Rubenstein's 1981 treatise, "Simulation and the Monte Carlo Method"
  1047. (Wiley, NY).  Professor Pete Shirley of Indiana University has also written a
  1048. fair amount on Monte Carlo methods in ray tracing, though all I have in front
  1049. of me is something from his 1992 course notes on Global Illumination (course
  1050. 18 that year), which I'm not sure you can find easily.  (I seem to remember
  1051. that someone put a bunch of Monte Carlo examples in a Graphics Gems book.  It
  1052. would have to be GG III, since that's the only one I don't have.)
  1053.  
  1054. The trick is to compute a cumulative probability function and invert it.  In
  1055. many cases, this can be done analytically.  In the case of the random
  1056. direction vector, it can even be solved by inspection.  You need only generate
  1057. two random angles, altitude and azimuth, and convert it back to a Cartesian
  1058. vector.  Rejection sampling is unnecessary.  Likewise, for the vector in the
  1059. solid angle of another vector, you can limit your polar angle to the cone you
  1060. have selected, 20 degrees in your example.
  1061.  
  1062. Arbitrary BRDF's are another matter.  Rejection sampling is the most general
  1063. method, but there is a more efficient way to go.  As you probably know, many
  1064. BRDF's are highly peaked, and using rejection sampling means you may have to
  1065. test hundreds of ray directions before you get one that isn't rejected.  The
  1066. more efficient approach is to generate a cumulative distribution table and
  1067. invert it.  I haven't done this myself, so excuse me if I'm a little foggy on
  1068. the details:
  1069.  
  1070. 1.  Select a resolution limit for the polar and azimuthal angles in your ray
  1071.     direction calculation, somewhere around 5 degrees should be good.
  1072.     (This is the only real limitation to this technique.)
  1073.  
  1074. 2.  Create a 3-dimensional table of real numbers.  The first dimension is the
  1075.     number of polar angles, the second dimension is the number of
  1076.     azimuthal angles, and the third dimension is the product of the two,
  1077.     i.e.  float cuml_prob[N][M][N*M];
  1078.  
  1079. 3. For each reflected polar and azimuthal angle, do the following:
  1080.  
  1081.     3a. For each incident polar and azimuthal angle, compute the BRDF
  1082.         times the cosine of the polar angle times the sine of the
  1083.         polar angle and add it to a running total.  Store this sum at
  1084.         the appropriate point in the table created in step 2.
  1085.  
  1086.     3b.  Once done, your sum should equal the total reflectance, which
  1087.         should be less than one (but greater than 0!)  if you have a
  1088.         valid BRDF.  If it doesn't, you might want to report an error,
  1089.         but you can proceed with the calculation regardless.
  1090.  
  1091. 4.  You have now filled a 6.5 Mbyte table, and this completes the
  1092.     initialization phase.  (Storing this sucker to disk wouldn't be a bad
  1093.     idea.)
  1094.  
  1095.  
  1096. Now, when you have to compute a ray direction, you look up the appropriate
  1097. table for this reflection angle, and:
  1098.  
  1099. 5.  Compute a uniformly-distributed random number between 0 and 1 or 0 and the
  1100.     maximum value in this cumulative table, depending on whether the
  1101.     distribution is properly normalized and if you are accounting for
  1102.     reflectance with a multiplier or with pure Monte Carlo.
  1103.  
  1104. 6.  Perform a binary search to find the value in the table that is closest to
  1105.     your random number, and determine the corresponding polar and
  1106.     azimuthal incident angles.  (This is the inversion step in this
  1107.     algorithm.)
  1108.  
  1109. 7.  Jitter your sample uniformly within your 5 degree tolerance (or whatever
  1110.     you picked in step 1) to get the final ray direction.
  1111.  
  1112. 8.  Trace that ray!
  1113.  
  1114. Obviously, the above algorithm could benefit from some refinement.  Firstly,
  1115. the precomputed table ends up being quite large.  The bigger your angle
  1116. tolerance, the smaller it will be, but I can never see it being very compact.
  1117. You can store the whole thing to disk, and just read in the section
  1118. appropriate to the reflection angle in hand when the time comes, and this will
  1119. save on your memory costs at the expense of one or two disk accesses.  Also,
  1120. the binary search (step 6) is fast but not free, and it may pay to invert your
  1121. table directly by computing azimuth and altitude angles corresponding to two
  1122. random variables.  This would require a little more thought, but I think it
  1123. could solve both of these problems.  The only catch is that you still want
  1124. some way of jittering the final result so as to avoid sampling a discrete set
  1125. of directions, and the distance between adjacent points in the table will vary
  1126. with such a scheme.  (Shouldn't be a problem, though.)
  1127.  
  1128. Has anyone implemented something along these lines who could help us out?  Pete?
  1129.  
  1130. -------------------------------------------------------------------------------
  1131.  
  1132. Faster Than POV-RAY 2.1, by Dieter Bayer (dieter@cip.e-technik.uni-erlangen.de)
  1133.  
  1134. [This bent my mind:  someone actually implemented my light buffer algorithm?
  1135. Astounding! -EAH]
  1136.  
  1137. A modified, sped-up and unofficial version of the
  1138. Persistence of Vision Ray-Tracer Version 2.2.
  1139.  
  1140.  
  1141. Faster than POV-Ray (FTPOV-Ray) speeds up calculation of images by using some
  1142. kind of direction cubes for primary rays (the vista buffer) and shadow rays
  1143. (the light buffer) at the cost of additional preprocessing time and greater
  1144. memory usage.  The bounding slab hierarchy used by POV-Ray is projected onto
  1145. the viewing plane and each point light source a priori.  Thus the number of
  1146. ray/slab-tests is reduced.  Furthermore some modules have been modified to
  1147. eliminate unnecessary calculations and automatic bounding has been improved.
  1148.  
  1149. The modified source code in the archive FTPV21S.ZIP may only be distributed
  1150. together with this text and the file POVLEGAL.DOC that is part of the official
  1151. POV-Ray package.  To use the source code you'll need the original POV-Ray 2.2
  1152. distribution.
  1153.  
  1154. WARNING!!!  If you use FTPOV-Ray you'll do it at your own risk!  And don't
  1155. forget that the POV-Ray team isn't responsible for this version.
  1156.  
  1157. I have uploaded the source code and executables for MS-DOS and OS/2 2.x to
  1158. ftp.informatik.uni-oldenburg.de and wuarchive.wustl.edu
  1159. (/pub/graphics/graphics/ray/pov/pov-dkb-archive/incoming).
  1160.  
  1161. -------------------------------------------------------------------------------
  1162.  
  1163. Z Buffer Based Rendering Program, by Raghu Karinthi (raghu@cerc.wvu.edu)
  1164.  
  1165. [I tried this out and got some funky lighting problems (perhaps fixed by now),
  1166. but it seemed essentially sound.  It's nice to see a z-buffer for a switch
  1167. (lots harder to write than a basic ray tracer).  Hey, it reads NFF files, so I
  1168. like it ;-> -EAH]
  1169.  
  1170. We have developed a Z bufffer based rendering program in the West Virginia
  1171. University.  The key features of this program are:
  1172.  
  1173. (a) Reads a variant of the standard Neutral File Format (NFF) as input
  1174. (b) Outputs a 24 bit color TARGA file
  1175. (c) Uses accurate fixpoint arithmetic in all its calculations
  1176. (d) Works in X windows environment.  We have tested it on Sun Sparc machines.
  1177.  
  1178. This software is available via anonymous ftp.  The software includes two
  1179. sample files, including the teapot.  We would appreciate any feedback you can
  1180. give us on this software.  We are quite impressed by the quality of the images
  1181. produced.  Enjoy the use of this utility!
  1182.  
  1183. FTP from 157.182.44.36: pub/sources/ZRendv1.tar.Z
  1184.  
  1185. Below is a short description of the software.
  1186.  
  1187. Raghu Karinthi
  1188. Department of Statistics and Computer Science
  1189. Concurrent Engineering Research Center
  1190. West Virginia University
  1191. Morgantown, WV 26506-6506
  1192. Voice: (304) 293-7226
  1193. Fax:   (304) 293-7541
  1194. Email: raghu@cs.wvu.edu OR raghu@cerc.wvu.edu
  1195.  
  1196.  
  1197. Description:
  1198.  
  1199. Often times, I have seen a question on the net for an accurate Z buffer
  1200. rendering implementation producing 24 bit color output along with facilities
  1201. for viewing the same.  We needed one ourselves as a benchmark for our work on
  1202. parallel rendering.  This document describes a program that we developed for
  1203. this purpose.  We have leveraged a number of public domain utilities and
  1204. defacto standards in our development, and hence this program does not have any
  1205. fundamental algorithms, it integrates existing ones effectively.
  1206.  
  1207. This describes briefly our implementation of the Z buffer rendering algorithm.
  1208. The rendering pipeline has the following steps:
  1209.  
  1210. 1. Reading the input file.
  1211. 2. Computing the light intensity at the vertices.  Later, Gouraud
  1212.    shading is used for interpolating the light intensity.
  1213. 3. Computing the view transformation matrix.
  1214. 4. Applying the view transformation to all the vertices
  1215. 5. Rasterization, and writing to framebuffer.
  1216. 6. Writing framebuffer to a TARGA file.
  1217.  
  1218. Subsequently, one can display the TARGA file, by invoking a separate utility
  1219. (included with this package).
  1220.  
  1221. This rendering program leverages of several public domain utilities.  The
  1222. matrix library is from the SPHIGS package from Brown University.  The view
  1223. transformation matrix also is computed using the code from the SPHIGS package.
  1224. Rasterization is based on fixed point arithmetic.  Fixed point arithmetic
  1225. library is from the directory "accurate_scan" from Graphics Gems III
  1226. contributed by Kurt Fleischer.  The rasterization code used in this program is
  1227. a modification of some code from the same source.  We compute 24 bit color
  1228. (R,G,B) at each pixel and write it to a TARGA file.  The functions to do write
  1229. in TARGA file format are from the "LUG" library due to Raul Rivero.  The
  1230. program "sx11" to display a TARGA file is also from the same library.  We have
  1231. extracted these two utilities from the LUG library and provided them in the
  1232. subdirectories "tga" and "sx11".
  1233.  
  1234. Input File Format:  The file format we use is a modification of the Neutral
  1235. File Format (NFF) described in the Standard Procedural Database (SPD) of Eric
  1236. Haines.  The modified NFF is described in the file called NFF in this
  1237. directory.  One can also look at the sample files.  In the NFF file format,
  1238. perspective projection is assumed.
  1239.  
  1240. -------------------------------------------------------------------------------
  1241.  
  1242. Gossamer, a Free Macintosh VR/3D Renderer, by Jon Blossom (jonbl@microsoft.com)
  1243.  
  1244. Gossamer 2.0, a real-time 3D walkthrough engine for the Macintosh, is now
  1245. available - for FREE!
  1246.  
  1247. Gossamer is a very fast, general 3D polygon rendering engine.  This version
  1248. radically improves speed over version 1.1, fixes a number of bugs, and focuses
  1249. on a more coherent user interface for "experimenters."
  1250.  
  1251. Version 2.0 also supports object and world files based on the Rend386 PLG and
  1252. WLD formats.  The Gossamer 2.0 package includes a number of sample worlds and
  1253. objects ported directly from the PC to the Macintosh, and there are others
  1254. available on bulletin boards, electronic services, and ftp sites all over.
  1255.  
  1256. The package is available for anonymous ftp from ftp.apple.com in the
  1257. pub/VR/graphics.systems directory.
  1258.  
  1259. If you have a Macintosh and are interested in 3D graphics, this will be well
  1260. worth your time.
  1261.  
  1262. The system requires a 68020 or better processor Mac running system 7 or system
  1263. 6.x with 32-bit color QuickDraw.  A color display is nice but not necessary.
  1264.  
  1265. If you like Gossamer 2.0, please let me know!
  1266.  
  1267. -------------------------------------------------------------------------------
  1268.  
  1269. Antialiasing Issues, by Arijan Siska (arijan@kette.fer.uni-lj.si)
  1270.  
  1271. I want to get some attention to the (in my opinion) a very serious issue:
  1272. antialiasing.
  1273.  
  1274. When a raytracer with a finite resolution (obviously a resolution cannot be
  1275. infinite) renders an image jagged edges appear in picture (or in case of an
  1276. animation, when difference between two consecutive frames is large (when
  1277. objects move fast), animation tends to flicker).
  1278.  
  1279. These type of problems can be solved by two approaches:
  1280.  
  1281. - supersampling:  is a very very expensive method, since it involves much
  1282. extra (often unneeded) calculation, but generally it gives very good results
  1283. (image quality).
  1284.  
  1285. - adaptive sampling:  implies that there exists some criterion function, upon
  1286. which you can decide whether you should subdivide further to gain a more
  1287. precise answer or you should be satisfied with the approximation you already
  1288. have.  Note that in general there is no way to make this decision function
  1289. absolutely correct.  The best counterexample that I can think of is a thin
  1290. wire fence in front of uniform background.  If you use textures with rapid
  1291. changes it can happen that you subdivide (to the maximum level) 80% of the
  1292. pixels, which is effectively supersampling, but slower (you need to evaluate
  1293. criterion function all the time).  I don't see how some kind of preprocessing
  1294. could help you with criterion function, since all those reflections
  1295. refractions ....  are there.
  1296.  
  1297. ----
  1298.  
  1299. Steven C. Demlow (demlow@cis.ohio-state.edu) replies:
  1300.  
  1301. I played around with a variety of AA approaches in both my own ray tracer and
  1302. the public domain POV ray tracer.  I tried various derivations and
  1303. combinations of supersampling, stochastic jittering, adaptive methods, and
  1304. filtering.  For the animation project I was working on I ended up using 4x4
  1305. stochastically jittered grids on each pixel and a tent filter that extended
  1306. into the (cached, of course) grids of neighboring pixels.  I've been working
  1307. on using a hexagonal grid instead of a rectangular one (this gets tricky when
  1308. you try to overlap the arbitrarily-sized filtering grids of adjacent pixels).
  1309. The hex grid supposedly provides close to an optimal ray distribution for AA
  1310. purposes.
  1311.  
  1312. It sounds like you would do well to add filtering to your ray tracer - it can
  1313. help a lot.
  1314.  
  1315. The conclusion I came to, after eight months of rendering on a bunch of
  1316. HP7?0s, was that ray tracing is not the way to go to generate a lot of high-
  1317. quality images. :)  I love ray tracing but there are reasons that it sees
  1318. little use in production environments.
  1319.  
  1320. ----
  1321.  
  1322. Andy Key (ak@hursley.ibm.com) replies:
  1323.  
  1324. I implemented Whitted Adaptive Supersampling as my anti-aliasing mechanism.
  1325. Really, the test of seeing whether to subdivide is tiny compared to the cost
  1326. of spawning a ray.  I support un-anti-aliased, and whitted.  I was going to
  1327. add unconditional-supersampling to improve the case when I have fine detail
  1328. textures, but I am not sure it will buy me a noticeable difference if I do.
  1329.  
  1330. -------------------------------------------------------------------------------
  1331.  
  1332. Microcosm, by Abe Megahed of Cosmic Software (cosmic@world.std.com)
  1333.  
  1334. [I include this here as there is a free demo and images available.  It's a
  1335. nice system, allowing a wide range of interactive techniques with ray tracing,
  1336. and last I heard they were adding support for native graphics packages (e.g.
  1337. Starbase on HP's), multiple windows, and picking - they're up to version 1.4
  1338. or so by now.
  1339.  
  1340. This package was also the easiest system I ever dealt with for rendering on a
  1341. network (not that I've dealt with a lot, but...):  I simply started up the
  1342. daemons, let the software know which computers to use (HP workstations, in my
  1343. case), and let the software suck up resources and render at great speeds.
  1344. Impressively painless.  -EAH]
  1345.  
  1346.  
  1347. Microcosm, Version 1.2, New Product Announcement / Free Demonstration Version
  1348.  
  1349. A new version of Microcosm is being released for many popular platforms
  1350. including:
  1351.  
  1352. *  IBM PC / MS-DOS
  1353. *  DEC / Alpha
  1354. *  DEC / MIPS
  1355. *  HP 9000 Series 700 (Snake)
  1356. *  Sun Sparkstation
  1357. *  IBM RS 6000
  1358.  
  1359. Microcosm offers the highest quality rendering features such as ray tracing,
  1360. texture mapping, bump mapping, and Phong shading as well as interactive
  1361. animation capabilities.  A free demo version and over 100 example description
  1362. files of animations, simulations, interactive environments, objects, and
  1363. pictures is available via anonymous FTP.
  1364.  
  1365.  
  1366. What is Microcosm?
  1367.  
  1368. The Microcosm system is composed of a set of advanced 3D graphics routines
  1369. which is controlled by a simple, high level interpreted programming language
  1370. called SMPL for 'Simulation / Modeling Programming Language'.
  1371.  
  1372. This gives even the novice programmer the power and flexibility to easily
  1373. create graphics applications which could only previously be done with great
  1374. difficulty and expense in low level languages such as C.  Since the language
  1375. is interpreted, you may change things and immediately re-run your graphics
  1376. program without waiting for the computer to re-compile it.  It's fun and easy
  1377. - like programming an Apple II on steroids!
  1378.  
  1379. Most computer graphics intensive programs spend at least 95% of their time in
  1380. the rendering, so using the interpreter to control the renderer doesn't slow
  1381. the graphics down by more than 5% over a fully compiled program.
  1382.  
  1383.  
  1384. Features of Microcosm
  1385.  
  1386. Microcosm incorporates a number of totally new and innovative rendering
  1387. algorithms in a well integrated system.  Some interesting features are as
  1388. follows:
  1389.  
  1390. Rendering Features:
  1391. *    Shading Language
  1392. *    Surface Mapping
  1393. *    Procedural Textures
  1394. *    Real-Time Soft Shadows, Reflections, and Transparency / Refraction
  1395. *    Interactive Coarse Ray Tracing
  1396. *    Clean Line (Silhouette) Rendering Modes
  1397. *    Shaded Rendering Modes
  1398. *    Ray Tracing
  1399. *    A Choice of Projections
  1400. *    Hierarchy
  1401. *    Stereo Rendering
  1402.  
  1403. Modeling Features:
  1404. *    Procedural Modeling
  1405. *    Fractals
  1406. *    Variety of Primitives
  1407. *    Extensibility
  1408.  
  1409. Programming Features:
  1410. *    Easy-to-Read Syntax
  1411. *    Procedural, Block Structure
  1412. *    Flexible Parameter Passing
  1413. *    Built-in Data Types
  1414. *    Smart Arrays
  1415. *    Nested Comments
  1416.  
  1417.  
  1418. The demonstration version of Microcosm can be obtained by anonymous ftp at:
  1419. dpls.dacc.wisc.edu:  pub/graphics/mcm/mcm_demo.zip.  The demo version runs for
  1420. 1 minute before quitting and also is unable to save files, so it can be used
  1421. only to preview simple renderings or animations.  A number of finished
  1422. renderings are available in mcm/images to illustrate the advanced rendering
  1423. capabilities of Microcosm.  Also provided free are about 100 example
  1424. description files to demonstrate the capabilities of Microcosm.
  1425.  
  1426. Please contact us for specific details about these or other platforms.  Any
  1427. other information, including price and/or ordering information can be obtained
  1428. as follows:
  1429.  
  1430. Cosmic Software Corp.
  1431. 1413 Mound St.
  1432. Madison, Wisconsin
  1433. 53711
  1434. cosmic@world.std.com
  1435. Tel: (608) 259-1776
  1436. FAX: (608) 233-4995
  1437.  
  1438. -------------------------------------------------------------------------------
  1439.  
  1440. Fisheye Lens Distortion, by Greg Ward (greg@pink.lbl.gov)
  1441.  
  1442. Almost all wide angle photographic lenses have a bit of this, but in a
  1443. rendering program it is easier to avoid.
  1444.  
  1445. In a perfect perspective image, straight lines will always be straight, no
  1446. matter how wide the viewing angle becomes.  Viewing angles can never be equal
  1447. or greater than 180 degrees, however, because the arc tangent blows up.  A
  1448. full view angle close to the maximum will cause the center of the image to all
  1449. but disappear, and the view will be dominated by what surrounds the viewpoint.
  1450. (Try it, I guarantee you won't like it.)
  1451.  
  1452. In order to get a view of 180 degrees or greater, it is necessary to adopt
  1453. some sort of perspective distortion.  Most commercial fisheye lenses use a
  1454. distortion that causes distances from the center of the image to be
  1455. proportional to the geometric angle from the central line of sight.  Another
  1456. type of lens creates a view equivalent to taking a hemispherical image and
  1457. projecting it onto a plane, those such lenses are much harder to come by.
  1458.  
  1459. Another poster (Benjohn Barnes) mentioned that these effects are easier to
  1460. achieve in a ray tracing program, and he's probably right.  I didn't have too
  1461. much trouble implementing these view types in Radiance, and they come in quite
  1462. handy.  I can even render a 360 degree fisheye view, where the surround of the
  1463. circular image is actually a single point.  Neat trick.
  1464.  
  1465. P.S. When it comes right down to it, we all have eyes evolved from fishes.
  1466.  
  1467. -------------------------------------------------------------------------------
  1468.  
  1469. Optical Ray Tracers
  1470.  
  1471. [A common question on sci.optics is what ray tracers there are for lens
  1472. design.  Here are some cullings.  -EAH]
  1473.  
  1474. Mark Butterworth (markb@hpcss01.cup.hp.com - address now invalid)
  1475.  
  1476. Instead of driving this subject in to the ground, try the library at your
  1477. university and see if they have:
  1478.  
  1479. Modern Optical Engineering by Warren J Smith (he taught me) Applied Optics and
  1480. Optical Engineering by Kingslake volume 3 and volume 8 are good for this
  1481. subject
  1482.  
  1483. Warren Smith just published a new one (1992) that is a collection of lens
  1484. designs.  I forget the title, something like Optical Engineering:  a resource
  1485. manual.  Published by McGraw Hill.
  1486.  
  1487. The lenses in this book are also available on a disk library for the Genesee
  1488. ray tracing program.  Warren designed alot of the lenses used by Panavision,
  1489. just to mention one.
  1490.  
  1491. ----
  1492.  
  1493. On the commercial side, an excellent package is ORA's CODE V (that's a Roman
  1494. numeral 5).  It's highly regarded and we've been happy with it.  They'll let
  1495. you have a free trial account on their dial-up VAX.
  1496.  
  1497. Optical Research Associates is in Pasadena,CA at (818) 795-9101
  1498.  
  1499. J. Sallay (sallay@scubed.com)
  1500.  
  1501. ----
  1502.  
  1503. In article <ps7Mmch.argil@delphi.com>, argil@delphi.com says:
  1504. >Can anyone suggest a good commercial ray tracing program for general
  1505. >optical design. We are planning on spending a reasonable amount, like
  1506. >up to $1500.  We have only experience with much more expensive packages.
  1507.  
  1508. I don't think you can beat Zemax in this price range.  See their ad in
  1509. Photonics Spectra (p. 19 of the May '94 issue) or Laser Focus World (p. 7 of
  1510. May).  You can also send email to focusoft@crl.com They will send a free demo
  1511. disk which is fully functional except that it won't save lenses.  They plan to
  1512. post it to ftp servers as soon as they get a readme done.  Caution:  Focusoft
  1513. is moving to Arizona and turning into Focus Software.  They hope to be
  1514. operational by 1 June.  The new phone numbers are:  voice:  602/749-5646 fax:
  1515. 602/749-0987.  (Ken got tired of the California government.)
  1516.  
  1517. Steve Eckhardt (skeckhardt@mmm.com)
  1518.  
  1519. ----
  1520.  
  1521. If you have access to Mathematica (Wolfram Research Inc), there is a Notebook
  1522. called LensLab, available at MathSource.wri.com in directory
  1523. pub/Applications/Engineering/Other, with the item # 0204-343.  It is a decent
  1524. ray tracing program with an extensive set of functions for lenses, mirrors,
  1525. prisms etc..  It is relatively slow, unless you run Mathematica on a fast
  1526. Workstation, Quadra, Pentium,...  machine.
  1527.  
  1528. Rudolf Oldenbourg (rudolfo@mbl.edu)
  1529.  
  1530. ----
  1531.  
  1532. A good optical tracer is the new Mac version of Beam, from Stellar Software,
  1533. PO Box 10183, Berkeley, CA 94709, Fax 510-845-2139.  I helped with the beta
  1534. testing, so I know it's good.
  1535.  
  1536. A. David Beach (d.beach@irl.cri.nz)
  1537.  
  1538. ----
  1539.  
  1540. For a freeware optics ray tracer, try irt52.zip in /pub/irt at
  1541. herx1.colorado.edu.  Use anonymous ftp to get this software.  It is written
  1542. for MS-DOS window and you need an unzip program to unzip it.
  1543.  
  1544. Djamshid Navabi (djamshid@lasa.com)
  1545.  
  1546.  
  1547. I've tried it:  can't get past the demo example without a GPF that causes
  1548. Windows to quit to DOS the next time I try to run irt.  If I then try to run
  1549. Windows it tells me something gruesome like "invalid command processor" or
  1550. some such.  I'm trying to compile a more responsible set of actions to send to
  1551. the author but I wanted to mention it here to see if any one else has had the
  1552. experience or if it may be my system.
  1553.  
  1554. Neal E. Tornberg (tornberg@netcom.com)
  1555.  
  1556. -------------------------------------------------------------------------------
  1557.  
  1558. Correcting Normal Direction, by Gavin Bell (gavin@krypton.engr.sgi.com)
  1559.  
  1560. [There are a lot of polygonal models out there with inconsistent surfaces.
  1561. The problem is this:  you're given some random set of polygons and you want to
  1562. consistently orient them outwards so that your ray tracer or z-buffer can use
  1563. backface culling (i.e. ignore visible backfaces) and so speed performance.
  1564. Consistent orientation, that is, getting all the faces to be in clockwise
  1565. orientation, is fairly simple:  once you have the mesh of the object, each
  1566. shared edge must be traversed once in both directions.  So if two polygons
  1567. share an edge and traverse it in the same direction, then the order of
  1568. vertices of one of the polygons is reversed.  Continue the process until all
  1569. shared edges are traversed in both directions or until you get stuck (e.g. a
  1570. moebius strip doesn't work).  The next part is to know which side of the
  1571. polygon set is the outside.  This can certainly be done manually, but here's a
  1572. method of doing it automatically.  -EAH]
  1573.  
  1574.  
  1575. [someone (sorry, the name was deleted in the posting) writes:]
  1576. >> The user picks
  1577. >> a "Seed polygon" and I recursively "grow" a surface starting at
  1578. >> that polygon, a neighboring (child) polygon is considered to be flipped
  1579. >> if the child traverses the two shared vertices in the same
  1580. >> direction as the parent.
  1581.  
  1582. [someone else (sorry, name deleted) writes:]
  1583. >If you are not able to interactively pick such a seed polygon, there is an
  1584. >automatic way, but it takes time to write.  The idea is an extension of a
  1585. >point in polygon algorithm.  Basically, to find if a point is within a
  1586. >polygon, you can extend a ray from that point to infinity, if the ray crosses
  1587. >an even number of edges of the polygon, the point is outside (where 0 is
  1588. >defined to be even).  If it crosses an odd number, it is inside.
  1589. [I think the concept here was to take a vertex and see which side was outside
  1590. by ray tracing. -EAH]
  1591.  
  1592.  
  1593. A better method:
  1594.  
  1595. Consistently orient all of the polygons (you need to know which edges are
  1596. shared to do this, and this isn't possible for some objects-- e.g. mobius
  1597. strips, Klein bottles, etc).
  1598.  
  1599. Now, choose the point 'P' in the middle of the bounding box of the object.
  1600. For each triangle in the object, compute a signed volume for the tetrahedron
  1601. formed by the triangle and P.  Arrange your calculation so that the area will
  1602. be positive if P is left-hand-side of the triangle and negative if P is on the
  1603. right-hand-side of the triangle.  (if your triangle is ABC, then doing
  1604. (AB.cross.BC).dot.P will have this property).
  1605.  
  1606. Add up all of the volumes.  If the result is positive, then the normals are
  1607. oriented 'outside'.  If the result is negative, then the normals are oriented
  1608. 'inside'.  If the result is zero or very close to zero, then the object is
  1609. flat or has just as many concave parts as convex parts.
  1610.  
  1611. This will always work for completely enclosed objects, and does the right
  1612. thing for surfaces-- it chooses the orientation that marks the surface 'most
  1613. convex'.  It works for self-intersecting objects.
  1614.  
  1615. Here's the code I use:
  1616. (If you have Inventor 1, this is in the 'ivnorm' code:)
  1617.  
  1618.     int i, j;
  1619.  
  1620.     int total_v = 0;
  1621.     SbVec3f average(0.0, 0.0, 0.0);
  1622.  
  1623.     for (j = 0; j < length(); j++)
  1624.     {
  1625.     Face *f = (*this)[j];
  1626.     if (f->degenerate) continue;
  1627.  
  1628.     for (i = 0; i < f->nv; i++)
  1629.     {
  1630.         average += verts[f->v[i]];
  1631.         ++total_v;
  1632.     }
  1633.     }
  1634.     average /= (float) total_v;
  1635.  
  1636.     float result = 0.0;
  1637.  
  1638.     for (j = 0; j < length(); j++)
  1639.     {
  1640.     Face *f = (*this)[j];
  1641.     if (f->degenerate) continue;
  1642.  
  1643.     for (i = 1; i < f->nv-1; i++)
  1644.     {
  1645.         SbVec3f v1 = verts[f->v[0]] - average;
  1646.         SbVec3f v2 = verts[f->v[i]] - average;
  1647.         SbVec3f v3 = verts[f->v[i+1]] - average;
  1648.  
  1649.         float t = (v1.cross(v2)).dot(v3);
  1650.         if (f->orientation == Face::CCW)
  1651.         {
  1652.         result += t;
  1653.         }
  1654.         else if (f->orientation == Face::CW)
  1655.         {
  1656.         result -= t;
  1657.         }
  1658.         else
  1659.         {
  1660.         assert(0);
  1661.         }
  1662.     }
  1663.     }
  1664.     return result > 0;
  1665.  
  1666. -------------------------------------------------------------------------------
  1667.  
  1668. Graphics Gems IV Table of Contents, by Paul Heckbert (ph@cs.cmu.edu)
  1669.  
  1670. [I trimmed out the author names for the sake of space.  Incidentally, I've
  1671. found Gems IV to be subtly useful - don't judge the articles just by their
  1672. titles!  For example, "Detecting Intersection of a Rectangular Solid and a
  1673. Convex Polyhedron" by Ned Greene is actually about a method for determining if
  1674. a bounding box is visible within a viewing frustum, a very handy tool.  -EAH]
  1675.  
  1676. Below is the table of contents for "Graphics Gems IV".  This table also serves
  1677. as an index to the code in the FTP collection.  Note that every article has
  1678. text that appears in the book but not in the FTP archive, and some articles
  1679. contain no C or C++ code.
  1680.  
  1681. file or        book    chapter title and author
  1682. directory      chapter
  1683. ------------------------------------------------------------
  1684.         I    POLYGONS AND POLYHEDRA
  1685. centroid.c    I.1    Centroid of a Polygon
  1686. convex_test/    I.2    Testing the Convexity of a Polygon
  1687. ptpoly_weiler/    I.3    An Incremental Angle Point in Polygon Test
  1688. ptpoly_haines/    I.4    Point in Polygon Strategies
  1689. delaunay/    I.5    Incremental Delaunay Triangulation
  1690. vert_norm/    I.6    Building Vertex Normals from an Unstructured Polygon
  1691.             List
  1692.         I.7    Detecting Intersection of a Rectangular Solid and a
  1693.             Convex Polyhedron
  1694. collide.c    I.8    Fast Collision Detection of Moving Convex Polyhedra
  1695.  
  1696.         II    GEOMETRY
  1697.         II.1    Distance to an Ellipsoid
  1698. dist_fast.c    II.2    Fast Linear Approximations of Euclidean Distance in
  1699.             Higher Dimensions
  1700. outcode/    II.3    Direct Outcode Calculation for Faster Clip Testing
  1701. sph_poly.c    II.4    Computing the Area of a Spherical Polygon
  1702.         II.5    The Pleasures of `Perp Dot' Products
  1703.         II.6    Geometry for N-Dimensional Graphics
  1704.  
  1705.         III    TRANSFORMATIONS
  1706. arcball/    III.1    Arcball Rotation Control
  1707.         III.2    Efficient Eigenvalues for Visualization
  1708. inv_fast.c    III.3    Fast Inversion of Length- and Angle-Preserving Matrices
  1709. polar_decomp/    III.4    Polar Matrix Decomposition
  1710. euler_angle/    III.5    Euler Angle Conversion
  1711.         III.6    Fiber Bundle Twist Reduction
  1712.  
  1713.         IV    CURVES AND SURFACES
  1714. data_smooth/    IV.1    Smoothing and Interpolation with Finite Differences
  1715.         IV.2    Knot Insertion using Forward Differences
  1716.         IV.3    Converting a Rational Curve to a Standard Rational
  1717.             Bernstein-Bezier Representation
  1718. curve_isect/    IV.4    Intersecting Parametric Cubic Curves by Midpoint
  1719.             Subdivision
  1720. patch_conv.C    IV.5    Converting Rectangular Patches into Bezier Triangles
  1721. nurb_polyg/    IV.6    Tessellation of NURB Surfaces
  1722.         IV.7    Equations of Cylinders and Cones
  1723. implicit.c    IV.8    An Implicit Surface Polygonizer
  1724.  
  1725.         V    RAY TRACING
  1726.         V.1    Computing the Intersection of a Line and a Cylinder
  1727. ray_cyl.c    V.2    Intersecting a Ray with a Cylinder
  1728. vox_traverse.c    V.3    Voxel Traversal along a 3D Line
  1729. multi_jitter/    V.4    Multi-Jittered Sampling
  1730. minray/        V.5    A Minimal Ray Tracer
  1731.  
  1732.         VI    SHADING
  1733.         VI.1    A Fast Alternative to Phong's Specular Model
  1734.         VI.2    R.E versus N.H Specular Highlights
  1735.         VI.3    Fast Alternatives to Perlin's Bias and Gain Functions
  1736.         VI.4    Fence Shading
  1737.  
  1738.         VII    FRAME BUFFER TECHNIQUES
  1739.         VII.1    XOR-Drawing with Guaranteed Contrast
  1740.         VII.2    A Contrast-Based Scalefactor for Luminance Display
  1741. dyn_range/    VII.3    High Dynamic Range Pixels
  1742.  
  1743.         VIII    IMAGE PROCESSING
  1744. emboss.c    VIII.1    Fast Embossing Effects on Raster Image Data
  1745. coons_warp.c    VIII.2    Bilinear Coons Patch Image Warping
  1746. convolve.c    VIII.3    Fast Convolution with Packed Lookup Tables
  1747. thin_image.c    VIII.4    Efficient Binary Image Thinning using Neighborhood Maps
  1748. clahe.c        VIII.5    Contrast Limited Adaptive Histogram Equalization
  1749. mrsfoley.im    VIII.6    Ideal Tiles for Shading and Halftoning
  1750.  
  1751.         IX    GRAPHIC DESIGN
  1752.         IX.1    Placing Text Labels on Maps and Diagrams
  1753. graph_layout/    IX.2    Dynamic Layout Algorithm to Display General Graphs
  1754.  
  1755.         X    UTILITIES
  1756. trilerp.c    X.1    Tri-linear Interpolation
  1757. interp_fast.c    X.2    Faster Linear Interpolation
  1758. vec_mat/    X.3    C++ Vector and Matrix Algebra Routines
  1759. GraphicsGems.c    X.4    C Header File and Vector Library
  1760.  
  1761. -------------------------------------------------------------------------------
  1762.  
  1763. Beyond Graphics Gems, by Paul Heckbert (ph@cs.cmu.edu)
  1764.  
  1765. [From the Preface of Gems IV, which Paul posted to the net. -EAH]
  1766.  
  1767. In addition to the "Graphics Gems" series, there are several other good
  1768. sources for practical computer graphics techniques.  One of these is the
  1769. column ``Jim Blinn's Corner'' that appears in the journal "IEEE Computer
  1770. Graphics and Applications".  Another is the book "A Programmer's Geometry", by
  1771. Adrian Bowyer and John Woodwark (Butterworth's, London, 1983), which is full
  1772. of analytic geometry formulas.  A mix of analytic geometry and basic computer
  1773. graphics formulas is contained in the book "Computer Graphics Handbook:
  1774. Geometry and Mathematics" by Michael E.  Mortensen (Industrial Press, New
  1775. York, 1990).  Another excellent source is, of course, graphics textbooks.
  1776.  
  1777. -------------------------------------------------------------------------------
  1778.  
  1779. Radiosity vs. Ray Tracing, by Rico Tsang (csrico@cs.ust.hk)
  1780.  
  1781. [I made a few minor fixes, but otherwise this was a nice cheat-sheet summary
  1782. of the functional (vs. algorithmic) differences between meshed radiosity and
  1783. classical ray tracing.  -EAH]
  1784.  
  1785.     Radiosity                     Ray Tracing
  1786.  
  1787. work best to model -            work best to model -
  1788.  
  1789. 1. Area light sources            1. Point light sources
  1790. 2. Diffuse reflections            2. Specular reflections
  1791. 3. Color bleeding            3. Refraction effects
  1792. 4. Soft shadows                4. Sharp shadows
  1793.  
  1794.  
  1795.  
  1796. Limitations of Radiosity
  1797. ========================
  1798.  
  1799. 1.  All surfaces are assumed to be perfect diffuse reflectors.
  1800. 2.  Specular reflections and transparent effects cannot efficiently modelled.
  1801. 3.  Time & storage consuming.  For n surface patches in a scene, you need to
  1802.     calculate and store n^2 form factors.  If you use the 'progressive
  1803.     refinement' radiosity method or hierarchical radiosity, you can minimize
  1804.     the storage requirement for storing the form factors.
  1805.  
  1806.  
  1807. Advantages of Radiosity
  1808. =======================
  1809.  
  1810. 1.  The calculation of radiosities is view-independent.  Once it does so, a
  1811.     view of the environment can be generated with relatively little effort
  1812.     (i.e.  via gouraud interpolation) for any camera position.
  1813.  
  1814.     ==> provides the capability of interactive walkthrough
  1815.  
  1816. 2.  With the progressive refinement method, a geometrically correct view of
  1817.     the environment can be displayed almost immediately.
  1818.  
  1819. -------------------------------------------------------------------------------
  1820.  
  1821. ACM SIGGRAPH Online Bibliography Updated, by Frank Kappe
  1822.     (fkappe@iicm.tu-graz.ac.at)
  1823.  
  1824. This is to announce that the well-known ACM SIGGRAPH Online Bibliography (that
  1825. holds some 16,000 references to computer grahics literature) has been updated.
  1826. The ACM SIGGRAPH Online Bibliography Database was compiled by Stephen N.
  1827. Spencer (spencer@cgrg.ohio-state.edu) with help from various contributors.
  1828.  
  1829. The data set is available through the Hyper-G server of the Graz University of
  1830. Technology either by WWW protocol:
  1831.     http://www.tu-graz.ac.at/CSIGGRAPHbib
  1832.  
  1833. or by Gopher protocol:
  1834.     gopher://gopher.tu-graz.ac.at/11SIGGRAPHbib
  1835.  
  1836. or using a Hyper-G native client such as Harmony (for UNIX/X-Windows), which
  1837. works best, of course. If you are interested in obtaining a copy of Harmony
  1838. please look at
  1839.     ftp://iicm.tu-graz.ac.at/pub/Hyper-G/Harmony
  1840.  
  1841. for downloading instructions. People without clients may also try
  1842.     telnet://info.tu-graz.ac.at
  1843.  
  1844. to access the Hyper-G server of Graz University of Technology.
  1845.  
  1846. More information about the the ACM SIGGRAPH Online Bibliography Project can be
  1847. reached from the URLs mentioned above.
  1848.  
  1849. [The bibliography can be FTP'ed from siggraph.org: /publications/bibliography
  1850. -EAH]
  1851.  
  1852. -------------------------------------------------------------------------------
  1853.  
  1854. How to be Notified of New POV Releases
  1855.  
  1856. The official POV distribution site is ftp.uwa.edu.au.  This site has become
  1857. quite active and holds many POV scene files and utilities as well as POV
  1858. itself.
  1859.  
  1860. As an adjunct to this site, a mailer has been set up which permits file
  1861. requests to be made by email, and which also manages a mailing list.
  1862.  
  1863. The site and the list itself is maintained by a member of the POV-Team
  1864. [Chris Cason (cjcason@yarrow.wt.uwa.edu.au)].
  1865.  
  1866. You can request that your name be placed on one or both of the POV mailing
  1867. lists.  These are not normal mailing lists in that you cannot submit messages
  1868. for them ; only the POV-Team can.  The lists are as follows -
  1869.  
  1870.   ANNOUNCE    Used when new releases of POV are made. This includes POV-related
  1871.           items from the POV-Team, such as the soon-to-be released hypertext
  1872.           help system.
  1873.  
  1874.   NEWS        Used to send new issues of POV-News and anything else relevant
  1875.           to POV, such as new publications, magazine articles, etc.
  1876.  
  1877. Volume on both of these lists will be extremely low ; perhaps only one message
  1878. per month if even that.  This is the easiest way for POV users to be informed
  1879. of patches, bug fixes, new releases, new features, release dates for new
  1880. versions and the actual release of new versions.
  1881.  
  1882. To join these lists, mail a message to -
  1883.  
  1884.   povmail@uniwa.uwa.edu.au
  1885.  
  1886. The subject of the message is unimportant.
  1887.  
  1888. In the body of the message, place the commands -
  1889.  
  1890.   JOIN ANNOUNCE         (to join the announce mailing list)
  1891.   JOIN NEWS             (to join the news mailing list)
  1892.  
  1893.     - or -
  1894.  
  1895.   JOIN ALL              (to join both)
  1896.  
  1897. You should receive a reply indicating that your request was successful.
  1898. If you don't, please try again. For more information, please mail the above
  1899. address with a message containing the word -
  1900.  
  1901.   HELP
  1902.  
  1903. on the first line.
  1904.  
  1905. -------------------------------------------------------------------------------
  1906.  
  1907. PoVSB Windows-based Modeler v0.85, by Jeff Hauswirth
  1908.     (jhauswir@carbon.denver.colorado.edu)
  1909.  
  1910. What's new-
  1911.  
  1912.     Bezier Surfaces.
  1913.     A help file.
  1914.  
  1915. PoVSB is now shareware at $30.  Everything is functional except saving the
  1916. Bezier objects.  Exporting Bezier objects to PoV is functional.
  1917.  
  1918. PoVSB is a Windows based modeler for the Persistence of Vision Raytracer.  The
  1919. goal of PoVSB is to allow users of PoV to quickly and easily design scenes in
  1920. the Windows environment with true camera preview of the scene so no guess work
  1921. is involved.
  1922.  
  1923. I would like to collect a bunch of PoVSB example files to include with PoVSB
  1924. and to also make them available via ftp so other people can use them.  If
  1925. anyone is interested, just e-mail me your example files to include with PoVSB.
  1926.  
  1927. I have included two example files- teacup and satellite.  Try rendering the
  1928. satellite with and without the MB PoV option.  With the MB option it was 6
  1929. times faster, if I remember right.
  1930.  
  1931. I would like to get some feedback from all the people with PoVSB, which I
  1932. think is up near ~350.  I want to know what new features you would like.
  1933.  
  1934. PoVSB has been tested on 386-SX-4M up to 486-66-16M.  The 386-SX had trouble
  1935. with loading the teacup example file.  Other than that I have found no
  1936. problems.
  1937.  
  1938. Features:
  1939.  
  1940.     Four view of scene:
  1941.     3 ISO views, 1     Camera view
  1942.     Objects supported:
  1943.     Sphere, Box, Plane, Cone, Cylinder, Torus,
  1944.     Height Fields, Bezier Surfaces.
  1945.     CSG:  Union, Merge, Intersection, Difference
  1946.     RAW:  Only flat triangle output available (for now).
  1947.  
  1948.     Interactive transformations of objects
  1949.  
  1950.     Lights: Point, Spot
  1951.  
  1952.     Multiple Layers
  1953.  
  1954.     Textures:    Customizable, add your own textures
  1955.  
  1956.  
  1957. How to get PoVSB:
  1958.  
  1959. ftp to: vincent.iastate.edu
  1960. Username: anonymous.jhaus
  1961. Password: YOUR_USERNAME@YOUR.EMAIL.HOST
  1962.  
  1963. If you already have PoVSB you only need to get povsbXX.zip,
  1964. Otherwise you need to get povsb.zip.
  1965.  
  1966. -------------------------------------------------------------------------------
  1967.  
  1968. Porting Rayshade, PBM, etc from Unix to DOS, by Mike Castle
  1969.     (mcastle@mcs213k.cs.umr.edu)
  1970.  
  1971. Amazingly enough Jasen M. Mabus said:
  1972. > Where can I find PBMtools, a preprocessor implementor, and CoProcessor
  1973. > emulator for 386 in DOS executable?
  1974.  
  1975. I ported pbmplus using djgpp a couple years back.  djgpp is a development
  1976. environment by DJ Delorie that includes a homegrown dosextender called "go32",
  1977. gcc/g++ compilers, flex, bison, assorted binary utilities (ar, ld, nm, etc),
  1978. make, and so on.  This environment is an eclectic mix of unixish and dosish
  1979. calls, but is a very workable environment.
  1980.  
  1981. My port of pbmplus can be found on any simtel archive in graphics/pbmpl19d.zip
  1982. (such as oak.oakland.edu in pub/msdos/graphics/pbm...).
  1983.  
  1984. djgpp can also be found in the djgpp dir (pub/msdos/djgpp on oak).  You could
  1985. scan cpp from the djgpp distribution, and have a working preprocessor.
  1986.  
  1987. I included the then current emu387 387 emulator from the djgpp package in my
  1988. pbmplus port, however, that was some time ago.  There are newer and better
  1989. emulators that can be found in the djgpp archives.  Of course, the emu387 and
  1990. wmemu387 (another emulator compatible with go32, but done by someone else)
  1991. will only work with go32 binaries.
  1992.  
  1993. The go32 included with my pbmplus port is out of date, and you may want to get
  1994. the most recent go32.exe from the djgpp packages.  you may also have to run a
  1995. program called 'dpmifix' on the pbmplus binaries to get things working
  1996. correctly (i'm not sure as i don't use dos much anymore, having switched to
  1997. os/2, and so i'm not quite up on djgpp and stuff, and i don't even have my own
  1998. copy of my pbmplus port anymore so....).
  1999.  
  2000. btw, i used the djgpp package to port rayshade quite some time ago, but as
  2001. there was already a 386 port done using a commercial dos extender, never made
  2002. it available.  The port was very straight forward, and only required the
  2003. normal flex/lex bison/yacc fixes (such as rayshades misuse of the yyline
  2004. action), 8.3 file name fixups, and binary mode stdin/stdout.  It worked very
  2005. well, including support for RLE files (i ported the URT as well), cpp, and so
  2006. on.
  2007.  
  2008. -------------------------------------------------------------------------------
  2009.  
  2010. REYES & Patents, William C. Archibald (billa@entropys.sps.mot.com)
  2011.  
  2012. > Is REYES patented?
  2013.  
  2014. Pixar holds three (at last count) patents (including US Patent Number
  2015. 5,025,400) on "Pseudo-random point sampling techniques in computer graphics".
  2016. This includes claims that cover stochastic ray-tracing as well as what you are
  2017. probably referring to by REYES.
  2018.  
  2019.  
  2020. > If so, what part of the algorithm?
  2021.  
  2022. Clearly stochastic sampling techniques as they apply to computer graphics.
  2023.  
  2024.  
  2025. > Is one allowed to implement the algorithm?
  2026.  
  2027. I believe that in the U.S.A. one is allowed to implement the algorithm for
  2028. the purposes of studying it and trade-offs that may be involved.  One is not
  2029. allowed to redistribute any implementations without permission, as that is the
  2030. very thing that patent law is set up to protect against.
  2031.  
  2032. [and in a separate note by the same author:]
  2033.  
  2034. In patent 5,025,400 the claims go on for 4.5 pages (9 columns) of legalese,
  2035. and they seem to pretty much make claim to usage w/ respect to lens effects
  2036. (depth of field), motion blur (temporal jitter), penumbra and other soft
  2037. shadow effect, and just about every variation of jittering reflected rays of
  2038. objects for any reason you might imaging.  I've not been able to really pin
  2039. down good, old-fashioned anti-aliasing anywhere in the claims though...
  2040.  
  2041. -------------------------------------------------------------------------------
  2042.  
  2043. Going from AutoCAD and 3DS into Ray Tracing, by Sean Ross (rosss@CSOS.ORST.EDU)
  2044.  
  2045. Well, for starters, saying one raytracer is "better" than the others is
  2046. guaranteed to cause a flame fest of amazing proportions, so I will just tell
  2047. you about my experience so far and let you make your own determinations.
  2048.  
  2049. What I discovered, from following this group for a while and reading the
  2050. "Mini-FAQ", is that there are quite a few different raytracers around with
  2051. different capabilities.  I found Vivid a bit rough to get started with, and
  2052. therefore tried PoVray, it's been great so far.  I find it easy to use because
  2053. the language is fairly intuitive.
  2054.  
  2055. What has turned out to be easiest for me to create good raytracings with a
  2056. fairly short learning curve is using the following method:
  2057.  
  2058. Use AutoCAD Release 12 with AME to create the initial objects.  AME allows
  2059. very easy creation of complex 3d objects using addition, subtraction,
  2060. intersection, etc.
  2061.  
  2062. Export the finished objects into 3d Studio (I'm using ver 1) to set the camera
  2063. and lighting.  Assign surfaces to all objects with standard names like
  2064. "surface1" etc.
  2065.  
  2066. (If you don't have access to AutoCAD and/or 3D Studio, try using Moray, it's
  2067. shareware ($50) and seems to be easy to use and well supported)
  2068.  
  2069. Use 3DS2POV program to convert the 3d studio file to a PoV file and include
  2070. file.
  2071.  
  2072. Edit the resulting .pov file and replace 3d studio's surfaces with the much
  2073. better surfaces included with pov.  (I've also found it very simple to modify
  2074. these surfaces to do almost anything.)
  2075.  
  2076. Render sample files using a small size (160 x 100) and adjust any settings you
  2077. don't like in the .pov file.
  2078.  
  2079. Start the final rendering with high quality, anti-aliasing, and a large size,
  2080. and plan on not using your system for a while if you're using a lowly 486DX266
  2081. w/8MB like me.  My finished quality renderings generally take about 8 hours to
  2082. process for a 2048 x 2048 image, and I consider these images to be fairly
  2083. simple (not too many complex objects).
  2084.  
  2085. If the above doesn't sound like too much work, give PoVray a try, it's given
  2086. me very good results with a negligible learning curve.  I plan on trying out
  2087. some of the others available, especially Radiance because of its radiosity
  2088. features, but I haven't got around to it yet.
  2089.  
  2090. If anyone else has any suggestions on how I might improve upon the methods I
  2091. described above, I would be greatly interested.
  2092.  
  2093. By the way, just one warning:  after I started creating these images, I find
  2094. myself dedicating a pretty good amount of time to it, I think it's pretty
  2095. addictive, so be careful.
  2096.  
  2097. -------------------------------------------------------------------------------
  2098.  
  2099. Computer Lego Modeling, by Paul Gyugyi (paul@gyugyi.win.net)
  2100.  
  2101. Check out the files on earthsea.stanford.edu in the ~ftp/pub/lego/cad/click
  2102. and ~ftp/pub/lego/cad/rayshade directories.  They include:
  2103.  
  2104. 1) A library of high-detail shape definitions for Rayshade, a 3D modelling/ray
  2105.     tracing program (legolib.ray).
  2106.  
  2107. 2) A definition of a language, LADEL, for specifying brick types and
  2108.     positions.
  2109.  
  2110. 3) A compiler to convert LADEL files to rayshade input files that use the
  2111.     above library of brick definitions.
  2112.  
  2113. 4) A new extension to the compiler that generates a 3D wire-frame image from a
  2114.     LADEL file.  You can fly around and rotate it.  It uses an Xwindows
  2115.     library that is similar to GL, called VOGL, and runs on UN*X machines.
  2116.  
  2117. There is _no_ documentation for most of this stuff, but if you want to try it
  2118. out, email me any questions you have and I'll start creating a how-to.
  2119.  
  2120. -------------------------------------------------------------------------------
  2121.  
  2122. Rowe's Ray Tracing World BBS, by Harry Rowe (Harry.Rowe@wedowind.meaddata.com)
  2123.  
  2124. phone: (513) 866 - 8181 v.32bis (Dayton, OH)
  2125.  
  2126. I have a new ray tracing BBS.  No fees.  It does require user to have Windows
  2127. 3.1 and special client software which can be downloaded on the first call.  It
  2128. is Excalibur (tm) based and is a 100% Windows GUI BBS.  I only carry
  2129. DOS/Windows tracers, but also have tons of objects, textures, converters, etc.
  2130. I have most of what Compuserve GRAPHDEV has in the way of RT utilities.  I
  2131. primarily support Polyray v1.7 and Imagine 3.0 for DOS.  We also have expert
  2132. 3DS users.
  2133.  
  2134. [Harry has recently made a nice 500+ line summary guide to the major POV
  2135. utilities, with 4-15 lines about each one.  I won't put it here, but contact
  2136. him for where it is (or if all else fails, contact me and I'll send you the
  2137. old copy I have).  -EAH]
  2138.  
  2139. -------------------------------------------------------------------------------
  2140.  
  2141. On Using BSP trees, by Benton Jackson (jacks045@maroon.tc.umn.edu)
  2142.  
  2143. [BSP trees are a nice technique for doing 3D and avoiding z-buffering in
  2144. games.  You partition a static environment with a binary-tree hierarchy of
  2145. cutting planes, classifying everything in the node as in front of or behind
  2146. the plane of some given polygon (and splitting things cut by the plane).  Note
  2147. that this is different than the BSP trees used in ray tracing, where the planes
  2148. are independent of the polygons and are essentially a more flexible octree
  2149. like structure.  Worth understanding in general.  -EAH]
  2150.  
  2151. >Do I have to build a new BSP tree for all visible polygons at each frame
  2152. >redraw?  This is what I suspect, but I can't help thinking that there is
  2153. >something more I could do to improve calculation times if I had separate BSP
  2154. >trees for each shape.
  2155.  
  2156. I'm surprised that isn't in the FAQ.  That's the whole point of BSP trees!
  2157. Based on the current viewpoint, if it is in front of the root face, draw the
  2158. back tree, then the face, then the front tree.  This works since that face is
  2159. guaranteed to be in front of everything on one side of the tree, and behind
  2160. everything on the other side.  Which way you go depends on the viewpoint.
  2161. Cool, huh?  Like this:
  2162.  
  2163. DrawBSP(tree B) {
  2164.    if (!B) return;
  2165.    if (in_front_of(viewpoint,B->face) {
  2166.       DrawBSP(B->back);
  2167.       DrawFace(B->face);
  2168.       DrawBSP(B->front);
  2169.    } else {
  2170.       DrawBSP(B->front);
  2171.       DrawFace(B->face);
  2172.       DrawBSP(B->back);
  2173.    }
  2174. }
  2175.  
  2176. This doesn't completely depth sort the faces.  But you don't have to!  You
  2177. just need to ensure that a face that obscures another faces is drawn in the
  2178. correct order.  That's what this does.
  2179.  
  2180. If an object moves, then the tree has to be rebuilt.  I think there is a way
  2181. to merge BSP trees, but I don't know how.  Anybody?
  2182.  
  2183. -------------------------------------------------------------------------------
  2184.  
  2185. Books about Commercial Renderers, by Don Lewis, Jimbo and Yury German
  2186.  
  2187. 3D Studio 3.0:
  2188.  
  2189. Don Lewis (djlewis@ualr.edu) writes:
  2190.  
  2191. Try Inside 3D STUDIO Release 3, comes with a CDROM of sample DXF's and images
  2192. and maps.  Listed as:
  2193.         ISBN 1-56205-075-3
  2194. price $49.95 USA / $65.95 CAN / L46.99 Net U.K. (inc of VAT)
  2195.  
  2196. About the CD:
  2197. Meshes, Texture maps, Bump maps, Graphics file format conversion utility,
  2198. Special effects filters, Utilities for image viewing, printing, and conversion
  2199. (windows and dos), An updated Autodesk animation player, Files for exercises
  2200. in the book, etc ...
  2201.  
  2202. I like the book and a lot applies to 3DStudio 2.0 as well.
  2203.  
  2204. ----
  2205.  
  2206. Jimbo (Jimbo@agdesign.demon.co.uk) writes:
  2207.  
  2208. Inside 3D Studio:
  2209. -----------------
  2210.  
  2211. Author(s):      Steven D. Elliott
  2212.         Phillip L. Miller
  2213.         Gregory G. Pyros
  2214.  
  2215. ISBN:        1-56205-075-3
  2216.  
  2217. Publishers:    New Riders Publishing.
  2218.  
  2219. An excellent book including a CD, unfortunately doesn't include
  2220. the IPAS routines mentioned numerous times throughout.
  2221.  
  2222.  
  2223. 3D Studio Applied:
  2224. -------------------
  2225.  
  2226. Author(s):      Nancy Fulton
  2227.  
  2228. ISBN:        0-929870-24-7
  2229.  
  2230. Publishers:    Advanstar Communications Inc.
  2231.  
  2232. --------
  2233.  
  2234. Imagine system:
  2235.  
  2236. >     Question: My uncle has this and would like to know
  2237. > if there are any other references for IMAGINE that are a
  2238. > bit easier to understand for those less technologically literate.
  2239.  
  2240. Yury German (yury@bknight.jpr.com) writes:
  2241.  
  2242.     Yes, there is a great book, it's called Understanding Imagine.  Steve
  2243. Worley is the author.  Now the book is "Understanding Imagine 2.0" for the 2.0
  2244. version.  In a few months the book will be out for "Understanding Imagine 3.0".
  2245.  
  2246.     The first book was done with the Amiga computer in mind.  The 3.0 book
  2247. might be done for both computers.  If you want you can email Steve at
  2248. worley@cup.portal.com for information.
  2249.  
  2250.     The books are great with alot of humor and all the things needed to
  2251. make manuals easy and understandable.
  2252.  
  2253. -------------------------------------------------------------------------------
  2254. END OF RTNEWS
  2255.