scispace - formally typeset
Search or ask a question

Showing papers in "Graphics gems in 1994"


Book ChapterDOI

2,671 citations


Book ChapterDOI
TL;DR: In this gem, software is presented that performs spatial partitioning and polygonal approximation of implicit surfaces and it is hoped this software, which includes a simple test application, will encourage experimentation with implicit surface modeling.
Abstract: An algorithm for the polygonization of implicit surfaces is described and an implementation in C is provided. The discussion reviews implicit surface polygonization, and compares various methods. Introduction Some shapes are more readily defined by implicit, rather than parametric, techniques. For example, consider a sphere centered at C with radius r. It can be described parametrically as {P}, where: The implicit definition for the same sphere is more compact: (P x-C x) 2 +(P y-C y) 2 +(P z-C z) 2-r 2 = 0. Because an implicit representation does not produce points by substitution, root-finding must be employed to render its surface. One such method is ray tracing, which can generate excellent images of implicit surfaces. Alternatively, an image of the function (not surface) can be created with volume rendering. Polygonization is a method whereby a polygonal (i.e., parametric) approximation to the implicit surface is created from the implicit surface function. This allows the surface to be rendered with conventional polygon renderers; it also permits non-imaging operations, such as positioning an object on the surface. Polygonization consists of two principal steps. First, space is partitioned into adjacent cells at whose corners the implicit surface function is evaluated; negative values are considered inside the surface, positive values outside. Second, within each cell, the intersections of cell edges with the implicit surface are connected to form one or more polygons. In this gem we present software that performs spatial partitioning and polygonal approximation. We hope this software, which includes a simple test application, will encourage experimentation with implicit surface modeling. The implementation is relatively simple (about 400 lines, ignoring comments, the test application, and the cubical polygonization option). Some of this simplicity derives from the use of the cube as the partitioning cell; its symmetries provide a simple means to compute and index corner locations. We do not employ automatic techniques (such as interval analysis) to set polygonization parameters (such as cell size); these are set by the user, who also must judge the success of the polygonization. This not only simplifies the implementation, but permits the implicit surface function to be treated as a 'black box.' The function, for example, can be procedural or, even, discontinuous (although discontinuous functions may produce undesirable results). The use of a fixed resolution (i.e., unchanging cell size) also simplifies the implementation, which explains the popularity of fixed resolution over adaptive resolution methods. 1 This makes …

358 citations


Book ChapterDOI
Eric Haines1

299 citations



Book ChapterDOI
TL;DR: This gem gives a simple algorithm for the incremental construction of the Delaunay triangulation and the Voronoi diagram of a set of points in the plane and is based entirely on the quad-edge data structure and the pseudocode from the excellent paper by Guibas and Stol 1985.
Abstract: Dani Lischinski 580 ETC Building Cornell University Ithaca, NY 14850, USA danix@graphics.cornell.edu } Introduction } This gem gives a simple algorithm for the incremental construction of the Delaunay triangulation (DT) and the Voronoi diagram (VD) of a set of points in the plane. A triangulation is called Delaunay if it satis es the empty circumcircle property: the circumcircle of a triangle in the triangulation does not contain any input points in its interior. DT is the straight-line dual of the Voronoi diagram of a point set, which is a partition of the plane into polygonal cells, one for each point in the set, so that the cell for point p consists of the region of the plane closer to p than to any other input point (Preparata and Shamos 1985,Fortune 1992). Delaunay triangulations and Voronoi diagrams, which can be constructed from them, are a useful tool for e ciently solving many problems in computational geometry (Preparata and Shamos 1985). DT is optimal in several respects. For example, it maximizes the minimum angle and minimizes the maximum circumcircle over all possible triangulations of the same point set (Fortune 1992). Thus, DT is an important tool for high quality mesh generation for nite elements (Bern and Eppstein 1992). It should be noted, however, that standard DT doesn't allow edges that must appear in the triangulation to be speci ed in the input. Thus, in order to mesh general polygonal regions the more complicated constrained DT should be used (Bern and Eppstein 1992). The incremental DT algorithm given in this gem was originally presented by Green and Sibson (Green and Sibson 1978), but the implementation is based entirely on the quad-edge data structure and the pseudocode from the excellent paper by Guibas and Stol (Guibas and Stol 1985). I will brie y describe the data structures and the algorithm, but the reader is referred to Guibas and Stol for more details.

67 citations


Book ChapterDOI

64 citations



Book ChapterDOI
Christophe Schlick1
TL;DR: A fast simple formula is proposed here to replace the computation of the specular term in the Phong illumination model which involves an exponentiation.

48 citations


Book ChapterDOI
TL;DR: A family of geometric formulas frequently used in graphics that are easily extendible to N dimensions as well as being helpful alternatives to standard 2D and 3D notations are collected.

42 citations


Book ChapterDOI

42 citations



Book ChapterDOI
TL;DR: In this paper, the authors present an overview of the work of the authors of this paper and present a survey of their work in relation to the work presented in this paper, as well as a discussion of the issues raised by their work.
Abstract: Introduction ! \"$#% & ' & !( ) * + , ! \") \"/.10 ,2 +3 4 ! 5 6\"87 ' & 92 \": ' . 3; <= 8< , \") .> .1 ?3; 8 , ! \" @A % \"B & 3C \"B\"8 D D \")3 4\"8 B \"&\"E 4 8 .F &3G H & ? < IJ 0 K B \"8 L E *\"E \"M.1 & N60 8 2B \"&\"8 P 8 U ? Z * + , ! \"Y J.F &0 ? \"Z .[ & 0 ,2 8 <6 + * @\\ ; [ \"Y & V ? 4\"8 K , 4\": 8 ,\"5.1 > & M , ! \"> ? , 52 B > ] K 8 \"8 ^ & $ * + , ! ] 8 ,\"^ ,2_ & , + ^3> Q3` Qa 9 6 ,\"& !0 8 .Y.1 + &0 & \" @cb[ ,\"8 ? &0, ! 8 .` d 6 4 2/ * + , ! P \"> ? 40,\" e ! 3> Q , + & 8 J 8 3> a E Q 6 O & 3XI%#f * ? O , 6\"g h =\"8 #J i ? , XjZklP , 2em n &3; + o ,2Kpd gq r6r q ItsV + &7u\"% ,2)v h q r r q w @Zxy e & \"Z 3XIh#W 2 \"& ! E Q h Y3 & 2>.F % 0 8 \"8 8 U a 8 ^ & 3z0,\" Q K\": 350 ? 2^ U m {f &7 , & 8 ?7^ | y@Jq r6} ~ Ib[ & 3 8 [ ? \"8 8 ; , 6\"J\"8 #J X ? , J & \": 3>0 & 2 Py U & 4 6 & ^ & K & ‚ * + , ! PF ! 3 5 ? 3ƒ & u2 0, ! \"Z gN60, U 8< , ! U 4\"Y & , e & Z & ] 0,\" Q

Book ChapterDOI
TL;DR: A simple method to reduce the clumping of the X-axis and Y-axis projections by imposing an additional N -rooks constraint on the jittered sampling pattern can reduce the number of rays necessary for a satisfactory image when ray-tracing.
Abstract: Jittered sampling patterns perform better than random sampling patterns because they limit the degree of clumping that can occur. Clumping can still be present in one-dimensional projections of jittered patterns, however. We present a simple method to reduce the clumping of the X-axis and Y-axis projections by imposing an additional N -rooks constraint on the jittered sampling pattern. The resulting sampling pattern can reduce the number of rays necessary for a satisfactory image when ray-tracing.


Book ChapterDOI







Book ChapterDOI
Kevin Weiler1

Book ChapterDOI
Andrew S. Glassner1
TL;DR: Gem provides a general-purpose procedure that computes vertex normals from any list of polygons, and infer the topology of the model by building a data structure that allows quick access to all the polygons that have a vertex in the same region of space.
Abstract: Many polygonal models are used as piecewise-flat approximations of curved models, and are thus “smooth-shaded” when displayed. To apply Gouraud or Phong shading to a model one needs to compute a surface normal at every vertex; often this simply involves averaging the surface normal of each polygon sharing that vertex. This Gem provides a general-purpose procedure that computes vertex normals from any list of polygons. I assume that the polygons describe a simple manifold in 3D space, so that every local neighborhood is a flat sheet. I also assume that the structure is a mesh; that is, there are no “T” vertices, isolated vertices, or dangling edges. Except for the addition of normals at the vertices, the input model is unchanged. I infer the topology of the model by building a data structure that allows quick access to all the polygons that have a vertex in the same region of space. To find the normal for a selected vertex, one needs only search the region surrounding the vertex and then average the normals for all polygons that share that vertex.

Book ChapterDOI
Steve Hill1


Book ChapterDOI
Christophe Schlick1



Book ChapterDOI
TL;DR: Some commonalities and misconceptions regarding the two models are discussed and similar highlights result if Blinn's exponent is four times Phong's exponent, that is: ( N · H ) 4 r ≈ ( R · E ) r .
Abstract: Phong's illumination model is one popular method for calculating the specular contribution from a light source, which involves taking the dot product of the light's reflection vector R and the eye vector E (Phong 1975). Another method involves finding the vector halfway between the eye and the light vector (call this H ), and taking the dot product of H and the surface normal vector N (Blinn 1977). In either case, the resulting dot product is raised to an exponent to control the shininess of the specular contribution. This Gem will discuss some commonalities and misconceptions regarding the two models and show that similar highlights result if Blinn's exponent is four times Phong's exponent, that is: ( N · H ) 4 r ≈ ( R · E ) r .