A 3D graphics system in which a pre-rendering stage is combined with a rendering stage. Any GUI window which is not completely displayed on-screen (because it extends past screen boundaries or is overlapped by other windows, etc.), is divided into at least two portions, e.g. rectangles, for scissoring operations. If a primitive appears at least partially in some rectangle, rendering setup data is calculated, then applied against each rectangle in which it appears for a scissoring operation, and the portion of the primitive in that rectangle which survives the scissor is then rendered. The rendering data is stored between each scissoring function, and is not recalculated. Any portion of the primitive which does not appear in a rectangle is not rendered, thereby eliminating any rendering overhead for any primitive which would be completely hidden anyway. By computing the pre-rendering values only once for each primitive, the object of eliminating needless rendering calculations is achieved at the expense of a releatively simply scissor comparision of the stored pre-renndering data with the boundaries of each of the rectangles.
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation-in-part of U.S. Ser. No. 08/410,345 filed Mar. 24, 1995, and claims priority from provisional 60/008,803 filed Dec. 18, 1995, which is hereby incorporated by reference.
A system, method and computer program product are provided for avoiding reading z-values in a graphics pipeline. Initially, near z-values are stored which are each representative of a near z-value on an object in a region. Such region is defined by a tile and a coverage mask therein. Thereafter, the stored near z-values are compared with far z-values computed for other objects in the region. Such comparison indicates whether an object is visible in the region. Based on the comparison, z-values previously stored for image samples in the region are conditionally read from memory.
An apparatus and method of applying an effect to graphical data utilizes a graphics processor to apply the effect to a graphical image having the graphical data. To that end, the graphics processor is configured to process graphical data in accordance with a preselected graphics processing format, and the effect and graphical image are defined and converted, respectively, into the preselected graphics processing format. The graphics processor is controlled to apply the effect to the graphical image to produce an output graphical image. The output graphical image includes both the effect and the graphical image. The graphics processor may be a graphics accelerator card, and the graphics processing format may be the OPENGL.TM. application program interface.
A method of efficiently removing backfacing primitives from the graphics pipeline such that rendering efficiency is increased. In one embodiment of the present invention, a bounding cone of normal vectors of a primitive is first determined during pre-processing. During the rendering process, before the primitive is drawn, the bounding cone is compared with a half-space defined by a viewing vector. Primitives whose bounding cones do not intersect with the half-space will be removed from further processing. In this way, rendering efficiency is increased. In another embodiment, a normal bit-vector is used to represent normal directions of a primitive, and a visibility bit-vector is used to represent visible normal directions. In that embodiment, primitives are culled efficiently by comparing the normal bit-vector with the visibility bit-vector.
An anti-aliasing technique for sampling an image for display on a pixel based display is presented. The image, or set of objects forming an image, is sampled at a resolution higher than the pixel spatial resolution. The resultant multiple sampled values for each pixel are accumulated, and the accumulated value is used to determine an average pixel value that is used for the display of the pixel. To minimize memory requirements, the rendering plane is used to temporarily store a portion of the accumulated value for each pixel. To minimize processing, the multiple of samples per pixel is a power of 2, and the portion of the accumulated value that is stored in the rendering plane is the most significant bits (MSB) of the accumulated value. Because of the use of a power of 2 as the number of samples, the MSB of the accumulated value is equal to the average of the accumulated value, and therefore the need for an explicit computation of an average for each pixel is eliminated. Because the rendering plane is used to store this average of the accumulated value, the explicit process of moving the computed average value to each corresponding pixel location in the rendering plane is also eliminated.
A digital image display system and method for displaying a digital image in a large format are provided. The system includes a frame buffer for storing the digital image, which is projected via a plurality N of projection units. Each projection unit projects a section of the digital image which is 1/Nth of the digital image plus an overlap portion of each of its neighboring sections. Thus, when the sections are projected, the portions of the image corresponding to the edges between projection units will be overlapped. The intensities of the overlapped portions are typically modulated to ensure that, in the large format image, the overlapped portions receive the same amount of illumination as the non-overlapped portions. The resultant image will have no seams between projection units. The projection units are assumed to be mis-aligned and the misalignment is compensated for by transforming each section of the image in accordance with the misalignment of the projection.