CA2052767A1 - System and method for displaying trimmed surfaces using bitplane masking - Google Patents

System and method for displaying trimmed surfaces using bitplane masking

Info

Publication number
CA2052767A1
CA2052767A1 CA002052767A CA2052767A CA2052767A1 CA 2052767 A1 CA2052767 A1 CA 2052767A1 CA 002052767 A CA002052767 A CA 002052767A CA 2052767 A CA2052767 A CA 2052767A CA 2052767 A1 CA2052767 A1 CA 2052767A1
Authority
CA
Canada
Prior art keywords
trimming
mask
polygon
trimmed
triangle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002052767A
Other languages
French (fr)
Inventor
Mark A. Einkauf
Jaroslaw R. Rossignac
Michael T. Vanover
Jeffrey Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2052767A1 publication Critical patent/CA2052767A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Abstract

SYSTEM AND METHOD FOR DISPLAYING TRIMMED
SURFACES USING BITPLANE MASKING

ABSTRACT

A system and method is provided for displaying trimmed surfaces on a computer graphics system. The present invention tessellates a three-dimensional surface into triangles and determines whether a trimming curve intersects any triangles. If an intersection occurs, a polygon trimming mask is formed by performing an exclusive OR
operation and rendering the polygon into a mask plane. The XOR operation sets the bits in the mask plane corresponding to the trimming mask to logical 1. The rendering hardware then compares the bits in the mask plane with the bits in the frame buffer and draws those pixels which correspond to the bits set to 1 in the mask plane. Since, the trimming mask is a polygon the rendering hardware can perform shading, or lighting calculations using values for points which are contained on the tessellated triangle. In this manner, consistent lighting of a trimmed surface can be achieved. Additionally, the present invention provides for the formation of multiple trimming masks when multiple trimming curves intersect a tessellated triangle. The multiple trimming masks are sequentially XORed into the mask plane and the corresponding pixels are then drawn.

Description

2~52767 De~cription SYST~M AND MET~OD FOR DISPL~YING TRIMMED `
Su~FAcEs USING BITP~A~E MASKI~G
' ~ACKGROUND OF T~E I~V$NTION

This invention generally r~lates to the display of parametric surfaces in a compùter graphics system. In particular, a trimming operation is implemented wherein a portion of a surface, displayed on a computer graphics system, is subtracted. For example, a scene being displayëd may include a sphere, a cylinder, a planar surface and the -~ ;
intersectioh therebetween. It may be desired to subtract the sphere tor a portion of the sphere) from the scene, sùch that a shadow, shaded area, or thè like may be displàyed in place of the sphere.
Gener~lly, non-trimmed parametric surfaces ~ay be ~endered o~ graphics hardware by computing and sh~ding a ~essellatio~ aréà (generally a t~iangulation) covering t~e ~ntire surface to be displayed. It ~3hould be noted that a triangulated surface shall be used herein to describe ~ny area to be rendered on the display of the computer graphics system. Trimmed surfaces are limited by the intersection of trimming cUrves therewith, which function to subt~act an area, or portion of the surface, for reasons discussed above. ~;
Traditional methods for rendering trimmed surfaces include modifying the tessellation of a surface by introducing surface points along the trimming curves at the point(s) of intersection of the border of the original tesssllation triangle. Prior art systems then must compute coordinates, normals and reflected light intensities for ~;
each of these additional points. Additionally, sincè the majority of graphics processing systems are optimi~èd for triangles, the relevant portions of the tessellation triangles, near the trimming curve, must be triangulated.
The introduction of these new points results in shadihg inconsistencies between points on -the trimmed surface ahd , AT9-90-053 2 20~2767 the same points on the original non-trimmed surface.
Further, processing time is increased for the trimmed surfaces since the coordinates, normals, light intensities and -triangulation must occur.
Other conventional systems include using the software of the graphics system to perform trimming, prior to sending the device coordinates to the display hardware, which is a complex and slow solution, that requires a large amount of program memory.
European Patent 0 277 832, issued August 10, 1988 to Hewlett Packard, performs trimming by using a graphics accelerator which determines where straight line approximating segments of the trimming curves cross subspan boundaries of the tessellated area and changes the vertices of the subspans to trim away portions of the polygon. A
data structure is built linking lists of vertex tables that represent the untrimmed polygon and any trimming curves which intersect the polygon.
U.S. Patent ~,914,607, issued April 3, 1990 to Hitachi, describes a multi-window environment in which the data to be displayed undergoes an exclusive OR operation, bit by bit, with the bit-map data developed in a logical plane.
It can be seen that conventional trimming systems are extremely complex and require a great deal of computing time and overhead. Therefore, it is desirable to have a computer graphics system which is capable of performing a trimming operation that overcomes the drawbacks of prior art systems.
In particular a trimming system is desired which: (1) does not re~uire lighting calculations for additional vertices (points) along the trimming curve; (2) avoids triangulation of portions of tessellated triangles near the trimming curve; and (3) provides consistent shading between trimmed and non-trimmed surfaces, i.e. the colors resulting from lighting calculations on a trimmed surface should be identical to the colors resulting from lighting calculations on an identical surface which is not trimmed, for all areas common to both rendered surfaces.

2~27~7 SUMNAR~ OF T~E INVENTION

In contrast to the prior art, the present invention presents a means of overcoming the previously discussed limitations. The present invention renders trimmed tessellation triangles in their original form using only the lighting information of the original triangle vertices, thus preserving image consistency. Trimming is implemented by masking the projection of the trimmed portions of the tessellated surface, prior to rendering of the surface by the computer graphics system. The masking function is achieved for each trimmed portion of the original tessellated surface, by using a bit plane and an exclusive OR (XOR) operation.
The present invention uses a vertex of the original tessellation and all the edges of the trimming curves to render tessellated surfaces into the mask by using an exclusive OR update condition. Once the edges o the trimming curve are processed, the mask is set for the portions of the surface that are not tr:immed away. The mask is checked during the display of the untrimmed triangle and only masked pixels are effected.
The present invention includes several advantages when compared to conventional software trimming methods. For example, it renders trimmed surfaces without the necessity of calculating lighting effects for vertices introduced by trimming curves. Therefore, significant reductions in computation time are achieved. Also, program memory requirements are reduced since trimming operations having multiple trimming curves is simplified. Trim surfaces rendered by utilizing the present invention creates surfaces for display with lighting affects which are more accurate than conventional systems. The method utilized in the microcode does not require that the trimming curve be oriented in a specific clockwise or counter clockwise direction, and allows trimming curves to contain shared vertices.
In accordance with the previous summary, objects, features and advantages of the present invention will become 2 ~ 7 apparent to one skilled in the art from the subsequent description and the appended claims taken in conjunction with the accompanying drawings.

BRIl:F DESCRIPTION OF TE~3 DRAWINGS

Figure 1 is a functional diagram showing the mapping of three-dimensional control points with a knot grid (two-dimensional parametric points) to yield a three-dimensional parametric surface;
Figure 2 illustrates a trimming curve and its intersection with a surface being displayed, which is comprised of four-sided three-dimensional patches;
Figure 3 shows a strip within a patch having tessellated triangles, and triangulation of an individual tessellated triangle intersected by a trimming curve;
Figure 4 is a tessellated triangle with a portion trimmed away;
Figure 5 illustrates the masking and lighting functions of the present invention;
Figure 6 illustrates a feature of the present invention which deletes a portion of a tessellated triangle that does not lie between two trimming curves;
Figure 7 is a block dlagram showing the comparison function of the present invention wherein the mask is compared with the original tessellation triangle such that the trimmed triangle can be rendered;
Figure 8 is a block diagram of the hardware which may be utilized by the present invention to display trimmed surfaces;
Figure 9 is a block diagram showing the comparison of a mask with an original tessellation triangle which occurs prior to rendering; and Figures lOA and lOB represent a flowchart illustrating the steps utilized by the present invention to display trimmed surfaces.

. ., ~ , . ,, . ~ .

DETAII.ED DE~;CRIPTION OF TEIE: PR~:FER~ MBODIMENl'S

Referring to Figure 1, a mapping function is shown which allows complex surfaces to be displayed in the form of parametric surfaces. Recently, computer graphics systems bega.n offering parametric surfaces as a means of describing complex surfaces which may be concave and/or self intersecting. One advantage of utilizing parametric surfaces is that a relatively low number of "knots" 1 and their associated control points 2 are needed to define a complex surface. The control points 2 are defined in cartesian coordinates (x, y, z) and describe the general shape of the surface, i.e. A mapping function 3 processes the control points and knots to produce a set of points which lie on the actual surface being rendered on a display.
Generally, the mapping function 3 is used to tessellate the mapped area. It should be noted that the majority of computer graphics systems tessellate this area into triangles, as noted by reference number 4 in Figure 1.
However, the tessellation process may yield any object, including surface points (e.g. pixels), which can be shaded one by one, or lighted by the graphics hardware. Shading and lighting refer to determi.ning the intensity, color values and the like of pixels to be drawn on a display and these terms will be used interchangeably herein. It should be noted that the present invention will be described with reference to tessellated triangles, however, any tessellated surface capable of process~ng by computer graphics shading hardware is contemplated by the present invention. As known in the art, the graphics display hardware processes the tessellated mesh (a.g. a triangular mesh) and performs transformation lighting, clipping, perspective projection, mapping to device coordinates and rendering by special hardware which Gouraud shades each triangle in a mesh. It should be noted that Gouraud shading is a means of performing color interpolation for pixels interior to a tessellated triangle, based upon the color values for the vertices of the triangle. Gouraud shading is referred to herein as an example of color interpolation, not as a : , :.

AT9-90-053 6 20~27~7 limitation, and other means of color interpolating tessellated surfaces are contemplated by the present invention. The previously described steps of displaying the surface as tessellated triangles is referred to as a "graphics pipeline." For the purposes of describing the present invention, it will be assumed that a sphere 5, as shown in Figure 1, is the surface to be trimmed.
Additionally, referring to Figure 1, a representative area (referred to herein as patch 15) between four of the knots 1 is shown and tessellated into quadrilateral areas 6 (referred to herein as strips), which are further tessellated into triangles 4. This two~dimensional tessellated area is then mapped into a tessellation of a sphere surface 5, as shown in Figure 1.
As previous:Ly discussed, lt may be desirable to trim a portion of a surface being rendered in order to enhance a scene being displayed. The present invention will further be described with reference to Figure 2 which illustrates sphere 5 having a trimmed surface portion removed therefrom.
It can be seen that a representative quadrilateral (strip) 6 has been taken from sphere 5 and will be used to describe the present invention. Strip 6 incl~ldes a plurality of tessellated triangles 4 which are further represented as triangles A, B, C, D, E and F. A trlmmlng curve 7 is shown which is defined by plurality of vertices 8. Trimming curve 7 forms the intersection between the portion of sphere 5 which is to be displayed and that portion which is to be trimmed away.
Parametric curves are u-tilized to trim parametric surfaces such that the parametric space in which the surface knots are defined is trimmed by one or more curves. In this manner, the equation for the trimming curve can be used to put holes into a surface or to describe a complex surface boundary. As seen in Figure 2, the portions of the triangular mesh which do not lie near the trimming curve 7 can be rendered as a normal triangular mesh, i.e. triangles A-E that are not intersected by trimming curve 7. However, that portion of the triangular mesh that is intersected by trimming curve 7 must be modified so that the resulting ~OS2767 rendered surface appears trimmed, i.e. triangle F of Figure 2 must be trimmed. Further, those triangles which are wholly included in the portion of the surface to be trimmed away can be discarded, or ignored by the present invention and do not undergo any further processing.
Figure 3 is an expanded view of strip 6 as contained in sphere 5 of Figure 2. It can be seen that triangles A-E are included and are not intersected by trimming curve 7.
However~ triangle F is also shown in Figure 3 and is intersected by trimming curve 7. It can be seen from Figure 3 how a conventional system would use software to triangulate triangle F into a plurality of subtriangles F
which can then be handled by the graphics pipeline, thereby resulting in additional processing time since more vertices must be inserted into a surface mesh, e.g. values for the vertices 8 along trimming curve 7 must be calculated.
Additionally, conventional trimming systems require the time consuming step of lighting each of the subtriangles F' contained within triangle F. This lighting is accomplished by taking the normal at the original vertices of triangle F, performing linear interpolation of the normals and performing lighting calculations for each verte~ of each of the subtriangles F . It can be seen t:hat a great deal of time and overhead is re~uired to calculate the color for each subtriangle contained in each of the tessellated triangles 4 which intersect trimming curve 7 (see Figures 1 and 2). Therefore, elimination of these lighting calculations will decrease processing time, thereby greatly increasing efficiency.
The present invention avoids the necessity of having to perform lighting, or shading calculations for each of the vertices 8 included in trimming curve 7. This task is accomplished by rendering without shading calculations, the additional vertices 8, introduced due to trimming curve 7, and one or two vertices of the original tessellation triangle 7, as a polygon into a l-bit per pixel bit plane (mask plane 20, Figure 8), with an exclusive OR (XOR) operation. The 3-D coordinates of the vertices 8 of trimming curve 7 may be computed by evaluating the surface at AT9-90-053 ~ 2~27~7 corresponding parameter values or by using their relative loca-tion within the tessellation triangle. This polygon, which has been rendered into the mask plane, constitutes a "trimming mask" and it is not required to calculate any color information for lighting purposes for the vertices 8 which are now stored in the mask plane 20.
Figure 4 shows a polygon 9 which constitutes a trimming mask. It can be seen that mask 9 is equivalent to triangle F of Figure 3, with the portion to be trimmed (region 29) deleted. Insertion points tvertices) 10,11 are calculated by interpolation methods and original triangle F is then modified by insertion of vertices 10 and 11 at points where trimming curve 7 intersects the original triangle edges.
Thus, original triangle F has become a polygon F" (which is equivalent to triangle with insertion vertices 10,11).
Hereinafter, the original tessellation triangle (which may be any object depending upon the type of graphics hardware) will be referred to as triangle F, whereas polygon F" refers to the polygon corresponding to triangle F and insertion points 10,11, mask 9 refers to the trimming mask and polygon F ' refers to the trimmed triangle F to be displayed. Mask 9 is of a configuration that can be processed by rendering.
Thus, lightin~ calculations are only required for the original vertices of the triangle. The rendering hardware then processes triangle F as a lighted, non-trimmed triangle.hardware capable of displaying complex surfaces.
Alternatively, for ensuring 3-D coordinate consistency the present invention performs lighting calcuations required for the original vertices of the triangle with the colors for insertion vertices 10, 11 being computed through linear interpolation from the colors of the original vertices of triangle F. Thus, the colors of insertion vertices 10, 11 are the same as if no trimming had occurred. The rendering hardware then processes polygon F" as a lighted, non-trimmed polygon consisting of a sequence of shaded triangles. Since the lighting values of the five vertices of polygon F"
(pixels 10-14, Figure 5) are known, polygon F" may now be rendered by rendering hardware 30 (Fig. 8). The type o~
triangulation required by the present invention is :, :. . :

AT9-90-053 9 2 ~

implemented in the rendering hardware and is trivial when compared to that as shown in Figure 3. Standard Gouraud shading techniques, or the like are then used by the hardware to interpolate colors for each triangle within mask 9.
In order -to create the trimming mask polygon 9, an exclusive OR update of the mask plane is performed with the vertices of mask polygon 9. In this manner, only those bits in the mask plane 20 corresponding to the interior of the mask 9 are turned "on" (set to logical 1). The remaining bits of the mask plane stay at logical 0, since the entire bit plane was previously reset (all bits set to logical 0).
In addition to performing color interpolation, the triangle rendering hardware also compares, or checks each pixel of the polygon F" in the trimming mask and determines if the bits set to logical 1 (mask 9) in prior to rendering the pixel into the frame buffer. Further, the pixel in the display frame buffer is not updated unless the corresponding bits in the mask plane are set to logical 1.
Referring to Figure 7, an examp].e of the comparison which occurs between the mask plane and the original triangle will be described. Mask plane 20, previously discussed, is a 1-bit plane~ each bit corresponding to a pixel on a display. Therefore, M x N bits are present, with M and N corresponding to as few as 400 and as many as 1024 pixels. Thus, there is a one to one correlation between the b.its in mask plane 20~ the frame buffer 22 (see Fig. 7) and the pixels on display 36. Fo.r example, those bits corresponding to pixels within trimming mask polygon 9 are turned on i.e. set to logical 1, due to the XOR operation which rendered the mask into the bit plane 20. A11 remaining bits of mask plane 20, as noted by reference 26 remain off, i.e. set at logical 0. The rendering hardware 30 (Figure 8) then compares each pixel associated with the polygon to be drawn (polygon F") and each bit of mask plane 20, associated with trimming mask 9. Each pixel associated with polygon F" that corresponds to a bit set to logical 1 in trimming mask 9 is randered into the frame buffer, and thereby appears on display 36 (Fig. 8). In this manner, AT9-90 053 10 2~2767 only those pixels havi.ng a direct correlation to trimming mask 9 of mask plane 20 are rendered onto display 36. Once each pixel corresponding to trimming mask 9 is drawn then each bit of mask plane 20 corresponding to trimming mask 9 is reset (set to logical 0).
Figure 5 shows polygon F" which has vertices 12, 13, 14 (corresponding to triangle F) each having color values of 0.8, 0.3, 0.1, respectively. Additionally, insertion vertices 10 and 11 are shown wlth interpolated color values of 0.45 and 0.22, respectively. As described above a trimming mask 9 is then rendered into mask plane 20 with an exclusive OR operation. Mask plane 20 is a single bit plane and is incapable of storing color information. Rendering hardware 30 then performs Gouraud shading on polygon F".
Therefore, polygon F'~' is displayed which has colors based upon the original colors of triangle F, as interpolated by standard shading techniques. Polygon F''~ represents the surface corresponding to trimming mask, but which includes the additional lighting (color) in:Eormation needed to actually display a trimmed surface. Thus, it can be seen from Figure 5 how the transformation from an originally tessellated triangle F (Fig. 4) into polygon F" (triangle F
plus insertions vertices 10,11); trimming mas}c 9 and further into a fully rendered, colored and displayed polygon F''' occurs by implementation of the present invention.
Another embodiment of the present invention simplifies trimming operations when multip].e trimming curves are present and intersect a single tessellated triangle. The presen-t invention provides for mu].tiple masks produced by multiple trimming curves to be rendered into mask plane 20 using an exclusive OR mode so that the resulting mask has the desired trimming effect. The present invention eliminates the need, inharent in traditional trimming methods, which requires a complex software algorithm to manage and keep track of all introduced vertices that are intersections of the trimming curves in ordar to conventionally triangulate triangle F, as shown in Figure 3.
Referrin~ to Figure 6, tessellated triangle F is shown, and intersects with trimming curves 7A and 7B, which ' 2~27~7 intersect triangle F at points 10A, llA, 10B and llB. In a manner as previously described, trimming mask 9A is obtained in the same way as the mask polygon 9 shown in Figures 4 and 5. The present invention then obtains an additional trimming mask 9B which is that portion of original triangle F less the region to be trimmed on the opposite side of trimming curve 7A from the hypotenuse of triangle F. An exclusive OR operation is then performed between the bits of trimming mask 9A and trimming mask 9B. The results of this exclusive OR operation is a`third trimming mask 9C which is a polygon having vertices 10A, 10B, llA, llB all of which intersect an edge of original triangle F. Therefore, it can be seen how an exclusive OR operation between two, or more trimming masks will render an additional trimming mask into mask plane 20 such -that an interior portion of a tessellated triangle may be trimmed. For convenience, the previous example uses the case where two trimming curves intersect a tessellated triangle, however any number of intersecting trimming curves may be processed by the system and method of the present invention, as will be described in conjunction with the flowchart of Figures 10A and 10B.
Figure 9 illustrates the comparison which occurs between the mask 9C within mask plane 20 and triangle F
which is similar to the comparison described with reference to Figure 7. That is, the rendering hardware compares the pixels of triangle F with the bits rendered into mask plane 20, i.e. those corresponding to mask 9C. Since, the bits associated with mask 9C have been set to logical 1, due to the X0R update, only pixels corresponding to mask 9C will be displayed, as previously described. Therefore, it can be seen how the present invention masks regions 28 and 29 of triangle F, as shown in Figure 9.
Figure 8 is a representative computer graphics system including the hardware which may be used to implement the present invention. A surface description for the scene to be rendered is input into a central processing unit (CPU) 32 which controls and outputs the surface description in device coordinates to the triangle rendering hardware 30, which has been previously discussed. Mask plane 20 and frame buffer AT9-90-053 12 2 ~ ~ 2 7 ~ 7 22 are shown with the output of frame buffer 22 connected to a digital to analog convertor (DAC) 34 which in turns outputs the signal to a display 36, such as a cathode ray tube (CRT), or the like. It should be noted that typical computer graphics systems include a mask plane 20 such that the present invention does not require any additional hardware. Mask plane 20 is normally included in a computer graphics system and used for a variety of rendering techniques which are independent of trimming operations such as processing polygons having concave or self intersecting edges. Additionally, the computer graphics system of the present invention, which is capable of performing trimming operations, typically includes at least four mask planes 20.
Consequently, use of one these mask planes to trim surfaces will not impose any additional requirements on users of these systems.
F.igures lOA and lOB represent a flowchart Which illustrates the process utilized by the present invention to implement trimming of surfaces. In particular, referring to Figure lOA, step 1 initializes the system by calculating and tessellating all trimming curves for the scene to be displayed. Additionally, at step 1 the! values representing the trimming curves are stored in memory and the mask plane is cleared, i.e. set to logical 0. The present invention, at step 2, then considers the first patch to be processed. A patch represents a two-dimensional area in parametric coordinates (see Figs. 1-3). At step 3 the present invention determines if there are additional patches remaining to be processed. It will be seen that step 3 is utilized by the present invention to end the process when the trimmed surface has been displayed. If there are no remaining patches in the trimmed surface to be displayed, then the process ends at step 4.
Next, step 5 tessellates the patch being processed.
This includes computing the 3-D tessellation of the patch into quadrilaterals or strips (reference numeral 6, Figs.
1-3). Step 6 then considers the first strip contained in the patch while step 7 determines whether there are strips in the patch remaining to be processed. Again, step 7 is AT9-90-053 13 2 0 ~ 2 7 ~ 7 utilized to end a processing loop contained in the flowchart of the present invention. If no strips are remaining to be processed then step 8 increments the methocl such that the next patch in the surface will be considered. The present invention then returns to step 3 which determines if there are patches remaining in the surface. If so, the subsequent patch is tessellated at step 5, and if no patches remain in the surface the method ends at step ~.
If it is determined at step 7 there are additional strips in the patch, then the present invention proceeds to step 9 which resets a mesh of tessellated triangles. Since this is an initial pass through the flowchart there have been no previously tessellated triangles. Therefore, step 9 merely initializes any required memory, counters or the like which are needed to maintain a mesh of tessellated triangles, as shown in Figures 1-3. After resetting the mesh, the present invention begins processing the next strip within the patch, under consideration, by reading the first two encountered vertices (step 10). Referring to Figure 2, it can be seen that strip 6 includes triangle F which has vertices 12, 13, 14. For example, the present invention, at step 10 may initially read vertices 12 and 14 and maintain the coordinates of these vertices :In memory. Step 10 essentially performs an initialization function by storing two vertices of a triangle which is being created in a strip. Therefore, with two vertices known it can be seen how reading a third vertex during subsequent steps within the process of the present invention will yield a triangle each time another vertex is read.
At step ll it is determined whether the end of the strip has been reached, i.e. if the entire strip has been processed. If so~ the present invention continues to step 12 which determines if a triangular mesh does exist and if so the mesh is drawn at step 13. If it is determined at step 12 that the mesh does not exist then the process returns to step 7 to cletermine if there ar~ strips remaining in the patch to be processed. Subsequent to drawing the mesh in step 13 the present invention also returns to step 7 AT9-90-053 14 2~27~7 to process any s-trips remaining in the patch b~ing considered.
Step 14 then begins reading the next vertex point within -the strip being processed. As previously noted~ each time a subsequent vertex is read, a new tessellated triangle will be formed. For example, referring to Figure 2, if vertices 12 and 14 of strip 6 were read and stored by the present invention at step 10, then by reading vertex 13 at step 14 triangle F will be formed. Similarly, during subsequent iterations through the flowchart, triangle E is formed when vertex 16 is read and triangle D is formed by reading vertex 17. Therefore, it can be seen that by reading a single vertex a tessellated triangle will be formed. In this manner, a triangular mesh is built by the present invention.
Step 15 then determines if any trimming curves intersect the mesh triangle which is currently being considered. It can be seen in Figure 2 that once vertex 13 is read at step 14, step 15 will then determine whether any trimming curves intersect the mesh triangle. In the case of triangle F, step 15 will determine that trimming curve 7 does intersect this triangle. If at step 15 it is determined that the mesh triangle does not intersect with a trimming curve then step 16 determines whether the vertex is interior to the outermost trimming curve. Step 16 ensures that the mesh triangle being considered is not outside of a trimming curve and included in that portion of the surface being trimmed. If this non-intersecting mesh triangle is interior to the trim curve then this triangle is added to the triangular mesh at step 17. Subsequen-t to step 17, and if the vertex is not interior to the trim curve (step 16), the process returns to step 11 to determine if the strip has been processed.
If at step 15 it was determined that the trimming curve intersects the mesh triangle currently being considered then step 18 determines if the mesh does in fact exist and if so, step ~9 renders the mesh to the frame buffer. Steps 18 and 19 function to place any portion of the mesh which has previously been built into the frame buffer. Step 19 also - : . - ; :

AT9-90-053 15 2~276~

resets the mesh in the same manner as previously discussed in conjunction with step 9. Subsequent to steps 18 and 19, step 20 sets a variable N equal to one. N is the number of trimming curves processed and will be subsequently used to count the number of trimming masks. Step 21 determines if a trimming curve intersects the tessellated triangle being considered. It should be noted that step 15 determines whether any of the trimming curves which were stored in step 1 intersect any triangle in the mesh and whether this triangle is interior to the outer most trimming curve (step 16). In this manner, it can be determined whether the triangle is part of the surface to be displayed or the surface to be trimmed. If at step 21 it is determined that a trimming curve intersects the tessellated triangle then step 22 builds a trimming mask, which is a polygon as previously discussed, by calculating the intersection points between the trimming curve and the original triangle (reference numerals 10, 11, Figure 7). Step 23 then inserts these calculated points into the tessellated triangle and step 24 renders the trimming mask polygon iIltO the mask plane by implementing an exclusive OR operation. This exclusive OR operation functions to set the bits within the mask plane which correspond to the trimming mask e~ual to a logical 1. Thus, it can be seen that a trimming mask is now resident in the mask plane (see Figure 7). Step 25 then increments N, which is equal to the number of trimming curves, by setting N = N~
The present invention, at step 26, then determines whether N is less than the total number of trimming curves present. If N is less than the total of trimming curves then it can be seen that trimming curves remain to be processed. Therefore, the present invention returns to step 21 which once again determines if the trimming curves intersect the tessellated triangle, as previously discussed.
If so, steps 22-25 are repeated. However, if the next trimming curve does not intersect the tessellated triangle, steps 22-24 are bypassed and the present invention continues to step 25 which increments N by a factor of 1. Step 26 then determines whether N is still less than the total :, AT9-90-()53 16 20~2~67 number of curves. I-t can be seen that step 26 will return the process at step 21 until N is equal to the total number of trimming curves present. In thls manner, the present invention ensures that each trimming curve is considered for each tessellated triangle being processed.
Once it is determined that N is not less than the total number of curves, then step 27 calculates the lighting effects on the tessellated triangle. Step 28 then rendars the tessellated triangle to the frame buffer while comparing the trimming mask in the mask plane to the triangle such that only those bits which correspond to the mask (those that have been set equal to 1) are rendered into the frame buffer. Therefore, the polygon which is now rendered into the frame buffer is one that is capable of being processed by the rendering hardware. Thus, the present invention does not require that each individual vertex of the trimming curve be calculated, but allows l.ighting of the polygon by utilizing vertices which lie on the t:essellated triangle, i.e. non-trimmed ver-tices and points along the edge. At step 29, the mask plane is then cleared (set to logical 0) since the surface with the trimmed portion deleted has already been rendered to the frame buffer. Subsequent to step 29 the present invention returns to step 11. It can be seen that once the last trimmed triangle has been processed at step 28, the mask plane is cleared at step 29. The method of the present invention ends because eventually the strip being processed will end at step 11~ there will be no more strips in the patch to be processed at step 7 and no more patches in the surface to be processed at step 3, thereby causing the process to end at step 4.
To summarize, a preferred embodiment of the present invention which renders portions of a surface intersected by one or more trimming curves includes: (l) providing triangles forming a polygon between a verte~, or two vertices of the original tessellation triangle and successive vertices 8 of each trimming curve, to triangle rendering hardware 30; (2) updating mask plane 20, by triangle rendering hardware 30, using an exclusive OR
operation; (3) sending the coordinates, color values and AT9-90--053 17 20~27g7 lighting intensities of the vertices of a tessellated triangle which forms the untrimmed polygon, and insertion vertices, to the triangle rendering hardware 30; (4) updating frame buffer 22 for pixels corresponding to bits in the mask plane 20 which are set to logical 1; and (5) resetting the bits of mask plane 20 to logical 0, after each untrimmed polygon is processed. In order to process triangles which are not intersected by trimming curves (triangles A-E, Figure 3) the present invention provides for the coordinates, color values and light intensities of the vertices of the triangle to be sent from CPU 11 to triangle rendering hardware 30. The triangle rendering hardware then updates frame buffer 22 for all pixels interior to the triangle, i.e. the triangle is Gouraud shaded, and ignores mask plane 20.
Although certain preferred embodiments have been shown and described, it should be understood that many changes and modifications may be made therein without departing from the scope of the appended claims. A preferred embodiment of the present invention is implemented by modifying the microcode which is resident in a memory, such a~: a read only memory (ROM) on the graphics adapter card. However, any means for providing the functionality described herein, such as modifications to high level software or hard wired circuits, is contemplated by the present invention. For example, an array or table of values could be substituted for the mask plane, and a software algorithm could be used to emulate the rendering hardware.

Claims (27)

1. A method of displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve, said method comprising the steps of:

tessellating the surface to be trimmed into a plurality of polygons;

determining whether said trimming curves intersect any of said polygons;

creating at least one mask, based upon the intersection of each of said trimming curves with said polygon; and comparing said polygon with said mask.
2. A method according to claim 1 wherein said method further comprises the step of providing a bitplane for storing said mask.
3. A method according to claim 2 wherein said step of creating comprises the step of performing an exclusive OR
operation between said masks.
4. A method according to claim 3 wherein said exclusive OR
operation comprises the step of setting the bits of said bitplane which correspond to said mask to a logical 1.
5. A method according to claim 4 wherein said step of comparing comprises the step of determining whether a matched condition exists between the bits of said bitplane and the polygon.
6. A method according to claim 5 wherein said method of trimming further comprises the step of displaying only that portion of said polygon corresponding to bits stored within said bitplane which are set to a logical 1.
7. A method according to claim 6 wherein said method of trimming further comprises the step of setting each bit of said bitplane to a logical zero subsequent to the display of said polygon on said computer graphics system.
8. A method according to claim 7 wherein said step of tessellating comprises calculating the coordinates of points and surface normals for said points on the surface to be trimmed.
9. A method of displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve, said method comprising the steps of:

storing a description of at least one trimming curve which defines the portion of the surface to be trimmed;

tessellating the surface to be trimmed into a plurality of polygons;

determining whether said said trimming curve intersects any of said polygons;

creating at least one mask which corresponds to said intersected polygon less the portion to be trimmed;

comparing said polygon with said mask; and displaying a portion of said polygon corresponding to said mask.
10. A program product for displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve, comprising:

means for tessellating the surface to be trimmed into a plurality of polygons;

means for determining whether said trimming curves intersect any of said polygons;

means for creating at least one mask based upon the intersection of each of said trimming curves with said polygon; and means for comparing said polygon with said mask.
11. A program product according to claim 10 wherein said program for trimming further comprises means for providing a bitplane for storing said mask.
12. A program product according to claim 11 wherein said means for creating comprises means for performing an exclusive OR operation between said masks.
13. A program product according to claim 12 wherein said exclusive OR operation comprises setting the bits of said bitplane which correspond to said mask to a logical 1.
14. A program product according to claim 13 wherein said means for comparing comprises means for determining whether a matched condition exists between the bits of said bitplane and the polygon.
15. A program product according to claim 14 wherein said program for trimming further comprises means for displaying only that portion of said polygon corresponding to bits stored within said bitplane which are set to a logical 1.
16. A program product according to claim 15 wherein said program for trimming further comprises means for setting each bit of said bitplane to a logical zero subsequent to the display of said polygon on said computer graphics system.
17. A program product according to claim 16 wherein said means for tessellating comprises means for calculating the coordinates of points and surface normals for said points on the surface to be trimmed.
18. A program product for displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve comprising:

means for storing a description of at least one trimming curve which defines the portion of the surface to be trimmed;

means for tessellating the surface to be trimmed into a plurality of polygons;

means for determining whether said said trimming curves intersect any of said polygons;

means for creating a mask which corresponds to said intersected polygon less the portion to be trimmed;

means for comparing said polygon with said mask; and means for displaying a portion of said polygon corresponding to said mask.
19. A system for displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve, comprising:

means for tessellating the surface to be trimmed into a plurality of polygons;

means for determining whether said trimming curves intersect said polygons;

means for creating at least one mask based upon the intersection of each of said trimming curves with said polygons; and means for comparing said polygon with said mask.
20. A system according to claim 19 wherein said system for trimming further comprises means for providing a bitplane for storing said mask.
21. A system according to claim 20 wherein said means for creating comprises means for performing an exclusive OR
operation between said masks.
22. A system according to claim 21 wherein said exclusive OR operation comprises setting the bits of said bitplane which correspond to said mask to a logical 1.
23. A system according to claim 22 wherein said means for comparing comprises means for determining whether a matched condition exists between the bits of said bitplane and the polygon.
24. A system according to claim 23 wherein said system for trimming further comprises means for displaying only that portion of said polygon corresponding to bits stored within said bitplane which are set to a logical 1.
25. A system according to claim 24 wherein said system for trimming further comprises means for setting each bit of said bitplane to a logical zero subsequent to the display of said polygon on said computer graphics system.
26. A system according to claim 25 wherein said means for tessellating comprises means for calculating the coordinates of points and surface normals for said points on the surface to be trimmed.
27. A system for displaying, on a computer graphics system, a trimmed surface defined by a surface description and at least one trimming curve, comprising:

means for storing a description of at least one trimming curve which defines the portion of the surface to be trimmed;

means for tessellating the surface to be trimmed into a plurality of polygons;

means for determining whether said said trimming curves intersect any of said polygons;

means for creating a mask which corresponds to said intersected polygon less the portion to be trimmed;

means for comparing said polygon with said mask; and means for displaying a portion of said polygon corresponding to said mask.
CA002052767A 1990-11-15 1991-10-04 System and method for displaying trimmed surfaces using bitplane masking Abandoned CA2052767A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/614,352 US5283860A (en) 1990-11-15 1990-11-15 System and method for displaying trimmed surfaces using bitplane masking
US614,352 1990-11-15

Publications (1)

Publication Number Publication Date
CA2052767A1 true CA2052767A1 (en) 1992-05-16

Family

ID=24460883

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002052767A Abandoned CA2052767A1 (en) 1990-11-15 1991-10-04 System and method for displaying trimmed surfaces using bitplane masking

Country Status (4)

Country Link
US (1) US5283860A (en)
EP (1) EP0486173A3 (en)
JP (1) JPH07120432B2 (en)
CA (1) CA2052767A1 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US5555356A (en) * 1992-10-29 1996-09-10 International Business Machines Corporation System and method for generating a trimmed parametric surface for display on a graphic display device
US5594848A (en) * 1993-02-16 1997-01-14 Compaq Computer Corporation Method and apparatus for efficiently determining line segments within a window using iterative halving
US6522340B1 (en) 1996-11-20 2003-02-18 International Business Machines Corporation Creating real-world objects
US5920325A (en) * 1996-11-20 1999-07-06 International Business Machines Corporation Prioritization of background display during animation
US6054985A (en) * 1997-01-27 2000-04-25 International Business Machines Corporation Data processing system and method for simulating compound objects
US7616198B2 (en) * 1998-02-20 2009-11-10 Mental Images Gmbh System and computer-implemented method for modeling the three-dimensional shape of an object by shading of a two-dimensional image of the object
US6173271B1 (en) 1997-11-26 2001-01-09 California Institute Of Technology Television advertising automated billing system
US6285375B1 (en) 1999-02-05 2001-09-04 International Business Machines Corporation Algorithm to transform generalized polygons to trapezoids
DE19915308A1 (en) * 1999-04-03 2000-10-12 Daimler Chrysler Ag Two-dimensional display of objects on screen by interpolating among pixel values determined for corner points of polygonal surface elements
US6683620B1 (en) * 1999-04-21 2004-01-27 Autodesk, Inc. Relational modeling of trimmed nurbs surfaces
US6920415B1 (en) * 2000-04-12 2005-07-19 California Institute Of Technology Method of trimming a representation of an object surface comprising a mesh of tessellated polygons and related system
US6624811B1 (en) * 2000-08-31 2003-09-23 Nvidia Corporation System, method and article of manufacture for decomposing surfaces using guard curves and reversed stitching
US6693558B2 (en) * 2001-06-18 2004-02-17 Innovative Solutions & Support, Inc. Aircraft flat panel display system
US6700580B2 (en) 2002-03-01 2004-03-02 Hewlett-Packard Development Company, L.P. System and method utilizing multiple pipelines to render graphical data
US7265753B1 (en) * 2002-12-09 2007-09-04 Bentley Systems, Inc. Particle tracing with on-demand meshing
US7446777B2 (en) * 2003-09-26 2008-11-04 Rensselaer Polytechnic Institute System and method of computing and displaying property-encoded surface translator descriptors
US20050275760A1 (en) * 2004-03-02 2005-12-15 Nvidia Corporation Modifying a rasterized surface, such as by trimming
US7554538B2 (en) * 2004-04-02 2009-06-30 Nvidia Corporation Video processing, such as for hidden surface reduction or removal
US7868891B2 (en) * 2004-09-16 2011-01-11 Nvidia Corporation Load balancing
JP4255449B2 (en) * 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント Drawing processing apparatus, texture processing apparatus, and tessellation method
TWI307600B (en) 2006-01-26 2009-03-11 Asustek Comp Inc Image processing method for display device
US7995073B1 (en) * 2006-07-12 2011-08-09 Autodesk, Inc. System and method for anti-aliasing compound shape vector graphics
US8633927B2 (en) * 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change
US8269770B1 (en) * 2008-02-29 2012-09-18 Adobe Systems Incorporated Tessellation of trimmed parametric surfaces by walking the surface
JP5642804B2 (en) 2010-12-02 2014-12-17 デジタルプロセス株式会社 Display processing method and apparatus
AU2013267004A1 (en) * 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
JPH0766317B2 (en) * 1986-04-09 1995-07-19 株式会社日立製作所 Display control method
US4835712A (en) * 1986-04-14 1989-05-30 Pixar Methods and apparatus for imaging volume data with shading
US4821214A (en) * 1986-04-17 1989-04-11 Brigham Young University Computer graphics method for changing the shape of a geometric model using free-form deformation
US4855934A (en) * 1986-10-03 1989-08-08 Evans & Sutherland Computer Corporation System for texturing computer graphics images
US4930092A (en) * 1987-01-20 1990-05-29 Auto-Trol Technology Corporation Polygon display apparatus and method
US4999789A (en) * 1987-02-05 1991-03-12 Hewlett-Packard Co. Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
JPS63271578A (en) * 1987-04-30 1988-11-09 Hitachi Ltd Set arithmetic unit for area
JP2747822B2 (en) * 1987-09-18 1998-05-06 富士通株式会社 Graphic display device
US4912659A (en) * 1987-10-30 1990-03-27 International Business Machines Corporation Parallel surface processing system for graphics display
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US4908716A (en) * 1987-12-08 1990-03-13 Ricoh Company, Ltd. Image processing apparatus
JPH02171972A (en) * 1988-12-26 1990-07-03 Hitachi Software Eng Co Ltd Hidden line erasing method for graphic processor

Also Published As

Publication number Publication date
EP0486173A3 (en) 1993-07-21
EP0486173A2 (en) 1992-05-20
JPH04289984A (en) 1992-10-14
US5283860A (en) 1994-02-01
JPH07120432B2 (en) 1995-12-20

Similar Documents

Publication Publication Date Title
US5283860A (en) System and method for displaying trimmed surfaces using bitplane masking
US5615322A (en) Image synthesizing system for producing three-dimensional images
US5357599A (en) Method and apparatus for rendering polygons
US5214753A (en) Video system with parallel attribute interpolations
US6226005B1 (en) Method and system for determining and/or using illumination maps in rendering images
Carlbom et al. A hierarchical data structure for representing the spatial decomposition of 3D objects
US5488684A (en) Method and apparatus for rendering trimmed parametric surfaces
US7532213B2 (en) Bicubic surface real time tesselation unit
EP0723689B1 (en) Direct rendering of textured height fields
US6600485B1 (en) Polygon data generation method and image display apparatus using same
US5808620A (en) System and method for displaying shadows by dividing surfaces by occlusion into umbra penumbra, and illuminated regions from discontinuity edges and generating mesh
EP0240557B1 (en) Computer graphics, parametric patch parallel subdivision processor
US6704018B1 (en) Graphic computing apparatus
US5877769A (en) Image processing apparatus and method
JPH0620063A (en) Method and apparatus for generation of texture map perspective view
JPH11506846A (en) Method and apparatus for efficient digital modeling and texture mapping
EP0319165A2 (en) System for using barycentric coordinates as for polygon interpolation
EP0856815B1 (en) Method and system for determining and/or using illumination maps in rendering images
JP2000182076A (en) Data processor, data processing method and provision medium
US6008815A (en) Method for adaptive polygon rendering with fast operation speed of interpolation
JP2763481B2 (en) Image synthesizing apparatus and image synthesizing method
JP2973413B2 (en) Illuminance calculation method and display device for computer graphics
JPH03271877A (en) Graphic display device
JPS638882A (en) Shade displaying method
JP2600670B2 (en) Free-form surface creation method

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued