Computer graphics processing and selective visual display system – Computer graphics processing – Attributes
Reexamination Certificate
1999-02-02
2003-04-08
Brier, Jeffery (Department: 2672)
Computer graphics processing and selective visual display system
Computer graphics processing
Attributes
Reexamination Certificate
active
06545686
ABSTRACT:
TECHNICAL FIELD
This invention pertains to computer graphics, and more particularly to generating pixel results in computer graphics images by sampling texture data.
BACKGROUND
The present invention solves a long-standing problem in low-cost-real-time computer graphics. A critical component of real-time computer graphics involves the use of special purpose hardware to implement fast, efficient texture calculation. The hardware must also control the Texture Memory read process, which includes reading up to 8 input samples to produce one pixel of output. Eight independent memory units may be used to supply the stream of data, but in a low-cost implementation only a single Dynamic RAM (DRAM) memory bank is available. When using only a single bank DRAM, the actual pattern of memory access causes significant delays—due to the numerous read operations, and due to the semi-random pattern of access.
This invention solves the memory access problem via a novel cache memory, and a method for its use, allowing maximum texture calculation rate while using a low-cost single bank DRAM hardware implementation.
Texture Generator Controls Reading Texels from a MIP Map Stored in DRAM
The Texture Generator subsystem calculates the memory addresses needed to control reading pre-stored values from Texture Memory. The Texture Memory contains digitized images of synthesized images consisting of a two-dimensional matrix of sample values (Texels). To support a proper, non-aliased sampling process, each two-dimensional image is stored along with additional representations of the image which contain successively lower resolution versions of the original image. An original image of 256 by 256 samples for example is stored along with a representation of this same image which is digitized with only 128 by 128 samples. This two to one reduction in resolution in each sample axis is fully supported, with versions of the original image extending all the way down to a nearly final 2 Texel by 2 Texel representation, finishing with a single 1×1 representation of the image (a single Texel). This pre-filtering technique (involving re-sampling and storing prior to the real-time texture sampling process) has been named the MIP MAP storage technique.
Two Levels of Texture Detail Sampled and Combined
Producing a single texture sample from a MIP MAP which has been stored in texture memory requires two sets of sampling operations which are then properly combined to produce the single output. Since multiple Levels-Of-Detail are stored in memory (for each source image) one set of sampling operations is performed using one of the Level-Of-Detail representations, and the second set of sampling operations are performed in the next lower Level-Of-Detail. This can also be described as selecting the two pre-filtered representations of the original image which happen to straddle the precise sampling resolution that is desired. For example, between the LOD 4 representation of the image and the LOD 3 representation of the image we may wish to sample at essentially a LOD 3.5 level of pre-filtering. This desired result is achieved by sampling at LOD 4, Sampling at LOD 3, and then averaging the results to give an approximate result which looks appropriate as an approximation of LOD 3.5. To allow the fractional component of desired LOD to vary in this case from 3.0 up to 4.0, the fractional component of desired LOD is used to control a linear interpolation between the LOD 3 and LOD 4 result. All such TriLinear MIP Mapped results are computed by blending between two independent occurrences of a LOD sampling operation.
Three or Four Texels Read to Produce a Sample at One LOD
Each LOD sampling operation must produce a result which gives a consistent, continuous appearance from one sampling operation to the next. The sample point is calculated for neighboring pixels in turn by picking the screen location at the center of a pixel and extending a ray from the eye point, through the center of the pixel, extending into scene space, and striking a polygon which contains the texture image mapped onto its surface—calculating the exact location within a MIP Map level where the ray strikes the two-dimensional image. This precise location is then used to control an interpolation process, interpolating between the discrete samples (the Texels) which surround the precise sampling location. To produce a continuous result from one sample to the next the four Texels within the two-dimensional matrix whose centers are nearest to the sample point—are selected, and these four are used in the two-dimensional interpolation process.
As an option this same process can also be used whereby the nearest three Texel centers are used, with three Texels going into the two-dimensional interpolation process. Both three and four input interpolation is described here, since either is acceptable, and the extra miscellaneous logic needed to implement the three sample approach sometimes is avoided in favor of the more simple four input hardware implementation. For simplicity the four input interpolation approach will be used in the following description.
Polygon-Pixel Color Calculation Including Texture
Rendering a Computer Graphics Image typically involves computing pixel brightness for a single polygon at a time, progressing across the pixels of the display, storing the results in a Frame Buffer. Other hardware components manage the process which identifies the pixels to be processed in turn. The set of pixels fed downstream for processing all lie within the area of the single polygon being processed (in this example Feature sequential rendering approach). More specifically, when the center of the pixel happens to lie within the area of the polygon, the pixel is identified as a valid pixel for the following color calculation process.
Calculating the color of a Polygon-Pixel occurrence includes calculating the smoothly varying inherent color of a polygon which is interpolated from the color of vertices, and calculating the Texture result for the pixel, followed by combining Color and Texture, or simply using the Texture results. The Texture result may be a color or monochrome result, and may optionally include translucency which results from the Texture calculation. The option to combine polygon color and texture or alternatively to simply apply the Texture Color as the final results is a choice specified during modeling of the computer graphics scene.
Texture Use Creates Realistic Graphics
Scenes modeled exclusively using color specified at vertices of polygons, with simple interpolation of color across polygons, but with no Texture, appear unrealistic and unnatural to the human eye. Simple color shading of polygons (absence of Texture) also gives imagery that is hard to interpret while in motion, since ground surfaces tend to include smoothly varying color which fails to give the needed Stimulus Gradient that the human visual system expects. As a result, with simple color shading, a real-time graphics display device fails to give the needed visual queues when simulating real-world scenarios, and the user is left unable to determine one's position simply by references to the graphics display.
Texture is added to a scene by specifying a relationship between a digitized image (or synthesized image) and its placement on a flat polygon, similar to the way wallpaper (with an image on its surface) is applied to a flat wall. The Texture Image must be properly translated, rotated, and scaled, and this is specified during modeling, as the relationship between image and polygon are set during the off-line 3D scene composition steps (3D Database Modeling).
The image that is applied to a polygon during Texturing typically contains recognizable features along with subtle brightness variations which clearly remind the human visual system of certain consistent looking materials such as Grass, or Bricks, or Road surface. These consistent brightness or color variations appear across the surface of a polygon with a correct perspective orientation, and this gives the user all of
Brier Jeffery
Harrison Chante
Oak Technology, Inc.
LandOfFree
Cache memory and method for use in generating computer... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Cache memory and method for use in generating computer..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Cache memory and method for use in generating computer... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3040822