[comp.graphics] Reporting bugs in Foley, van Dam, Feiner, and Hughes

feiner@cs (Steven Feiner) (08/04/90)

We're in the process of setting up a separate email account to make it easy to
report bugs, suggest changes, and obtain a copy of the bug list for Computer
Graphics: Principles and Practice, 2nd Ed. by Foley, van Dam, Feiner, and
Hughes.  Since Dave Sklar, the person who is setting up the account, is also
busting to get the versions of the book's SRGP and SPHIGS graphics packages
ready for their SIGGRAPH demos, the email account won't be available until
after SIGGRAPH.  We'll post details as soon as it's up.

Meanwhile, here are fixes for some dangling references and a missing exercise,
all of which had been devoured by a hungry gremlin:

1) Dangling references:

FIUM89 Fiume, E.L. The Mathematical Structure of Raster Graphics, Academic
Press, San Diego, 1989.

FOUR88 Fournier, A. and D. Fussell,
``On the Power of the Frame Buffer,'' ACM TOG, 7(2), April 1988,
103-128. 

HUBS82 Hubschman, H. and S.W. Zucker, ``Frame-To-Frame Coherence and the Hidden
Surface Computation: Constraints for a Convex World,'' ACM TOG, 1(2),
April 1982, 129-162.  [The bibliography includes HUBS81, the SIGGRAPH 81 paper
on which HUBS82 was based.]

SNYD87 Snyder, J.M. and A.H. Barr, ``Ray Tracing Complex Models Containing
Surface Tessellations,'' SIGGRAPH 87, 119-128. 

TAMM82 Tamminen, M. and R. Sulonen.  ``The EXCELL Method for Efficient
Geometric Access to Data,'' in Proc. 19th ACM IEEE Design Automation
Conf., Las Vegas, June 14-16, 1982, 345-351.

2) A missing exercise:

15.25  If you have implemented the z-buffer algorithm, then add
hit detection to it by extending the pick-window approach described in Section
7.12.2 to take visible-surface determination into account.
You will need a SetPickMode procedure that is passed a mode flag, indicating
whether objects are to be drawn (drawing mode) or instead tested for hits
(pick mode). 
A SetPickWindow procedure will let the user set a rectangular pick window.
The z-buffer must already have been filled (by drawing all objects)
for pick mode to work.
When in pick mode, neither the frame-buffer nor the z-buffer
is updated, but the z-value of each of the primitive's pixels that
falls inside the pick window is compared with the corresponding value in the
z-buffer.
If the new value would have caused the primitive to be drawn in drawing mode,
then a flag is set.
The flag can be inquired by calling InquirePick, which then resets the flag. 
If InquirePick is called after each primitive's routine is called in pick mode,
picking can be done on a per-primitive basis.
Show how you can use InquirePick to determine which object is actually visible
at a pixel.

Steve Feiner
feiner@cs.columbia.edu