The invention relates to a computer graphics system and a method for rendering an image for display using texture mapping. Further, the invention relates to a computer and a computer program.
An important element in rendering 3D graphics is texture mapping. To perform texture mapping, a 2D picture has to be mapped onto the screen. It is often the case that the 2D picture has to be minified considerably in this process. To reduce the bandwidth required for reading the 2D picture, a pre-processing step is often performed in which several downscaled versions of the 2D picture are created. During texture mapping, the part of only the smaller downscaled picture which matches best in resolution with the screen image is read and mapped to the screen. The 2D picture along with its downscaled versions is called a mipmap. Texture mapping as well as mipmaps are particularly described in “Survey of Texture Mapping”, Paul S. Heckbert, IEEE Computer Graphics and Applications, November 1986, pp. 56-67 and in U.S. Pat. No. 6,236,405 B1.
There are several types of mipmaps, varying in which downscaled images are stored. In a 3D mipmap, both directions are downscaled by the same factors, while in a 4D mipmap the original image is downscaled independently in both dimensions.
Compared to the 3D mipmap the 4D mipmap arrangement, however, costs a lot of bandwidth to read and a lot of memory to store, and therefore often the 3D mipmap structure is used. In the 3D mipmap arrangement, only the diagonal of the 4D mipmap is stored.
In general, there are several methods known for mapping the (mipmapped) image onto the screen grid. One of these methods is two-pass forward texture mapping. In this method, the 2D mapping is decomposed in two 1D mappings. First, the image is mapped in one direction, e.g. in horizontal direction, then in the other direction, e.g. in the vertical direction. In one such mapping stage, it is preferred to map in one direction, i.e. by varying the minification factor in that direction, which means that the minification factor is kept constant in the other direction. The 4D mipmap arrangement is ideal for this purpose, since it enables to stick to one column or row of the collection of images embedded in the 4D mipmap. However, it is preferred to use the low bandwidth and memory requirements of the 3D mipmap structure where it is not possible to keep one minification factor constant while varying the other minification factor.
It is therefore an object of the present invention to provide an improved computer graphics system and method for rendering an image for display which provide a solution to the above-mentioned problem and which combine the advantages of 3D and 4D mipmapping.
This object is achieved by a computer graphics system as claimed in claim 1 comprising:
The object is further achieved by a corresponding method as claimed in claim 8. A computer program comprising program code means for causing a computer to perform the steps of this method when said computer program is run on a computer is claimed in claim 9.
The invention is based on the idea to only pre-calculate and store the 3D mipmap levels and to calculate 4D mipmap levels from these on-the-fly, i.e. while the rendering of the image is performed, particularly when performing the texture mapping. During rendering, when data from a 4D mipmap is needed, the 3D mipmap data is read from the texture memory, and filtering is applied to generate the required 4D mipmap data, which is then immediately used. In this way, the advantages of both arrangements are used, i.e. the advantages of 3D mipmapping requiring only a low memory size and bandwidth and the advantages of 4D mipmapping allowing more freedom in mipmap selection and the ability to select the proper level for two-pass algorithms are combined. Since the downscaling that is performed to generate the mipmap structures, i.e. the texture maps forming the mipmaps, is very regular (with a power of 2), the up-scaling required to reconstruct the 4D mipmap can be done very efficiently.
As an alternative to up-scaling, a 4D mipmap level can also be generated by (on-the-fly) downscaling a 3D mipmap level. For example: mipmap level (2,1) might be generated by up-scaling level (2,2) vertically, but it can also be generated by downscaling level (1,1) horizontally. The latter uses more bandwidth, but retains the high resolution vertical detail which is present in level (1,1). This factor-2 downscaling might be useful (instead of simply texture mapping directly from level (1,1)), because it allows the use of a texture mapping filter which is limited to at most a factor of two downscaling. With known texture methods, this down-scaling-in-advance can yield an anisotropic filter footprint which can improve image quality. Combinations are of course also possible, e.g. level (3,1) may be generated by downscaling from level (1,1), by up-scaling from level (3,3), or by the combination of up- and downscaling from level (2,2).
Preferred embodiments of the invention are included in the dependent claims. As mentioned above two known methods are one-pass 2D mapping and two-pass 1D mapping. 2D mapping uses a 2D filter structure, whereas 1D mapping uses two 1D filter structures in sequence. There are several advantages and disadvantages to each method. A 2D filter structure takes all the texel colors in a footprint (which is 2D) and processes them. A two-pass 1D structure handles these texel colors by first warping them horizontally and then warping them vertically (or vice versa). According to a preferred embodiment of the invention two-pass 1D texture mapping is applied by the texture mapping means.
According to another preferred embodiment said mipmap reconstruction means include a reconstruction filter for vertically up-scaling a lower-resolution texture map of said 3D mipmap to obtain a higher-resolution texture map of said 4D mipmap before horizontally up-scaling said higher-resolution texture map. Said embodiment is preferably applied for two-pass 1D texture mapping. Therein the proper mipmap level (or texture map) can be selected from those available. In the first pass an intermediate picture is generated which serves as the input to the second pass. Therefore the second pass does not have a choice between different resolution input pictures. So no extra scaling is done on the intermediate image before the second pass. However, it is possible that the stretching that occurs to generate a 4D mipmap level for the first pass involves horizontal scaling. This alternative is useful in an embodiment where the first pass of the two passes of a two-pass filtering method is a vertical filtering pass and the second pass is the horizontal filtering pass. Thus, a 3D mipmap level is horizontally scaled to generate a 4D mipmap level that serves as the input for the first pass. An alternative embodiment is defined in claim 4.
Should reconstruction have to be performed from a mipmap level that is not the next downscaled or up-scaled version, a recursive reconstruction can be applied. Therein, a higher-resolution texture map is stepwise reconstructed from a texture map having a lower resolution of the next lower level or from a texture map having a higher resolution of the next higher level. This provides the advantage that a simple “one-level” reconstruction hardware can be used.
The invention will now be explained in more detail with reference to the drawings in which
a-c illustrates the construction of mipmap levels,
a-c illustrates samples read from different mipmap levels,
a-c illustrates sample reconstruction according to the invention, and
For two-pass 1D forward mapping, the first pass uses the original texture as a source. This texture can be stored in mipmapped format. The output of the first pass is an intermediate image. In the second pass, this intermediate image is transformed to the output image, but since the intermediate image was only generated in the first pass, there are no different mipmap levels available for it. So a general mipmap approach is not applicable to the second pass.
In
This complicates both passes a lot. In the first pass, the disjunct parts of the intermediate image have to be assigned to different areas of the intermediate image, and an administration has to be set up to relay this information to the second pass. The second pass needs to read this information and combine the appropriate parts again, which is complicated since filtering samples in the neighbourhood of a mipmap level transition means combining samples from different parts of the intermediate image. The cause of this complexity is the presence of different vertical scaling factors in the intermediate image. This cause can be removed by using so-called 4D mipmaps.
In the 4D mipmap arrangement, the down-scaled versions of the original texture map are scaled independently in the vertical and horizontal directions, resulting in the arrangement depicted in
Using this 4D mipmap arrangement a constant vertical scaling factor can be kept. This is shown in
There are several drawbacks however. According to the option depicted in
On-the-fly 4D mipmap reconstruction is illustrated in
Using this on-the-fly up-scaling which is relatively easy in the preferred embodiment since it is only required to expand with powers of two, all read textures are brought to the same vertical resolution. Before traversing a triangle, it is needed to determine which resolution this is going to be. It is therefore needed to calculate for example the highest resolution encountered, which is easily determined by the derivatives at the three vertices. The highest resolution gives the highest picture quality, but lower resolutions require less bandwidth.
To determine how the vertical up-scaling is to be performed, it can be looked in detail at how lower-resolution mipmap levels are filtered from the original texture map. This is illustrated in
When a texture is read in a 3D mipmapped way, the different mipmap samples would be read as shown in
Properly reconstructing samples 60′ is not very critical. In this case, however, the second pass will do the proper filtering with a wide footprint. Only if there are many different mipmap levels within one primitive, i.e. the lowest-resolution mipmap has to be magnified a lot. Usually, such up-scaling in the 4D mipmap reconstruction is accompanied by similar downscaling in the second pass, so in these rare cases it is not very noticeable.
The simplest filter is the box filter, which is equal to nearest-neighbour selection. With this filter the samples 60′ are simply copies of the nearest lower-resolution sample 61 or 62. However, since the grid structure for the reconstruction is very regular, it is very easy and cheap to implement a better filter profile.
Using the tent filter, the samples 60′ are a linear combination of two neighbouring lower-resolution samples 61. When the up-sampling factor is a power of two, the weight factors are constant: The two samples 601′, 602′ between two vertically adjacent lower-resolution samples a, b are one quarter and three quarters between the two lower-resolution samples a, b and can therefore be reconstructed as (3a+b)/4 and (a+3b)/4. Special hardware can be made to perform this interpolation efficiently, and thus perform the reconstruction from the one mipmap level higher. It is needed to keep track of the previous line of read samples to have both lower-resolution samples a, b available for the interpolation. This costs a line of memory, which is prohibitive if tile based rendering is not performed. For higher order filters more lines of memory are correspondingly needed.
Should reconstruction have to be performed from a mipmap level that is not the next down-scaled version, the same “one level” reconstruction hardware can be used recursively. This recursive process can be seen in
A block diagram of a computer including a computer graphics system according to the invention is shown in
Number | Date | Country | Kind |
---|---|---|---|
01205044.9 | Dec 2001 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB02/05468 | 12/16/2002 | WO |