Panajev2001a
GAF's Pleasant Genius
http://appft1.uspto.gov/netacgi/nph...ji"&OS="Yamaguchi,+Yuji"&RS="Yamaguchi,+Yuji"
This guy, the inventor... does work somewhere... well... in a company I like .
What is the patent about ?
Let's see if you can figure it out .
For the more technically inclined: it seems to process using subdividible QUADS and can load QUADS from more than one mesh (QUAD pipelines are common in modern GPUs).
This guy, the inventor... does work somewhere... well... in a company I like .
What is the patent about ?
[0135] The SDC 11 controls the transfer of data with the CPU and the external memory and the transfer of data with the global module 12 and performs processing on the vertex data, generation of parameters required for the rasterization in the processing units of the local modules 13-0 to 13-3, and other processing.
[0136] The concrete content of the processing in the SDC 11 is as follows. Further, processing routine of the SDC 11 is shown in FIG. 8.
[0137] First, when data is input (ST1), the SDC 11 performs a per-vertex operation (ST2).
[0138] In this processing, when vertex data of three-dimensional coordinates, normal vector, and texture coordinates are input, the vertex data is processed. As representative processing, there are processing for coordinate conversion for changing the shape of an object, projecting onto a screen, etc., processing for lighting, and processing for clipping.
[0139] The processing carried out here corresponds to the execution of the so-called Vertex Shader.
[0140] Next, DDA (digital differential analyzer) parameters are computed (ST3).
[0141] This processing calculates the inclinations of various data (Z, texture coordinates, colors, etc.) and other DDA parameters required for the rasterization.
[0142] Next, it broadcasts the calculated DDA parameters to all local modules 13-0 to 13-3 via the global module 12 (ST4).
[0143] This processing transfers the broadcasted parameters to the local modules 13-0 to 13-3 via the global module 12 by using a channel different from that of the cache fill explained later. However, this does not affect the content of the global cache.
[0144] The global module 12 has a router function and a global cache 121 shared by all local modules.
[0145] The global module 12 broadcasts the DDA parameters by the SDC 11 to all local modules 13-0 to 13-3 connected in parallel.
[..]
[0222] When receiving as input a broadcasted parameter data (ST21), the processing unit 131 decides whether or not the triangle is an area which it is in charge of (ST22). If an area it is in charge of, it performs rasterization (ST23).
[0223] Namely, when receiving a broadcasted parameter, it decides whether or not the triangle belongs to the area it is in charge of, for example, an area interleaved in 4.times.4 pixel rectangular area units. If belonging to it, it rasterizes various data (Z, texture coordinates, colors, etc.). In this case, the generated unit is 2.times.2 pixels in one cycle per one local module.
[0224] Next, perspective correction of the texture coordinates is carried out (ST24). Further, this processing stage also includes calculation at the MipMap level by LOD (Level of Detail) computation and (u, v) address computation for the texture access.
[0225] Next, texture reading is carried out (ST25).
[0226] In this case, the processing units 131-0 to 131-3 of the local modules 13-0 to 13-3 first check the entries of the local caches 133-0 to 133-3 at the time of reading the texture (ST31) and when there is an entry (ST32), reads out the required texture data (ST33).
[0227] When the required texture data is not in the local caches 133-0 to 133-3, the processing units 131-0 to 131-3 send local cache fill requests to the global module 12 through the global interfaces 134-0 to 134-3 (ST34).
[...]
[0229] When the requested block data is sent from the global module 12, the corresponding local module updates the local cache (ST35, ST36), and the processing unit reads out the block data (ST33).
[0230] Note that, here, simultaneous processings of four textures at the maximum are assumed. The number of the texture data to be read out is 16 texcels per pixel.
[0231] Next, texture filtering is carried out (ST26).
[0232] In this case, the processing units 133-0 to 133-3 perform filtering such as four-neighbor interpolation by using the read out texture data and the decimal portion obtained at the time of calculation of the (u, v) address.
[0233] Next, it performs processing of the pixel level (Per-Pixel Operation) (ST27).
[0234] In this processing, operation in pixel units is carried out by using the texture data after filtering and various data after rasterization. The processing carried out here corresponds to lighting at the pixel level (Per-Pixel Lighting) or other so-called "Pixel Shader". In addition, te following processing is included:
Let's see if you can figure it out .
For the more technically inclined: it seems to process using subdividible QUADS and can load QUADS from more than one mesh (QUAD pipelines are common in modern GPUs).