Next: Index Up: Rayshade User's Guide and Previous: Displaying Range Maps


This version of the Rayshade User's Guide also contains information about enhancements people made to rayshade. A link to this chapter is present to praise the one who made the enhancement and where you can get the source. However, most (if not all) of these enhancements are already in the source if you've got version 4.0.6.

The list of enhancements in no particular order:

New primitives

Multi-Surfaced Blobs by George McGregor <mcgregor@ncifcrf.gov>, <mcgregor@fcs280s.ncifcrf.gov>.
Available at: princeton.edu:/pub/Graphics/rayshade.4.0/Contrib/Objects/CBlob.src.tar.Z

by Larry Coffin <lcoffin@clciris.chem.umr.edu>
Available at: princeton.edu:/pub/Graphics/rayshade.4.0/Contrib/Objects/fracland.tar

by Gerald Iles <ilesg@uk.ac.man.cs.p4>
Available at: princeton.edu:/pub/Graphics/rayshade.4.0/Contrib/Objects/rotspline

by Larry Coffin <lcoffin@clciris.chem.umr.edu>
Available at: ???

According to Larry Coffin:

There are a few known bugs:

Often there is a "shadow" ring around the diameter of the primitive where the functions are evaluated at t = 0.5. Presumably this is due to roundoff error possibly in the root finding algorithms, perhaps elsewhere.

Some configurations using the bezier specification result in garbage. Usually this can be avoided by changing the defining point's values slightly without affecting the curve noticeably. Examples are bezier -10 0 0 -10 0 0 10 0 0 10 0 0 and bezier -10 0 0 10 0 10 -10 0 10 10 0 0.

Other problems:

Using third order equations to define the center path or the radius requires solving a tenth order equation when checking for intersection. All roots over the interval (0,1) must be found, not just the smallest. The root finder used was one that I wrote that uses a combination of Newton-Rasphson and bisection. It ends up being fairly slow and probably could use some speeding up. A few possibilities would be using Sturm sequences to find the number of roots over an interval (I tried this but my algorithm did not find all the roots and thus produced gaps in the surface. I plan on trying to fix it if I can.) and to reduce the polynomial by dividing through by known roots before solving for remaining roots.

Any comments, bug reports, or suggestions for changes or improvements will be greatly appreciated.

New textures

by Larry Coffin <lcoffin@clciris.chem.umr.edu>
Available at: ???

There is however one problem with a conflict in the syntax, but Thomas Mueller had a fix for that:

      From: Thomas Mueller AKA Howie <mueller@karlsruhe.gmd.de>
      Date: Tue, 15 Jun 93 09:30:21 +0200
      Subject: lex.l conflict with symtab.c 4.06.enh2

      Hmmm, I'm not the ``real maintainer'' of rayshade, but since I'm in compiler
      business, I know a bit :-) about parsers.  The simplest patch is to fix the
      rule for Symtabent in yacc.y to:

      Symtabent	: tSTRING
		    {$$ = SymtabBuiltinFind($1);}
		    | tLINEAR
		    {$$ = SymtabBuiltinFind(strsave("linear"));}

      Then coin.ray and gradient.ray both work fine.

      Have fun

New light source

by Greg Spencer <greg@graphics.cornell.edu>
Available at: princeton.edu:/pub/Graphics/rayshade.4.0/Contrib/Lights/projector.shar.Z

New output format

Z buffer output
by Mark Maimone <mwm@cs.cmu.edu>
Available at: vacation.venari.cs.cmu.edu:/usr0/anon/zbuf.tar

Next: Index Up: Rayshade User's Guide and Previous: Displaying Range Maps

Jelle van Zeijl (jvzeijl@iso.estec.esa.nl)
Wed Jun 15 16:19:08 MET DST 1994