Fast alpha transparency rendering method
First Claim
1. A method for rendering opaque objects and transparent objects in at least one portion of a scene for graphic display in a computer system, said method comprising the steps of:
- (a) rasterizing primitives of said opaque objects and sending depth values for pixels of said rasterized primitives to a z-buffer and sending image data for said pixels of said rasterized primitives to a frame buffer in said computer system;
(b) processing primitives of said transparent objects, said processing comprising the steps of(b1) disabling writes to said z-buffer,(b2) culling all front-facing primitives of said transparent objects,(b3) rasterizing all back-facing primitives of said transparent objects to yield back-facing primitive pixels, and culling all said back-facing primitive pixels when depth values of said back-facing primitive pixels indicate that said back-facing primitive pixels are located behind at least one of said opaque objects, and(b4) alpha blending image data of remaining back-facing primitives with said image data in said frame buffer, and sending said alpha blended image data of said remaining back-facing primitives to said frame buffer, and(c) processing said primitives of said transparent objects, said processing comprising the steps of(c1) disabling writes to said z-buffer,(c2) culling said back-facing primitives of said transparent objects,(c3) rasterizing all front-facing primitives of said transparent objects to yield front-facing primitive pixels, and culling all said front-facing primitive pixels when depth values of said front-facing primitive pixels indicate that said front-facing primitive pixels are located behind at least one of said opaque objects, and(c4) alpha blending image data of remaining front-facing primitives with said image data in said frame buffer, and sending said alpha blended image data of said remaining front-facing primitives to said frame buffer.
4 Assignments
0 Petitions
Accused Products
Abstract
A fast method for rendering opaque and transparent objects that produces a higher quality image at a greater speed for a given level of hardware support. Opaque objects are rendered first utilizing the z-buffer as a solids only depth buffer. Transparent objects are then rendered in multiple passes. Transparent objects are processed in a back to front order to eliminate surface anomalies. The z-buffer is utilized in an alternative mode so that the front-most surfaces of objects in a scene are processed last. Back-facing primitives of transparent objects are rendered and alpha blended first and then the front-facing primitives are rendered and alpha blended second.
-
Citations
4 Claims
-
1. A method for rendering opaque objects and transparent objects in at least one portion of a scene for graphic display in a computer system, said method comprising the steps of:
-
(a) rasterizing primitives of said opaque objects and sending depth values for pixels of said rasterized primitives to a z-buffer and sending image data for said pixels of said rasterized primitives to a frame buffer in said computer system; (b) processing primitives of said transparent objects, said processing comprising the steps of (b1) disabling writes to said z-buffer, (b2) culling all front-facing primitives of said transparent objects, (b3) rasterizing all back-facing primitives of said transparent objects to yield back-facing primitive pixels, and culling all said back-facing primitive pixels when depth values of said back-facing primitive pixels indicate that said back-facing primitive pixels are located behind at least one of said opaque objects, and (b4) alpha blending image data of remaining back-facing primitives with said image data in said frame buffer, and sending said alpha blended image data of said remaining back-facing primitives to said frame buffer, and (c) processing said primitives of said transparent objects, said processing comprising the steps of (c1) disabling writes to said z-buffer, (c2) culling said back-facing primitives of said transparent objects, (c3) rasterizing all front-facing primitives of said transparent objects to yield front-facing primitive pixels, and culling all said front-facing primitive pixels when depth values of said front-facing primitive pixels indicate that said front-facing primitive pixels are located behind at least one of said opaque objects, and (c4) alpha blending image data of remaining front-facing primitives with said image data in said frame buffer, and sending said alpha blended image data of said remaining front-facing primitives to said frame buffer.
-
-
2. A method for rendering transparent objects in at least one portion of a scene for graphic display in a computer system, said method comprising the steps of:
-
(a) processing primitives of said transparent objects, said processing comprising the steps of (a1) disabling writes to a z-buffer, (a2) culling all front-facing primitives of said transparent objects, and (a3) rasterizing back-facing primitives of said transparent objects to yield back-facing primitive pixels and alpha blending image data of said rasterized back-facing primitive pixels of said transparent objects and sending said alpha blended image data of said rasterized back-facing primitive pixels to a frame buffer; and (b) processing said primitives of said transparent objects, said processing comprising the steps of (b1) disabling writes to said z-buffer, (b2) culling all back-facing primitives of said transparent objects, and (b3) rasterizing front-facing primitives of said transparent objects to yield front-facing primitive pixels and alpha blending image data of said rasterized front-facing primitive pixels of said transparent objects and sending said alpha blended image data of said rasterized front-facing primitive pixels to said frame buffer.
-
-
3. A method for rendering transparent objects in at least one portion of a scene for graphic display in a computer system, said method comprising the steps of:
-
(a) creating a shell of front-most primitives of said transparent objects by rasterizing said transparent objects to establish a depth image of said front-most primitives of said transparent objects in a z-buffer, said rasterizing comprising determining z-values of pixels of said front-most primitives of said transparent objects, storing said z-values of said pixels in said z-buffer, and discarding all frame buffer data; (b) disabling writes to said z-buffer, rasterizing said transparent objects, and alpha blending image data of pixels of said rasterized transparent objects when z-values of said pixels are not equal to said z-values stored in said z-buffer; and (c) disabling writes to said z-buffer, rasterizing said transparent objects, and alpha blending image data of pixels of said rasterized transparent objects when z-values of said pixels equal said z-values stored in said z-buffer. - View Dependent Claims (4)
-
Specification