wecker@cookie.dec.com (DAVE CUM GRANO SALIS WECKER) (03/20/87)
-> Is Dave Wecker on the net? Right here... I just keep pretty quiet (my nature :-). -> I just got his ray tracing program off a bbs, and I was curious to know if -> he plans to post it here. I'm still deciding. It's a full disk worth of code/examples, and since it is being supported by contributions it is more likely for me to get users registered if they have to send me a letter to get the disk. Originally I was going to put in a clause (in the COPYING file) restricting distribution to only personal copies (no public BBS/network postings AT ALL!) however, this is too restrictive for shareware and I hope that people's consciences will get to them enough to contribute (I just bought some memory, find that I can't live without the ASDG-RRD and am sending them a contribution... let's hope others do the same!) When orders slow down, I may consider posting the software but right now I'm still playing "mail-order house" (over 140 registered users so far). -> It is one slick piece of software. Glad you like it. -> I'll probably blow off spring break playing with it. -> Sean A few suggestions (for all the DBW_Render users listening out there): 1. Use as much STACK as you can afford. Some pictures REQUIRE stacks of over 100K. 2. When you are designing a picture do the following: a. no transmission (everything opaque). b. no "mirrors" (use low reflection/diffusion levels). c. use only 1 light source. d. make the light source infinitely far away ("l" not "L"). e. use a small numbers of objects. This will allow you to prototype pictures VERY quickly (minutes not hours). BTW: this is why JUGGLER only took its author 1 hour/frame to compute it used items a,c,d and e (depending on def. of "small") 3. If you have two (or more) highly reflective spheres (mirrored) and a bright light sources, you probably STILL run out of stack because you have to bounce the light back and forth between them for a LONG time (not infinite do to the inverse square law)... you can patch the file RAY.C changing all occurrences of: max_runs = 32767; to a smaller number (somewhere between 30 and 300 for example). This will set a much smaller maximum recursion value (and thus much smaller stack usage). 4. Here are some common questions that I get: -> Would like to see the 3D scene builder... (So would I :-) .. it's about 30% done, expect to hear about it sometime this summer (spring if I get ambitious). -> Positioning of the eye/camera... The easiest thing to do is to set the center of your image at (0,0,0). This is what is done in the GLASS.DAT example. The eye is positioned at: (30,180,200) looking in the direction of (-50,-320,-350) Ok.. so how does this give us (0,0,0)? Well, if you start at the eye and add the direction vector you get (-20,-180,-150). It turns out that if you go 57% of the way along the direction vector you get (0,0,0)!!! So you are looking down and to the left through the origin and then 150 units further! By adjusting this distance you can magnify or reduce the entire image. At the tip of the vector you have 256 units in X visible and 170 units in Y visible. This defines a viewing "cone" (which you can draw the lines out to). But for example, in the plane of the screen (Z = 0), you have visible: x: -73 to +73 (57% of 256) y: -48 to +48 (57% of 170) You can make this calculation for any desired depth. -> Objects are getting FUZZ even when they have 0.0 "fuzziness"... Remember that if you don't give the program enough time to run in, it will "smear" objects by using the AI algorithms to guess at pixel values. Try to give a small strip of the picture an infinite amount (999.0 hours) to run in and you should see all pseudo-fuzz go away. -> Is there a new version yet? Nope, I'm just trying to keep up with orders at this point! ---------------- Rest of message omitted (too large to return to sender).