Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!pacbell.com!pacbell!well!levine From: levine@well.sf.ca.us (Ron Levine) Newsgroups: comp.graphics Subject: Re: Practical Intro to PHIGS (new book) Summary: Maybe welcome but not great Message-ID: <24283@well.sf.ca.us> Date: 18 Apr 91 01:36:53 GMT References: <1991Apr16.022646.6268@Stardent.COM> Lines: 182 Jan Hardenbergh reviews the new book on PHIGS and PHIGS PLUS on the basis of an all too cursory inspection: >I just got a copy of "A Practical Introduction to PHIGS and PHIGS PLUS" >by Toby Howard, Terry Hewitt, R.J. Hubbold and K.M. Wyrwas. ISBN >0-201-41641-7. I've been looking at it off and on all day now and am >more and more impressed each time I pick it up. Then he concludes by calling it a "great book". I have had a copy of this book for about a month. Like Jan, I was at first very impressed because the book is indeed very attractive. But on a careful examination I find that it has many faults and falls far short of "greatness". To be sure, as the first matter to appear in an important vacuum, it will be helpful to many who are struggling to get started with PHIGS in the face of inadequate vendor documentation. But some of its inaccuracies and oversights are sure to obfuscate and to hinder the progress of some readers, some of the time. Therefore, I feel compelled to counterbalance Jan's excessively enthusiastic endorsement with some negative comments and caveats that this book is not all that it claims to be. The material on PHIGS PLUS, in particular, is inadequate and sometimes even erroneous. But even the more elementary material suffers from poor explanations which frequently miss the point. One of the first objectionable things I noticed is that from the beginning there is an implicit assumption that the default display update deferral mode is ASAP, which may be true in some implementations, but not in some important ones such as DEC PHIGS and Domain/PHIGS. The PHIGS standard does not specify a default deferral mode, but it is certainly true that on most interactive systems, for pictures with any complexity at all, deferral mode ASAP is a bad choice, except perhaps for debugging purposes. Thus, a number of implementations use WAIT for the default deferral mode. As a consequence of this implicit assumption, many important unqualified statements in the first half of the book (e.g. "posting causes the structure to be traversed", and "traversal may be thought of as a continuous process") are false for implementations in which the default deferral mode is other than ASAP. Moreover, all of the example programs will fail to produce the expected picture on such implementations. Since display update deferral mode is not discussed until Chapter 8 (except for a mysterious hint on page 9), the beginning student using such an implementation is sure to be frustrated. Then, when deferral mode is finally discussed in Chapter 8 (and in the hint on page 9), the explanation largely misses the point. It seems to imply that you would want to use a deferral mode other than ASAP only on a hard copy device such as a pen plotter or laser printer, which is just not true. In fact, interactive applications on devices such as CRTs are EXACTLY where you would want to use deferral mode WAIT, together with modification mode NIVE or UQUM. Further, I think it is confusing and very bad to place the discussion of "dynamic modification accepted" in Sec. 8.3, before the discussion of deferral mode and quick update. And, in my opinion, the definition of "implicit regeneration" in this section is just wrong. (The PHIGS standard uses the term but never precisely defines it). The whole discussion fails to mention the all-important point that traversal, or regeneration, is generally needed to be sure that the picture is correct, no matter what the output device is. This observation of the difficulties with the book's treatment of display update caused me to examine many of the explanations closely, and in many cases I have found them wanting, especially in the PHIGS PLUS chapter. For example, consider the description of POLYLINE SET WITH DATA: "...it allows us to define a set of unconnected polylines as a single primitive. This can be useful for displaying a variety of composite shapes constructed from individual polylines". Of course, EXACTLY the same "variety of composite shapes" may be drawn using individual POLYLINE primitives. The explanation ignores the primary rationale for aggregating a number of individual polylines into a single primitive: namely, that it may frequently result in important performance gains, by reducing the overhead of function calls, bus transactions, etc. I am particularly offended by the discussion of SET OF FILL AREA SETS WITH DATA: "We will not go into more detail here; suffice it to say that this degree of complexity is not something which the everyday application programmer wishes to grapple with." I strongly demur. While this primitive might not be the first that a PHIGS beginner would want to attempt to use, I certainly think that it is an extremely important tool in the box of the "everyday application programmer", and no book on PHIGS PLUS can be complete without a good discussion to help the reader with its complexity, as well as examples to demonstrate its power and its benefits. The discussion of the Phong reflectance model, in particular the significance of specular versus diffuse reflection, is far too terse in relation to what is needed by people who are not already experts on rendering--at least for the students I have had when teaching PHIGS in an industrial setting. The presentation of NURBS curves and surfaces is very bad indeed. It is non-illuminating, and contains erroneous statements as well. For example: "There are two types of B-spline: rational and non- rational. Only rational B-splines have the property of being closed under a perspective transformation, which is why they are used in PHIGS PLUS". First, this ignores the important fact that "non-rational" B- splines ARE rational B-splines in which all the weights are 1. ("Non-rational" is a very unfortunate choice of nomenclature, evidently made by computer scientists. Mathematicians would never use such illogical terminology. Here we have a very clear example of the confusion that illogical terminology can cause.) Now, one of the most important properties of B-splines, rational or non-rational, is that they are invariant under affine transformations; this is important because it means that the curve you get from a set of control points and weights does not depend on the choice of coordinate system. The book ignores this property as well as several others--local control, convex hull, variation diminishing, etc.--which are all very important for explaining why B-splines, rational or non-rational, are used for the free-form curve and surface capability in PHIGS, IGES, and other systems. On the other hand, the one cited property, closure under perspective transformation, is not very important at all. In practice, it really does not matter that the perspective projection of a non-rational B-spline may be a rational B-spline. Indeed, many authors on NURBS recommend that application developers use non-rational NURBS except when non-constant weights are absolutely required. When is this? The answer is that rational B-splines are needed for exactly representing conic sections (circles, ellipses, parabolas, hyperbolas), and quadric surfaces (including spheres, cylinders, cones, etc.) as splines. This is, I think, the REAL reason that the complexity of weights and rational B-splines has come into computer graphics. Further serious faults with the NURBS discussion: absence of any clue as to the geometric significance of the weights, and lack of any guidance on appropriate choice for the order. Finally the discussion peters out with a weak reference to the books by Farin and the Killer Bees, which both are much too mathematically difficult for the supposed average reader of this book on PHIGS PLUS. It is not at all easy to write a good book on PHIGS PLUS. I know because I have written one, in the form of a tutorial manual for internal use by a large corporation. I spent an inordinate amount of time per finished page on the discussion of NURBS, trying to explain it clearly at about the right level for the non-mathematician reader. So I hope it is understandable that my hackles are raised when I see such an incomplete job rushed into print to take advantage of a market opportunity, and then receive accolades based on an all too cursory reading from an expert like Jan Hardenbergh. The book is not without value. Many of the nice features cited by Jan are indeed laudable. But it is certainly not a great book, it has serious flaws, and it is not at all adequate as an introduction to PHIGS PLUS. The authors may plead that PHIGS PLUS has been a moving target during the period of writing. But then it is misleading to claim that this alleged "introduction" to it is at all "practical". I don't know anything about the other forthcoming books that Jan mentions, but I rather suspect that a truly valid and helpful book on PHIGS PLUS is still about a year away. Ron Levine Dorian Research, Inc. (415)-535-1350