Method for selecting silhouette and visible edges in wire frame images in a computer graphics display system
First Claim
1. A method for producing a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in real time with hidden lines eliminated or displayed in a line style different from that of visible lines in a graphics display system which comprises a depth buffer holding a depth value for any given pixel, a frame buffer which stores a pixel color value for each pixel for display corresponding to each said depth value, and a display screen, each buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen view point, wherein a first location for display is set in relation to a chosen view point, said method comprising the steps of:
- (a) masking said frame buffer to prevent any color values from being written thereto;
(b) scanconverting the faces of the object to obtain a depth value for each pixel covered by a projection of the object;
(c) during said scanconverting step, performing a depth buffer test wherein the depth buffer is updated with the obtained depth value for a given pixel storage location only when the obtained depth value is smaller than a depth value previously stored at said given pixel storage location in the depth buffer;
(d) unmasking said frame buffer;
(e) altering a location at which display will take place from said first location to a second location that is a distance in front of visible faces of the object at said first location in relation to the chosen view point;
(f) performing said depth buffer test and updating the frame buffer with color values for all tessellation edges of the object at said distance in front of visible faces of the object in relation to said chosen viewpoint; and
(g) displaying the tessellation edges of the object on the display screen.
1 Assignment
0 Petitions
Accused Products
Abstract
A first method for producing wire-frame images of tessellated objects in real time utilizing existing hardware capabilities removes hidden lines by displaying the frame slightly away from the actual edges and toward the viewing direction to ensure the portion of the frame intended to be visible is not obscured by the visible faces and that the hidden portion of the frame is obscured by the visible faces. A second method allows for visible and hidden lines to be shown in unique line styles. This is done by first displaying all lines in the hidden line style while suppressing the faces. Then, the first method is performed and the lines that are visible lines are overwritten in another line style. A third method shows only visible silhouette and intersection edges. The visible silhouette edges are obtained by displaying the frame in thick lines behind the visible faces. Then, intersection edges are displayed in front of the faces so that only visible ones can be seen. A fourth method builds on the third by also showing hidden silhouette and intersection edges in a unique line style. Each object'"'"'s silhouette edges are first obtained in hidden line style as if alone. Then, on all objects taken as one, all intersection edges are displayed and the third technique is performed in visible line style. The methods provide real time performance and can be implemented using standard graphics hardware. In addition, no edge-face adjacency information of objects is needed.
52 Citations
22 Claims
-
1. A method for producing a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in real time with hidden lines eliminated or displayed in a line style different from that of visible lines in a graphics display system which comprises a depth buffer holding a depth value for any given pixel, a frame buffer which stores a pixel color value for each pixel for display corresponding to each said depth value, and a display screen, each buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen view point, wherein a first location for display is set in relation to a chosen view point, said method comprising the steps of:
-
(a) masking said frame buffer to prevent any color values from being written thereto; (b) scanconverting the faces of the object to obtain a depth value for each pixel covered by a projection of the object; (c) during said scanconverting step, performing a depth buffer test wherein the depth buffer is updated with the obtained depth value for a given pixel storage location only when the obtained depth value is smaller than a depth value previously stored at said given pixel storage location in the depth buffer; (d) unmasking said frame buffer; (e) altering a location at which display will take place from said first location to a second location that is a distance in front of visible faces of the object at said first location in relation to the chosen view point; (f) performing said depth buffer test and updating the frame buffer with color values for all tessellation edges of the object at said distance in front of visible faces of the object in relation to said chosen viewpoint; and (g) displaying the tessellation edges of the object on the display screen. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for producing a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in real time showing only visible silhouette and intersection edges in a graphics display system which comprises a depth buffer holding a depth value for any given pixel, a frame buffer which stores a pixel color value for each pixel for display corresponding to each said depth value, and a display screen, each buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen view point, wherein a first location for display is set in relation to a chosen view point, said method comprising the steps of:
-
(a) masking said frame buffer; (b) scanconverting the faces of the object to obtain a depth value for each pixel covered by a projection of the object; (c) during the scanconversion of step (b), performing a depth buffer test wherein the depth buffer is updated with the obtained depth value for a given pixel storage location only when the obtained depth value is smaller than a depth value previously stored at said appropriate pixel storage location in the depth buffer; (d) unmasking said frame buffer; (e) altering a location at which display will take place from said first location to a second location that is a distance behind visible faces of the object at said first location in relation to the chosen view point; (f) performing said depth buffer test and updating the frame buffer with color values for all tessellation edges of the object at said distance back from visible faces of the object in relation to the viewpoint; (g) displaying the tessellation edges of the object on the display screen in a first line thickness; (h) altering the location at which display will take place from said second location to a third location that is a distance in front of the visible faces of the object at said first location in relation to the view point; (i) performing said depth buffer test and updating the frame buffer with color values for all intersection edges of the object at said third location; and (j) displaying said visible silhouette and intersection edges in a second line thickness thicker than said first line thickness. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for producing a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in real time showing visible silhouette and intersection edges in one line style and hidden silhouette and intersection edges in a different line style in a graphics display system which comprises a depth buffer holding a depth value for any given pixel, a frame buffer which stores a pixel color value for each pixel for display corresponding to each said depth value, and a display screen, each buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen view point, wherein a first location for display is set in relation to a chosen view point, said method comprising the steps of:
-
(a) choosing a line style desired for hidden lines; (b) masking said frame buffer; (c) scanconverting the faces of the object to obtain a depth value for each pixel covered by a projection of the object; (d) during said scanconverting of step (c), performing a depth buffer test wherein the depth buffer is updated with the obtained depth value for a given pixel storage location only when the obtained depth value is smaller than a depth value previously stored at said pixel storage location in the depth buffer; (e) unmasking said frame buffer; (f) altering a location at which display will take place from said first location to a second location that is a distance behind visible faces of the object at said first location in relation to the chosen view point; (g) performing said depth buffer test and updating the frame buffer with color values for all tessellation edges of the object at said second location; (h) displaying the tessellation edges of the object in said hidden line style on the display screen in a first line thickness; (i) setting all storage locations in the depth buffer to values corresponding to a farthest position possible in relation to the viewpoint; (j) altering the location at which display will take place to said first location; (k) performing said depth buffer test and updating the frame buffer with color values for all intersection edges of the object; (l) displaying the intersection edges of the object in said hidden line style on the display screen in a second line thickness thinner than said first line thickness; (m) choosing a line style desired for visible lines that is different from that chosen for hidden lines; (n) masking said frame buffer; (o) scanconverting the faces of the object to obtain a depth value for each pixel covered by the projection of the object; (p) during the scanconversion of step (o), performing said depth buffer test; (q) unmasking said frame buffer; (r) altering the location for display to said second location; (s) performing said depth buffer test and updating the frame buffer with color values for all tessellation edges of the object at said distance back from the visible faces of the object in relation to the viewpoint; (t) displaying the tessellation edges of the object in said visible line style on the display screen in said first line thickness; (u) altering the location for display to a third location that is a distance in front of the visible faces of the object at said first location in relation to the view point; (v) performing said depth buffer test and updating the frame buffer with color values for all intersection edges of the object at said distance in front of the visible faces of the object in relation to the viewpoint; and (w) displaying the intersection edges of the object in said visible line style on the display screen in said second line thickness. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method for distinguishing between visible and hidden lines in a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in a graphics display system comprising a display screen, and a depth buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen view point, wherein a first location for display is set in relation to a particular view point, said method comprising the steps of:
-
obtaining a depth value for each pixel covered by a projection of the object; replacing a depth value previously stored in a given pixel location in the depth buffer with the depth value obtained in said step of obtaining if the depth value obtained is less than the depth value previously stored; altering a position at which display will take place from said first location to a second location which is closer to the viewpoint by subtracting a distance from depth translation coordinates in a viewing matrix within said graphics display system, wherein said distance is determined by an epsilon-based transformation operating on depth values of a farthest and closest vertex of the object in relation to the view point and a number of bits allotted for each pixel in the depth buffer; and displaying tessellation lines of the object at the altered position.
-
-
22. A method for distinguishing silhouette edges from other tessellation edges that are not silhouette edges in a two-dimensional wire-frame graphics display of a tessellated three-dimensional object in a graphics display system comprising a display screen, and a depth buffer containing a storage location for each pixel on said display screen, said display being produced from surface data representing vertices of a set of polygons defining faces of the three-dimensional object, said surface data being transformed into data representing a two-dimensional projection of the object onto a view plane, said graphics display system allowing for a plurality of object locations at different distances from a chosen viewpoint, wherein a first location for display is set in relation to a particular view point, said method comprising the steps of:
-
obtaining a depth value for each pixel covered by a projection of the object; replacing a depth value previously stored in a given pixel location in the depth buffer with the depth value obtained in said step of obtaining if the depth value obtained is less than the depth value previously stored; altering a line thickness that the system will use for display to obtain a thicker line than that normally used in the display system; altering a position at which display will take place from said first location to a second location which is farther than the first location from the viewpoint; and performing said step of replacing again and displaying all pixels relating to the object with a replaced depth value.
-
Specification