WO2004032062A1 - Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint - Google Patents

Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint Download PDF

Info

Publication number
WO2004032062A1
WO2004032062A1 PCT/EP2003/010017 EP0310017W WO2004032062A1 WO 2004032062 A1 WO2004032062 A1 WO 2004032062A1 EP 0310017 W EP0310017 W EP 0310017W WO 2004032062 A1 WO2004032062 A1 WO 2004032062A1
Authority
WO
WIPO (PCT)
Prior art keywords
footprint
edge
texel
edges
block
Prior art date
Application number
PCT/EP2003/010017
Other languages
English (en)
French (fr)
Inventor
Thomas Haaker
Roland Richter
Original Assignee
Koninklijke Philips Electronics N.V.
Philips Intellectual Property & Standards Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=31895971&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2004032062(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Koninklijke Philips Electronics N.V., Philips Intellectual Property & Standards Gmbh filed Critical Koninklijke Philips Electronics N.V.
Priority to AU2003264284A priority Critical patent/AU2003264284A1/en
Priority to JP2004540606A priority patent/JP4009289B2/ja
Priority to DE50302209T priority patent/DE50302209D1/de
Priority to EP03798898A priority patent/EP1537538B1/de
Publication of WO2004032062A1 publication Critical patent/WO2004032062A1/de
Priority to US10/916,983 priority patent/US7379072B2/en
Priority to US11/690,071 priority patent/US7924289B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Definitions

  • the present invention relates generally to a method of displaying images on a computer controlled raster display system.
  • the present invention relates to an anisotropic filter mechanism and a corresponding device, which is required in order to reconstruct, scale or scale stored, discrete images, which are also referred to below as textures, with high quality on the raster display undergo perspective projection.
  • the present invention relates to a method for determining weighting factors for the color calculation of a color value of texels for a footprint.
  • Anisotropic filter processes are known in the prior art, e.g. For example, the so-called area sampling to assign a texture to a footprint.
  • so-called weighted area scans as well as unweighted area scans are known.
  • a disadvantage of the methods known in the prior art is that there is a transition here discontinuities in the displayed image with perceptible artifacts are generated between a weighted and an unweighted scan.
  • a “footprint” is the perspective projection of a picture element (pixel) of an object onto a curved surface.
  • a “footprint” can be a convex four-sided representation, which is the approximate result of the perspective projection onto a regular texel grid (texture element grid ) of a square picture element (pixel) of an object on a curved surface.
  • the object of the present invention is to provide an improved method which, when generating weights for texels of a footprint, enables the determination of texels under the edges of the footprint in a simple and quick manner.
  • the present invention provides a method for determining weighting factors for the color calculation of a color value of texels for a footprint, which covers a plurality of texels in a texel grid, in a graphics system, with the following steps:
  • step (c) approximating the edges determined in step (b) by means of a step function
  • a texel touched by the stair function is determined based on the starting points and / or end points of the vertical sections of the stair function.
  • Texels of the texel grid that are not touched by the stair function and that are covered by the footprint are preferably assigned a uniform weighting factor, the weighting factors for each texel being assigned to a data structure.
  • the staircase function comprises a plurality of steps, a plurality of horizontal step elements and a plurality of vertical step elements for each edge of the footprint, each edge comprising a plurality of consecutive edge sections of equal length, one horizontal edge being present, if the end points of the edge portions of the edge intersect a horizontal step element of the stair function, where there is a vertical edge, if the end points of the edge portions of the edge intersect a vertical step element of the stair function, wherein a horizontal edge comprises a number of vertical step elements which are equal to Number of steps of the staircase function, wherein a vertical edge comprises a number of vertical step elements that is one additional vertical step element larger than the number of steps of the staircase function, and wherein the additional vertical le step element is used for calculating the weighting factors of an adjacent edge with the same vertical position.
  • a magnification shift is assigned to the footprint, wherein after step (a), based on the magnification shift, the footprint is enlarged by moving the edges of the footprint outwards by a distance dependent on the magnification shift, wherein in step (b ) the shifted edge is determined, wherein in step (c) the shifted edge is approximated by a staircase function, and in step (e) a weighting factor for each texel that has a shifted edge 2004/032062
  • the footprint is enlarged by shifting the edge end points in the horizontal direction and in the vertical direction by a distance determined by the magnification shift.
  • the resulting gaps are preferably filled by horizontal and vertical edges, with further weighting factors then being determined for each texel that contains an inserted vertical edge.
  • the inventive method creates a novel approach for anisotropic filtering, which enables z. B. to apply the known filter technique of "area sampling" to four-sided footprints, which represent a perspective projected square image element, which overlap a regular Texel grid
  • the magnification shift determines whether a weighted area scan or an unweighted area scan should be applied to the area of the footprint, in particular, how the weighting contribution or the degree of weighting in the area scan should be deformed footprints Application, for example on small and elongated footprints.
  • a typical characteristic and an essential feature of the present invention can be seen in the fact that there is no hardware-based switch, based on a threshold value, which decides when a weighted and when an unweighted area scan is to be carried out, which actually leads to discontinuities with recognizable artifacts would lead.
  • the amount of weighted area scan is preferably increased.
  • the increasing increase in the weighting contribution preferably takes place as the footprint becomes smaller, in particular while the footprint is smaller than the extent of a texel in width or height.
  • a method for determining a weighting factor for the color calculation of a color value of a texel for a footprint, which extends at least partially into the texel is created in a graphics system in which a shape information of the footprint is determined and based on an enlargement shift, the footprint is enlarged by shifting the edges thereof outward by a distance dependent on the enlargement shift, so that it covers several texels.
  • a weighting factor is then determined for each texel that contains a shifted edge, depending on the partial area of the respective texel covered by the enlarged footprint.
  • 1A and B show a flow diagram of a preferred exemplary embodiment of the method according to the invention
  • 4A and B are a flowchart that shows a method for edge calculation according to an exemplary embodiment of the present invention
  • 5A and B show two examples of a filter enlargement of a footprint
  • 8A and B are a flow diagram illustrating a method for
  • the mathematical notation of vectors is used for the description of the footprint (represented in the text by BOLD PRINT).
  • the unit length of all coordinates and lengths is the width (or height) of a texel in the original texture or in the texture according to a MipMap level, if available.
  • the method according to the invention receives in block 100 input data or information which represent the shape, position and orientation of the four-sided footprint and which are available in block 102. More specifically, in block 102 the footprint data v ⁇ n , the direction of rotation d of the footprint and the magnification shift (magnification offset) r are provided. By receiving the additional input parameter, namely the magnification shift r, it is possible, according to the invention, to determine the degree of weighted area scanning that is required for small or thin footprints, in particular small or thin four-sided footprints.
  • edge calculation takes place in block 104. This edge calculation involves enlarging the footprint by moving its edges based on the 004/032062
  • edge calculation 104 As part of the edge calculation 104, vertical edges are then introduced into the spaces resulting from the enlargement, a bounding rectangle is calculated, and all edges are sorted into left and right edges in block 104, so that the attributes for the enlarged vertex edges are provided in block 106 and the attributes associated with the shifted edges are provided in block 108. More specifically, in block 106 the footprint information Vj. * , the alignment of the individual edges a. ⁇ * and the resulting spaces gi * are provided for the enlarged footprint. In block 108, the vertex information V, an alignment of the shifted edge ai 'and corresponding edge vectors Si' are provided.
  • the information provided in block 108 is fed to block 110, in which processing relating to the shifted edge is carried out.
  • a block transfer pi * is calculated in block 110, which is provided in block 112.
  • the parameters provided in block 106 and in block 112 are fed to block 114, in which the vertex edge is processed.
  • the processing of the vertex edge (block 114) and the displaced edge (block 110) results in the weighting tables for the vertex edges and the displaced edges provided in blocks 116 and 118 (FIG. 1B).
  • a color calculation is carried out in block 120, block 120 additionally receiving information relating to the texture from block 122.
  • the color calculation in block 122 then results in the pixel color, which is provided in block 124 and is output in block 126.
  • the edges of the Footprints are then carried out only on the original edges. In this case, additional inserted edges do not exist or are set to zero for the calculation.
  • an appropriate data structure is created for each of the edges of the footprint.
  • the steps explained below are carried out in parallel for each edge.
  • an edge is approximated by a suitable number of simple steps, and all texels that are touched by a step function of a left edge are searched for.
  • a weighting value is then assigned to each texel found, which corresponds to the fraction of the remaining texel area that lies to the right of the step function.
  • all texels that lie below the structure to be displayed and that are touched by the stair function of a right edge are searched for.
  • the texels found in this way are then each assigned a weighting factor which corresponds to the fraction of the remaining area of each texel which is arranged to the left of the stair function.
  • all coordinates and corresponding weights are saved in a suitable, unique data structure that is assigned to the edge of the footprint. Furthermore, all texels are assigned a weighting value of ⁇ +1 or> -1, namely texels that are to the right of a left edge or a right edge - but are not touched by this - and to the left of the right edge of the bounding rectangle lie. This information is added to the data structure.
  • the data structures generated in this way are preferably assessed in a more efficient manner, so that each texel that is covered by the footprint can be addressed directly by the stored coordinates, so that its corresponding color with its subsequently follows assigned weight multiplied (weighted) can be. It is pointed out that each weighting factor is the sum of the weights of those edges which are contained in the texel under consideration.
  • a color calculation is carried out, as is known per se in the prior art. For this color calculation, all weighting factors are collected and likewise all weighted texels used by the footprint are collected and then the collected color is divided by the collected weighting factors. The result represents the image fragment recovered and filtered from the texture map, which is assigned to the pixel that should be mapped or projected onto the texture map.
  • the advantage of the present invention is that the method according to the invention inherently creates the possibility of using a high degree of parallelism in executing it in a specific hardware implementation. Furthermore, the method according to the invention enables its implementation in a hardware pipeline, so that according to a preferred exemplary embodiment of the present invention, the method steps described above are implemented in hardware in different pipeline stages. Preferably, those method steps that have been described above and that generate the data structure for each edge are typically implemented as a hardware module and are instantiated (called) in parallel for each edge. These modules instantiated in parallel again represent a pipeline stage of the entire hardware pipeline.
  • the basic process for recovering the pixel color from a texel array covered by a four-sided footprint is to perform an unweighted area scan on that footprint.
  • each texel which is only partially covered by the footprint that is to say lies at the edge of the footprint, is assigned a weighting factor which is proportional to the size of the area covered.
  • the method according to the invention fulfills the following two tasks, which have been described so far, namely the identification of all texels which are completely or partially covered by the four-sided footprint, and the calculation of a weight for each texel and the assignment of this weighting factor to the corresponding texel.
  • a cross-fading is realized according to the invention, which is controlled by the additional parameter, the magnification parameter r, in order to carry out a cross-fading from an unweighted to a weighted area scan.
  • the area of the footprint is expanded according to the invention by shifting the four edges which represent the boundary of the footprint.
  • this approximates a footprint, which can be interpreted as the projection of a filter kernel which fulfills the characteristic of a weighted area scan, the filter kernel overlapping its neighbors and having a bilinearly similar distribution.
  • the method according to the invention essentially comprises blocks 100 to 118, which then provide the data required for an essentially conventional color calculation.
  • all rectangular blocks represent the main processing steps, which are described in detail below for preferred exemplary embodiments of the present invention.
  • the results of the processing steps are stored in data structures which are shown in the parallelogram-shaped blocks in FIG. 1. These results are used as inputs for the next processing stages.
  • the maximum edge length E ⁇ , ax mentioned above is preferably a hardware-coded value, which should be a power of 2, the value 8 being preferred here. Higher values will significantly slow down the raster process, ie the processing speed of the graphics system, and significantly increase the required data structures. If no power of 2 were used, the calculations associated with E max would be difficult to implement in hardware.
  • the texture space is spanned by the coordinates x and y.
  • the footprint is defined by the four vertex vectors v 0 to v and the four edge vectors s 0 to s 3 .
  • the direction of rotation d of the footprint is determined by the direction of the edge vectors s 0 to s 3 .
  • 2 shows the typical shape of a footprint in the texture space.
  • the footprint is defined by its boundary, which in turn consists of the four edges s 0 to s 3 and is therefore often referred to as a four-sided element.
  • the four vertices v 0 to v 3 which are positioned in the texture space by the four vectors shown in FIG. 2, define the edges s 0 to s 3 .
  • a main aspect of the present invention is that horizontal and vertical step functions are used to approximate each of the edges.
  • the edges only provide contributions to those texels that are arranged to the right of an edge. So- with, values from left-hand edges are added to the effective weighting factor, which results for all edges, and values from right-hand edges are subtracted from the effective weighting factor, which results from all edges.
  • the edge attributes on the left, right, below and above are shown in FIG. 3.
  • edges which are classified as being lower left or upper right are approximated by vertical step elements, whereas edges which are considered to be lower right or upper left are approximated by horizontal step elements.
  • the horizontal and vertical steps just described are described in more detail below.
  • a first main processing step of the method according to the invention in accordance with a preferred exemplary embodiment is explained in more detail, namely the edge calculation generally indicated in block 104 in FIG. 1A.
  • the method for edge calculation receives the data required for this, namely the footprint data Vi in and the magnification shift r, which is provided in blocks 130 and 132 for further processing.
  • the edge calculation generates the approximate area of the footprint, whereby a positive filter magnification, indicated by the magnification shift r, with r> 0, is also included.
  • Each edge of the original footprint is moved away from the center by adding a displacement of size r. These edges are referred to below as shifted edges.
  • the footprint data v 0 , ⁇ , 2 , 3 obtained in accordance with the above calculation rule are made available in block 136 for further processing.
  • the edge vectors result according to the following calculation rule:
  • the so-called alignment vectors a calculated for the edges to classify the corresponding edges into left / right and upper / lower edges. Based on the division shown in FIG. 3, it is determined for each edge in which square it lies.
  • the table below shows the values for the two components of the edge orientation vector a *, namely for the components a ⁇ , x and aj . , y reproduced for different signs of the components Sj. fX or s ⁇ , y of the edge vector si.
  • a value of +1 shows an alignment to the right along the x-axis and downwards in the direction of the y-axis in the texture space spanned in FIG. 3.
  • a value of -1 shows an alignment to the left in the direction of the x-axis and an alignment to the top in the direction of the y-axis.
  • Horizontal edges and vertical edges are assigned the values just mentioned.
  • the orientations shown in the table are used to determine the direction of a magnification shift.
  • the footprint is expanded to four shifted edges v ⁇ ', Si', depending on the size of the limited magnification parameter r.
  • each of the original vertices is shifted by the magnification parameter r in the manner described and shown in FIGS. 5A and 5B, thereby adjusting the shifted edges s ⁇ '.
  • the starting point and the end point for those edges which have been determined to be below must be exchanged, which is carried out according to the calculation rule given below:
  • Gaps that result from the displacement of each vertex of the footprint are handled by the vertical vertex edges.
  • the shift of these edges depends on the alignment of the two adjacent edges, which have a length greater than 0.
  • These edges are indexed with j *, depending on the vertex index i, according to the calculation rule given below:
  • X stands for a value that has no effect on the following calculations and can therefore be arbitrary.
  • the base point for the vertex edge and the size of the enlargement space are then determined in accordance with the calculation rule given below:
  • the displacement for the vertex edges Vi * is calculated in block 156, which are then provided in block 158.
  • the shifted edges are subsequently processed in a second main processing step, which is indicated in block 110 in FIG. 1A.
  • a second main processing step which is indicated in block 110 in FIG. 1A.
  • the shifted edges they are approximated by a number of steps, the number of steps depending on the size of the shifted edge.
  • the width and height of a step should not exceed a value of 1.0.
  • uss is the number of steps n s t e uf per edge are determined. This is done according to the following calculation rule:
  • the calculation method denoted by 2) is preferred, since this can be significantly simplified by the hard-coded maximum value for the edge lengths E m a x and also replaces complex dividers by simple shifting operations in the subsequent calculation of the step vectors qi.
  • the step vectors qi are calculated according to the calculation rule given below: q, • sni level
  • step alignment 0 ⁇ ' is 0, i.e. horizontal, for edges at the top right and edges at the bottom left.
  • step orientation ⁇ ⁇ ' is 1, i.e. vertical, for steps on the top left and for steps on the bottom right.
  • Horizontal steps refer to horizontal intersections of a staircase function with the corresponding edge at the end of the step vector qi.
  • Vertical steps likewise relate to vertical interfaces of the step function with the respective edge at the end of the step vector qi, as can be seen from FIG. 6.
  • a stripe is a vertical step element that is used to determine the weights of the texels. The following calculation rule applies to step alignment ⁇ ⁇ ':
  • a stripe processing loop is provided for each edge and processes one stripe per cycle, as will be described in greater detail below with reference to FIG. 8.
  • Each cycle can weight one or two texels, 21
  • Number of texel rows x'ofs.k] x is the integer coordinate of the left most weighted texel in this row
  • index i is also given, which only counts the number of texels hit by an edge for processing the strips (see FIG. 7).
  • the coordinates for the first stripe (slice), see also the vectors u i0 in FIG. 9, are initialized.
  • the coordinates of the starting point u x , u y0 and the height du y (see FIG. 10B) are determined, the actual coordinates of the first stripe from the beginning of the edge under consideration, which is indicated by the corresponding starting vertex v, and depend on the orientation of the edge, which is indicated by ⁇ or a y . Therefore, in order to determine the actual starting point, it is first determined in block 164 whether or not there is a horizontal step alignment ⁇ ⁇ for the point under consideration, defined in block 162. If the step orientation is horizontal, the method goes to block 166, in which the coordinate u x of the starting point is increased by the value q x / 2. The other coordinates or parameters defined in block 162 remain the same.
  • the method goes to block 168, in which the alignment a y of the edge under consideration is first determined. Is the edge considered an upper edge, the method goes to block 170, in which the coordinate value u x is increased by the value q x . The coordinate value u y0 is likewise increased by the value q y / 2 in block 170.
  • the method goes to block 172, in which the height du y is halved.
  • the starting coordinates thus determined for the strip under consideration are then provided to block 174.
  • the indices used are first initialized, where k counts the texel rows, 1 counts the texels in total, and n counts the stripes / slices.
  • the coordinate of the first row of texels yO f s corresponds to the texel below the slice starting point, the so-called floor function being displayed in block 174 in block 174 with respect to the starting coordinate value u y0, which starts from the next integer value in the direction - ⁇ > represents the specified value for u y0 .
  • block 176 it is checked to what extent the x position currently under consideration has changed due to later calculations. Starting from block 174, it is determined that the two parameters specified in block 176 are the same, so that the method in this case proceeds to block 178, in which the first texel is weighted. In block 178, the weights are determined for the first texel hit by the stripe, which is determined in accordance with the calculation rules reproduced in block 178. In block 178, the stripe end point u yi is first calculated, and then the associated integer texel coordinate ylint. based on the next integer value of u y ⁇ towards - ⁇ .
  • the texel fraction w x is then calculated, which results from the vertical section, as shown in FIG. 7. Furthermore, the fraction w y0 is calculated, which results from the horizontal cut.
  • the specified case distinction takes into account which direction the stripe has (see FIG. 10B) and whether one or two texels have been hit.
  • the weighting contribution w ' te ⁇ [l] of the stripe to the current texel is determined in block 178 by increasing the existing value by the product of w x times w y0 .
  • the weighting contribution w ' prop passed on to the texel on the right is determined by increasing the existing value for w' prop by the value w y0 .
  • the index 1 and the number of texels already processed in this row are first incremented x ' num . Furthermore, the weighting for the new texel w ' te ⁇ [l] is set to w'p rop [k], so that the weighting contributions of the previous texel are passed on.
  • the process then proceeds from block 180 to block 178, in which. then a corresponding weighting of the new texel is carried out in the manner described above. If the calculation of the weight of a texel has been completed in block 178, the method goes to block 182 in which it is determined whether the end point of the stripe is in a different row than the start point. If this is the case, the method goes to block 184 in which a new texel is defined in a new row, that is, in terms of process technology, the system jumps to the next row to be considered, so that the number of rows y ' nu . the row index k and the texel index 1 are incremented.
  • the texel number is reinitialized x 'n u m .k] to the value 1 and the coordinate of the first texel in the new series X'O f s is determined.
  • the index for the Wte x array, in which the weight for the first texel in this row is stored, is specified.
  • the method proceeds from block 184 to block 186, in which the weighting for the second texel struck by the stripe is calculated, similarly to block 178, so that reference is made to the description there.
  • the method goes to block 188 where the x position of the strip being viewed is stored and the index n is incremented to go to the next strip.
  • block 190 it is determined whether the value n is smaller than the value n S tu f e. and if not, it is determined that the last strip has been revised. In this case the procedure ends. However, if it is determined that the last stripe has not yet been processed, the method proceeds to block 192, in which the coordinates for the next stripe are calculated. For this purpose, the coordinate u x is increased by the value q x , and likewise the coordinate u y0 is increased by the value q y .
  • du y takes into account the case shown in FIG.
  • vertex edge processing indicated in block 114 in FIG. 1A which deals with the vertical edges that are added to fill the vertical gaps, is described in more detail below.
  • the weighting tables for the vertex edges provide the same parameters as used for the shifted edges.
  • the implementation of these weighting tables is less complex since the number of possible rows is significantly lower and the indexing of the weights and rows does not differ after the alignment of the edges under consideration is always vertical.
  • the following table shows the weights for the vertex edges.
  • the enlargement gap g and the step transfer p are added to the total length of a vertex edge, as shown in FIG. 10A, so that the coordinates (starting point and end point) of a vertex edge result in accordance with the following calculation rule:
  • the weighting factor w ⁇ [0.0, 1.0] is calculated from the sum of all edge contributions that result from the weight can be read out.
  • the process of calculating the resulting pixel color depends in detail on the region surrounding the pixel, e.g. B. from the organization of access to the texture memory.
  • a functional example of the color calculation procedure is explained in more detail below with reference to FIG. 11, the procedure shown in FIG. 11 being a loop which is run through several times in order to process all the texels concerned.
  • all color components and the sum of all texel weights are initially initialized to 0 in block 200.
  • the color components are generally RGB components and the ⁇ component, the equations only showing a calculation for an abstract color component.
  • a lowermost and an uppermost row of texels are determined in block 202, the smallest and largest y-coordinates of all texels, which are described by the values in the two tables described above, being determined got to.
  • a minimum and a maximum value of an edge (y'i, min and y'i, max ) are determined, from the table given above regarding the shifted edges.
  • the minimum and maximum values of an edge y * i, m in and y * i, ma ⁇ are determined in block 202 based on the above-mentioned vertex edge processing table. Minimum values is then from the vertex of the edges and the offset edges determined eight minimum values y m i n is determined, and also are prepared from the determined maximum values for the offset edges and the vertex edges eight maximum values y max determined. After the determination of the lower and o- burst Texel series in this way was carried out, the method proceeds to block 204 where the loop value y which a texel series describes, is initialized to the value y m i n. The loop is run for y values from ymin to ym ax .
  • the loop parameter k'i which applies to the shifted edges, is defined.
  • the values in the corresponding table only contain values for x num rows, starting with the integer y coordinate of texel row 0 (y 0 f S ) • This shift is subtracted from the loop value in order to increase the row index k'i within the table for the level edges. Similar to what was described above with regard to block 202, it must also be taken into account here whether the underlying table contains the y coordinates in ascending or descending order.
  • the left-most and right-most texels in the row under consideration are determined.
  • the smallest and largest x coordinate of all texels that are weighted by the tables is determined, i.e. the x coordinates x'i. m i n and x x'i.max for the offset edges and the coordinates * i, m i n and x * i, max for the vertex edges.
  • Edges that do not make a contribution, for which the flag ⁇ * i or A ⁇ 0 defined in block 206 are, are not taken into account in the corresponding determination of the minimum and maximum x values, which is formally described by the ⁇ - ⁇ contributions ,
  • the process then goes to block 210 (FIG. 11B).
  • the loop value x which is a texel within the considered row indicates the value of x m ⁇ n initialized. This loop value runs from x m i n to Xma -
  • the procedure proceeds to block 212 in which the weighting contributions are read out for the offset edges of the provided tables. Here the contributions of all eight edges to the weighting of the texel at the coordinates x, y are determined.
  • the index l ⁇ of the texel within the row is considered for a corresponding edge (see Fig. 7).
  • the weighting contribution w'i for the shifted edge is then considered, with four cases to be distinguished for each edge.
  • the texel can either be above or below the edge, in which case the value ⁇ ⁇ i is 0, so that the texel in question makes no contribution.
  • the texel can be to the left of the edge, in which case the index 1 is less than 0, and in this case the texel does not contribute to the area. 2004/032062
  • a corresponding reading of the tables with respect to the weighting contributions of the vertex edges is carried out in block 214, the corresponding contribution w * i also being determined here.
  • the texel lies above or below the edge, the corresponding value ⁇ * i is therefore 0. In this case the texel makes no contribution to the overall weighting. If the texel lies to the left of the edge, this also does not contribute to the weighting. If the texel is to the right of the edge, x> * , 0f s r , the value w * prop specified in the table regarding the vertex edges is selected. If the texel lies on the edge, the corresponding value w * tex is selected. Here, too, the result for right edges is negated using the factor a * i, x .
  • the method proceeds to block 216, in which all contributions are summed and the text color is weighted.
  • the eight contributions calculated in blocks 212 and 214 are summed up to obtain the summed weight value w.
  • the weighting value w obtained in this way is multiplied by the color components color-tex (x, y> of the texel and added to the color of the pixel color P i X.
  • the total sum w SUm of the texel weightings is also carried out. More precisely the value w sum is increased by the value w determined in block 216. 2004/032062
  • the method then goes to block 218, in which on the one hand the loop value x is incremented by 1 and it is further determined whether the value x exceeds the maximum value x max . If this is not the case, texels still to be processed are contained in the row under consideration, and the method goes back from block 218 to blocks 212 and 214. A jump to the right by one texel is therefore carried out and a corresponding revision takes place regarding this texel is being carried out. If it is determined in block 218 that all texels in a row have been processed, the method goes to block 220, in which the loop value y and 1 is incremented and a check is carried out to determine whether the loop value y exceeds the maximum y value y max .
  • the system jumps to the next row and the method goes back to block 206. If it is found that the last row of texels has been processed, the method goes from block 220 to block 222 actual color of the pixel color p i X is determined, and in the event that a weighting exists, that is to say Wsu is not equal to 0, which indicates that at least one texel has been touched by the edge in question, the color pixel value based on the summed weighting w SU m is normalized, i.e. color P i X / sum is determined. With a so-called zero weighting, i.e. when the footprint degenerates to a point and a magnification shift unites
  • the value of 0 is the color of the texel under the
  • the present invention was described in the above description of the preferred exemplary embodiments on the basis of a four-page footprint, the approach according to the invention can in principle be extended to any footprints. It is further pointed out that the present invention is not restricted to the above exemplary embodiments in which an initial enlargement of the footprint was carried out. If no such enlargement is desired, for example no enlargement shift is assigned to the received footprint, then the method according to the invention works with respect to the original footprint and leads to an accelerated processing thereof due to the steps according to the invention for locating texels under edges.

Abstract

Bei einem Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint, der eine Mehrzahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, wird zunächst die Forminformation des Footprints bestimmt (102) . Dann werden die Kanten des Footprints bestimmt, (104) und die so bestimmten Kanten werden durch eine Treppenfunktion angenähert. Die Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden bestimmt, und ein Gewichtungsfaktors wird für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, bestimmt, abhängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.

Description

Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen
Footprint
Beschreibung
Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren zur Anzeige von Bildern auf einem durch einen Computer gesteuerten Rasteranzeigesystem. Insbesondere be- zieht sich die vorliegende Erfindung auf einen anisotropen Filtermechanismus und eine entsprechende Vorrichtung, die erforderlich ist, um abgespeicherte, diskrete Bilder, die nachfolgend auch als Texturen bezeichnet werden, mit hoher Qualität auf der Rasteranzeige zu rekonstruieren, zu ska- lieren oder einer perspektivischen Projektion zu unterziehen. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint.
Im Stand der Technik sind anisotrope Filterverfahren bekannt, z. B. die sogenannte Flächenabtastung „area sampling", um einem Footprint eine Textur zuzuordnen. Im Stand der Technik sind sogenannte gewichtete Flächenabtas- tungen als auch ungewichtete Flächenabtastungen bekannt wobei ein Nachteil der im Stand der Technik bekannten Verfahren darin besteht, dass hier bei einem Übergang zwischen einer gewichteten und einer ungewichteten Abtastung Diskontinuitäten in dem dargestellten Bild mit wahrnehmbaren Ar- tefakten erzeugt werden.
Ein „Footprint" ist die perspektivische Projektion eines Bildelements (Pixel) eines Objekts auf eine gebogene Oberfläche. Ein „Footprint" kann eine konvexe vierseitige Dar- Stellung sein, die das angenäherte Ergebnis der perspektivischen Projektion auf ein reguläres Texel-Gitter (Texturelement-Gitter) eines quadratischen Bildelements (Pixel) eines Objekts auf eine gebogene Oberfläche wiedergibt. Ausgehend von diesem Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein verbessertes Verfahren zu schaffen, das bei einer Erzeugung von Gewichtun- gen für Texel eines Footprints auf einfache und schnelle Art die Bestimmung von Texeln unter den Kanten des Footprints ermöglicht.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 ge- löst.
Die vorliegende Erfindung schafft ein Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes von Texeln für einen Footprint, der eine Mehr- zahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, mit folgenden Schritten:
(a) Bestimmen einer Forminformation des Footprints;
(b) Bestimmen der Kanten des Footprints;
(c) Annähern der im Schritt (b) bestimmten Kanten durch eine Treppenfunktion;
(d) Bestimmen der Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden; und
(e) Bestimmen eines Gewichtungsfaktors für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, ab- hängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.
Gemäß einem bevorzugten Ausführungsbeispiel wird ein durch die Treppenfunktion berührtes Texel basierend auf den An- fangspunkten und /oder Endpunkten der vertikalen Abschnitte der Treppenfunktion bestimmt. Texeln des Texel-Gitters, die nicht durch die Treppenfunktion berührt werden und die von dem Footprint bedeckt werden, wird vorzugsweise ein einheitlicher Gewichtungsfaktor zugeordnet, wobei die Gewichtungsfaktoren für jedes Texel einer Datenstruktur zugeordnet werden.
Gemäß einem weiteren bevorzugten Ausführungsbeispiel umfaßt die Treppenfunktion für jede Kante des Footprints eine Mehrzahl von Stufen, eine Mehrzahl von horizontalen Stufen- elementen und eine Mehrzahl von vertikalen Stufenelementen, wobei jede Kante eine Mehrzahl von gleichlangen, aufeinanderfolgenden Kantenabschnitten umfaßt, wobei eine horizontale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte der Kante ein horizontales Stufenelement der Treppen- funktion schneiden, wobei eine vertikale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte der Kante ein vertikales Stufenelement der Treppenfunktion schneiden, wobei eine horizontale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die gleich der Anzahl der Stufen der Treppenfunktion ist, wobei eine vertikale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die um eine zusätzliches vertikalen Stufenelement größer als die Anzahl der Stufen der Treppenfunktion ist, und wobei das zusätzliche vertikale Stufenelement für eine Berechnung der Gewich- tungsfaktoren einer benachbarten Kante mit gleicher vertikaler Position herangezogen wird.
Gemäß einem anderen bevorzugten Ausführungsbeispiel ist dem Footprint eine Vergrößerungsverschiebung zugeordnet, wobei nach dem Schritt (a) , basierend auf der Vergrößerungsverschiebung, der Footprint durch Verschieben der Kanten des Footprints nach außen um eine von der Vergrößerungsverschiebung abhängige Entfernung vergrößert wird, wobei im Schritt (b) die verschobene Kante bestimmt wird, wobei im Schritt (c) die verschobene Kante durch eine Treppenfunktion angenähert wird, und wobei im Schritt (e) ein Gewichtungsfaktor für jedes Texel, das eine verschobene Kante 2004/032062
enthält, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels bestimmt wird.
Der Footprint wird dadurch vergrößert, dass die Kantenend- punkte um eine durch die Vergrößerungsverschiebung festgelegte Entfernung in horizontaler Richtung und in vertikaler Richtung verschoben werden. Vorzugsweise werden die sich einstellenden Zwischenräume durch horizontale und vertikale Kanten gefüllt, wobei anschließend weitere Gewichtungsfak- toren für jedes Texel, das eine eingebrachte vertikale Kante enthält, bestimmt werden.
Das erfindungsgemäße Verfahren schafft einen neuartigen Ansatz für eine anisotrope Filterung, welche es ermöglicht z. B. die bekannte Filtertechnik des Flächenabtastens „area sampling" auf vierseitige Footprints anzuwenden, welche ein perspektivisch projiziertes quadratisches Bildelement darstellen, welche ein regelmäßiges Texelgitter überlagern. Genauer gesagt wird erfindungsgemäß ein weiterer Eingangs- parameter, die sogenannte Vergrößerungsverschiebung, verwendet, um Aliasing-Artefakte zu steuern. Die Vergrößerungsverschiebung bestimmt, ob eine gewichtete Flächenabtastung oder eine ungewichtete Flächenabtastung auf die Fläche des Footprints angewendet werden soll, insbesondere wird hierdurch bestimmt, wie groß der Gewichtungsbeitrag oder der Grad der Gewichtung bei der Flächenabtastung sein soll. Vorzugsweise findet die vorliegende Anmeldung auf verformte Footprints Anwendung, beispielsweise auf kleine und längliche Footprints.
Eine typische Charakteristik und ein wesentliches Merkmal der vorliegenden Erfindung ist darin zu sehen, dass kein Hardware-basierter Schalter, auf der Basis eines Schwellenwertes, existiert, der entscheidet wann eine gewichtete und wann eine ungewichtete Flächenabtastung durchzuführen ist, welches tatsächlich zu Diskontinuitäten mit erkennbaren Artefakten führen würde. Statt dessen wird vorzugsweise der Betrag des gewichteten Flächenabtastens zunehmend erhöht. Vorzugsweise erfolgt die zunehmende Erhöhung des Gewichtungsbeitrags mit kleiner werdendem Footprint, insbesondere während der Footprint kleiner wird als die Ausdehnung eines Texels in die Breite oder in die Höhe.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zur Festlegung eines Gewichtungsfaktors für die Farbberechnung eines Farbwertes eines Texels für einen Footprint, der sich zumindest teilweise in das Texel er- streckt, in einem Graphiksystem geschaffen, bei dem eine Forminformation des Footprints bestimmt wird und basierend auf einer Vergrößerungsverschiebung der Footprint durch Verschieben der Kanten desselben nach außen um eine von dem Vergrößerungsverschiebung abhängige Entfernung vergrößert wird, so dass derselbe mehrere Texel überdeckt. Dann wird ein Gewichtungsfaktor für jedes Texel, das eine verschobene Kante enthält, bestimmt, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels.
Gemäß diesem Aspekt der vorliegenden Erfindung wird ermöglicht, für Footprints, welche nur eine geringe Anzahl von Texeln oder sogar nur ein Texel überdecken, die Farbbestimmung auf eine breitere Basis zu stellen, indem auch Infor- mationen von benachbarten Texeln berücksichtigt wird, durch die Vergrößerung des Footprints. Es ist darauf hinzuweisen, das die Vergrößerung nur zur Bestimmung des Farbwertes erfolgt - der Footprint wird für die spätere Darstellung des Objekts, dem derselbe zugeordnet ist, nicht vergrößert.
Bevorzugte Weiterbildungen der vorliegenden Anmeldung sind in den Unteransprüchen definiert.
Nachfolgend werden anhand der beiliegenden Zeichnungen be- vorzugte Ausführungsbeispiele der vorliegenden Erfindung näher erläutert. Es zeigen: Fig. 1A und B ein Flussdiagramm eines bevorzugten Ausführungsbeispiels des erfindungsgemäßen Verfahrens;
Fig. 2 die Darstellung eines Footprints im Texturraum;
Fig. 3 eine Darstellung zur Festlegung der Kantenausrichtung eines Footprints;
Fig. 4A und B ein Flussdiagramm, das ein Verfahren zur Kantenberechnung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wiedergibt;
Fig. 5A und B zwei Beispiele für eine Filtervergrößerung eines Footprints;
Fig. 6 eine Darstellung der Annäherung von Kanten des Footprints durch eine Treppenfunktion;
Fig. 7 eine Darstellung einer verschobenen Kante in einem Texelgitter mit den zugeordneten Ge- wichtungstabelleneintragen;
Fig. 8A und B ein Flussdiagramm, das ein Verfahren zum
Verarbeiten einer verschobenen Kante gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wiedergibt;
Fig. 9 eine Darstellung eines Footprints und eines vergrößerten Footprints, anhand der der Stufenübertrag beschrieben wird;
Fig. 10A und B Darstellungen zur Verdeutlichung der Notati- on einer Scheitelpunktkante und eines Streifens (vertikales Stufenelement) ; und Fig. 11A und B ein Flussdiagramm, das ein Verfahren zur Farbberechnung eines Pixels wiedergibt.
Nachfolgend wird anhand der Fig. 1 ein erstes Ausführungs- beispiel der vorliegenden Erfindung näher beschrieben, wobei einzelne Verfahrensschritte in der nachfolgenden Beschreibung noch detaillierter erläutert werden.
Hinsichtlich der weitergehenden Beschreibung wird darauf hingewiesen, dass für die Beschreibung des Footprints die mathematische Notation von Vektoren verwendet wird (im Text durch FETTDRUCK dargestellt) . Die Einheitslänge aller Koordinaten und Längen ist die Breite (bzw. die Höhe) eines Texels in der Originaltextur oder in der Textur gemäß einer MipMap-Stufe, sofern vorhanden. Kantenattribute und Scheitelattribute umfassen den Index i, der von 0 bis 3 läuft, und alle Ergebnisse von Indexberechnungen, welche i = 0 bzw. i = 3 überschreiten werden auf tatsächliche Kanten zurückgerechnet. Dies bedeutet, dass ein Ergebnis von i = 4 zu i = 0 wird und ein Ergebnis von i = -1 wird zu i = 3.
Gemäß einem bevorzugten Ausführungsbeispiel empfängt das erfindungsgemäße Verfahren im Block 100 Eingangsdaten oder Informationen, die die Form, Position und Ausrichtung des vierseitigen Footprints wiedergeben, und die im Block 102 bereitstehen. Genauer gesagt werden im Block 102 die Footprintdaten v± n, die Drehrichtung d des Footprints und die Vergrößerungsverschiebung (Vergrößerungsoffset) r bereitgestellt. Durch den Empfang des zusätzlichen Eingangs- parameters, nämlich der Vergrößerungsverschiebung r wird es ermöglicht, erfindungsgemäß den Grad des gewichteten Flächenabtastens festzulegen, der für kleine oder dünne Footprints, insbesondere kleine oder dünne vierseitige Footprints, erforderlich ist.
Im Block 104 erfolgt eine sogenannte Kantenberechnung. Diese Kantenberechnung umfasst das Vergrößern des Footprints durch Verschieben der Kanten desselben basierend auf der 004/032062
empfangenen Forminformation und dem Vergrößerungsparameter r. Im Rahmen der Kantenberechnung 104 werden anschließend vertikale Kanten in die sich aufgrund der Vergrößerung ergebenden Zwischenräume eingebracht, ein Begrenzungsrechteck wird berechnet, und alle Kanten werden im Block 104 in linke und rechte Kanten sortiert, so dass im Block 106 die Attribute für die vergrößerten Scheitelpunktkanten bereitgestellt werden, und im Block 108 die der verschobenen Kanten zugeordnete Attribute bereitgestellt werden. Genauer gesagt wird im Block 106 die Footprintinformation Vj.*, die Ausrichtung der einzelnen Kanten a.± * und die sich einstellenden Zwischenräume gi* für den vergrößerten Footprint bereitgestellt. Im Block 108 werden die Scheitelpunktinformationen V , eine Ausrichtung der verschobenen Kante ai' so- wie entsprechende Kantenvektoren Si' bereitgestellt. Die im Block 108 bereitgestellten Informationen werden dem Block 110 zugeführt, in dem eine Verarbeitung bezüglich der verschobenen Kante durchgeführt wird. Im Block 110 wird zum einen eine Stufenübertrag pi* berechnet, welcher im Block 112 bereitgestellt wird. Die im Block 106 und im Block 112 bereitgestellten Parameter werden dem Block 114 zugeführt, in dem eine Verarbeitung der Scheitelpunktkante erfolgt.
Aus den Verarbeitungen der Scheitelpunktkante (Block 114) und der verschobenen Kante (Block 110) resultieren die in den Blöcken 116 und 118 (Fig. 1B) bereitgestellten Gewichtungstabellen für die Scheitelpunkt-Kanten und die verschobenen Kanten.
Basierend auf den so erzeugten Tabellen erfolgt im Block 120 eine Farbberechnung, wobei der Block 120 zusätzlich Informationen bezüglich der Textur vom Block 122 erhält. Die Farbberechnung im Block 122 ergibt dann die Pixelfarbe, die im Block 124 bereitgestellt wird und im Block 126 ausgege- ben wird.
Ist für den Footprint keine Vergrößerung erforderlich oder vorgesehen, so unterbleibt die Verschiebung der Kanten des Footprints. Das erfindungsgemäße Verfahren wird dann lediglich auf die ursprünglichen Kanten ausgeführt. Zusätzlich eingefügte Kanten existieren in diesem Fall nicht, bzw. sind für die Berechnung auf Null gesetzt.
In den Blöcken 110 bis 118 wird eine geeignete Datenstruktur für jede der Kanten des Footprints erstellt. Hierbei werden die nachfolgend erläuterten Schritte für jede Kante parallel durchgeführt. Zunächst wird eine Kante durch eine geeignete Anzahl von einfachen Treppenstufen angenähert, und alle Texel, welche durch eine Treppenfunktion einer linken Kante berührt werden, werden gesucht. Jedem aufgefundenen Texel wird dann ein Gewichtungswert zugeordnet, der den Bruchteil der verbleibenden Texelflache, die rechts von der Stufenfunktion liegt, entspricht. Analog werden alle Texel, die unter der darzustellenden Struktur liegen, und die durch die Treppenfunktion einer rechten Kante berührt werden, gesucht. Den so aufgefundenen Texeln wird dann jeweils ein Gewichtungsfaktor zugeordnet, der dem Bruchteil der verbleibenden Fläche jedes Texels entspricht, die links von der Treppenfunktion angeordnet ist. Anschließend werden alle Koordinaten und entsprechenden Gewichtungen in einer geeigneten, einzigartigen Datenstruktur gespeichert, die der -Kante des Footprints zugeordnet ist. Ferner wird allen Texeln ein Gewichtungswert von < +1 bzw. von > -1 zugeordnet, und zwar Texeln, die sich rechts von einer linken Kante bzw. einer rechten Kante - durch diese jedoch nicht berührt werden - und links von der rechten Kante des Begrenzungsrechtecks liegen. Diese Informationen werden zu der Datenstruktur hinzugefügt.
Vorzugsweise werden die so erzeugten Datenstrukturen gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung auf eine effizientere Art und Weise beurteilt, so dass jedes Texel, das durch den Footprint bedeckt wird, direkt durch die gespeicherten Koordinaten angesprochen werden kann, so dass nachfolgend dessen entsprechende Farbe mit dessen zugeordnetem Gewicht multipliziert (gewichtet) werden kann. Es wird darauf hingewiesen, dass jeder Gewichtungsfaktor die Summe der Gewichtungen derjenigen Kanten ist, welche in dem betrachteten Texel enthalten sind.
Im Block 120 in Fig. 1B wird eine Farbberechnung durchgeführt, wie sie im Stand der Technik an sich bekannt ist. Für diese Farbberechnung werden alle Gewichtungsfaktoren gesammelt und ebenso werden alle gewichteten Texel, welche durch den Footprint verwendet werden, gesammelt und an- schließend wird die gesammelte Farbe durch die gesammelten Gewichtungsfaktoren geteilt. Das Ergebnis stellt das aus der Texturabbildung wiedergewonnene und gefilterte Bildfragment dar, welches dem Pixel zugeordnet ist, das auf das Texturbild abgebildet bzw. projiziert werden sollte.
Hinsichtlich der in Fig. 1 wiedergegebenen Werte i' , a.±' und Si' bzw. Vj.*, a.± *, gi* wird darauf hingewiesen, dass sich die mit Apostroph versehenen Werte auf die verschobenen Kanten beziehen, wohingegen sich die mit einem Sternchen versehenen Werte auf die Scheitelpunkt-Kanten beziehen.
Der Vorteil der vorliegenden Erfindung besteht darin, dass das erfindungsgemäße Verfahren inhärent die Möglichkeit schafft, einen hohen Grad von Parallelität bei dessen Aus- führungen in einer konkreten Hardware-Implementierung zu verwenden. Ferner ermöglicht das erfindungsgemäße Verfahren dessen Implementierung in einer Hardware-Pipeline, so dass gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung die oben beschriebenen Verfahrensschritte hardwaremäßig in unterschiedlichen Pipeline-Stufen realisiert sind. Vorzugsweise sind diejenigen Verfahrensschritte, die oben beschrieben wurden und die die Datenstruktur für jede Kante erzeugen, typischerweise als Hardwaremodul implementiert, und werden für jede Kante parallel instanti- iert (aufgerufen) . Diese parallel instantiierten Module stellen selbst wieder eine Pipeline-Stufe der gesamten Hardware-Pipeline dar. Der grundsätzliche Prozess zur Wiedergewinnung der Pixelfarbe von einem Texel-Array, welches durch einen vierseitigen Footprint bedeckt wird, besteht darin, eine nicht- gewichtete Flächenabtastung bezüglich dieses Footprints durchzuführen. Dies bedeutet, dass die Farbkomponenten des Texels zunächst über den Footprint integriert werden, und anschließend das Ergebnis durch die summierte Fläche des Footprints geteilt wird. Das Berechnen des Integrals erfordert das vorherige Multiplizieren jedes Texels durch einen geeigneten Gewichtungsfaktor. Der Gewichtungsfaktor beträgt 1,0 für diejenigen Texel, welche vollständig unterhalb des Footprints angeordnet sind. Erfindungsgemäß wird jedes Texel, welches nur teilweise durch den Footprint bedeckt wird, also am Rand des Footprints liegt, ein Gewichtungs- faktor zugeordnet, welcher proportional zur Größe der bedeckten Fläche ist.
Somit erfüllt das erfindungsgemäße Verfahren die folgenden zwei Aufgaben, die bisher beschrieben wurden, nämlich die Identifizierung aller Texel, welche vollständig oder teilweise durch den vierseitigen Footprint bedeckt sind, und die Berechnung eines Gewichtes für jedes Texel und die Zuordnung dieses Gewichtungsfaktors zu dem entsprechenden Texel.
Ferner wird erfindungsgemäß ein Überblenden realisiert, welches durch den zusätzlichen Parameter, den Vergrößerungsparameter r gesteuert wird, um ein Überblenden von einer ungewichteten in eine gewichtete Flächenabtastung durchzuführen.
Der Hintergrund des gerade beschriebenen Aspekt ist darin zu sehen, dass eine ungewichtete Flächenabtastung in dem wiedergewonnenen Bild dann erkennbare Aliasing-Artefakte erzeugt, wenn der Footprint stark verformt, z. B. Formen aufweist, welche lediglich sehr dünne und sehr längliche Flächen umfassen. Dies ist ebenfalls der Fall, wenn die Fläche, welche durch den Footprint bedeckt wird, wesentlich kleiner wird als die Fläche eines quadratischen Texels des Texelgitters.
Um die gerade erwähnten Artefakte in diesen Fällen zu ver- meiden, wird erfindungsgemäß die Fläche des Footprints durch Verschieben der vier Kanten, welche die Grenze des Footprints wiedergeben, erweitert. In den oben beschriebenen Fällen nähert dies einen Footprint an, welcher als die Projektion eines Filterkernels interpretiert werden kann, der die Charakteristik eines gewichteten Flächenabtastens erfüllt, wobei der Filterkernel seine Nachbarn überlappt und eine bilinear ähnliche Verteilung aufweist.
Bei der oben dargelegten Beschreibung des bevorzugten Aus- führungsbeispiels der vorliegenden Erfindung gemäß Fig. 1 wird darauf hingewiesen, dass das erfindungsgemäße Verfahren im wesentlichen die Blöcke 100 bis 118 umfasst, welche dann die erforderlichen Daten für eine im wesentlichen herkömmliche Farbberechnung bereitstellen. Ferner wird hin- sichtlich der Fig. 1 angemerkt, dass alle rechteckigen Blöcke die Hauptverarbeitungsschritte wiedergeben, welche nachfolgend für bevorzugte Ausführungsbeispiel der vorliegenden Erfindung im Detail beschrieben werden. Die Ergebnisse der Verarbeitungsschritte sind in Datenstrukturen ge- speichert, die in Fig. 1 in den parallelogrammförmigen Blöcken wiedergegeben sind. Diese Ergebnisse werden als Eingänge für die nächsten Verarbeitungsstufen herangezogen.
Die in Fig. 1 im Block 100 eingegebenen Daten und im Block 102 bereitgestellten Daten umfassen die Informationen bezüglich des Footprints iιn, welcher gemäß einem bevorzugten Ausführungsbeispiel konvex ist und bei dem die Höhe und die Breite keiner der Kanten einen vorbestimmten maximalen Wert Emax überschreiten darf. Ferner wird eine Drehrichtung d für den Footprint eingegeben, wobei d = +1 für eine Drehrichtung im Uhrzeigersinn und d = -1 für eine Drehrichtung entgegen dem Uhrzeigersinn steht, d wird auf 0 gesetzt, wenn die Drehung aufgrund der Verformung des Footprints nicht mehr festgestellt werden kann. Ferner wird die Vergrößerungsverschiebung r eingegeben, welche vorzugsweise auf einen Wert zwischen 0,0 und 0,5 beschränkt ist.
Bei der oben erwähnten maximalen Kantenlänge Eπ,ax handelt es sich vorzugsweise um einen Hardware-codierten Wert, der eine Potenz von 2 sein sollte, wobei hier der Wert 8 bevorzugt wird. Höhere Werte werden den Rasterprozess, also die Verarbeitungsgeschwindigkeit des Graphiksystems, signifi- kant verlangsamen und die erforderlichen Datenstrukturen deutlich vergrößern. Würde keine 2er Potenz verwendet, wären die mit Emax verbundenen Berechnungen in Hardware nur aufwendig zu realisieren.
Fig. 2 zeigt ein Beispiel für eine Darstellung eines Footprints im Texturraum. Der Texturraum ist bei dem dargestellten Beispiel durch die Koordinaten x und y aufgespannt. Der Footprint ist durch die vier Scheitelpunktvektoren v0 bis v sowie die vier Kantenvektoren s0 bis s3 de- finiert. Ferner ist durch die Richtung der Kantenvektoren s0 bis s3 die Drehrichtung d des Footprints festgelegt. Fig. 2 zeigt die typische Form eines Footprints in dem Texturraum. Der Footprint ist durch dessen Umgrenzung definiert, die wiederum aus den vier Kanten s0 bis s3 besteht, und daher oft auch als vierseitiges Element bezeichnet wird. Die vier Scheitelpunkte v0 bis v3, die durch die vier in Fig. 2 gezeigten Vektoren im Texturraum positioniert sind, definieren die Kanten s0 bis s3.
Wie nachfolgend noch näher beschrieben wird, besteht ein Hauptaspekt der vorliegenden Erfindung darin, dass horizontale und vertikale Stufenfunktionen angewandt werden, um jede der Kanten anzunähern. Um jedoch einen konsistenten und einzigartigen Gewichtungsalgorithmus zu erhalten, der für alle Kanten s0 bis s3 parallel abgearbeitet werden kann, wird für die weitergehende Berechnung angenommen, dass die Kanten lediglich Beiträge zu denjenigen Texeln liefern, welche rechts von einer Kante angeordnet sind. So- mit werden Werte von linksseitigen Kanten zu dem effektiven Gewichtungsfaktor, der sich für alle Kanten ergibt, addiert, und Werte von rechtsseitigen Kanten werden von dem effektiven Gewichtungsfaktor, der von allen Kanten resul- tiert abgezogen. Die Kantenattribute links, rechts, unten und oben sind in Fig. 3 dargestellt.
Wie ferner aus Fig. 3 zu entnehmen ist, werden Kanten, die als unten links bzw. oben rechts liegend eingestuft werden, durch vertikale Stufenelemente angenähert, wohingegen Kanten, welche als unten rechts bzw. oben links liegend angesehen werden durch horizontale Stufenelemente angenähert werden. Die gerade beschriebenen horizontalen und vertikalen Stufen werden nachfolgend noch detaillierter beschrie- ben.
Zunächst wird anhand der Fig. 4 ein erster Hauptverarbeitungsschritt des erfindungsgemäßen Verfahrens nach einem bevorzugten Ausführungsbeispiel näher erläutert, nämlich die in Fig. 1A im Block 104 allgemein angegebene Kantenberechnung. Im Block 128 empfängt das Verfahren zur Kantenberechnung die hierfür erforderlichen Daten, nämlich die Footprintdaten Viin und die Vergrößerungsverschiebung r, welche in den Blöcken 130 und 132 der weiteren Verarbeitung bereitgestellt wird. Die Kantenberechnung erzeugt die angenäherte Fläche des Footprints, wobei eine positive Filtervergrößerung, angezeigt durch den Vergrößerungsverschiebung r, mit r > 0, mit einbezogen wird. Jede Kante des ursprünglichen Footprints wird von dem Mittelpunkt weg bewegt, durch Hinzufügen einer Verschiebung mit der Größe r. Diese Kanten werden im weiteren als verschobene Kanten bezeichnet. Als ein Ergebnis dieser „Explosion" ergeben sich horizontale und vertikale Zwischenräume zwischen den ursprünglichen Scheitelpunkten des Footprints. Horizontale Zwi- schenräume können bei dem erfindungsgemäßen Verfahren gemäß dem beschriebenen Ausführungsbeispiel ignoriert werden, vertikale Zwischenräume werden jedoch einfach durch verti- kale Kanten, die sogenannten Scheitelpunktkanten aufgefüllt.
Um die Berechnung der Kanten- und Scheitelpunktattribute zu vereinfachen und hinsichtlich der erforderlichen Hardware- Implementierung weniger aufwendig zu gestalten, werden im Block 134 Footprints, welche eine Drehrichtung entgegen dem Uhrzeigersinn aufweisen, stets in Footprints mit einer Drehrichtung im Uhrzeigersinn umgewandelt (siehe Fig. 2) . Die Umwandlung erfolgt gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
0,.,2>3
Figure imgf000017_0001
o,ι,2,3 αn = im Block 128 empfangene Eingangsdaten.
Die gemäß der obigen Berechnungsvorschrift erhaltenen Footprintdaten v0,ι,2,3 werden im Block 136 zur weiteren Verarbeitung bereitgestellt.
Basierend auf der im Block 136 bereitgestellten Footprin- tinformationen v± ergeben sich die Kantenvektoren gemäß der nachfolgenden Berechnungsvorschrift :
=vi+1-v,
Ferner werden die sogenannten Ausrichtungsvektoren a. für die Kanten berechnet, um die entsprechenden Kanten in linke/rechte und obere/untere Kanten zu klassifizieren. Basie- rend auf der in Fig. 3 gezeigten Einteilung wird für jede Kante bestimmt, in welchem Quadrat dieselbe liegt. In der nachfolgenden Tabelle sind die Werte für die zwei Komponenten des Kantenorientierungsvektors a*, nämlich für die Komponenten aι,x und aj..y wiedergegeben für verschiedene Vorzei- chen der Komponenten Sj.fX bzw. sι,y des Kantenvektors si.
Figure imgf000018_0001
In der obigen Tabelle zeigt ein Wert von +1 eine Ausrichtung nach rechts entlang der x-Achse und nach unten in Richtung der y-Achse in dem in Fig. 3 aufgespannten Texturraum wieder. Ein Wert von -1 zeigt eine Ausrichtung nach links in Richtung der x-Achse und eine Ausrichtung nach o- ben in Richtung der y-Achse. Horizontale Kanten und vertikale Kanten werden die gerade genannten Werte zugeordnet. Eine „0-Kante" (in einem Punkt verformte Kante) resultiert zu einem Vektor a = 0 bzw. zu einem Wert für a = 0.
Die in der Tabelle wiedergegebenen Orientierungen werden verwendet, um die Richtung einer Vergrößerungsverschiebung festzustellen. Der Footprint wird auf vier verschobenen Kanten v±' , Si' erweitert, abhängig von der Größe des beschränkten Vergrößerungsparameters r. Tatsächlich wird jeder der ursprünglichen Scheitelpunkte auf die in Fig. 5A und 5B beschriebene und wiedergegebene Art und Weise um den Vergrößerungsparameter r verschoben, wodurch sich die verschobenen Kanten s±' einstellen. Nachdem alle Kanten von links nach rechts abgetastet werden sollten, müssen der Startpunkt und der Endpunkt für diejenigen Kanten, welche als unten liegend festgestellt wurden, vertauscht werden, was gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift durchgeführt wird:
1 "l ^i = _ai,y ' wenn a; <0 vj =r
|v.+, sonst Die gerade beschriebenen Berechnungen erfolgen in Fig. 4A zum einen im Block 138, worauf sich die Kantenvektoren Si ergeben, die im Block 140 bereitgestellt werden. Basierend auf diesen Informationen werden im Block 142a die verscho- benen Kantenvektoren Si' berechnet und im Block 142b für die Ausgabe im Block 150 bereitgestellt. Basierend auf diesen Informationen wird im Block 142 die Ausrichtung der Kanten berechnet, und anschließend im Block 144 (Fig. 4B) zur weiteren Verarbeitung bereitgestellt. Im Block 146 wer- den basierend auf den im Block 144 bereitgestellten Ausrichtungen a.±' , basierend auf den im Block 136 bereitgestellten Footprintdaten A sowie basierend auf dem im Block 132 bereitgestellten Vergrößerungsparameter r die Verschiebung für die verschobenen Kanten berechnet, so dass im Block 148 die verschobenen Kanteninformationen v±' bereitgestellt werden und im Block 150 ausgegeben werden.
Zwischenräume, die sich aufgrund der Verschiebung jedes Scheitelpunkts des Footprints ergeben, werden durch die vertikalen Scheitelpunkt-Kanten gehandhabt. Die Verschiebung dieser Kanten hängt von der Ausrichtung der zwei benachbarten Kanten, die eine Länge von größer 0 aufweisen ab. Diese Kanten werden mit j* indiziert, abhängig von dem Scheitelpunktindex i, gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift:
Figure imgf000019_0001
3 wenn aj_, = aj_2 = 0 j"(i) = - 22 wweennnn a[_, =0 i-1 sonst
Unter Verwendung dieser Indexübersetzung ergibt sich der modifizierte Ausrichtungsvektor aj.* und die Zwischenraumflag θi* wie folgt:
Figure imgf000020_0002
X steht für einen Wert, der keine Auswirkungen auf folgende Berechnungen hat und daher beliebig sein kann. Der Basispunkt für die Scheitelpunktkante und die Größe des Vergrößerungszwischenraums ergibt sich dann gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift :
v.=Vi+r-ä.
&
Figure imgf000020_0001
Die Bedingung a± = 0, woraus folgt gi = 0, stellt sicher, dass eine „0-Kante", die zwei benachbarte und auch identische Scheitelpunkte mit den gleichen Attributen aufweist, lediglich eine Zwischenraumkante für die nachfolgende Te- xelgewichtung erzeugt. Die oben beschriebenen Berechnungs- schritte erfolgen zunächst im Block 152, in dem basierend auf der im Block 144 bereitgestellten Ausrichtung aj und basierend auf dem Vergrößerungsparameter r eine Ausrichtung der Scheitelpunkt-Kanten berechnet wird, die dann im Block 154 bereitgestellt wird. Ferner wird der Vergrößerungszwi- schenraum gi* im Block 156 bereitgestellt, der ebenfalls durch die Berechnung im Block 152 erzeugt wurde. Basierend auf den Ausrichtungen a.± *, die im Block 154 bereitgestellt wurden, erfolgt im Block 156 die Berechnung der Verschiebung für die Scheitelpunktkanten Vi*, die dann im Block 158 bereitgestellt werden. Im Block 150 werden dann die verschobenen Scheitelpunktkanten i*, die Ausrichtungen ai*, der VergrößerungsZwischenraum gi*, die im Block 144 bereitgestellte Ausrichtung a^' , die verschobenen Kantenvektoren Si' sowie die verschobenen Scheitelpunktinfor- mationen vA' ausgegeben, wie dies in Fig. 1A in den Blöcken 106 und 108 wiedergegeben ist.
Basierend auf den ausgegebenen Attributen v±' , S ' und a±' erfolgt nachfolgend in einem zweiten Hauptverarbeitungs- schritt die Verarbeitung der verschobenen Kanten, welche in Fig. 1A im Block 110 angegeben ist. Für die Verarbeitung der verschobenen Kanten werden dieselben durch eine Anzahl von Stufen approximiert, wobei die Anzahl der Stufen von der Größe der verschobenen Kante abhängt. An dieser Stelle sei darauf hingewiesen, dass 0-Kanten mit einem Wert aA = 0 ausgelassen werden. Ferner soll die Breite und die Höhe einer Stufe einen Wert von 1,0 nicht überschreiten. Zunächst uss also die Anzahl der Schritte nStufe pro Kante bestimmt werden. Dies erfolgt gemäß der nachfolgenden Berechnungs- Vorschrift:
Smax = maX\|S.,x|' |S.,y V ni,Stufe = I Smax I
Figure imgf000021_0001
Bevorzugt wird das mit 2) bezeichnete Berechnungsverfahren, da dieses durch den hartcodierten Maximalwert für die Kantenlängen Emax signifikant vereinfacht werden kann und ferner aufwendige Teiler durch einfache Schiebeoperationen in der nachfolgenden Berechnung der Stufenvektoren qi ersetzt. Die Stufenvektoren qi berechnen sich gemäß der nachfolgend wiedergegebenen Berechnungsvorschrift: q, •s. n.i..Stufe
Um das gleiche Gewichtungsverfahren bei allen Scheitelpunk- ten zu erhalten, sind zwei unterschiedliche Stufen- Verfahren erforderlich. Die Stufenausrichtung 0±' ist 0, also horizontal, für oben rechts liegende Kanten und unten links liegende Kanten. Die Stufenausrichtung θ±' ist 1, ist also vertikal, für oben links liegende Stufen und für unten rechts liegende Stufen. Horizontale Stufen beziehen sich auf horizontale Schnittpunkte einer Treppenfunktion mit der entsprechenden Kante am Ende des Stufenvektors qi. Ebenso beziehen sich vertikale Stufen auf vertikale Schnittstellen der Stufenfunktion mit der jeweiligen Kante am Ende des Stufenvektors qi, wie dies aus Fig. 6 zu entnehmen ist. Ein Streifen ist ein vertikales Stufenelement, welches verwendet wird, um die Gewichtungen der Texel zu bestimmen. Für die Stufenausrichtung θ±' gilt die folgende Berechnungsvorschrift:
wenn ((a; x < θ)und (as y > θ))oder ((atx > θ)und (af y < θ))
Figure imgf000022_0001
sonst
Nachdem die Kanten mit einer Stufenausrichtung θi' gleich 1 ein vertikales Element mehr aufweisen als die Anzahl der Stufen ni,stufe, wäre ein zusätzlicher Gewichtungszyklus erforderlich. Statt dessen kann dieser jedoch auf die Verarbeitung einer benachbarten Scheitelpunkt-Kante mit derselben x Position verschoben werden, was im Zusammenhang mit der vorliegenden Erfindung als Stufenübertrag (step propa- gation) bezeichnet wird, und nachfolgend anhand der Fig. 9 noch näher erläutert wird.
Eine Streifenverarbeitungsschleife ist für jede Kante vorgesehen, und verarbeitet eine Streife pro Zyklus, wie dies nachfolgend noch detaillierter anhand der Fig. 8 beschrieben wird. Jeder Zyklus kann ein oder zwei Texel gewichten, 21
wobei die Eingangsparameter für die Verarbeitungsschleife v' . <I. nStufe. a'y unc* θλ sind. Die Schleife erzeugt eine Datenstruktur und füllt diese mit entsprechenden Daten, die in der nachfolgenden Tabelle wiedergegeben sind:
yOs y ist die ganzzahlige Koordinate einer Texelrei- he k = 0. Dies ist die oberste Reihe für Kanten für die gilt 0Λ = 1, und ansonsten die unterste Reihe.
Anzahl der Texelreihen x'ofs.k] x ist die ganzzahlige Koordinate des am meisten links liegenden gewichteten Texels in dieser Reihe
X num L J Anzahl der gewichteten Texel dieser Reihe 'ofs.k] Gewichtungsindex 1 für das am meisten links liegende Texel w'prop[k] |Gewichtungsfaktor für Texel in dieser Reihe, die außerhalb des am weitesten rechts liegenden und
[gewichteten Texels liegen 7teχ[l] Texelgewichtung = 0,0 bis 1,0
In Fig. 7 sind die in der obigen Tabelle wiedergegebenen Einträge graphisch dargestellt. Der höchstmögliche Wert für k und 1 hängt bei dem bevorzugten Ausführungsbeispiel von der maximal zulässigen Kantenerstreckung Emax ab, so dass gilt:
k = 0, ..., Emax, und
1 — U , •••, -_ raax .
Für den Stufenübertrag gilt die folgende Berechnungsvorschrift:
Figure imgf000023_0001
004/032062
22
Anhand der Fig. 8 wird nachfolgend ein bevorzugtes Ausführungsbeispiel der oben erwähnten Streifenverarbeitungsschleife näher erläutert.
Hinsichtlich der nachfolgenden Beschreibung einer Streifenverarbeitungsschleife in Fig. 8 wird darauf hingewiesen, dass hier auf die explizite Angabe des Index i verzichtet wurde, da dieser bei allen Werten auftauchen würde. Beschrieben wird lediglich der Vorgang für eine Kante, wobei das anhand der Fig. 8 beschriebene Verfahren dann im Regelfall für alle Kanten parallel durchgeführt wird. In Fig. 8 ist ferner der Index 1 angegeben, der für die Verarbeitung der Streifen lediglich die Anzahl der durch eine Kante getroffenen Texel (siehe Fig. 7) zählt.
In einem anfänglichen Abschnitt 160 werden die Koordinaten für den ersten Streifen (Slice) , siehe auch die Vektoren ui0 in Fig. 9, initialisiert. In dem Block 162 werden die Koordinaten des Anfangspunktes ux, uy0 sowie die Höhe duy (siehe Fig. 10B) festgelegt, wobei die tatsächlichen Koordinaten des ersten Streifen vom Beginn der betrachteten Kante, was durch den entsprechenden Anfangsscheitelpunkt v angezeigt ist, und von der Orientierung der Kante, was durch θ bzw. ay angezeigt wird, abhängen. Daher wird zur Festlegung des tatsächlichen Anfangspunktes zunächst im Block 164 bestimmt, ob für den betrachteten, im Block 162 festgelegten Punkt eine horizontale Stufenausrichtung θΛ existiert oder nicht. Ist die Stufenorientierung horizontal, so geht das Verfahren zum Block 166, in dem die Koor- dinate ux des Anfangspunktes um den Wert qx/2 erhöht wird. Die übrigen im Block 162 festgelegten Koordinaten bzw. Parameter bleiben gleich.
Handelt es sich bei der im Block 164 festgestellten Stufen- ausrichtung nicht um eine horizontale sondern um eine vertikale Ausrichtung, so geht das Verfahren zum Block 168, in dem zunächst die Ausrichtung ay der betrachteten Kante bestimmt wird. Handelt es sich bei der betrachteten Kante um eine obere Kante, so geht das Verfahren zum Block 170, in dem der Koordinatenwert ux um den Wert qx erhöht wird. E- benso wird im Block 170 der Koordinatenwert uy0 um den Wert qy/2 erhöht.
Wird im Block 168 festgestellt, dass die betrachtete Kante eine untere Kante ist, so geht das Verfahren zum Block 172, in dem die Höhe duy halbiert wird.
Die so festgelegten Anfangskoordinaten für den betrachteten Streifen werden dann dem Block 174 bereitgestellt. Im Block 174 werden zunächst die verwendeten Indizes initialisiert, wobei k die Texelreihen zählt, 1 die Texel insgesamt zählt, und n die Streifen/Slices zählt. Die Koordinate der ersten Texelreihe yOfs entspricht dem Texel unter dem Slice- Anfangspunkt, wobei in der zweiten Zeile im Block 174 bezüglich des Anfangskoordinatenwertes uy0 die sogenannte Floor-Funktion angezeigt ist, welche den nächsten ganzzahligen Wert in Richtung -α> ausgehend von dem angegebenen Wert für uy0 wiedergibt.
Die Anzahl der betroffenen Reihen und der betroffenen Texel bei der Bearbeitung des Streifens wird in der ersten Reihe aus 1 initialisiert, wie dies durch y'num = x'num [0] = 1 wiedergegeben ist. Ferner wird die x Koordinate xOfs des Beginns der ersten Reihe gleich der Slice-Position ux sein, wobei hier wieder der nächste ganzzahlige Wert ausgehend von ux in Richtung -∞ gewählt wird. Ferner wird die Gewichtungsinformation w'0fX für die erste Reihe und das erste Te- xel zum Wert 0 initialisiert.
Basierend auf den im Block 174 initialisierten Werten fährt das Verfahren bei Block 176 in Fig. 8B fort. Im Block 176 wird überprüft, inwieweit sich die zur Zeit betrachtete x- Position aufgrund späterer Berechnungen geändert hat. Ausgehend vom Block 174 wird festgestellt, dass die zwei im Block 176 angegebenen Parameter gleich sind, so dass das Verfahren in diesem Fall zum Block 178 weiter geht, in dem das erste Texel gewichtet wird. Im Block 178 erfolgt eine Bestimmung der Gewichtungen für das erste von dem Streifen getroffene Texel, was gemäß den im Block 178 wiedergegebenen Berechnungsvorschriften bestimmt wird. Im Block 178 wird zunächst der Streifen-Endpunkt uyi berechnet, und anschließend die dazugehörige ganzzahlige Texel-Koordinate ylint. basierend auf dem nächsten ganzzahligen Wert von uyι in Richtung -∞. Anschließend wird der Texel-Bruchteil wx berechnet, der sich durch den vertikalen Schnitt ergibt, wie dies in Fig. 7 dargestellt ist. Ferner wird der Bruchteil wy0 berechnet, der sich durch den horizontalen Schnitt ergibt. Die angegebene Fallunterscheidung berücksichtigt, welche Richtung der Streifen aufweist (siehe Fig. 10B) und ob ein oder zwei Texel getroffen sind.
Basierend auf den so bestimmten Informationen betreffend die Bruchteile des horizontalen und vertikalen Schnittes wird im Block 178 der Gewichtungsbeitrag w'teχ[l] des Streifens zum aktuellen Texel bestimmt, in dem der existierende Wert um das Produkt aus wx mal wy0 erhöht wird. Abschließend wird noch der an das rechts liegende Texel weitergegebene Gewichtungsbeitrag w'prop bestimmt, in dem der existierende Wert für w'prop um den Wert wy0 erhöht wird.
Wurde im Block 176 festgestellt, dass sich die x Position durch eine spätere Berechnung geändert hat, also ein neues Texel in der gleichen Reihe betrachtet wird, so werden zunächst der Index 1 und die Anzahl der bereits bearbeiteten Texel in dieser Reihe x'num inkrementiert . Ferner wird die Gewichtung für das neue Texel w'teχ[l] auf w'prop[k] gesetzt, so dass die Gewichtungsbeiträge der vorhergehenden Texel weitergegeben werden.
Vom Block 180 geht das Verfahren dann zu Block 178, in dem. dann eine entsprechende Gewichtung des neuen Texels auf die oben beschriebene Art und Weise durchgeführt wird. Wurde die Berechnung der Gewichtung eines Texels im Block 178 abgeschlossen, so geht das Verfahren zu Block 182 in dem festgestellt wird, ob der Endpunkt des Streifens in einer anderen Reihe liegt als der Anfangspunkt. Ist dies der Fall, so geht das Verfahren zum Block 184 in dem ein neues Texel in einer neuen Reihe festgelegt wird, also verfahrenstechnisch in die nächste zu betrachtende Reihe gesprungen wird, so dass zunächst die Reihenanzahl y'nu. der Reihenindex k und der Texelindex 1 inkrementiert werden. Fer- ner wird die Texelanzahl x'num.k] neu auf den Wert 1 initialisiert und die Koordinate des ersten Texels in der neuen Reihe x'ofs wird bestimmt. Zusätzlich wird der Index für das Wtex-Array, bei dem das Gewicht für das erste Texel dieser Reihe gespeichert ist, festgelegt.
Vom Block 184 geht das Verfahren zum Block 186, in dem die Gewichtung für das zweite von dem Streifen getroffene Texel berechnet wird, ähnlich wie im Block 178, so dass auf die dortige Beschreibung verwiesen wird.
Nach dem Block 186 geht das Verfahren zum Block 188 in dem die x-Position der gerade betrachtete Streifen gespeichert wird und der Index n inkrementiert wird, um zum nächsten Streifen zu gelangen. Im Block 190 wird bestimmt, ob der Wert n kleiner ist als der Wert nStufe. und wenn dies nicht der Fall ist, wird festgestellt, dass der letzte Streifen überarbeitet wurde. In diesem Fall endet das Verfahren. Wird jedoch festgestellt, dass noch nicht der letzte Streifen bearbeitet wurde, geht das Verfahren zum Block 192, in dem die Koordinaten für den nächsten Streifen berechnet werden. Hierfür wird die Koordinate ux um den Wert qx erhöht, und ebenso wird die Koordinate uy0 um den Wert qy erhöht. Die Fallunterscheidung bei der Betrachtung von duy berücksichtigt den in Fig. 9 bezüglich der Kanten s2 und s3 gezeigten Fall, gemäß dem der letzte Streifen nur die halbe Länge aufweist. Bei den Kanten s0 und si ist dies bereits der erste Streifen, was bereits bei der anfänglichen Initialisierung im Block 160 berücksichtigt wurde. Basierend auf den im Block 192 festgelegten Daten werden im Block 194 die Texelkoordinaten des Anfangspunkts neu berechnet, und dann ein neuer Gewichtungsberechnungsdurchlauf für diesen Streifen durchgeführt.
Nachfolgend wird die in Fig. 1A im Block 114 angegebene Scheitelpunkt-Kanten-Verarbeitung näher beschrieben, welche die vertikalen Kanten behandelt, die hinzugefügt werden, um die vertikalen Zwischenräume auszufüllen.
Grundsätzlich stellen die Gewichtungstabellen für die Scheitelpunkt-Kanten die gleichen Parameter bereit, wie sie für die verschobenen Kanten herangezogen werden. Die I ple- mentierung dieser Gewichtungstabellen ist jedoch weniger aufwendig, da die Anzahl der möglichen Reihen wesentlich niedriger ist, und die Indizierung der Gewichtungen und Reihen sich nicht unterscheiden, nachdem die Ausrichtung der betrachteten Kanten stets vertikal ist.
Die nachfolgende Tabelle gibt die Gewichtungen für die Scheitelpunkt-Kanten wieder.
y ofS |y-Ganzzahlkoordinate der Texelzeile k = 0 x*ofs |x-Ganzzahlkoordinate der Texelreihe k = 0
Anzahl der Texelzeilen
Wtex.k] jTexelgewichtung -*-m Bereich von 0,0 bis 1,0
Wprop.k] Gewichtungen für die Texel in dieser Reihe, welche rechts des gewichteten Texels liegen, wel- ches am weitesten rechts angeordnet ist
Der VergrößerungsZwischenraum g und der Stufenübertrag p werden zu der Gesamtlänge einer Scheitelpunkt-Kante addiert, wie dies in Fig. 10A dargestellt ist, so dass die Koordinaten (Anfangspunkt und Endpunkt) einer Scheitelpunkt-Kante gemäß der nachfolgenden Berechnungsvorschrift ergeben:
Figure imgf000029_0001
X = Vs.
Die Kantenlänge ist g + p = 2 - r + p, mit max. Wert für r und p = 0,5. Aus der obigen Berechnungsvorschrift ergibt sich eine maximale Länge von 0,5 " 1,0 + 2 ' 0,5 = 1,5, was die Anzahl von Texelreihen auf 3 begrenzt. Die Tabellenelemente für k = 0, 1, 2 für eine Scheitelpunkt-Kante i werden gemäß der nachfolgenden Berechnungsvorschrift bestimmt:
Figure imgf000029_0002
y;„« =Ly'J
Xint = Xofs = LXJ
* — ' 1
"num -' int J^int w prap W = ∞in(yint + k + 1, y') - max(yint + k, y) w [ ]= w;rop[k].(xint +l-x)
Nachdem nun alle Gewichtungstabellen für die entsprechenden Kanten, also die Scheitelpunkt-Kanten und die verschobenen Kanten bestimmt wurden, und gemäß Fig. IB in den Blöcken 116 und 118 bereitgestellt werden, kann nun die abschließende Farbberechnung gemäß Block 120 in Fig. IB erfolgen. Nachfolgend wird ein Beispiel für den letzten, verbleibenden Verarbeitungsschritt aus Fig. 1, nämlich den Block 120 näher beschrieben. Diese Farbberechnung besteht hauptsächlich aus einer Schleife, welche die Datenstrukturen, welche auf die oben beschriebene Art und Weise für jede verschobene Kante und jede vertikale Kante erzeugt und gespeichert wurden, beurteilt. Genauer gesagt wird bei dieser Farbbe- rechnung auf alle Texel Bezug genommen, welche durch den vergrößerten Footprint berührt oder überdeckt werden, für jedes dieser Texel wird eine Gewichtung bestimmt. Für ein Texel (x, y) berechnet sich der Gewichtungsfaktor w Σ [0,0, 1.0] zu der Summe aller Kantenbeiträge, die aus den Gewich- tungstabellen ausgelesen werden. Der Prozess zur Berechnung der sich ergebenden Pixelfarbe hängt im Detail von der das Pixel umgebenden Region ab, z. B. von der Organisation des Zugriffs auf den Texturspeicher. Nachfolgend wird ein funk- tionelles Beispiel für die Farbberechnungsprozedur anhand der Fig. 11 näher erläutert, wobei die in Fig. 11 dargestellte Prozedur eine Schleife ist, welche mehrfach durchlaufen wird, um alle betroffenen Texel abzuarbeiten. Hinsichtlich der Fig. 11 wird darauf hingewiesen, dass der In- dex i die Parallelität der angegebenen Rechnungen für vier Kanten beschreibt. Gleichungen, in denen i auf beiden Seiten des Gleichheitszeichens vorkommt, beschreiben vier Gleichungen, eine für jede Kante (i = 0, 1, 2, 3) . i- indizierte Werte als Funktionsargument beschreiben vier Ar- gumente. Der Index 1 gibt die durch eine Kante getroffenen Texel innerhalb einer Reihe an.
In Fig. 11A werden im Block 200 zunächst alle Farbkomponenten und die Summe aller Texelgewichte auf 0 initialisiert. Bei den Farbkomponenten handelt es sich im allgemeinen um RGB-Komponenten und die α-Komponente, wobei die Gleichungen eine Berechnung nur für eine abstrakte Komponenten Farbe^ zeigen. Nachfolgend zu der Initialisierung der Farbkomponenten und der Summe aller Texelgewichte wird im Block 202 eine unterste und eine oberste Texelreihe bestimmt, wobei die kleinste und die größte y-Koordinate aller Texel, die durch die Werte in den oben beschriebenen zwei Tabellen beschrieben werden, ermittelt werden muss. Zunächst werden ein minimaler und ein maximaler Wert jeweils einer Kante (y'i,min und y'i,max) bestimmt, und zwar aus der oben wiedergegebenen Tabelle betreffend die verschobenen Kanten. Durch die angegebene Gleichung werden acht Gleichungen beschrieben, nämlich für die Bestimmung von ymin und ymax für jeweils vier Kanten. Die angegebene Fallunterscheidung in der Zu- Weisung berücksichtigt, ob die Tabelle in Richtung steigender oder fallender y-Koordinaten aufgebaut wurde. 004/032062
29
Ferner wird im Block 202 basierend auf der oben genannten Tabelle für die Scheitelpunkt-Kantenverarbeitung die minimalen und die maximalen Werte einer Kante y*i,min und y*i,maχ bestimmt. Anschließend wird aus den für die Scheitelpunkt- Kanten und die verschobenen Kanten bestimmten minimalen Werten acht minimale Werte ymin bestimmt, und ebenso werden aus den bestimmten maximalen Werten für die verschobenen Kanten und die Scheitelpunkt-Kanten acht Maximalwerte ymax bestimmt. Nachdem die Bestimmung der untersten und der o- bersten Texelreihe auf diese Art und Weise durchgeführt wurde, geht das Verfahren zum Block 204, in dem der Schleifenwert y, welcher eine Texel-Reihe beschreibt, auf den Wert ymin initialisiert wird. Die Schleife wird für y Werte von ymin bis ymax durchlaufen.
Anschließend werden im Block 206 die in den oben beschriebenen Tabellen angegebenen Werte herangezogen, um die in diesen enthaltene Verschiebung zu kompensieren. So wird zunächst der Schleifenparameter k'i festgelegt, der für die verschobenen Kanten gilt. Die Werte der entsprechenden Tabelle enthalten lediglich Werte für xnum Reihen, beginnend bei der ganzzahligen y Koordinate der Texelreihe 0 (y0fS) • Diese Verschiebung wird von dem Schleifenwert abgezogen, um den Reihenindex k'i innerhalb der Tabelle für die verscho- benen Kanten zu erhalten. Ähnlich wie oben bezüglich des Blocks 202 beschrieben wurde, muss auch hier berücksichtigt werden, ob die zugrundeliegende Tabelle die y Koordinaten in aufsteigender oder absteigender Reihenfolge enthält.
Anschließend erfolgt eine entsprechende Entfernung der Verschiebung für die' Werte aus der Scheitelpunkt- Kantentabelle, um so den Reihenindex k* ± zu erhalten. Ferner werden die Werte der Flags Δ i und Δ*χ bestimmt, welche anzeigen, ob eine betrachtete Kante über dem aktuellen y liegt, also einem Beitrag zu den Texel-Gewichten liefern wird. 2004/032062
30
Anschließend werden im Block 208 das am meisten links liegende und das am meisten rechts liegende Texel in der betrachteten Reihe bestimmt. Für die aktuelle Reihe wird nun die kleinste und größte x-Koordinate aller Texel bestimmt, die durch die Tabellen gewichtet werden, also die x Koordinaten x'i.min und x'i.max für die verschobenen Kanten und die Koordinaten x*i,min und x*i,max für die Scheitelpunkt-Kanten. Kanten, die keinen Beitrag liefern, für die also die im Block 206 festgelegte Flag Δ*i oder A ± 0 sind, werden bei der entsprechenden Bestimmung der minimalen und maximalen x Werte nicht berücksichtigt, was durch die ±-∞-Beiträge formal beschrieben ist.
Aus den für die verschobenen Kanten und die Scheitelpunkt- Kanten bestimmten minimalen x-Koordinaten wird dann der minimale Wert Xmin ausgewählt. Ebenso wird aus den für die verschobenen Kanten und die Scheitelpunkt-Kanten bestimmten maximalen x Koordinaten der maximale Wert xmax ausgewählt . Anschließend geht das Verfahren zum Block 210 (Fig. 11B) . Im Block 210 wird der Schleifenwert x, welcher ein Texel innerhalb der betrachteten Reihe angibt auf den Wert xmιn initialisiert. Dieser Schleifenwert läuft von xmin bis Xma - Anschließend geht das Verfahren zum Block 212 in dem aus den bereitgestellten Tabellen die Gewichtungsbeiträge für die verschobenen Kanten ausgelesen werden. Hier werden die Beiträge aller acht Kanten zur Gewichtung des Texels bei den Koordinaten x, y bestimmt.
Zunächst wird der Index lχ des Texels innerhalb der Reihe für eine entsprechende Kante betrachtet (siehe Fig. 7) . Anschließend wird der Gewichtungsbeitrag w'i für die Verscho- bene-Kante betrachtet, wobei hier für jede Kante vier Fälle zu unterscheiden sind. Das Texel kann entweder oberhalb o- der unterhalb der Kante liegen, wobei in diesem Fall der Wert ΔΛi 0 ist, so dass das betreffende Texel keinen Beitrag liefert. Ferner kann das Texel links von der Kante liegen, wobei in diesem Fall der Index 1 kleiner als 0 ist, und in diesem Fall auch kein Beitrag des Texels zu der Ge- 2004/032062
31
samtgewichtung geliefert wird. Liegt das Texel jedoch rechts von der Kante, also dass 1 > xnum ist, so wird der in der entsprechenden Tabelle bereitgestellte Wert w'prop gewählt. Liegt das Texel auf der Kante, so wird der in der Tabelle bereitgestellte Wert w'teχ bereitgestellt. Der Faktor a'i(X negiert das Ergebnis für rechte Kanten.
Parallel zum Block 212 wird im Block 214 eine entsprechende Auslesung der Tabellen hinsichtlich der Gewichtungsbeiträge der Scheitelpunkt-Kanten durchgeführt, wobei auch hier der entsprechende Beitrag w*i bestimmt wird. Wie im Block 212 gilt auch hier dass vier Fälle zu unterscheiden sind. Im ersten Fall liegt das Texel oberhalb oder unterhalb der Kante, der entsprechende Wert Δ*i ist somit 0. In diesem Fall liefert das Texel keinen Beitrag zur Gesamtgewichtung. Liegt das Texel links von der Kante, so trägt dieses ebenfalls nicht zur Gewichtung bei. Ist das Texel rechts von der Kante, x > *,0fsr so wird der in der Tabelle betreffend die Scheitelpunkt-Kanten festgelegte Wert w* prop ausgewählt. Liegt das Texel auf der Kante, so wird der entsprechende Wert w*tex ausgewählt. Auch hier wird das Ergebnis für rechte Kanten mittels des Faktors a*i,x negiert.
Nachdem in den Blöcken 212 und 214 die jeweiligen Beiträge für die verschobenen Kanten und die Scheitelpunkt-Kanten zur Gewichtung bestimmt wurden, geht das Verfahren zum Block 216, in dem alle Beiträge summiert werden, und die Texelfarbe gewichtet wird. Zunächst werden die in den Blöcken 212 und 214 berechneten acht Beiträge aufsummiert, um den summierten Gewichtungswert w zu erhalten. Der so erhaltene Gewichtungswert w wird mit den Farbkomponenten Farbe- tex(x,y> des Texels multipliziert und zur Farbe des Pixels FarbePiX addiert. Für eine spätere Normalisierung der Farbe wird ferner die Gesamtsumme wSUm der Texelgewichtungen durchgeführt. Genauer gesagt wird der Wert wsum um den im Block 216 bestimmten Wert w erhöht. 2004/032062
32
Anschließend geht das Verfahren zum Block 218, in dem zum einen der Schleifenwert x um 1 inkrementiert wird und ferner bestimmt wird, ob der Wert x den maximalen Wert xmax ü- berschreitet. Ist dies nicht der Fall, so sind noch zu be- arbeitende Texel in der betrachteten Reihe enthalten, und das Verfahren geht vom Block 218 zurück zu den Blöcken 212 und 214. Es erfolgt folglich ein Sprung um ein Texel nach rechts, und eine entsprechende Überarbeitung bezüglich dieses Texels wird durchgeführt. Wird im Block 218 bestimmt, dass alle Texel einer Reihe abgearbeitet wurden, so geht das Verfahren zum Block 220, in dem der Schleifenwert y und 1 inkrementiert wird und überprüft wird, ob der Schleifenwert y den maximalen y Wert ymax übersteigt. Ist dies nicht der Fall, so wird in die nächste Reihe gesprungen, und das Verfahren geht zurück zum Block 206. Wird festgestellt, dass die letzte Texelreihe bearbeitet wurde, so geht das Verfahren vom Block 220 zum Block 222. Im Block 222 wird dann die tatsächliche Farbe des Pixels FarbepiX bestimmt, wobei für den Fall, dass eine Gewichtung existiert, also Wsu ungleich 0 ist, was anzeigt, dass zumindest ein Texel durch die betrachtete Kante berührt wurde, der Farbpixelwert basierend auf der summierten Gewichtung wSUm normalisiert wird, also FarbePiX/sum festgelegt wird. Bei einer sogenannten Nullgewichtung, wenn also der Footprint zu einem Punkt entartet und eine Vergrößerungsverschiebung einen
Wert von 0 aufweist wird die Farbe des Texels unter dem
Scheitelpunkt 0 des Footprints unverändert übernommen
(nächstliegendes Filter) . Dies bedeutet, dass das Texel was am nächsten zu den Punktkoordinaten liegt ausgewählt wird und eine konstante Gewichtung von 1,0 zugeordnet bekommt.
Obwohl die vorliegende Erfindung bei der obigen Beschreibung der bevorzugten Ausführungsbeispiele auf der Grundlage eines Footprints mit vier Seiten beschrieben wurde, kann der erfindungsgemäße Ansatz grundsätzlich auf beliebige Footprints erweitert werden. Ferner wird darauf hingewiesen, dass die vorliegende Erfindung nicht auf die obigen Ausführungsbeispiele beschränkt ist, bei denen eine anfängliche Vergrößerung des Footprints durchgeführt wurde. Ist keine solche Vergrößerung er- wünscht, ist dem empfangenen Footprint z.B. keine Vergrößerungsverschiebung zugeordnet, so arbeitet das erfindungsgemäße Verfahren bezüglich des ursprünglichen Footprints und führt bei diesem zu einer beschleunigten Verarbeitung desselben, aufgrund der erfindungsgemäßen Schritte zur Auffin- düng von Texeln unter Kanten.

Claims

Patentansprüche
1. Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwertes (FarbePiX) von Texeln für einen Footprint, der eine Mehrzahl von Texeln in einem Texel-Gitter überdeckt, in einem Graphiksystem, mit folgenden Schritten:
(a) Bestimmen einer Forminformation (v±) des Footprints;
(b) Bestimmen der Kanten (s^) des Footprints;
(c) Annähern der im Schritt (b) bestimmten Kanten (Si) durch eine Treppenfunktion;
(d) Bestimmen der Texel des Texel-Gitters, die durch die Treppenfunktion berührt werden; und
(e) Bestimmen eines Gewichtungsfaktors (wr texr w'prop) für jedes Texel, das einen Abschnitt der Treppenfunktion enthält, abhängig von der durch den Footprint überdeckten Teilfläche des jeweiligen Texels.
2. Verfahren nach Anspruch 1, bei dem im Schritt (d) ein durch die Treppenfunktion berührtes Texel basierend auf den Anfangspunkten und /oder Endpunkten der vertikalen Abschnitte der Treppenfunktion bestimmt werden.
3. Verfahren nach Anspruch 1 oder 2, bei dem im Schritt
(e) den Texeln des Texel-Gitters, die nicht durch die Treppenfunktion berührt werden und die von dem Footprint bedeckt werden, ein einheitlicher Gewichtungswert zugeordnet werden.
4. Verfahren nach einem der Ansprüche 1 bis 4, bei dem im Schritt (e) die Gewichtungsfaktoren für jedes Texel einer Datenstruktur zugeordnet werden.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Treppenfunktion für jede Kante des Footprints eine Mehrzahl von Stufen (abstufe) / eine Mehrzahl von horizontalen Stufenelementen und eine Mehrzahl von vertikalen Stufenelementen umfaßt,
wobei jede Kante eine Mehrzahl von gleichlangen, aufeinanderfolgenden Kantenabschnitten (qi) umfaßt;
wobei eine horizontale Kante vorliegt, wenn die End- punkte der Kantenabschnitte (qi) der Kante ein horizontales Stufenelement der Treppenfunktion schneiden;
wobei eine vertikale Kante vorliegt, wenn die Endpunkte der Kantenabschnitte (qi) der Kante ein vertikales Stu- fenelement der Treppenfunktion schneiden;
wobei eine horizontale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die gleich der Anzahl der Stufen (ni,stufe) der Treppenfunktion ist;
wobei eine vertikale Kante eine Anzahl von vertikalen Stufenelementen umfaßt, die um eine zusätzliches vertikalen Stufenelement größer als die Anzahl der Stufen (ni,stufe) der Treppenfunktion ist; und
wobei das zusätzliche vertikale Stufenelement für eine Berechnung der Gewichtungsfaktoren einer benachbarten Kante mit gleicher vertikaler Position herangezogen wird.
Verfahren nach einem der Ansprüche 1 bis 5, bei dem das Bestimmen der Teilfläche eines Texels nach Schritt (e) das Bestimmen der durch die Treppenfunktion festgeleg- ten und von dem Footprint überdeckten Texelteilfläche umfasst.
7. Verfahren nach Anspruch 6, bei dem der im Schritt (d) bestimmte Gewichtungsfaktor (w'tex, w'prop, w*tex, w* prop) durch das Verhältnis der Texelteilfläche zu der Texel- gesamtflache bestimmt ist.
8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem dem Footprint eine Vergrößerungsverschiebung (r) zugeordnet ist,
wobei nach dem Schritt (a) , basierend auf der Vergrößerungsverschiebung (r) , der Footprint durch Verschieben der Kanten (Si) des Footprints nach außen um eine von der Vergrößerungsverschiebung (r) abhängige Entfernung vergrößert wird;
wobei im Schritt' (b) die verschobene Kante (s'i) be- stimmt wird;
wobei im Schritt (c) die verschobene Kante (s'i) durch eine Treppenfunktion angenähert wird; und
wobei im Schritt (e) ein Gewichtungsfaktors (w'tex. w'Prop) für jedes Texel, das eine verschobene Kante (s'i) enthält, abhängig von der durch den vergrößerten Footprint überdeckten Teilfläche des jeweiligen Texels bestimmt wird.
9. Verfahren nach Anspruch 8, bei dem die sich aufgrund der Vergrößerung des Footprints einstellenden Zwischenräume (g*i) durch horizontale und vertikale Kanten gefüllt werden.
10. Verfahren nach Anspruch 9, bei dem im Schritt (e) ferner Gewichtungsfaktoren (w* tex, * prθp) für jedes Texel, das eine eingebrachte vertikale Kante enthält, bestimmt 2004/032062
37
werden, abhängig von einem durch den vergrößerten Footprint überdeckten Teilbereich des jeweiligen Texels.
11. Verfahren nach einem der Ansprüche 8 bis 10, bei dem das Vergrößern des Footprints das Verschieben der Kantenendpunkte (Vi) um durch die Vergrößerungsverschiebung (r) festgelegte gleiche Entfernungen in horizontaler Richtung und in vertikaler Richtung umfasst.
12. Verfahren nach einem der Ansprüche 1 bis 11, bei dem die Gewichtungsfaktoren für alle Kanten des Footprints parallel erzeugt werden.
PCT/EP2003/010017 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint WO2004032062A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU2003264284A AU2003264284A1 (en) 2002-09-13 2003-09-09 Method for determination of weighting factors for the colour calculation of a colour value for texels in a footprint
JP2004540606A JP4009289B2 (ja) 2002-09-13 2003-09-09 フットプリントに係るテクセルのカラー値をカラー計算するための重み付けファクタを決定する方法
DE50302209T DE50302209D1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
EP03798898A EP1537538B1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
US10/916,983 US7379072B2 (en) 2002-09-13 2004-08-11 Method for determining weighting factors for the color calculation of a color value of texels for a footprint
US11/690,071 US7924289B2 (en) 2002-09-13 2007-03-22 Method for determining weighting factors for the color calculation of a color value of texels for a footprint

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10242640.6 2002-09-13
DE10242640A DE10242640A1 (de) 2002-09-13 2002-09-13 Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/916,983 Continuation US7379072B2 (en) 2002-09-13 2004-08-11 Method for determining weighting factors for the color calculation of a color value of texels for a footprint

Publications (1)

Publication Number Publication Date
WO2004032062A1 true WO2004032062A1 (de) 2004-04-15

Family

ID=31895971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/010017 WO2004032062A1 (de) 2002-09-13 2003-09-09 Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint

Country Status (10)

Country Link
US (2) US7379072B2 (de)
EP (1) EP1537538B1 (de)
JP (1) JP4009289B2 (de)
KR (1) KR100623327B1 (de)
CN (1) CN1295657C (de)
AT (1) ATE315813T1 (de)
AU (1) AU2003264284A1 (de)
DE (2) DE10242640A1 (de)
TW (1) TWI282520B (de)
WO (1) WO2004032062A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7737988B1 (en) * 2005-11-14 2010-06-15 Nvidia Corporation Using font filtering engines for texture blitting
US7924290B2 (en) * 2007-05-30 2011-04-12 Nvidia Corporation Method and system for processing texture samples with programmable offset positions
US9990748B2 (en) * 2015-03-18 2018-06-05 Intel Corporation Corner texel addressing mode
KR102477265B1 (ko) * 2015-09-24 2022-12-13 삼성전자주식회사 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법
US10657699B1 (en) * 2018-12-08 2020-05-19 Arm Limited Performing texturing operations for sets of plural execution threads in graphics processing systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097397A (en) * 1997-11-20 2000-08-01 Real 3D, Inc. Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system
US6292193B1 (en) * 1998-07-30 2001-09-18 Compaq Computer Corporation Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1309198C (en) * 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
US5651104A (en) * 1995-04-25 1997-07-22 Evans & Sutherland Computer Corporation Computer graphics system and process for adaptive supersampling
JPH09147125A (ja) 1995-11-22 1997-06-06 Oki Data:Kk 輪郭線抽出方法と抽出装置
US6184893B1 (en) * 1998-01-08 2001-02-06 Cirrus Logic, Inc. Method and system for filtering texture map data for improved image quality in a graphics computer system
US6191793B1 (en) * 1998-04-01 2001-02-20 Real 3D, Inc. Method and apparatus for texture level of detail dithering
JP4021058B2 (ja) 1998-06-17 2007-12-12 新潟精密株式会社 データ補間方式
US6700672B1 (en) 1999-07-30 2004-03-02 Mitsubishi Electric Research Labs, Inc. Anti-aliasing with line samples
JP3367509B2 (ja) 1999-12-16 2003-01-14 株式会社セガ 画像生成方法及びこれを用いた画像生成装置
US6509902B1 (en) * 2000-02-28 2003-01-21 Mitsubishi Electric Research Laboratories, Inc. Texture filtering for surface elements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097397A (en) * 1997-11-20 2000-08-01 Real 3D, Inc. Anisotropic texture mapping using silhouette/footprint analysis in a computer image generation system
US6292193B1 (en) * 1998-07-30 2001-09-18 Compaq Computer Corporation Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EWINS J P ET AL: "Implementing an anisotropic texture filter", COMPUTERS AND GRAPHICS, PERGAMON PRESS LTD. OXFORD, GB, vol. 24, no. 2, April 2000 (2000-04-01), pages 253 - 267, XP004236371, ISSN: 0097-8493 *
FOURNIER A., FIUME E.: "Constant-Time Filtering with Space-Variant Kernels", SIGGRAPH 88 CONFERENCE, COMPUTER GRAPHICS, vol. 22, no. 4, 1 August 1988 (1988-08-01) - 5 August 1988 (1988-08-05), Atlanta, USA, pages 229 - 238, XP002261979 *
HECKBERT P S: "SURVEY OF TEXTURE MAPPING", IEEE COMPUTER GRAPHICS AND APPLICATIONS, IEEE INC. NEW YORK, US, vol. 6, no. 11, 1 November 1986 (1986-11-01), pages 56 - 67, XP000002233, ISSN: 0272-1716 *

Also Published As

Publication number Publication date
ATE315813T1 (de) 2006-02-15
JP4009289B2 (ja) 2007-11-14
US7924289B2 (en) 2011-04-12
CN1295657C (zh) 2007-01-17
US20050007380A1 (en) 2005-01-13
US7379072B2 (en) 2008-05-27
KR20050027210A (ko) 2005-03-18
JP2006502475A (ja) 2006-01-19
DE10242640A1 (de) 2004-03-25
AU2003264284A1 (en) 2004-04-23
DE50302209D1 (de) 2006-04-06
US20070296731A1 (en) 2007-12-27
EP1537538A1 (de) 2005-06-08
KR100623327B1 (ko) 2006-09-13
TWI282520B (en) 2007-06-11
TW200412546A (en) 2004-07-16
CN1618085A (zh) 2005-05-18
EP1537538B1 (de) 2006-01-11

Similar Documents

Publication Publication Date Title
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE69720131T2 (de) System und Verfahren zur Perspektivetransformation
DE60012917T2 (de) Verfahren und vorrichtung für eine antialiasing-operation auf impliziten kanten
DE3315148C2 (de)
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
EP0654778B1 (de) Verfahren zur Textdarstellung auf Bildschirmgeräten
DE3935574A1 (de) Verfahren zur minimierung der visuellen beeintraechtigung eines schriftbilds
DE60009810T2 (de) Antialiasing mit Abtastzeilen
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE102005035796A1 (de) System und Verfahren zum Polygon-Glätten beim texturbasierten Volumen-Rendering
DE112011105126T5 (de) Texturkartierungsvorrichtung
AT525294A1 (de) Verfahren zum Erzeugen einer hierarchischen Datenstruktur, hierarchische Datenstruktur sowie Verfahren zum Streamen von dreidimensionalen Objekten
EP1386287B1 (de) Bildverarbeitungsverfahren
EP1537538B1 (de) Verfahren zur festlegung von gewichtungsfaktoren für die farbberechnung eines farbwerts von texeln für einen footprint
DE69910980T2 (de) Antialiasing mit unterabtastung für textur-raender
DE69817633T2 (de) Faltung von Zeilenrasterdarstellungen
EP2893510B1 (de) Verfahren und bildverarbeitungsanlage zum entfernen eines visuellen objektes aus einem bild
DE102006042386B4 (de) Verfahren und Vorrichtung zur Darstellung von Bildern
DE60305027T2 (de) Verfahren zur Bereitstellung eines Vektorbildes mit entfernten versteckten Linien
EP1537537A1 (de) Verfahren zur analyse und modifikation eines footprints
DE19948060A1 (de) Vorrichtung zur Bildverarbeitung und Verfahren zur Kantenverarbeitung
DE102021107257A1 (de) Verfahren und Datenverarbeitungsvorrichtung zum Anzeigen einer Vektorgraphik

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2003798898

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020047010790

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 20038023881

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2004540606

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 10916983

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003798898

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2003798898

Country of ref document: EP