Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
First Claim
1. In a graphics system including a graphics processing pipeline that renders and displays images at least in part in response to primitive vertex data and texture data, a texture processing system for mapping a texture to a surface of a rendered image object, said texture processing system comprising:
- a texture coordinate/data processing unit that interleaves processing of logical direct and indirect coordinate data;
a texture data retrieval unit connected to the coordinate/data processing unit, the texture data retrieval unit retrieving texture data; and
a data feedback path from the texture data retrieval unit to the texture coordinate/data processing unit to allow reuse of the texture coordinate/data processing unit in the same rendering pass;
wherein in response to a set of indirect texture coordinates the retrieval unit recirculates retrieved texture data back to the processing unit for deriving modified texture coordinates which are used in mapping a texture to a surface of a rendered image object.
1 Assignment
0 Petitions
Accused Products
Abstract
A graphics system including a custom graphics and audio processor produces exciting 2D and 3D graphics and surround sound. The system includes a graphics and audio processor including a 3D graphics pipeline and an audio digital signal processor. The graphics pipeline renders and prepares images for display at least in part in response to polygon vertex attribute data and texel color data stored as a texture images in an associated memory. An efficient texturing pipeline arrangement achieves a relatively low chip-footprint by utilizing a single texture coordinate/data processing unit that interleaves the processing of logical direct and indirect texture coordinate data and a texture lookup data feedback path for “recirculating” indirect texture lookup data retrieved from a single texture retrieval unit back to the texture coordinate/data processing unit. Versatile indirect texture referencing is achieved by using the same texture coordinate/data processing unit to transform the recirculated texture lookup data into offsets that may be added to the texture coordinates of a direct texture lookup. A generalized indirect texture API function is provided that supports defining at least four indirect texture referencing operations and allows for selectively associating one of at least eight different texture images with each indirect texture defined. Retrieved indirect texture lookup data is processed as multi-bit binary data triplets of three, four, five, or eight bits. The data triplets are multiplied by a 3×2 texture coordinate offset matrix before being optionally combined with regular non-indirect coordinate data or coordinate data from a previous cycle/stage of processing. Values of the offset matrix elements are variable and may be dynamically defined for each cycle/stage using selected constants. Two additional variable matrix configurations are also defined containing element values obtained from current direct texture coordinates. Circuitry for optionally biasing and scaling retrieved texture data is also provided.
654 Citations
3 Claims
-
1. In a graphics system including a graphics processing pipeline that renders and displays images at least in part in response to primitive vertex data and texture data, a texture processing system for mapping a texture to a surface of a rendered image object, said texture processing system comprising:
-
a texture coordinate/data processing unit that interleaves processing of logical direct and indirect coordinate data; a texture data retrieval unit connected to the coordinate/data processing unit, the texture data retrieval unit retrieving texture data; and a data feedback path from the texture data retrieval unit to the texture coordinate/data processing unit to allow reuse of the texture coordinate/data processing unit in the same rendering pass; wherein in response to a set of indirect texture coordinates the retrieval unit recirculates retrieved texture data back to the processing unit for deriving modified texture coordinates which are used in mapping a texture to a surface of a rendered image object.
-
-
2. The graphics system as set forth on claim 1 wherein the texture coordinate/data processing unit further comprises a set of hardware control logic registers coupled to data lines in the pipeline for receiving data and processing command information used to initiate indirect texture referencing and to control multiplication and addition operations for deriving said modified texture coordinates.
-
3. In a graphics system including a graphics processing pipeline that renders and displays images at least in part in response to polygon vertex data and texture data stored in a memory, the graphics processing pipeline having a texture subsystem for accessing and retrieving texture, the texture subsystem comprising a texture coordinate/data processing unit having:
- a) at least one binary data multiplier, at least one binary data accumulator and at least one control register for receiving instruction codes and/or data to control texture coordinate/data processing operations, b) a texture data retrieval unit connected to the coordinate/data processing unit, the texture data retrieval unit retrieving data stored in a texture memory, and c) a data feedback path from the texture data retrieval unit to the texture coordinate/data processing unit to retrieve texture data to the texture coordinate/data processing unit for further processing, wherein processing of direct texture coordinates is interleaved with processing of indirect texture coordinates to retrieve texture lookup data for use in deriving modified texture coordinates, a method for controlling the texture subsystem to perform one or more indirect texture referencing operations comprising the step of utilizing a generalized indirect-texture referencing API command function to place appropriate instruction codes and/or data in said control register(s), wherein said indirect-texture referencing function may be used to at least;
(i) define up to eight textures stored in a texture memory; (ii) specify up to eight sets of texture coordinates; (iii) define up to four indirect texture maps; (iv) specify up to four indirect texture referencing operations to be performed; (v) associate one of said eight textures with each indirect texture map; and (vi) associate one of said eight sets of texture coordinates with each indirect texture maps.
- a) at least one binary data multiplier, at least one binary data accumulator and at least one control register for receiving instruction codes and/or data to control texture coordinate/data processing operations, b) a texture data retrieval unit connected to the coordinate/data processing unit, the texture data retrieval unit retrieving data stored in a texture memory, and c) a data feedback path from the texture data retrieval unit to the texture coordinate/data processing unit to retrieve texture data to the texture coordinate/data processing unit for further processing, wherein processing of direct texture coordinates is interleaved with processing of indirect texture coordinates to retrieve texture lookup data for use in deriving modified texture coordinates, a method for controlling the texture subsystem to perform one or more indirect texture referencing operations comprising the step of utilizing a generalized indirect-texture referencing API command function to place appropriate instruction codes and/or data in said control register(s), wherein said indirect-texture referencing function may be used to at least;
Specification