Return-Path: strauss
Return-Path: <shanega@athena.mit.edu>
Received: from aerospace.aero.org by antares.aero.org (4.1/AMS-1.0)
	id AA28547 for  /u/strauss/bin/mail_handler.pl strauss; Mon, 14 Dec 92 19:10:22 PST
Received: from Athena.MIT.EDU (ATHENA-AS-WELL.MIT.EDU) by aerospace.aero.org with SMTP (5.65c/6.0.GT)
	id AA15364 for strauss@antares.aero.org; Mon, 14 Dec 1992 19:10:19 -0800
Posted-Date: Mon, 14 Dec 92 22:09:55 EST
Received: from E40-008-10.MIT.EDU by Athena.MIT.EDU with SMTP
	id AA23451; Mon, 14 Dec 92 22:09:59 EST
From: shanega@athena.mit.edu
Received: by e40-008-10.MIT.EDU (5.61/4.7) id AA00516; Mon, 14 Dec 92 22:09:56 -0500
Message-Id: <9212150309.AA00516@e40-008-10.MIT.EDU>
To: rman@aero.org
Subject: Public domain renderers and raytracers
Date: Mon, 14 Dec 92 22:09:55 EST


I have been considering the issue of rendering vs. raytracing for some
time and so far I've come up with this list of pros and cons (in my
opinion only)

-----------------------

RenderMan (NeXT version - prman)

pros:   fast rendering times
	quick anti-aliasing
	quick RenderMan
	NURBS support 			(important)
	shading language 		(important)
	CAD support (AutoCAD on non-NeXT systems, 3DReality, Tesseract, etc
			on NeXT)
	quality animation support

cons:	No public domain renderers supporting raytracing, thus:
		shadow maps
		environment maps
		no reflection/refraction/radiosity

----------------------

Public domain raytracers (rayshade4.0, dkbtrace2.1, etc.)

pros: 	reflection/refraction/radiosity (in some cases)
	no shadow or environment maps needed

cons:	no NURBS surfaces in PD raytracers	(important)
	slow rendering times
	slow anti-aliasing
	limited CAD support (can write filters for .RIB files)
	no shading language			(important)


-----------------------

There are other issues, but these are the key ones for me at least.
I've actually ported BRL-CAD to the NeXT system in a fairly limited
way, and this system includes a raytracer that handles NURBS surfaces,
but it's a very awkward package to use and in terms of photorealism,
its shading and rendering capabilities don't begin to approach
rayshade (for example).  Thus, for all practical purposes I do not know
of any PD raytracers that can handle NURBS surfaces.  I also do not know
of any PD raytracers that handle the RenderMan shading language.  These two
facts alone may keep me using RenderMan for my rendering purposes.

If somebody were to add NURBS surface rendering capabilities to
rayshade4.0 I believe that I would probably switch to rayshade as a
rendering system, though losing the shading language would hurt.
Conversely, if someone were to release a PD or inexpensive renderer
supporting the RenderMan standard that included a functional trace()
command for simple ray-tracing then RenderMan would completely fulfill
my rendering needs.  (The RenderMan Interface(R) describes a simple
Turner-Whitted raytracer that can be implemented as a shader in
RenderMan using the trace() command).  Can anyone offer any
suggestions?  I think it's possible to link in new libraries in the
developers RenderMan system (which costs a small fortune I believe),
so this should be a way to get the trace() capability, but it's an
awfully expensive option.

Just my thoughts,

Shane




