home *** CD-ROM | disk | FTP | other *** search
/ Borland Programmer's Resource / Borland_Programmers_Resource_CD_1995.iso / code / graphics / rtnews / rtnv3n1 < prev    next >
Encoding:
Text File  |  1995-05-19  |  52.6 KB  |  1,189 lines

  1.  _ __                 ______                         _ __
  2. ' )  )                  /                           ' )  )
  3.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  4. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  5.              /                               /|
  6.             '                               |/
  7.  
  8.             "Light Makes Right"
  9.  
  10.             January 2, 1990
  11.                 Volume 3, Number 1
  12.  
  13. Compiled by Eric Haines, 3D/Eye Inc, 2359 Triphammer Rd, Ithaca, NY 14850
  14.     NOTE ADDRESS CHANGE: wrath.cs.cornell.edu!eye!erich
  15.     [distributed by Michael Cohen <m-cohen@cs.utah.edu>, but send
  16.     contributions and subscriptions requests to Eric Haines]
  17. All contents are US copyright (c) 1989,1990 by the individual authors
  18. Archive locations: anonymous FTP at cs.uoregon.edu (128.223.4.1) and at
  19.            freedom.graphics.cornell.edu (128.84.247.85), /pub/RTNews
  20. Other sites: uunet.uu.net:/graphics
  21.  
  22. Contents:
  23.     Introduction
  24.     New People
  25.     Archive Site for Ray Tracing News, by Kory Hamzeh
  26.     Ks + T > 1, by Craig Kolb and Eric Haines
  27.     Quartic Roots, and "Intro to RT" Errata, by Larry Gritz and Eric Haines
  28.     More on Quartics, by Larry Spence
  29.     Question: Kay and Kajiya Slabs for Arbitrary Quadrics?
  30.     by Thomas C. Palmer
  31.     Ambient Term, by Pierre Poulin
  32.     Book Reviews on Hierarchical Data Structures of Hanan Samet,
  33.     by A. T. Campbell, III
  34.     Comparison of Kolb, Haines, and MTV Ray Tracers, Part I, by Eric Haines
  35.     Raytracer Performance of MTV, by Steve Lamont
  36.     BRL-CAD Ray Tracer Timings, by Gavin Bell
  37.     BRL-CAD Benchmarking and Parallelism, by Mike Muuss
  38.     ======== USENET cullings follow ========
  39.     Rayshade Patches Available, by Craig Kolb
  40.     Research and Timings from IRISA, by Didier Badouel
  41.     Concerning Smart Pixels, by John S. Watson
  42.     Input Files for DBW Render, by Tad Guy
  43.     Intersection with Rotated Cubic Curve Reference, by Richard Bartels
  44.     Needed: Quartz surface characteristics, by Mike Macgirvin
  45.     Solution to Smallest Sphere Enclosing a Set of Points, by Tom Shermer
  46.     True Integration of Linear/Area Lights, by Kevin Picott
  47.  
  48. -------------------------------------------------------------------------------
  49.  
  50. Introduction
  51.  
  52.     This issue's focus is on timings from various people using a wide
  53. selection of hardware and software.  Much of the delay in getting out this
  54. issue was my desire to finish up my own timing tests of MTV's, Kolb's, and my
  55. own ray tracers on the same machine.  I hope some of you will find this
  56. information of use.
  57.  
  58.     Another feature of this issue is a pair of book reviews.  One of the
  59. purposes of the RT News is to provide people with sources of information
  60. relevant to ray tracing.  So, I would like to see more reviews, or even just
  61. brief descriptions of articles and books that you come across.  Keeping up to
  62. date in this field is going to take more time as the years go by, so please do
  63. pass on any good finds you may have.  Also, if you're an author, please feel
  64. free to send a copy of the abstract here for publication.  This service is
  65. already provided to a certain extent by SIGGRAPH for thesis work.  However,
  66. even a duplication of their efforts is worthwhile, since an electronic version
  67. is much easier to search and manipulate.
  68.  
  69.     Finally,
  70.  
  71. -------------------------------------------------------------------------------
  72.  
  73. New People
  74.  
  75. # Kory Hamzeh
  76. # 6640 Nevada Ave.
  77. # Canoga Park, Ca 91303
  78. # Email: UUCP:     avatar!kory or ..!uunet!psivax!quad1!avatar!kory
  79. # INTERNET: avatar!kory@quad.com
  80. alias    kory_hamzeh    quad.com!avatar!kory
  81.  
  82. I'm not professionally involved in ray tracing.  Just personally fascinated by
  83. it.  I have written a couple of ray tracers (who hasn't yet?) and I'm in the
  84. midst of designing a 24 bit frame buffer.  Since I don't do this on a
  85. professional level, I lack some of the resources required to develop real
  86. products.  I maintain a archive site with a lot of graphics related items
  87. (including Ray Tracing News).  If you need to access the archive (anonymous
  88. uucp only) please send me mail.
  89.  
  90. --------
  91.  
  92. #
  93. # Steve Lamont, sciViGuy - parallelism
  94. # NCSC,
  95. # Box 12732,
  96. # Research Triangle Park, NC 27709
  97. alias    steve_lamont    cornell!spl%mcnc.org
  98.  
  99. --------
  100.  
  101. # Bob Kozdemba - novice tracer, futures, also radiosity
  102. # Hewlett-Packard Co.
  103. # 7641 Henry Clay Blvd.
  104. # Liverpool, NY 14450
  105. # (315-451-1820 x265)
  106. alias   bob_kozdemba    hpfcla!hpfcse!hpurvmc!koz
  107.  
  108. I work for HP in Syracuse, NY as a systems engineer.  I will be attending SU
  109. starting in Jan. `89 working toward my BS with a focus in computer graphics.
  110. My job responsibilities are to provide technical support to customers and
  111. sales in the areas of Starbase graphics and X Windows.  Lately I have been
  112. experimenting with HP's SBRR product [radiosity and ray tracing part of the HP
  113. graphics package] and trying to keep abreast of futures in graphics.  I have
  114. written an extremely primitive ray tracer and I am looking for ideas on how to
  115. implement reflections and transparency.
  116.  
  117. --------
  118.  
  119. # Robert Goldberg
  120. # Queens College of CUNY
  121. # Comp. Sci. Dep't
  122. # 65-34 Kissena Blvd.
  123. # Flushing, N.Y. 11367-0904
  124. # Work : 3d Modeling algorithms, with appl. to graphics and image processing
  125. # Phone: Work -  (718) 520-5100
  126. alias    robert_goldberg    rrg@acf8.nyu.edu
  127.  
  128. --------
  129.  
  130. # John Olsen - refraction, radiosity, antialiasing, stereo images.
  131. # Hewlett-Packard, Mail Stop 73
  132. # 3404 E. Harmony Road
  133. # Ft Collins, CO 80525
  134. # (303) 229-6746
  135. # email:  olsen@hq.HP.COM, hplabs!hpfcdq!olsen
  136. alias    john_olsen    hpfcdq.hp.com!olsen
  137.  
  138. Currently, I've been spending some time tinkering with the DBWrender ray
  139. tracer making it produce 24 bit/pixel QRT-format images.  I like the QRT
  140. output format, but I like some of the features of DBWrender, such as
  141. antialiasing and fading to a background color.
  142.  
  143. I've thought about writing my own ray tracer with all the features I want, but
  144. so far I've resisted this evil temptation, and only looked for fancier ones
  145. already done by others who could not resist the temptation.  :^)
  146.  
  147. I've just installed an alias for a local ray tracing news distribution.  You
  148. can send it to raylist@hpfcjo.HP.COM (or if you can't reach, try something
  149. like hplabs!hpfcdq!hpfcjo!raylist).
  150.  
  151. --------
  152.  
  153. # Andrew Hunt, andrew@erm.oz
  154. # Earth Resource Mapping, 130 Hay St, Subiaco, Western Australia 6008
  155. # Phone: +61 9 388 2900   Fax: +61 9 388 2901
  156. # ACSnet: andrew@erm.oz
  157. alias    andrew_hunt    uunet!munnari!erm.erm.oz.au!andrew
  158.  
  159. In 1987 I implemented a "Three Dimensional Digital Differential Analyser"
  160. (3D-DDA) algorithm, along the lines of Fujimoto and Iwata`s, and used it to
  161. speed up a raytracing system under development at the Computer Science
  162. Department at Curtin University of Technology.
  163.  
  164. Recently I have got a bit busy developing commercial image processing software
  165. to devote much time to Ray Tracing.
  166.  
  167. Sometime during 1990 I plan to try to port our Ray Tracing system to a
  168. Transputer based platform.
  169.  
  170. --------
  171.  
  172. # Nick Beadman - Distributed Ray Tracing, Efficiency
  173. # School of Information Systems
  174. # University of East Anglia
  175. # Norwich
  176. # Norfolk
  177. # United Kingdom
  178. alias    nick_beadman    cmp7112@sys.uea.ac.uk
  179.  
  180. At the moment I'm trying to implement a distributed ray tracer on 8 t800s on a
  181. meiko computing surface using C, with little success I should add.  It all
  182. part of a big third year computing project worth a sixth of my degree.
  183.  
  184. --------
  185.  
  186. # Peter Miller - algorithms, realism
  187. # 18 Daintree Cr
  188. # Kaleen ACT 2617
  189. # AUSTRALIA
  190. # CONTACT LIST ONLY: subscription through melbourne
  191. #Phone:  +61-62-514611 (W)
  192. #     +61-62-415117 (H)
  193. #        UUCP    {uunet,mcvax,ukc}!munnari!neccan.oz!pmiller
  194. #        ARPA    pmiller%neccan.oz@uunet.uu.net
  195. #        CSNET   pmiller%neccan.oz@australia
  196. #        ACSnet  pmiller@neccanm.oz
  197. alias    peter_miller    cornell!uunet!munnari!neccan.necisa.oz.au!peter
  198.  
  199.   I have been interested in ray tracing since 1984, when I wrote a ray tracer
  200. before I knew it was called ray tracing!  Since then I have been reading
  201. journals and tinkering with my ray tracer.
  202.  
  203.   The last 3 years were spent marooned off the net, with very poor graphics
  204. output devices; so while some work was done on the ray tracer, I now have a
  205. lot of catching up to do.
  206.  
  207. --------
  208.  
  209. # Mike J. McNeill
  210. # VLSI and Graphics Research Group,
  211. # EAPS II,
  212. # University of Sussex,
  213. # Falmer, BRIGHTON, East Sussex, BN1 9Qt
  214. # TEL: +44 273 606755 x 2617
  215. # EMAIL: (JANET) mikejm@syma.sussex.ac.uk | (UUCP) ...mcsun!ukc!syma!mikejm
  216. alias    mike_mcneill    mike@syma.sussex.ac.uk
  217.  
  218. I am currently researching into parallelising the RT algorithm on a
  219. multiprocessor architecture.  I'm using object space subdivision using a fast
  220. octree traversal algorithm.  At the moment I'm simulating the architecture
  221. using C via TCP/IP protocols on a distributed Apollo network.  Interested in
  222. all aspects of speed-up, parallel architectures, coherency and radiosity -
  223. dare I mention animation and Linda?  Also does anyone know of a modelling
  224. package for use on the Apollos?
  225.  
  226. -------------------------------------------------------------------------------
  227.  
  228. Archive Site for Ray Tracing News, by Kory Hamzeh
  229.  
  230. Avatar is an archive site which archives Ray Tracing News, comp.source.unix,
  231. comp.sources.misc, and other goodies. Archived files can be access by any
  232. one using anonymous uucp file transfers. A list of all files in the archive
  233. can be found in avatar!/usr/archive/index. Note that this file is quite
  234. large (about 40K). If you are only interested in the graphics related 
  235. archives, snarf the file avatar!/usr/archive/comp/graphics/gfx_index.
  236. All Ray Tracing News Archives (except for the first few) are stored in 
  237. /usr/archive/comp/graphics directory. They are named in the following
  238. fashion:
  239.  
  240.     RTNewsvXXiYY.Z
  241.  
  242. Where XX is the volume number, YY is the issue number. Note that all files
  243. (except index and gfx_index) are compressed.
  244.  
  245. Before trying to access avatar, your L.sys file (or Systems file, depending
  246. on which flavor of UUCP you have) must be edited to contain the following
  247. info:
  248.  
  249. #
  250. # L.sys entry for avatar.
  251. #
  252. # NOTE: 'BREAK' tells uucico to send a break on the line. This keyword
  253. # may vary from one flavor of UUCP to another. Contact your system
  254. # administrator if your not sure.
  255. #
  256. # 1200 baud 
  257. avatar Any ACU 1200 18188847503 "" BREAK "" BREAK ogin: anonuucp
  258. #
  259. # 2400 baud
  260. avatar Any ACU 2400 18188847503 "" BREAK ogin: anonuucp
  261. #
  262. # 19200 baud (PEP mode) for Telebit Trailblazers only
  263. avatar Any ACU 19200 18188847503 ogin:-\n-ogin: anonuucp
  264.  
  265. After the previous lines are entered in you L.sys file, you may use the
  266. following command to get the index file:
  267.  
  268.     uucp avatar!/usr/archive/index /usr/spool/uucppublic/index
  269.  
  270. This command will grab the file from avatar and put it in your 
  271. /usr/spool/uucppublic directory using the name index. For example,
  272. to get Ray Tracing News Volume 2, Issue 5, execute the following
  273. command:
  274.  
  275.    uucp avatar!/usr/archive/comp/graphics/RTNewsv02i05.Z /tmp/RTnewsv02i05.Z
  276.  
  277. NOTE that some shells (like csh) use the "!" as an escape character, so
  278. use a "\" before the "!".
  279.  
  280. If you experience problems getting to any of the files, I can be reached
  281. via e-mail at:
  282.  
  283.     UUCP: avatar!kory or ..!uunet!psivax!quad1!avatar!kory
  284.     INTERNET: avatar!kory@quad.com soon to be kory@avatar.avatar.com
  285.  
  286.  
  287. Enjoy,
  288. Kory Hamzeh
  289.  
  290. -------------------------------------------------------------------------------
  291.  
  292. Ks + T > 1, by Craig Kolb and Eric Haines
  293.  
  294. From: Craig Kolb <craig@weedeater.math.yale.edu>
  295.  
  296. While adding adaptive tree pruning to rayshade (and discovering a bug), I came
  297. across a question I've had regarding the SPD for a while.
  298.  
  299. Some objects have Ks + T > 1.  How can this be?  For example, the spheres in
  300. "mountain" have Ks = .9 and T = .9.  Unless I'm completely out to lunch (which
  301. is possible), ths means that subsequent specularly reflected rays are weighted
  302. by .9, and that transmitted rays are also weighted by .9.  This leads to
  303. "glowing" objects pretty quickly.
  304.  
  305. What's wrong in the above description?  Be warned that in "nff2shade.awk", I
  306. set the "specular reflectance" to be min(Ks, 1. - T).
  307.  
  308. --------
  309.  
  310. My reply:
  311.  
  312.     Actually, true enough, Ks + T > 1 does occur in the SPD stuff.
  313. I use T in a funny way, since I was trying to make databases that would
  314. display both using hidden surface and ray tracing algorithms.  Hmmm, how
  315. to explain?  Well, imagine you have a glass ball: under the hidden surface
  316. system (without transparency), you'd like the ball to appear opaque, and
  317. so a high Kd is in order.  Now if the thing's transparent, you don't want
  318. Kd to be high.  So what I do is lower Kd and Ks by ( 1 - T ).  An admittedly
  319. weird shading model, which I've now changed a bit (i.e. reflectance and
  320. transmittance are now entirely separate).  So, your solution of turning down
  321. the reflectance is fine.  I should add that I didn't really explain all this
  322. as it's irrelevant for timings (all we care about is what rays get generated,
  323. not the final color), but I agree, it would be nicer to get a good resulting
  324. picture as a check.  I'll change that in the next update of SPD, actually...
  325. thanks for pointing it out!
  326.  
  327. --------
  328.  
  329. Craig's reply:
  330.  
  331. Ah, I get it.
  332.  
  333. I brought it up because it does make a difference timing-wise if you're using
  334. adaptive tree pruning.  Although you say in the SPD stuff that pruning
  335. shouldn't be used, Mark's raytracer currently has no option to turn it off.  I
  336. was comparing pruned vs. pruned, and noticed that I had many fewer reflected
  337. rays, since my reflectance for the transparent gears was .05 rather than .95.
  338.  
  339. -------------------------------------------------------------------------------
  340.  
  341. Quartic Roots, and "Intro to RT" Errata,
  342.     by Larry Gritz (vax5.cit.cornell.edu!cfwy)
  343.  
  344.     I was trying to find the solution to a quartic equation to solve a
  345. ray-torus intersection test.  I've gotten lots of replies, but generally fall
  346. into one of two categories:  either solve the quartic equation (I forget the
  347. reference now, but I'll send you either a reference or the formula if you want
  348. [It's in the _CRC Standard Math Tables_ book - EAH]), or by some iterative
  349. method.  Everybody says (and I have confirmed this experimentally) that
  350. solving the equation is very numerically unstable.  I have chosen to use the
  351. Laguerre method from Press, et. al. _Numerical Recipes in C_, which is slow,
  352. but seems to work, and finds all roots without needing to specify brackets for
  353. the roots.  (An advantage since although I can bracket all possible real roots
  354. with the bounding box test that I already do, I'm not really sure how many
  355. roots lie within the brackets.)
  356.  
  357.     What actually turns out to be a bigger problem is that I got the quartic
  358. coefficients from the SIGGRAPH '88 Ray Tracing Course Notes (on page 3-14 of
  359. Pat Hanrahan's section).
  360.  
  361. [Larry and I thrashed this out over a number of passes (boy, I wish I had access
  362. to Mathematica or somesuch), and came out with the following corrected
  363. equation set for those on page 93 of _An Introduction to Ray Tracing_:
  364.  
  365.     a4 & a3 - Pat's are OK.
  366.         a2 = 2(x1^2+y1^2+z1^2)((x0^2+y0^2+z0^2)-(a^2+b^2)) 
  367.               + 4 * (x0x1+y0y1+z0z1)^2 + 4a^2z1^2
  368.     a1 = 4 * (x0x1+y0y1+z0z1)((x0^2+y0^2+z0^2)-(a^2+b^2))
  369.         + 8a^2 * z0 * z1
  370.     a0 = ((x0^2+y0^2+z0^2)-(a^2+b^2))^2 - 4a^2(b^2-z^2)
  371.  
  372. - EAH]
  373.  
  374. -------------------------------------------------------------------------------
  375.  
  376. More on Quartics, by Larry Spence
  377.     From: larry@csccat.UUCP
  378.     Newsgroups: comp.graphics
  379.     Subject: Re: Solution to quartic eqn?
  380.  
  381. >I didn't ask the question, but thanks for your input.  However, Ferrari's
  382. >theorem yields a fast and very accurate answer.
  383.                   ^^^^
  384. Are you sure about this?  If it's the same closed-form solution that you find
  385. in the CRC books, etc., doesn't it use trig functions and cube roots?   Seems
  386. to me there was a paper by Kajiya in the early '80s on numerical ray tracing,
  387. and there have been several in the last few years.  My advice would be to go
  388. look at SIGGRAPH proceedings from 1981 on.  Certainly, a closed form solution
  389. like the one suggested wouldn't take advantage of any coherence in the problem,
  390. unless you wrote all the trig stuff yourself.
  391.  
  392. [Comments, anyone?  I never saw any replies. - EAH]
  393.  
  394. -------------------------------------------------------------------------------
  395.  
  396. Question: Kay and Kajiya Slabs for Arbitrary Quadrics?
  397.     by Thomas C. Palmer <palmer@mcnc.org>
  398.  
  399. Here's a question regarding slabs for arbitrary quadrics.  Kay & Kajiya '86
  400. discusses computing slabs for polygons and implicit surfaces.  The method for
  401. implicit surfaces using Lagrange multipliers and gives an example using
  402. spheres.  This is easy and works quite nicely for canonical (i.e. centered
  403. and axis aligned) quadrics.  K&K handle object rotations and translations
  404. during the slab computation.  What about quadrics that have been transformed
  405. by some arbitrary matrix prior to input and look like this:
  406.  
  407. ax^2 + 2bxy + 2cxz + 2dxw + ey^2 + 2fyz + 2gyw + hz^2 + 2izw + jw^2 = 0 ?
  408.  
  409. The xy, xz, and yz terms prevent a simple solution via Lagrange multipliers.
  410. Has anyone done this?  How do you handle quadric bounding planes?  Note that
  411. K&K cheated for the tree branchs in the tree models.  Each cylinder has
  412. endpoint capping spheres so the cylinder's extent is just the combined extent
  413. of the two spheres.
  414.  
  415. Thanks for your help -
  416.  
  417. -Tom
  418.  
  419. Thomas C. Palmer        North Carolina Supercomputing Center
  420. Cray Research, Inc.        Phone: (919) 248-1117
  421. PO Box 12732            Arpanet: palmer@ncsc.org
  422. 3021 Cornwallis Road
  423. Research Triangle Park, NC
  424. 27709
  425.  
  426. -------------------------------------------------------------------------------
  427.  
  428. Ambient Term, by Pierre Poulin (poulin@dgp.toronto.edu)
  429.  
  430. I just read your Tracing tricks in the latest Ray Tracing News. Thanks for
  431. passing that on to us, this was very interesting.
  432.  
  433. One trick you mentioned was to put a light source at the eye position in 
  434. order to eliminate the ambient term. This is a simple trick I did not know.
  435. However, you noted that highlights appears as artifacts.
  436.  
  437. Since you know that this light does not need any shadow rays, you could use
  438. only the diffuse intensity created by this light to approximate the ambient
  439. term, hence creating no undesirable highlights.
  440.  
  441. I know, this is very easy and everyone probably knows that. But just in
  442. case you would not have thought about it, I wanted to indicate it to you. I
  443. just hope I am not the 10,000th to tell you :^)
  444.  
  445. --------
  446.  
  447. My reply:
  448.  
  449.     I'm glad to hear that you enjoyed the "Tracing Tricks" article -
  450. sometimes I worry that I'm just publishing ideas that everyone already knows.
  451. I've tried having the ambient light have no highlight, and it's sort of
  452. interesting, but the lack of highlight can look a little strange for those
  453. objects where there really would be a highlight (it sort of makes them look
  454. less shiny, though it also depends upon the other lights in the scene).
  455. Nonetheless, turning it off is definitely worth exploring.  You're the first
  456. person to comment on this, actually.  Thanks for taking the time to write, and
  457. do keep in touch.
  458.  
  459. -------------------------------------------------------------------------------
  460.  
  461. Book Reviews on Hierarchical Data Structures of Hanan Samet,
  462.     by A. T. Campbell, III (atc@cs.utexas.edu)
  463.  
  464.  
  465. "The Design and Analysis of Spatial Data Structures", and 
  466. "Applications of Spatial Data Structures", by Hanan Samet,
  467. Addison-Wesley, 1990.
  468.  
  469.         Reviewed by A. T. Campbell, III
  470.  
  471. This two-volume series of books is one man's effort to provide a guide to the
  472. study of hierarchical data structures.  The topic has extensive influence on
  473. many fields, particularly computer graphics, image processing, and
  474. computational geometry.  Hanan Samet is a well-established expert in the
  475. field, with literally dozens of publications.  As a computer graphics
  476. researcher, I eagerly anticipated the books' publication.  A close examination
  477. of both volumes leads to one conclusion:  the books are extremely worthwhile.
  478.  
  479. The integration of diverse material is remarkable.  Comprehensive research
  480. results throughout the spectrum of science are drawn together seamlessly.
  481. Samet has really done a thorough job of pulling together literature from a
  482. vast collection of conferences and journals, both major and minor.
  483.  
  484. The level of explanation is good.  Samet has obviously read all of his
  485. references thoroughly.  The descriptions of algorithms reflect an
  486. understanding of what is really going on.  Even algorithms mentioned briefly
  487. are given a good essential description.
  488.  
  489. Numerous topics are covered.  Algorithms for such problems as
  490. proximity-searching, efficient storage of image and volume data, constructive
  491. solid geometry, data structure conversion, hidden surface removal, and
  492. ray-tracing fill the books.  Pseudo-ALGOL code examples present detailed
  493. explanations of how to build and traverse many of the data structures.
  494. Ray-tracing enthusiasts in particular will enjoy a detailed description of how
  495. to trace a path through an octree.
  496.  
  497. There are, however, a few problems with the presentation.  Despite the
  498. ambitious titles of the volumes, there is nowhere near as much theory or
  499. practical advice as one might expect.  The emphasis is instead on explaining
  500. literally everything at an understandable level.  While this makes the books a
  501. wonderful introduction to all sorts of stuff, the reader still needs guidance
  502. in choosing what techniques to actually use.
  503.  
  504. The title of the first volume, "The Design and Analysis of Spatial Data
  505. Structures", obviously invokes comparison with the classic text "The Design
  506. and Analysis of Computer Algorithms", by Aho, Hopcroft, and Ullman.  However,
  507. Samet's approach differs greatly from that of Aho et al.  While the data
  508. structures are described and discussed in detail, the analysis is not very
  509. formal.  Theorems and proofs, as well as detailed algorithm analysis, are not
  510. much in evidence.  A more appropriate title might simply be "An Introduction
  511. to Spatial Data Structures".
  512.  
  513. The second book, "Applications of Spatial Data Structures", covers basically
  514. every research result in hierarchical algorithms, major or minor.  It is
  515. exceptionally good at explaining techniques succinctly.  The depth is not
  516. sufficient enough to implement the techniques without referring to the
  517. original papers, however.  Additionally, the reader is given no good feel for
  518. which results should actually be used.  If a technique is commonly used in
  519. industry or never used because of impracticality, Samet never says so.  The
  520. reader who expects a "cookbook" solution to his problem will be disappointed.
  521.  
  522. The books are primarily of use for two purposes.  First, they provide a good
  523. introduction to those aspects of computational geometry and image processing
  524. which are most likely to be of interest to a person working in graphics.
  525. Second, they provide a very complete guidebook to the literature.  I would
  526. suggest that researchers and practitioners have these volumes on their
  527. reference shelves.  Due to the sheer volume of material presented, I would not
  528. recommend them for use as course textbooks.
  529.  
  530. -------------------------------------------------------------------------------
  531.  
  532. Comparison of Kolb, Haines, and MTV Ray Tracers, Part I, by Eric Haines
  533.  
  534.     I decided to compare the MTV ray tracer, the Kolb "rayshade" software,
  535. and my own modified "SBRR" ray tracing package to see the efficiency of each.
  536. My goal was to see what sort of performance was obtained by each ray tracer
  537. and note the strengths and weaknesses of each.  This first section of the
  538. report marks the state of current results, consisting of timings from the
  539. "gprof" command for each package, using the Standard Procedural Database (SPD)
  540. package.  All three packages were run on an HP 350 workstation with a floating
  541. point accelerator board.  The compiler options were "-g -G +ffpa" (debug,
  542. profile, with special floating-point only compile), using HP-UX 6.5.
  543.  
  544.     The three ray tracers were selected from all the existing packages by
  545. having the following properties:  (1) Each could handle all the primitives in
  546. the SPD package, and (2) each had some automatic efficiency scheme.  Other
  547. packages do not support all the primitives (e.g. DBW does not have cylinders,
  548. cones, or n-sided polygons), or do not have automatic efficiency generation
  549. (e.g.  QRT lets you explicitly create bounding boxes, but has no way for this
  550. to happen automatically).
  551.  
  552.     The MTV ray tracer was created by Mark VandeWettering, and uses the
  553. Kay/Kajiya hierarchy approach (i.e. sorting objects along X/Y/Z and splitting
  554. each group, recursively).  To make it conform to the requirements of the SPD
  555. tests, "minweight" was set to 0.0 in order to disable tree pruning a la Hall's
  556. method.
  557.  
  558.     Craig Kolb's "rayshade" ray tracer uses a 22x22x22 grid on all scenes.
  559. Because of the use of grids (i.e.  3DDDA), it was found to be sensitive to the
  560. background polygons used in the SPD package.  In four of the SPD scenes
  561. (balls, gears, rings, and tree) there is a "ground" polygon.  The "rayshade"
  562. software allows some user intervention in how the database is structured.  It
  563. was found that faster timings (sometimes strikingly quicker) could be obtained
  564. by leaving this background polygon out of the grid structure.  Changing the
  565. database in this manner is forbidden by the SPD tests, but both sets of
  566. results are presented because of the difference in timings.
  567.  
  568.     The SBRR package is not public domain, but rather is part of the
  569. graphics software in all HP workstations using the Turbo-SRX graphics
  570. accelerator.  It uses the Goldsmith and Salmon automatic bounding volume
  571. hierarchy method.  It should also be noted that this package is full featured,
  572. which has a corresponding slowdown effect when intersection computations are
  573. performed.  For example, polygons can be single or double sided, with
  574. different materials, colors per vertex, normals per vertex, and other
  575. combinations available.  Since the package has a "hardware assist" by using
  576. the graphics engine as an item buffer (see Weghorst and Hooper), timings are
  577. given both with and without this assist.  The times without are the fairer of
  578. the two for comparison.
  579.  
  580. Without further ado, here are the timings:
  581.  
  582. MTV       Basic
  583. -----      -----
  584. balls       12604
  585. gears       38123
  586. mount        9307
  587. rings       24286
  588. tetra        1081
  589. tree        8056
  590.  
  591.  
  592. Kolb       Basic    Modified
  593. -----      -----        --------
  594. balls       14871        3224
  595. gears       12601       11449
  596. mount        2989        2989 (i.e. same - no modification needed)
  597. rings        8348        8103
  598. tetra         836         836 (i.e. same - no modification needed)
  599. tree       18957        2505
  600.  
  601.  
  602. SBRR       Basic    Item Bfr
  603. -----      -----        --------
  604. balls        5027        4126
  605. gears       13561       12776
  606. mount        5440        3749
  607. rings       11044       10446
  608. tetra        1187         457
  609. tree        3229        2719
  610.  
  611.  
  612. So, considering the MTV ray tracer as 1.00, here are the relative performance
  613. times of each tracer - (MTV time / RT time) - i.e. higher is faster, and can
  614. be thought of as how many times faster it is:
  615.  
  616. SPD    MTV-Base    Kolb-Bas    Kolb-Mod    SBRR-Bas    SBRR-Bfr
  617. -----   --------    --------    --------    --------        --------
  618. balls      1.00          0.85          3.91          1.40          3.05
  619. gears      1.00          3.02          3.32          2.81          3.33
  620. mount      1.00          3.11        <--same          1.71          2.48
  621. rings      1.00          2.91          3.00          2.20          2.32
  622. tetra      1.00          1.29        <--same          0.91          2.37
  623. tree      1.00          0.42          3.22          2.50          2.96
  624.  
  625. Some interesting phenomena are revealed by the statistics.  The "tetra"
  626. database is pretty much the same absolute speed for everyone.  However, given
  627. the performance for other scenes, it is noteworthy that MTV performs
  628. relatively faster on this than others.  I've noticed this, too, when trying
  629. Kay/Kajiya myself - this scheme just soars on tetra, though I am not sure why.
  630. Perhaps it is the smallness and regularity of the objects, which would go well
  631. with Kay/Kajiya's assumption that using the centroid of these is reasonable.
  632. For other databases one can imagine better hierarchies that those constructed
  633. by Kay/Kajiya.  For example, with mount, the four spheres above the fractal
  634. mountain should be in their own cluster just off the top of the hierarchy
  635. tree.
  636.  
  637. The "tetra" scene is a strange test in that most (around 81%) of the scene
  638. is background, so what we tend to test here is affected more by how fast one can
  639. traverse a scene, set up rays, shade, and store values in a file.  It will take
  640. further analysis to see where the time is spent.
  641.  
  642. The Kolb ray tracer is interesting in how much its efficiency scheme is
  643. affected by the geometry of the scene.  The "teapot in a football stadium"
  644. effect I've written about previously hits grid efficiency schemes with a
  645. vengeance.  For example, moving the ground polygon from the grid subdivision
  646. to outside of it makes rayshade perform 4.6 times faster for balls, and 7.7
  647. times faster for tree!  The point is that grids perform best when the scene is
  648. relatively "compact".  The large ground polygons in these scenes cause the
  649. entire grid to get larger in two directions, and so make many more objects
  650. fall inside but a few grid squares, thereby ruining much of the efficiency of
  651. the grid.
  652.  
  653. Comparing Kolb to MTV, we see that overall Kolb is faster.  Kolb does worse on
  654. balls and tree using the unmodified database, but otherwise outperforms MTV,
  655. being about twice as fast.  When the ground polygon is taken out of the grid
  656. subdivision, Kolb is more than 3 times faster for all cases except tetra.
  657.  
  658. Comparing SBRR and MTV shows SBRR to be faster for most cases, with MTV being
  659. slightly faster for tetra.  Overall SBRR is almost twice as fast with its
  660. basic performance, and about 2.75 times faster when the item buffer is used.
  661.  
  662. Comparing SBRR and Kolb is a bit tricky, since there are two tests of each.
  663. Taking the basic tests in each, Kolb and SBRR are comparable: Kolb outperforms
  664. SBRR in four cases, and SBRR outperforms Kolb in two (and for one of those,
  665. tree, it is almost 6 times faster).  SBRR has some things to learn from Kolb
  666. (which is why I'm doing all this, anyway), as Kolb's modified database results
  667. point towards the fact that faster performance is possible.
  668.  
  669. So, on the basis of pure raw timings, Kolb and SBRR without modifications or
  670. accelerators are of comparable speed.  With user intervention into the
  671. database structure, Kolb can become noticeably faster.  It should also be
  672. noted that Kolb uses a default of 22x22x22 grid cells, which is under user
  673. control and so could be tuned to further improve performance.
  674.  
  675. Actually, this is an interesting open question:  what heuristics can be used
  676. to determine a reasonable grid size for a scene?  Also, is there a reasonable
  677. way to determine if such performance destroyers such as ground polygons are
  678. present automatically, and so remove them from the grid subdivision itself?
  679. David Jevans' and Brian Wyvill's work on nested grid subdivisions ("Adaptive
  680. Voxel Subdivision for Ray Tracing", Proceedings of Graphics Interface '89, p.
  681. 164-172) might lead to a less variable performance and to greater overall
  682. speed.  Craig and I have discussed this, but unfortunately he has no time to
  683. try this out - perhaps someone out there can experiment and compare
  684. results.
  685.  
  686. As mentioned, this is research in progress.  My next step will be to analyze
  687. the statistics generated by each program and see where time is spent.
  688.  
  689. -------------------------------------------------------------------------------
  690.  
  691. Raytracer Performance of MTV, by Steve Lamont
  692.  
  693. >   Could you pass on your timings on ray tracer performance on various
  694. > machines and any thoughts or experiences you want to share about the subject?
  695.  
  696. The parallelization was done in a brute force manner, forking processes and
  697. dividing the work by the number of processes.  The parent process remains
  698. behind and reads the scanlines in a round robin fashion from pipes.  There is
  699. no communication from the parent to the child processes once the forking has
  700. been done; the ray tracing routines simply march down the scan lines.  This
  701. approach works well on a homogeneous architecture where all processes run at
  702. approximately the same speed and no process "dries up" or runs out of work to
  703. do.
  704.  
  705. This works well for single frames.  However, my approach for a large animation
  706. is to simply parcel out work on a frame per processor basis.
  707.  
  708. I've built the MTV raytracer on the Cray, the IRIS, and the Ardent Titan...
  709. and here are some preliminary results on a 128 x 128 test image (the balls
  710. image with reflections but no refractions, 3 light sources, 11 primitives (16
  711. with bounding volumes)
  712.  
  713.             processes
  714.               (CPU seconds)
  715.     Machine        1    4    Notes
  716.  
  717.     Y-MP/8-432    4.0    1.0    -hopt,intrinsics,vector
  718.     IRIS (4D/240)*  8.2    2.1    -O2 (MIPS R3000/3010)
  719.     Titan (P2)     30.0     7.7    -O3 (MIPS R2000 + prop. vector/fp unit)
  720.     Titan (P3)    7.2    ---    Run by vendor. (MIPS R3000/3010 +
  721.                     proprietary vector unit)
  722.  
  723. Wall clock times improved by a factor of 2.5 to 3, which squares pretty well
  724. with Amdahl's law as extended for small parallel architectures.
  725.  
  726. These are *preliminary* results with respect to the Titan -- we've only had it
  727. for a couple of weeks.  On none of the machines did MTV vectorize in any way
  728. to speak of.  In fact, turning off vectorization improves performance for
  729. several "short vector" loops; e.g., loops of vector length 3.
  730.  
  731. Timings were done on a fairly heavily loaded Cray and an empty IRIS and Titan.
  732.  
  733. The Cray is a Y-MP with four processors (upgradable to 8, hence the 8-4) and
  734. 32 mWords of central memory.  There is also a 128 mWord SSD (Solid-state
  735. storage device).  We also have 40 gBytes of rotating storage (a combination of
  736. DS-40s and DD-49s).
  737.  
  738. [*] Actually, this machine is a CDC Cyber 910-624 but the only difference
  739. between it and a "genuine" Silicon Graphics IRIS 4D/240 is the color of its
  740. box and the binding on the manuals.
  741.  
  742. [Disclaimer:  These comments are solely the responsibility of the author and
  743. no endorsement by the North Carolina Supercomputing Center should be inferred]
  744.  
  745. Steve Lamont, sciViGuy            EMail:    spl@ncsc.org
  746. NCSC, Box 12732, Research Triangle Park, NC 27709
  747.  
  748. -------------------------------------------------------------------------------
  749.  
  750. BRL-CAD Ray Tracer Timings, by Gavin Bell (gavin@krypton.sgi.com)
  751.  
  752. These results are third-hand; I can vouch for the accuracy of our machine's
  753. results, but the BRL people may have more recent results to share.  The only
  754. experience I have with ray-tracing timing on our machines is with a simple,
  755. interactive ( :-> ) ray-tracer demo called 'flyray'.  I modified it to be
  756. fully parallelized; it uses one CPU to display a real-time display of the
  757. scene being ray-traced (complete with rays shooting into and bouncing around
  758. the scene), and the other N-1 CPUs to compute ray-object intersections (these
  759. results are shown in a separate window).  As for timing... runs REAL fast on
  760. an 8 CPU system.
  761.  
  762. What follows is a form letter I've been sending to people who asked for
  763. ray-tracing timings.
  764.  
  765. ------------------------
  766.  
  767. This is a response to all of those people who asked me for the BRL-CAD
  768. ray-tracing benchmark results.  I'm surprised at how many of you there are!
  769.  
  770. First, a little bit about myself.  I work in Technical Marketing, the 'Demos
  771. and Benchmarks' group here at Silicon Graphics.  I'm not usually involved in
  772. benchmarks; I work mainly on our demos.
  773.  
  774. The rest of this text comes directly from a 'SGI Benchmark Summary' prepared
  775. by one of our Marketing people.  The numbers are communicated to him by the
  776. software engineer who did the benchmark.  These benchmark summaries are
  777. communicated to salespeople in a weekly newsletter as soon as the results come
  778. in.  Other summaries done include:
  779.  
  780. 'INDUSTRY STANDARD':
  781. Dhrystones, Digital Review Labs, Linpack, Livermore Fortran Kernals, MUSBUS,
  782. Whetstones.
  783.  
  784. OTHERS:
  785. LES50 (computational fluid dynamics), Moldflow (finite element analysis),
  786. Molecular Dynamics, Nord, UFLA, GROMOS (all computational chemistry).
  787.  
  788. If you want more information on any of these benchmarks, please see a SGI
  789. sales rep-- I can't keep typing in all of these numbers!!  Also, please
  790. remember that these benchmarks were done for a specific customer, who was
  791. interested in a specific machine, so most of them were not benchmarked on our
  792. whole product line (the 'Industry Standard' benchmarks, however, are usually
  793. run on all of our products).
  794.  
  795. APPLICATION  BENCHMARK NAME  CUSTOMER
  796. -----------  --------------  --------
  797. Rendering    BRL-CAD 3.7     US Army Ballistic Research Lab
  798.  
  799. LANGUAGE     SUMMARY DATE
  800. --------     ------------
  801. C            9/5/89
  802.  
  803. DESCRIPTION
  804. -----------
  805. The BRL-CAD benchmark is a part of the US Army Ballistic Research Laboratory's
  806. BRL-CAD package.  The core of the BRL-CAD benchmark is a ray-tracing program
  807. which consists of about 150,000 lines of C code.  Computations are performed
  808. in double precision floating point.
  809.  
  810. Five separate data bases are input to the ray tracing program, resulting in
  811. six performance ratings (one for each, plus a total which is the mean of the
  812. other five) .  When rendered, each data base will produce a 512x512x24 bit
  813. color shaded image.  The images are of increasing complexity, and are
  814. identified as 'Moss', 'World', 'Star', 'Bldg' and 'M35'.
  815.  
  816. RESULTS
  817. -------
  818. The result of this benchmark is reported as rays traced per second, and
  819. referred to as Ray Tracing Figure of Merit (RTFM).  Higher numbers indicate
  820. better performance.
  821.  
  822. The code was parallelized by inserting user directives to create multiple
  823. processes to trace rays.
  824.  
  825. RESULTS FOR SGI MACHINES:
  826.     Note:  The actual report has nice graphs here.
  827. Machine        RTFM
  828. -------------------
  829. 1x16 (4D/80)    714
  830. 2x16 (4D/120)  1358
  831. 4x25 (4D/240)  5034
  832. 8x25 (4D/280)  7434
  833.     Note:  NxMM numbers refer to the number of processors in the
  834.     machine (N) running at MM MHZ.
  835.  
  836. COMPETITIVE RESULTS:
  837. Machine   # Processors  RTFM  Relative Performance
  838. --------------------------------------------------
  839. Vax 780        1          77     1.0
  840. Sun3           1          88     1.1
  841. Convex C120    1         163     3.6
  842. Sun4           1         435     5.6
  843. SGI 4D/120S    2        1358    17.5
  844. Alliant FX/80  8        2783    33.6
  845. SGI 4D/240S    4        4456    70.4
  846. Cray X-MP/48   4        7217   116.1
  847. SGI 4D/280     8        7434   119.7
  848.  
  849. ANALYSIS
  850. --------
  851. The BRL-CAD benchmark exhibits excellent speedup as processors are added.
  852. This is due to the coarse granularity inherent in the ray tracing problem
  853. being solved.  Each ray is processed independently, with no data dependencies
  854. among the rays.  This means that multiple processors can each work on separate
  855. rays simultaneously, with minimal need for synchronization among processors.
  856.  
  857. While the code is highly parallelizable, it is not efficiently vectorizable
  858. because of short vector lengths.  The combination of these two
  859. characteristics explain the phenomenal performance of Silicon Graphics
  860. machines relative to vector machines like Cray and Alliant.
  861.  
  862. The characteristics of this benchmark that lead to high performance by the
  863. Silicon Graphics machines are common to all ray tracing applications.
  864.  
  865. --------
  866.  
  867. Here is another note from Gavin:
  868.  
  869. My only experience with the BRL ray-tracer came when I was at Princeton
  870. University - I installed it on Silicon Graphics machines there for the
  871. Graphics Lab.  That was two years ago; as far as I could tell, it didn't use
  872. octrees or any other space-partitioning algorithm.  I used a ray-tracer
  873. written at Princeton (the precursor of what is now Craig Kolb's rayshade
  874. program; Craig and I had the same thesis advisor) which did do octrees; it was
  875. infinitely faster than the BRL beast.
  876.  
  877. -------------------------------------------------------------------------------
  878.  
  879. BRL-CAD Benchmarking and Parallelism, by Mike Muuss (mike@BRL.MIL)
  880.  
  881. I'm sort of on vacation right now, so I'm going to cop out and just send you
  882. the TROFF input for several things that I have handy about how we benchmark
  883. ray-tracing in the BRL-CAD Package.
  884.  
  885. The first one is our benchmark summary paper.
  886.  
  887. The second one is a portion of a paper that I wrote called ``Workstations,
  888. Networking, Distributed Graphics, and Parallel Processing''.
  889.  
  890. You may publish and/or redistribute both documents as you wish.  Note that the
  891. United States Government holds the "copyright", ie, it is not permissible to
  892. copyright this material.
  893.  
  894. [These papers are rather lengthy, so I won't include them in this issue.
  895. If you would like copies, look at the archive sites for Muuss.benchmrk and
  896. Muuss.parallel, or write me. - EAH]
  897.  
  898.  
  899. ======== USENET cullings follow ===============================================
  900.  
  901. Rayshade Patches Available, by Craig Kolb
  902.     From: craig@weedeater.math.yale.edu
  903.     Newsgroups: comp.graphics
  904.     Organization: Math Department, Yale University
  905.  
  906. Patches 1-3 for rayshade v3.0 are available via anonymous ftp from
  907. weedeater.math.yale.edu (new address:  130.132.23.17) in directory
  908. pub/rayshade.3.0/patches.  The patches fix several minor bugs, clean up the
  909. documentation, and provide new features.
  910.  
  911. Several people have expressed an interest in 'trading' rayshade input files.
  912. If you have an interesting input file that you'd like to share, feel free to
  913. deposit it in the "incoming" directory on weedeater or send it to me via
  914. email.  I will make these files available in the pub/Rayinput directory on
  915. weedeater.
  916.  
  917. Rayshade is supposedly "on the verge" of appearing in comp.sources.unix,
  918. patches and all.
  919.  
  920. -------------------------------------------------------------------------------
  921.  
  922. Research and Timings from IRISA, by Didier Badouel
  923.     From: badouel@irisa.irisa.fr
  924.     Newsgroups: comp.graphics
  925.     Organization: IRISA, Rennes (Fr)
  926.  
  927. We have a parallel raytracer (called PRay) at IRISA which as MTV uses NFF
  928. description databases.  This raytracer has been implemented on an iPSC/2, on a
  929. SEQUENT BALANCE and also on serial computers (SUN3, GOULD NP1) to make better
  930. comparisons.
  931.  
  932. I give you the various synthesis times for the well known 'Teapot' database.
  933. The image has been rendering with a 512X512 resolution with 3 light sources.
  934. Results are as follows :
  935.  
  936.                         #PEs    Time (in sec.)
  937.         ________________________________________
  938.         SUN3:                   8877 (~ 2h27mn)
  939.         ________________________________________
  940.         GOULD NP1:              1642 (~ 27mn)
  941.         ________________________________________
  942.         SEQUENT BALANCE 1       37121 (~ 10h18mn)
  943.                         2       18567
  944.                         3       12381
  945.                         4       9285
  946.                         5       7431
  947.                         6       6197
  948.                         7       5311
  949.                         8       4656
  950.                         9       4138 (~ 1h9mn)
  951.         ________________________________________
  952.         iPSC/2          1       6294 (~ 1h45mn)
  953.                         2       3332
  954.                         4       1700
  955.                         8       860
  956.                         16      440
  957.                         32      224
  958.                         64      119 (~ 2mn)
  959.         ________________________________________
  960.  
  961. The code running on the iPSC/2 emulates a virtual shared memory over the local
  962. PEs.  The database is not duplicated but all the local memories are used.  The
  963. remaining memory after loading code and data is used as a cache to speed up
  964. low global accesses.
  965.  
  966. -----
  967.  
  968.         In order to benchmark our parallel raytracer running on an iPSC/2,
  969. which use Eric Haines' NFF file format as input, we would like to know 
  970. if other people have a parallel raytracer using these databases
  971. in order to make some comparisons.
  972.  
  973.         One of our goals is to render the largest possible 
  974. database.  For the moment, we have rendered the 'tetra10'
  975. database:
  976.         - the database contains more than 1 million polygons (1048576
  977.           polygons)
  978.         - the size of the database with its 'object access structure' (a
  979.           grid) is 140 MO.
  980.         - the synthesis time is 526 seconds on the iPSC/2 with 64 nodes
  981.           and 4 MO node memory.
  982.         - however, on account of using NFF text file format, reading the
  983.           input is  very slow (more than 3 hours for 'tetra10') when using 
  984.           YACC and LEX. Furthermore, our iPSC/2 configuration does not have
  985.           I/O  node  system.
  986.  
  987. ________________________________________________________________
  988.   Didier  BADOUEL                       badouel@irisa.fr
  989.   INRIA / IRISA                         Phone : +33 99 36 20 00
  990.  Campus Universitaire de Beaulieu       Fax :   99 38 38 32
  991.  35042 RENNES CEDEX - FRANCE            Telex : UNIRISA 950 473F
  992. ________________________________________________________________
  993.  
  994. -------------------------------------------------------------------------------
  995.  
  996. Concerning Smart Pixels, by John S. Watson
  997.     From: watson@ames.arc.nasa.gov (John S. Watson)
  998.     Newsgroups: comp.graphics
  999.     Organization: NASA - Ames Research Center
  1000.  
  1001. In article <207400033@s.cs.uiuc.edu> mccaugh@s.cs.uiuc.edu writes:
  1002. >
  1003. > Does anyone know of a system with "smart" pixels? 
  1004.  
  1005. Once upon a time I wrote a ray tracer in which the pixels used heuristics to
  1006. determine their sampling rate.  Since the reason for doing it was to speed
  1007. things up, the heuristic had to be simpler than casting a ray( s, if
  1008. sub-sampling).  I used difference in previous pixels values, with a little
  1009. randomness tossed in.  So pixels changing quickly were sampled every frames,
  1010. while pixels that were hardly ever changing were sampled only once every 10
  1011. frames.  The results:  much faster, but with a graininess on the edges of
  1012. moving objects.  I needed to make the pixels more aware of what was happening
  1013. with its neighbors.  Never got around to doing that.
  1014.  
  1015. Another problem is big pictures have lots of pixels ... 512x512 = 0.25 million.
  1016. To be smart you must have a memory.
  1017.  
  1018. To save memory, I combined the above with an Area-of-Interest/Variable Acuity
  1019. (AOIVA) Ray Tracer.
  1020.  
  1021. Hope this helps, 
  1022. John S. Watson, Civil Servant from Hell        ARPA: watson@ames.arc.nasa.gov 
  1023. NASA Ames Research Center                      UUCP:  ...!ames!watson
  1024. Any opinions expressed herein are, like, solely the responsibility of the, like,
  1025. author and do not, like, represent the opinions of NASA or the U.S. Government.
  1026.  
  1027. -------------------------------------------------------------------------------
  1028.  
  1029. Input Files for DBW Render, by Tad Guy
  1030.     From: tadguy@cs.odu.edu (Tad Guy)
  1031.     Newsgroups: comp.graphics
  1032.     Organization: Old Dominion University, Norfolk, VA
  1033.  
  1034. In article <6475@pt.cs.cmu.edu> te07@edrc.cmu.edu (Thomas Epperly) writes:
  1035.    I was wondering if anyone had any neat input files for DBW_Render available
  1036.    for anonymous ftp.
  1037.  
  1038. xanth.cs.odu.edu as /amiga/dbw.zoo.  If you have a network of, say, sun
  1039. workstations, you might as well get /amiga/distpro.zoo, which will allow to
  1040. distribute the computations over many machines.
  1041.  
  1042. -------------------------------------------------------------------------------
  1043.  
  1044. Intersection with Rotated Cubic Curve Reference, by Richard Bartels
  1045.     From: rhbartels@watcgl.waterloo.edu
  1046.     Newsgroups: comp.graphics
  1047.     Organization: U. of Waterloo, Ontario
  1048.  
  1049. In article <1445@tukki.jyu.fi> toivanen@tukki.jyu.fi (Jari Toivanen) writes:
  1050.  :
  1051.  :I would like to know is there any simple and effective solution to
  1052.  :following problem:
  1053.  :
  1054.  : [intersecting a ray with a rotated cubic curve]
  1055.  :
  1056.  :Jari Toivanen                           Segments are for worms ;-)
  1057.  :University of Jyvaskyla, Finland        Internet: toivanen@tukki.jyu.fi
  1058.  
  1059. Look at the article:
  1060.  
  1061.         Ray Tracing Objects Defined By Sweeping Planar Cubic Splines
  1062.         Jarke J. van Wijk
  1063.         ACM Transactions on Graphics
  1064.         Vol. 3, No. 3, July, 1984, pp. 223-237
  1065.  
  1066. I believe that the author subsequently wrote a whole book on the subject.
  1067.  
  1068. [Incidentally, this article also has a method for quickly intersecting a tight
  1069. fitting bounding volume around such curves.  I've found this test useful for
  1070. use as a torus bounding volume.  Also, does anyone know of the existence and
  1071. the name of the book Richard mentions?  - EAH]
  1072.  
  1073. -------------------------------------------------------------------------------
  1074.  
  1075. Needed: Quartz surface characteristics, by Mike Macgirvin
  1076.     From: mike@relgyro.stanford.edu
  1077.     Newsgroups: comp.graphics
  1078.     Organization: Stanford Relativity Gyro Experiment (GP-B)
  1079.  
  1080. I am in need of the surface characteristics for fused quartz.  Ambient,
  1081. diffuse and specular color characteristics, Phong coefficent, reflectance,
  1082. and transparency.  I have the index of refraction (Well, I have to average it,
  1083. c'est la vie).
  1084.  
  1085. I have attempted to derive these experimentally, but find the resulting traced
  1086. image lacking in many ways, and a simulation visualization I am working on
  1087. requires accuracy.
  1088.  
  1089. I am using Kolb's 'rayshade' if it affects your responses.
  1090.  
  1091. Please respond via e-mail if possible.
  1092.  
  1093. -------------------------------------------------------------------------------
  1094.  
  1095. Solution to Smallest Sphere Enclosing a Set of Points, by Tom Shermer
  1096.     From: shermer@cs.sfu.ca
  1097.     Newsgroups: comp.graphics
  1098.     Organization: School of Computing Science, SFU, Burnaby, B.C. Canada
  1099.  
  1100. >I need the solution for the following problem:
  1101. >find the smallest sphere that encloses a set of given points, in both
  1102. >2-D and 3-D (or even n-D, if you like).
  1103. >
  1104.  
  1105. This problem can be solved in linear time (in any fixed dimension)
  1106. by the technique of prune-and-search (sometimes called ``Megiddo's
  1107. Technique''), either directly or by first converting the problem
  1108. to a linear program.  The most relevant reference (for 2d & 3d) is:
  1109.  
  1110. Linear-time Algorithms for Linear Programming in R^3 and Related Problems,
  1111.         Nimrod Megiddo, SIAM J. Comput, v. 12, No. 4, Nov 1983, pp. 759-776.
  1112.  
  1113.  
  1114. Other related references:
  1115.  
  1116. Linear time algorithms for two- and three- variable linear programs,
  1117.         M.E. Dyer, SIAM J. Comput, v. 13, 1984, 31-45.
  1118.  
  1119. On a multidimensional search technique and its application to the
  1120. Euclidean one-center problem,
  1121.         M. E. Dyer, Dept. Math and Stats TR, Teesside Polytechnic,
  1122.         Middlesbrough, Cleveland TS1 3BA, UK, 1984.
  1123.  
  1124. Linear programming in linear time when the dimension is fixed,
  1125.         N. Megiddo, JACM 31, 1984, 114-127
  1126.  
  1127. The weighted Euclidean 1-center problem,
  1128.         N. Megiddo, Mathematics of Operations Research 8, 1983, 498-504
  1129.  
  1130. On the Ball Spanned by Balls
  1131.         N. Megiddo, manuscript (this may have appeared in the literature
  1132.         by now)
  1133.  
  1134. -------------------------------------------------------------------------------
  1135.  
  1136. True Integration of Linear/Area Lights, by Kevin Picott
  1137.     From: kpicott@alias.UUCP
  1138.     Newsgroups: comp.graphics
  1139.     Organization: Alias Research Inc.
  1140.  
  1141. Has anyone seen any work done on evaluating the diffuse and specular
  1142. illumination produced by linear and/or area lights?  I have checked all the
  1143. standard sources and all information I find gets to the point where the
  1144. integration is set up and then a little hand waving is performed accompanied
  1145. by the magical words "numerically integrated".  This works but is too slow
  1146. for my purposes.  Does anyone know of any work done in different directions
  1147. (ie faster evaluation) ?
  1148.  
  1149. --------
  1150.  
  1151. Thanks to all who replied to my query about linear and area lights.
  1152.  
  1153. In the area of linear lights, two papers on analytical solutions were found.
  1154. The first, by John Amanatides and Pierre Poulin has been submitted to
  1155. Eurographics '90 and I'll hopefully get a look at that soon.
  1156.  
  1157. The second, "Shading Models for Point and Linear Sources", ACM TOGS, 4(2),
  1158. April 1985, pp. 124-146.  by T. Nishita, I. Okamura, E. Nakamae, proposes
  1159. an analytic solution to the diffuse component, but only under certain
  1160. circumstances.
  1161.  
  1162. The latter unfortunately reduces to numerical integration in the majority of
  1163. cases where spline surfaces are involved, although a method of optimization is
  1164. given that reduces computation time for the numerical integration.  This
  1165. method would seem to be suited to lighting parallel and perpendicular to the
  1166. illuminated surfaces.
  1167.  
  1168. There was also a paper entitled "A Comprehensive Light-Source Description for
  1169. Computer Graphics", IEEE CG&A, July 1984, by Channing P. Verbeck and Donald
  1170. P. Greenberg that approximates both linear and area light sources as a series
  1171. of point sources.  This is a compromise to numerical integration, but is still
  1172. computationally expensive.
  1173.  
  1174. In summary, the analytical solution to linear sources exists and is
  1175. calculable, at least for the diffuse component.  The specular component
  1176. exists, but direct calculation is almost expensive as numerical integration.
  1177.  
  1178. As far as area light sources are concerned... no analytical solutions were
  1179. found.  In fact, from the work examined I was left with the impression that
  1180. even if the solution existed it would not be very useful from a light
  1181. illumination point of view (ie non-radiosity).  (Comments?)
  1182.  
  1183. --
  1184.  Kevin Picott   aka   Socrates   aka   kpicott%alias@csri.toronto.edu
  1185.  Alias Research Inc.  R+D     Toronto, Ontario... like, downtown
  1186.  
  1187. -------------------------------------------------------------------------------
  1188. END OF RTNEWS
  1189.