Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!ogicse!milton!hlab From: lance@motcsd.csd.mot.com (lance.norskog) Newsgroups: sci.virtual-worlds Subject: Re: Real-time raytrace and some related "ramblings" Message-ID: <1991May14.202045.1020@milton.u.washington.edu> Date: 14 May 91 02:40:16 GMT References: <1991May13.193721.5473@milton.u.washington.edu> Sender: hlab@milton.u.washington.edu (Human Int. Technology Lab) Organization: Motorola CSD, Cupertino CA Lines: 42 Approved: cyberoid@milton.u.washington.edu fmgst@unix.cis.pitt.edu (Filip Gieszczykiewicz) writes: > Greetings. Well, I finally got my 486/25 (33MHz was a _bit_ above > my budget :-) First thing I did was a "benchmark". I ran an > older version of qrt (Quick RayTracer - author:???). After studing > the results, something dawned on me: > Real-time raytracing is not as far away as most of you led me > to believe.... Why? Well, I did a 320x200x~256 image of a > sphere, 1/2 cylinder "pillar", and a room with brick walls (one of the > files included in the .ZIP file). It took less than 2 minutes. Yes, I noticed how fast QRT is. DKBtrace has options for not doing various levels of tracing, also. Ray-tracing is inherently 2D, while radiosity is inherently 3d. Ray-tracing works from the eye to a background, radiosity works from a light source until the light peters out. You can do a radiosity pass once, and save all the surface pixels in a 3D sparse data structure. (Voxels are one technique.) Then, just move around the 3-space and continuously walk the data structure, displaying successive images from your pre-computed database. You can't move the objects, and you yourself are transparent (no visible effect on the shading) but it's computationally much less intensive. Also, radiosity gives a more realistic, software look. Check some computer graphics books. Takes a lot more RAM, though. You have to store enough detail for each surface that it looks OK close up. Also, you have to move through the database quickly using a 3D line-drawing algorithm. It is pre-sorted, though. I guess you could use weighted average shadings from neighboring voxels if you're close enough to see a flat shaded polygon. In custom fixed-point arithmetic, it might even be fast enough. Lance Norskog thinman@netcom.com