[comp.sys.amiga] DBW_Render posting and suggestions for usage

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).