Books others, which are transverse generatrices. Jones ('Shape control of curves and surfaces through constrained optimization') studies the possibility of local alteration to avoid irregularities and obtain, in the meantime, inflection regions. By relating discrete values of a variable to some points scattered on a previously defined surface, Barnhill, Piper and Rescorla ('Interpolation to arbitrary data on a surface')interpolate these values for any point on the surface. For instance, if pressure is measured on some points of an aircraft wing, the resulting lift can be computed. Munchmeyer ('Shape interrogation: a case study) investigates the properties of given shapes: Gaussian curvature, mean curvature, principal curvatures, asymptotic directions, etc. Each is expressed using a graph, through which many other properties become obvious. I ntersection algorithms To define an object, two kinds of operations have to be successively performed. First, some patches need to be defined. Second, their intersec-
tions need to be computed or they need to be blended with auxiliary elements playing the part of the conventional fillets. Moreover, to avoid collisions, cutter path definition requires computation of offset surfaces. Removal of hidden lines, too, requires a fair amount of computing. Chandru and Kochar ('Analytic techniques for geometric intersection problems') describe algebraic solutions for finding intersections between points, lines and surfaces expressed by parametric functions. When implicit and parametric surfaces intersect, solutions sometimes involve much computing; a solution for resolving simultaneous equations is exposed by Farouki in 'Direct surface section evaluation'. Intersection lines of implicit surfaces must be taken into account when defining auxiliary surfaces such as fillets. Subdivision of patches is often required, as shown by Owen and Rockwood ('Intersection of general implicit surfaces'). In industrial drawings, fillets are commonly defined as the envelope of a sphere that is compelled to remain tangent to the surfaces to be connec-
ted. Hoffmann and Hopcroft ('The potential method for blending surfaces and corners') describe a solution that involves offset surfaces and biquartic blending patches, with reference to cylinders and trihedral corners. Instead of restricting fillets to arcs of circles, Rockwood and Owen ('Blending surfaces in solid modeling') offer ellipses and superellipses, so increasing the variety of available solutions, including the possibility of blending together the auxiliary blending surfaces. Petersen, Piper and Worsey show that phenomena occurring in a 3D space can be expressed by trivariate interpolants ('Adaptive contouring of a trivariate interpolant'). Patch subdivision is used to limit curves and surfaces orders, according to the continuity sought for. As a conclusion, the book (400 pages) is clearly written, well printed, and contains a bibliography and an index. It should be useful to professors, researchers and students as well as to engineers and CADCAM specialists.
Pierre E B~zier
Fine teaching text spoilt by clumsy basics Computer graphics, Hearn and Baker, Prentice-Hail International (1986) 367pp £16.95 As the role of graphics grows in importance in the well-balanced computer science degree, there emerges a consensus of opinion on what a graphics course should contain. This book conforms to current thinking; all the most important topics are discussed thoroughly. There is ample material to fill two 20 hour courses: an introductory course in the second year and a third year course that covers the more advanced material. The book describes a wide variety of graphics devices, graphical kernel system (GKS) concepts, geometric transformations, algorithms, clipping and windowing, segments, hidden line and surface removal, shading, object modelling, colour and interaction. No prior
volume 19 number 9 november 1987
knowledge of graphics is assumed, but the book justifiably expects the reader to be familiar with elementary programming in a high-level language. It is full of excellent pictures and diagrams and is most attractively presented. There are some strikingly beautiful pictures of mountainous terrain modelled as fractal surfaces. The book is intended to be an undergraduate teaching text and not a coffee table book. There are lots of thought-provoking exercises at the end of each chapter. The bibliography is extensive. There are about 200 references to recently published papers. It would be a good starting place for those wishing to carry out research. The authors have clearly done an enormous amount of work in preparing this book. Sadly, the book is marred in places by clumsy use of English. For example,
it says on p. 127 that 'Procedures for eliminating all parts of a defined picture outside of specified boundaries are referred to as clipping algorithms or simply clipping'. Some words and phrases are so overworked that the mind tires of the subject matter and begins to seek light relief by searching for more elegant alternatives. Examples of the more irritating cliches include: 'specified', 'desired', 'facilitate', 'defined', 'generated', 'implemented', 'can be', and 'time consuming process'. Other words and phrases with precise meanings are sometimes used loosely or incorrectly. Examples of these are: 'parameter', 'function', 'command', 'co-ordinates' (instead of components, p. 193), 'recursive' (instead of iterative and recurrence), 'evaluating parametric polynomial equations' (p. 204. A resounding phrase, but expressions, not equations, are evaluated.) Some
513
Books chapters are a bit too heavily padded for comfort. More seriously, the mathematics is sometimes obscure. Here are some examples: translation is described on p. ] 07 by the pair of equations
example, finding the intersection of two lines. The treatment of curves is obscure in places. A Bdzier curve is defined on p. 196 by the equations n
P(u) =
x ' = x + Tx,
y ' = y + Ty
Z Pk Bkn(U) k=O
where The constants look like algebraic products, and would be better expressed as Tx and Ty. To add to the confusion, scaling to about a fixed point is represented by x
B,,. (u) = C(n, k).*(1 - .)'-k and C(n,k)
-
n!
k](n-k)[
= X F + (x - X F ) S x
with a similar expression fory'. Threedimensional transformations on p. 221 suffer similarly. Rotation, on the other hand, is explained simply and well. The use of homogeneous coordinates is not justified convincingly (p. 109). It would have been helpful to explain that in two dimensions, all transformations except for translation are expressible as 2 x 2 matrices, but that 3 x 3 matrices are needed to accommodate translation. It would have been instructive to say that the use of homogeneous coordinates postpones arithmetic division when, for
Would it not have been much simpler just to say that the Bk,n(U ) are the terms in the binomial expansion of (u + (I - u)) n ? The reasons for having them would then have been immediately obvious. The definition of a spline curve given on p. 200 is too restrictive. B-splines are described as a class of splines, but the book is unclear on the question of whether B-splines possess continuity of curvature. Like the treatment of Bdzier's curve, the treatment of B-splines would be hard to understand without knowing a little about them first. On p. 204, forward differ-
ences are introduced to help in the evaluation of polynomial expressions. The non-mathematical reader might think that the symbol A represents a multiplier and not an operator, and that A 2 represents a square in the usual algebraic sense. The description of carrying out transformations by manipulating bitmaps is misleading. On p. 121 it is stated that reversing the order of the bits within each row of a block rotates the block 180 °. No mention is made of an axis of rotation. It is not the z axis, as normally implicit within the context of rotations in the plane. The operation would be better described as a reflection about a vertical axis. The area subdivision algorithm described on p. 268 was published by J E Warnock as a University of Utah technical report in 1969. Uncharacteristically, the book makes no acknowledgement. To summarize, the book is beautifully illustrated and contains a wealth of material, but it is spoiled in places by poor use of English and unclear mathematics. The book deserves to have more work done on it for a future edition.
J G Grfffiths
Collection of papers on ray tracing for surfaces On new types of solid models and their visualization with ray tracing, Jarke Jan van Wijk, Delft University Press This book might be aimed at: •
industry: o geometric modelling software houses o researchers in academia • academics: o research, at least above graduate level • potential buyers: o system developers and possible R&D managers The book indeed covers what the author stated in the title. It introduces new types of objects, e.g. those obtained by sweeping the sphere and
514
blending the quadrics, etc. It provides the visualization solely by means of ray tracing. As indicated in the Acknowledgements, it is primarily a collection of papers by the author. It is quite evident that all of these papers are important research works by the fact that they reflect the contemporary technology on sweeping and blending surfaces. I personally consider them outstanding academic work merely by one single graduate student (since no faculty members' names were mentioned anywhere) and I consider this kind of research result and amount of publications far exceeding that of an average PhD candidate in the U.S. However, it is also my understanding that the content of this thesis is not much more than just a collection
of papers. In other words, those who are looking for the reference materials should be able to find them in the related publications (e.g. Computer Aided Geometric Design, ComputerAided Design and ACM Transactions on Graphics). This thesis, although it includes the words 'ray tracing' in the title, is not a 'ray tracing' book per se. This is based upon the following arguments. First, ray tracing has an entire body of theory and techniques. Some of the most important ones are not included (perhaps they were not intended to be included in the first place), e.g. tricks about optimization, vectorization and extents calculation, etc. Second, the ray tracing technique produces the most realistic images (next to the radiosity algorithm for a
computer-aided design