# Patent

## Title
Method of analyzing and modifying a footprint

## Abstract

In a method of analyzing and modifying a footprint depending on a specified number of texture elements touched by the footprint, in a graphics system providing the texture elements having a resolution, a dimension or a shape of the footprint is initially determined. On the basis of the specified number of texture elements and on the basis of the determined dimension or shape, the resolution of the texture elements associated with the footprint is specified. Then it is determined whether the graphics system provides texture elements having the specified resolution. If the graphics system provides texture elements having the specified resolution, the footprint is preserved. If the graphics system does not provide texture elements having the specified resolution, the texture elements which are provided by the graphics system and have a relevant resolution are selected, and those of the footprint are reduced such that the number of texture elements touched by the footprint having a reduced size is essentially equal to or smaller than the specified number.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This is a continuing application, under 35 U.S.C. § 120, of copending international application No. PCT/EP2003/010016, filed Sep. 9, 2003, which designated the United States; this application also claims the priority, under 35 U.S.C. § 119, of German patent application No. 102 42 639.2, filed Sep. 13, 2002; the prior applications are herewith incorporated by reference in their entirety.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention generally relates to a method for displaying images in a raster display controlled by a computer. In particular, the present invention relates to an anisotropic filter mechanism required for reconstructing, or scaling, discrete, stored images or for subjecting same to a perspective projection for the purposes of representation on raster display elements of a high quality. The above-mentioned discrete, stored images will be referred to as textures below. In particular, the present invention relates to a method for analyzing and modifying a footprint depending on a specified number of texture elements touched by the footprint in a graphics system providing the texture elements having a resolution.
2. Description of Prior Art
A “footprint” is a perspective projection of a picture element (pixel) of an object onto a curved surface. A “footprint” may be a convex quadrilateral representation reproducing the approximated result of the perspective projection onto a regular texel grid (texture-element grid) of a square picture element (pixel) of an object onto a curved surface.
In associating textures with picture elements (pixels) of an object, known graphics systems, e.g. OpenGL graphics systems, operate in such a manner that a footprint of a pixel of an object has one or more texture elements having a desired resolution associated with it, the footprint being approximated by a square. The disadvantage is that the approximation here is always effected by a square which is either too large or too small and that the shape of the footprint is not taken into account.
The resolution desired results in a texel size in a texel grid underlying the footprint. Various mipmap level exist for predetermined texel sizes. If a resolution is chosen which leads to a texel size for which there is no mipmap with a suitable resolution (level), the texture must be calculated at high expenditure.
SUMMARY OF THE INVENTION
Starting from this prior art, it is the object of the present invention to provide an improved method for modifying a footprint.
The present invention provides a method of modifying a footprint in dependence on a specified number of texture elements touched by the footprint, in a graphics system providing the texture elements having a resolution, including:

    
    
        (a) determining a dimension or a shape of the footprint;
        (b) specifying the resolution of the texture elements associated with the footprint, based on the specified number of texture elements and based on the dimension or shape determined in step (a); and
        (c) determining whether the graphics system provides texture elements having the resolution specified in step (b),
        
            (c.1) if the graphics system provides texture elements having the resolution specified in step (b), maintaining the footprint; and
            (c.2) if the graphics system does not provide texture elements having the resolution specified in step (b), selecting the texture elements provided by the graphics system and having a respective resolution, and reducing the size of the footprint such that the number of texture elements touched by the footprint having the reduced size is essentially equal to or smaller than the specified number.
        
        
    
    


The present invention provides a method of modifying a footprint in dependence on a specified number of texture elements touched by the footprint, in a graphics system providing the texture elements having a resolution, comprising:

    (a) determining a dimension or a shape of the footprint;
    (b) specifying the resolution of the texture elements associated with the footprint, based on the specified number of texture elements and based on the dimension or shape determined in step (a); and
    (c) determining whether the graphics system provides texture elements having the resolution specified in step (b),
    
        (c.1) if the graphics system provides texture elements having the resolution specified in step (b), maintaining the footprint; and
        (c.2) if the graphics system does not provide texture elements having the resolution specified in step (b), selecting the texture elements provided by the graphics system and having a respective resolution, and reducing the size of the footprint such that the number of texture elements touched by the footprint having the reduced size is essentially equal to or smaller than the specified number.
    
    


Unlike the prior art, in accordance with which a filtering which may also be referred to as isotropic filtering is performed, the present invention teaches distributing a number of available texture elements having a specified resolution and, therefore, having a specified size, to the footprint in an optimum manner rather than the “rough” approximation of the footprint by a square completely surrounding same or being completely contained in the footprint. Here, the footprint is overlapped by the texture elements, an analysis and modification of the footprint being performed in accordance with the invention, if required, to obtain the optimum distribution of the texture elements to the footprint.
In accordance with a preferred embodiment, the inventive method is used in a graphics system providing the texture elements having various resolutions, texture elements having a resolution which is one down from the specified resolution being selected in step (c.2). Preferably, the graphics system provides the texture elements having various resolutions in the form of mipmaps of various levels.
In accordance with a further preferred embodiment, for the purposes of determining the resolution, a rectangle surrounding the footprint is specified in step (b), vertices of the footprint being on edges of the rectangle. If it is found that for this rectangle, no texture elements having a relevant size, i.e. resolution, exist for achieving the desired number P, a clamping box, or clamping square, which is defined in dependence on the resolution made available by the graphics system and in dependence on the number of texture elements is specified in a preferred development of the above-described embodiment. Subsequently, the size of the footprint is reduced by shifting the vertices of the footprint to the edges of the clamping box.
Preferably, the above-described rectangle and the clamping box are specified based on a thickness, or expansion, parameter of the footprint, the thickness parameter reproducing a longitudinal deformation of the footprint.
In accordance with a further preferred embodiment, a determination as to whether an edge of the footprint exceeds a specified dimension is made in context with the determination of a dimension or a form of the footprint, and if this is so, the size of the footprint is reduced for such time until the dimension of the edge is smaller than or equal to the specified dimension.
Therefore, the inventive method provides a novel approach which may, in accordance with an embodiment, also be controlled by a user for analyzing and modifying a footprint.
In order to retrieve the discrete texture image, all square elements of the regular texel grid—the texels—overlapped by the area of the footprint, must be read in and processed by a processing unit. The inventive method allows both the number of texels touched by the footprint and the lengths of the edges of the footprint to be limited. In accordance with the invention, an additional control input signal, to be precise the performance parameter P, is provided for this purpose. This parameter P may be provided by a user. The limitation of the lengths of the edges of the footprint is determined by a further parameter Emax defining a maximum edge length. This parameter Emax may be hard-coded, for example.
The advantage of the present invention is that by setting the control input signal P, a compromise between the retrieved/reconstructed image quality (large number of texels used), on the one hand, and the processing speed (small number of texels used), on the other hand, may be achieved. A benefit of limiting the boundary edges is that the hardware expense required for further processing of the footprint in subsequent processes may be significantly reduced. Such subsequent processes include, for example, determining the texels overlapped by the footprint and/or weighting these specific texels. By clamping the edge lengths, the hardware expense associated with these process steps may be clearly reduced.
In general, the data produced by the inventive method may be provided to every texel-oriented raster process.
In accordance with a preferred embodiment of the present invention, a plurality of so-called image maps having various resolutions, which image maps are also referred to as mipmaps, are provided for a texture associated with the footprint, as has already been described above. In order to specify the resolution, the size of the texels in a texel grid which are touched by the footprint is determined in dependence on the dimension or shape of the footprint and in dependence on a desired image quality of the footprint to be represented. Depending on the texel size thus determined it is established whether there exists, among the plurality of image maps, an image map whose associated texel size matches the texel size established. If this is so, the respective image map is employed for representing the footprint. If there is no such respective image map, however, the size of the footprint is reduced as has been described above, so that, depending on the image quality of the footprint, an available image map having a resolution which is one down from the desired resolution and having a respective texel size is selected for representing the footprint.
Preferably, the image quality is specified by the performance parameter C essentially indicating the number of texels in a texel grid which are touched by the footprint.
In accordance with the above-described preferred embodiment, a description will be given of essentially two approaches and/or techniques for restricting the number of texels used for representing a footprint (depending on the setting of the performance parameter P). If pre-filtered versions of a texture image having a low resolution—the so-called mipmaps—are available, a suitable mipmap level will be calculated on the basis of the thickness information. Hereby, the size of a square texel in the texel grid is then determined in an implicit manner. This calculation of the level is based on the actual spatial dimensions and/or the shape of the footprint. If no pre-filtered image map (mipmap) having the level required is available, the area of the footprint is reduced by shrinking the boundaries (edges) of the footprint in a selective manner. This shrinking of the edges and/or reducing of the area is performed on the basis of the shape, the performance parameter P and a texel size of the next available image map (mipmap) in the least favorable case, the next available image map is the original base map itself.
In accordance with a further preferred embodiment of the present invention, the incoming quadrilateral footprint defined by its four vertices is initially analyzed with regard to its area and/or its shape and/or the spatial expansions of its edges. This analysis includes the following steps:

    
    
        determining a direction of rotation of the footprint which may either be clockwise or counterclockwise;
        calculating an anisotropic thickness parameter describing the extent of the longitudinal deformation of the footprint;
        determining a bounding box for the footprint;
        creating a clamping box clamping a linearly shrunk version of the original footprint in such a manner that a horizontal width and a vertical height of any edge (of the shrunken footprint) does not exceed a predefined limit. This predefined limit is specified based on the above-described maximum length value for the edges Emax. In addition, the dimension of the clamping box depends on the thickness parameter and is set such that the number of texels overlapped by the clamping box does not exceed a boundary specified by the performance parameter P.
    
    


Once the incoming footprint has been analyzed in the above-described manner, the information thus obtained and analyzed is subsequently assessed so as to produce output data representing a possibly modified footprint along with the associated mipmap level and an associated magnification level. This mainly involves the conversion of the original coordinates of all vertices of the original footprint to the coordinate system specified by the mipmap level calculated. A projection of the vertices of the footprint onto the clamping box will effect additional shrinking of the footprint, if necessary.
Thus, an advantage of the present invention is that incoming footprint coordinates are modified such that

    
    
        an edge width or edge height preferably does not exceed a hard-coded maximum length Emax,
        the number of texels overlapped by the footprint equals or is smaller than the number to which the number of these texels has been predefined by a user,
        the shape of the footprint is preserved if a scaling-down is selected by a mipmap level greater than 0, and
        spatial and temporal discontinuities of the image retrieved are avoided.
    
    


In accordance with a preferred embodiment of the present invention, the inventive method is implemented in hardware in the shape of a hardware pipeline, which enables accelerated processing of a plurality of footprints.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the present invention will be explained below in more detail with reference to the accompanying figures, wherein:
FIGS. 1A and B show a flow chart depicting an overview of the method in accordance with a preferred embodiment of the present invention;
FIG. 2 is a representation of the vertices and edge vectors of an exemplary footprint in a texture space;
FIG. 3 is a representation of the footprint and of the thickness parameter associated with the footprint;
FIG. 4 depicts the course of the clamp size depending on a thickness of the footprint; and
FIG. 5 shows an example of the scaling-down of the footprint.



DESCRIPTION OF PREFERRED EMBODIMENTS
With reference to FIG. 1, an overview of the inventive method in accordance with a preferred embodiment will be described below, the individual process steps shown in FIG. 1 being explained in more detail below with reference to the remaining figures.
The inventive method starts at block 100, where the data describing the footprint is received. In the following description, use is always made of the term “footprint”, which is a convex quadrilateral structure and which represents the approximated result of a perspective projection of a square picture element onto a curved surface.
In the flow chart represented in FIG. 1, the rectangles represent the main process steps which will be explained in more detail below. The results of the process steps are stored in data structures shown schematically in the parallelograms in FIG. 1. These are used as input signals for the next process stages. The individual process steps will be described in detail below, a mathematical vector notation (represented in bold print) having been chosen for the sake of simplifying the description.
Once the data describing the footprint has been received in block 100, the vectors vi describing the vertices of the footprint are available in block 102, with i=0, 1, 2, 3 (the description of the preferred embodiment is based on the assumption of a quadrilateral footprint).
In the subsequent block 104, the footprint information provided in block 102 are used for performing a footprint analysis. On the one hand, this footprint analysis leads to establishing a direction of rotation, d, of the footprint, which is provided in block 106 and is provided at an output in block 108. In addition, the footprint analysis in block 104 yields the thickness parameter t provided in block 110. Based on the thickness parameter t provided in block 110, and based on an external performance parameter P provided in block 112, a clamp size c0 is calculated, which is provided in block 116. The performance parameter P specifies the number of texels touched and/or overlapped by the footprint.
The mipmap level required is calculated in block 120. On the one hand, the calculation in block 120 receives, as external parameters, an indication of the maximum mipmap level Mmax from block 122. In addition and on the basis of the footprint data provided in block 102, a bounding box is calculated in block 124, the dimensions bmin, bmax of which are provided in block 126 and are provided in block 120 for calculating the mipmap level. The mipmap level m calculated in block 120 is then provided in block 128 and is output in block 130.
On the basis of the clamp size c0 provided in block 116 and of the mipmap level m provided in block 128, a mipmap correction is performed in block 132 (see item A and FIG. 1 B). The mipmap correction leads to a modified clamp size cm provided in block 134. The modified clamp size cm is provided to block 136, wherein the footprint is scaled down such that it fits into the clamping rectangle defined by the clamp size cm. The calculation performed in block S136 results, on the one hand, in modified footprint data v′i and scaling factors fx, fy to be provided in blocks 138 and 140. As may also be seen in FIG. 1b, the processing stage 136 receives, in addition to the modified clamp size cm, the footprint data provided in block 102 (see item B) as well as the data concerning the bounding box bmin, bmax calculated in block 124 (see item C).
The modified footprint data v′i provided in block 138 and the mipmap level m are provided to block 142 wherein, on the basis of the data received and of information received by block 132, a transformation to a selected mipmap level is performed, so that the transformed/converted footprint data v*i are provided in block 144, which data will be output in block 146.
In addition, the thickness is reduced in block 148 on the basis of the scaling factors fx, fy provided in block 140, block 148 receiving the thickness parameter provided in block 110 (see item D) in addition to the input from block 140. In addition, block 148 receives, from block 150, a suitable algorithm for reducing the thickness t. The modified thickness parameter t′ is then output in block 152. On the basis of an magnification parameter provided in block 154 and of the modified thickness parameter t′ provided in block 152, the enlargement shift, or magnification shift, is calculated in block 156, so that an magnification level r′ is provided in block 158. On the basis of an algorithm provided in block 160 and on the basis of the enlargement step provided by block 158, and on the basis of the mipmap level m, a transformation to the mipmap level selected is performed in block 162, so that a modified enlargement step r* is yielded in section 164, which is also output in block 146.
The individual blocks of FIG. 1 will be explained in more detail below.
FIG. 2 shows an example of a convex footprint 200 arranged in a texture space spanned by the x axis and the y axis. This texture space also has arranged therein the texel grid comprising a plurality of square texel elements, some of which are overlapped by the footprint. FIG. 2 shows the vertex vectors v0 to v3 as well as the edge vectors s0 to s3. The vertex vectors v0 to v3 are provided as input data for the inventive method.
An important parameter used for specifying an appropriate detail level for representing the footprint is the so-called “thickness” t of the footprint. In FIG. 3 this thickness parameter is represented in more detail, for a quadrilateral footprint. In FIG. 3, the four vertex vectors v0 to v3 are shown as well as the two height vectors h0 and h1 which join the opposite vertices v0 and v2, and v1 and v3, respectively. In addition, FIG. 3 depicts two thickness parameters t0 and t1, the final thickness parameter t being determined by the minimal one of the two thickness parameters t0 and t1 shown.
As can be seen, the thickness parameter t0 defines the distance between two straight lines which extend through the vertices v1 and v3 and are, in addition, parallel to the height vector h0. Also, the thickness vector t1 indicates a distance between two straight lines which extend through the vertices v0 and v2 and are parallel to the height vector h1.
On the basis of the parameters represented in FIG. 3, the calculation of the thickness parameter t is performed in accordance with the below calculation specification.



  
    
      
        
          h
          ⇀
        
        j
      
      =
      
        
          
            
              v
              ⇀
            
            
              j
              +
              2
            
          
          -
          
            
              
                v
                ⇀
              
              j
            
            ⁢
            
              
            
            ⁢
            j
          
        
        =
        0
      
    
    ,
    1
  




  
    
      h
      j
    
    =
    
      
        
        
          
            h
            ⇀
          
          j
        
        
      
      =
      
        
          
            h
            
              j
              ,
              x
            
            2
          
          +
          
            h
            
              j
              ,
              y
            
            2
          
        
      
    
  




  
    
      h
      ⇀
    
    =
    
      
        
          h
          ⇀
        
        0
      
      ×
      
        
          h
          ⇀
        
        1
      
    
  




  
    
      h
      z
    
    =
    
      
        
          h
          
            0
            ,
            x
          
        
        ·
        
          h
          
            1
            ,
            y
          
        
      
      -
      
        
          h
          
            0
            ,
            y
          
        
        ·
        
          h
          
            1
            ,
            x
          
        
      
    
  




  
    F
    =
    
      
        
        
          
            
              h
              ⇀
            
            0
          
          ×
          
            
              h
              ⇀
            
            1
          
        
        
      
      =
      
        
          
          
            h
            z
          
          
        
        =
        
          
            t
            j
          
          ·
          
            h
            j
          
        
      
    
  




  
    
      t
      j
    
    =
    
      {
      
        
          
            
              
                
                  0
                  ⁢
                  
                    
                  
                
              
              
                
                  
                    if
                    ⁢
                    
                      
                    
                    ⁢
                    
                      h
                      j
                    
                  
                  =
                  0
                
              
            
            
              
                
                  
                    F
                    /
                    
                      h
                      j
                    
                  
                  ⁢
                  
                    
                  
                
              
              
                else
              
            
          
          ⁢
          
            

          
          ⁢
          t
        
        =
        
          
            min
            ⁡
            
              (
              
                
                  t
                  0
                
                ,
                
                  t
                  1
                
              
              )
            
          
          =
          
            {
            
              
                
                  
                    0
                    ⁢
                    
                      
                    
                  
                
                
                  
                    
                      if
                      ⁢
                      
                        
                      
                      ⁢
                      
                        h
                        0
                      
                    
                    =
                    
                      
                        h
                        1
                      
                      =
                      0
                    
                  
                
              
              
                
                  
                    
                      F
                      /
                      
                        max
                        ⁡
                        
                          (
                          
                            
                              h
                              0
                            
                            ,
                            
                              h
                              1
                            
                          
                          )
                        
                      
                    
                    ⁢
                    
                      
                    
                  
                
                
                  else
                
              
            
          
        
      
    
  



In accordance with a preferred embodiment of the present invention, a direction of rotation, d, of the vertex indices may optionally also be calculated, which direction of rotation my be used in a subsequent calculation of specific edge attributes. In addition, the surface area A of the footprint may be calculated. The direction of rotation d and the area A are calculated in accordance with the below calculation specification:

d=sign(hz)

A=F/2

wherein:

F=area of the parallelogram spanned by h0 and h1.
The direction d has a value of +1 for a clockwise rotation, and a value of −1 for a counterclockwise rotation. In the event that h0=0 OR h1=0, the footprint degenerates to a point or line, and in this case the direction of rotation, d, is 0.
After the determination of the thickness parameter t, and after the optional determination of the direction of rotation, d, and of the area A, a clamp size c is then calculated. The clamp size c is a linear function across the course of the thickness parameter t, the course being located between the settable performance parameter P and the maximum length, defined by parameter Emax, for a resulting edge. The clamp size c has a value P if t=P, a maximum area A* of the resulting footprint being set for this setting, wherein: A*≅P2. On the basis of the setting of parameter c, a determination of an initial clamp size c0 is performed in accordance with the below calculation specification.



  
    O
    <
    P
    <
    c
    <
    
      E
      max
    
  




  
    c
    =
    
      
        
          (
          
            1
            -
            
              
                E
                
                  max
                  ⁢
                  
                    
                  
                
              
              P
            
          
          )
        
        ·
        t
      
      +
      
        E
        max
      
    
  




  
    
      c
      0
    
    =
    
      max
      ⁡
      
        (
        
          P
          ,
          c
        
        )
      
    
  



The course of the clamp size c versus the thickness parameter t is plotted in FIG. 4, and as can be seen, the value of the clamp parameter is c=Emax for t=0 and decreases, starting from this value, in a linear fashion down to the value P, which is reached at t=P. As of this value, the value of the clamp parameter c remains constant at value P. FIG. 4 shows, in the bottommost curve, the initial bounding value and/or the initial clamp size c0 and/or its course versus the thickness parameter t. In FIG. 4, the bottommost curve describes the initially calculated size of the clamp box c0 for mipmap level 0. This represents a measure of the resolution to be used. The curve qualitatively describes the following behavior: with a smaller t, i.e. a narrower footprint which has thus a smaller area, the clamp size and thus the preferred resolution of the texture increases, and the texel size of same decreases in proportion to the size of the footprint. The clamping in the upward direction effected by Emax guarantees the maximum admissible edge length, the clamping in the downward direction effected by P limits the process duration. The larger the value of P, the later a jump is performed to a lower resolution, at an increase in the area of the footprint. The upper curve cm corresponds to the coordinate transform c0 for a mipmap level m. The latter is required if m does not equal mreq, and downscaling is thus required.
The calculation of the necessary mipmap level mreq and of the required downscaling of the size of the footprint will be explained in more detail below with reference to FIG. 5.
Initially it shall be assumed that for the footprint which is to be represented, a mipmap level exists in the footprint's original dimension and shape, which mipmap level avoids downscaling of the footprint. By means of this minimum mipmap level it is ensured that no side of a bounding box for the footprint is larger than the clamp size c0 determined in the above-described manner. In addition to footprint 200, FIG. 5 also shows, in an exemplary manner, a bounding box 202, and the bounding box 202 as well as the required mipmap level mreq is produced in accordance with the below calculation specifications:



  
    
      
        b
        ⇀
      
      min
    
    =
    
      (
      
        
          
            
              min
              ⁡
              
                (
                
                  
                    v
                    
                      0
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      1
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      2
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      3
                      ,
                      x
                    
                  
                
                )
              
            
          
        
        
          
            
              min
              ⁡
              
                (
                
                  
                    v
                    
                      0
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      1
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      2
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      3
                      ,
                      y
                    
                  
                
                )
              
            
          
        
      
      )
    
  




  
    
      
        b
        ⇀
      
      max
    
    =
    
      (
      
        
          
            
              max
              ⁡
              
                (
                
                  
                    v
                    
                      0
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      1
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      2
                      ,
                      x
                    
                  
                  ,
                  
                    v
                    
                      3
                      ,
                      x
                    
                  
                
                )
              
            
          
        
        
          
            
              max
              ⁡
              
                (
                
                  
                    v
                    
                      0
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      1
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      2
                      ,
                      y
                    
                  
                  ,
                  
                    v
                    
                      3
                      ,
                      y
                    
                  
                
                )
              
            
          
        
      
      )
    
  




  
    
      b
      ⇀
    
    =
    
      
        
          b
          ⇀
        
        max
      
      -
      
        b
        min
      
    
  




  
    
      m
      reg
    
    =
    
      max
      ⁡
      
        (
        
          0
          ,
          
            ceil
            ⁡
            
              (
              
                
                  log
                  2
                
                ⁡
                
                  (
                  
                    
                      max
                      ⁡
                      
                        (
                        
                          
                            b
                            x
                          
                          ,
                          
                            b
                            y
                          
                        
                        )
                      
                    
                    
                      c
                      0
                    
                  
                  )
                
              
              )
            
          
        
        )
      
    
  



wherein the function of “ceil” signifies that the term in brackets is increased to the next integer value in the direction +∞. FIG. 5 represents the parameters bmin and b reproduced in the above calculation specification, and the parameter bmax, which is also reproduced in the calculation specification, is the vector which extents from the origin of the coordinate system to the peak of vector b, but which is not represented for the sake of clarity.

In order to obtain the mipmap level m to be applied, the mipmap level required is clamped to the highest available level value Mmax in accordance with the following calculation specification:

m=min(Mmax,mreq)

If it is found, however, that the desired mipmap level m is smaller than that mipmap level specified by the bounding box, i.e. is smaller than mreq, it is necessary to reduce the size of the footprint such that same fits into a clamping box. The clamping box is calculated on the basis of a mipmap-corrected clamp size cm, which is determined in accordance with the below calculation specification:

cm=max(P·2m,c+(2m−1)·Emax)

The course of the parameter of the corrected clamp size cm is also plotted in FIG. 4.
FIG. 5 shows the clamping box 204 created on the basis of the corrected clamp size cm. The reduction of the size of the footprint 200 to the downscaled footprint 206 is effected such that the vertices v0 to v3 of the original footprint are converted to the vertices v0′ to v3′ in such a manner that the converted vertices are arranged on the edges of the clamping box 104. The conversion of the original vertices to the modified vertices is effected in accordance with the below calculation specification:



  
    
      f
      
        x
        ,
        y
      
    
    =
    
      min
      ⁡
      
        (
        
          1
          ,
          
            
              b
              
                x
                ,
                y
              
            
            
              c
              m
            
          
        
        )
      
    
  




  
    
      
        v
        ⇀
      
      i
    
    =
    
      
        
          (
          
            
              
                
                  f
                  x
                
              
              
                0
              
            
            
              
                0
              
              
                
                  f
                  y
                
              
            
          
          )
        
        ·
        
          (
          
            
              
                v
                ⇀
              
              i
            
            -
            
              
                b
                ⇀
              
              min
            
          
          )
        
      
      +
      
        
          b
          ⇀
        
        min
      
      +
      
        
          1
          2
        
        ⁢
        
          (
          
            
              b
              ⇀
            
            -
            
              (
              
                
                  
                    
                      c
                      m
                    
                  
                
                
                  
                    
                      c
                      m
                    
                  
                
              
              )
            
          
          )
        
      
    
  



wherein:

    fx, fy=scaling factors for the x and y directions.


In a final block, the coordinates of the reduced footprint v′i must be transferred to the mipmap level m, which is performed in accordance with the below calculation specification:

 v*i=2−m· v′i 

In addition, the inventive method may make provisions for providing an magnification level in dependence on the thickness parameter t which may be used later on for enlarging footprints with a sub-texel size so as to avoid temporal and spatial artifacts in the representation of a footprint which includes a plurality of footprints.
Once the thickness parameter t has also been changed due to the reduction of the size of the footprint, the former must also be set. Since the thickness parameter t is an anisotropic property, same may be calculated by creating a new thickness parameter for the downscaled vertex vectors on the basis of the above calculation specification, which involves a large amount of calculation expenditure, however. In accordance with a preferred embodiment, the thickness parameter t is determined approximately, however, at much less expense by using the oriented scaling factors fx and fy (method t), so that the following methods are available for determining the set thickness parameter t′:



  
    
      
        (
        1
        )
      
      ⁢
      
        
      
      ⁢
      
        t
        ′
      
    
    =
    
      t
      ⁡
      
        (
        
          
            v
            ⇀
          
          i
          ′
        
        )
      
    
  




  
    
      
        (
        2
        )
      
      ⁢
      
        
      
      ⁢
      
        t
        ′
      
    
    =
    
      t
      ·
      
        
          
            f
            x
          
          +
          
            f
            y
          
        
        2
      
    
  




  
    
      
        (
        3
        )
      
      ⁢
      
        
      
      ⁢
      
        t
        ′
      
    
    =
    
      t
      ·
      
        min
        ⁡
        
          (
          
            
              f
              x
            
            ,
            
              f
              y
            
          
          )
        
      
    
  



The method described with (2) is preferred, as has been explained above.
The magnification level r is controlled by a settable magnification parameter T describing a minimum thickness without magnification. The magnification level is created in accordance with the following calculation specification:




  
    r
    ′
  
  =
  
    max
    ⁡
    
      (
      
        0
        ,
        
          
            T
            -
            
              t
              ′
            
          
          2
        
      
      )
    
  




The higher the value of T, the more blurring is introduced into the image to be represented, but, at the same time, fewer artifacts are noticed. A value of √2 for T has proven to be advantageous. If T=0 is chosen, any magnification is deactivated.
Similar to the above determination of the altered thickness parameter t′ there are three possible ways (method r) for converting the delay level r′ to the selected mipmap level m; specifically:




  
    
      
        
          
            
              
                
                  
                    
                      1
                      )
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      r
                      *
                    
                  
                  =
                  
                    
                      r
                      ′
                    
                    ·
                    
                      2
                      
                        -
                        m
                      
                    
                  
                
                ⁢
                
                  

                
                ⁢
                2
              
              )
            
            ⁢
            
              
            
            ⁢
            
              r
              *
            
          
          =
          
            r
            ′
          
        
        ⁢
        
          

        
        ⁢
        3
      
      )
    
    ⁢
    
      
    
    ⁢
    
      r
      *
    
  
  =
  
    
      r
      ′
    
    +
    
      
        (
        
          
            1
            2
          
          -
          
            2
            
              -
              
                (
                
                  m
                  +
                  1
                
                )
              
            
          
        
        )
      
      ·
      
        t
        ′
      
    
  




The method referred to as 1) maintains the effective filter size for all mipmap levels. The compensation of elements having a size smaller than a texel, however, applies only to mipmap level 0 and becomes less and less effective, the higher the mipmap level becomes. Method 3) ensures the consistency of T with all levels. The effective filter size, however, undergoes discrete enlargement between two levels and, in addition, the calculation is more expensive. The preferred method 2), eventually, is a compromise between 1) and 3) and is thus the method which is easiest to implement, of course.
With the parameters described in the above manner, a color of the footprint may be calculated in subsequent process steps. To this end, the determined parameters of a further process stage of the graphics unit are provided, which graphics unit then creates a color of the footprint in a conventional manner.
Even though the present invention has been described on the basis of a footprint having four sides in the above description of the preferred embodiments, the inventive approach may in principle be extended to any footprints.
While this invention has been described in terms of several preferred embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.

## Claims

1. A method of modifying a footprint in dependence on a specified number of texture elements touched by the footprint, in a graphics system providing the texture elements having a resolution, comprising:
(a) determining a dimension or a shape of the footprint;
(b) specifying the resolution of the texture elements associated with the footprint, based on the specified number of texture elements and based on the dimension or shape determined in step (a); and
(c) determining whether the graphics system provides texture elements having the resolution specified in step (b),
(c.1) if the graphics system provides texture elements having the resolution specified in step (b), maintaining the footprint; and
(c.2) if the graphics system does not provide texture elements having the resolution specified in step (b), selecting the texture elements provided by the graphics system and having a respective resolution, and reducing the size of the footprint such that the number of texture elements touched by the footprint having the reduced size is essentially equal to or smaller than the specified number.

2. The method as claimed in claim 1, wherein the graphics system provides the texture elements having a plurality of resolutions, texture elements having a resolution which is one down from the specified resolution being selected in step (c.2).

3. The method as claimed in claim 1, wherein step (a) comprises:
(a.1) determining whether an edge of the footprint exceeds a specified dimension; and
(a.2) reducing the size of the footprint until the dimension of the edge is smaller than or equal to the specified dimension, if the dimension of the edge exceeds the specified dimension.

4. The method as claimed in claim 1, wherein the graphics system provides the texture elements having different resolutions in the form of mipmaps of various levels.

5. The method as claimed in claim 1, wherein step (b) includes specifying a rectangle surrounding the footprint, vertices of the footprint being arranged on edges of the rectangle.

6. The method as claimed in claim 5, wherein the rectangle and the bounding box are specified based on a thickness parameter of the footprint.

7. The method as claimed in claim 1, wherein step (c.2) comprises:
specifying a bounding box in dependence on the resolution of the texture element provided by the graphics system, and
reducing the size of the footprint by shifting the vertices of the footprint onto edges of the bounding box.