Back to results
US 2010/0245374 A1Published application
Method and apparatus for angular invariant texture level of detail generation
AssigneeAdvanced Micro Devices, Inc.
InventorsKonstantine Iourcha, Michael Doggett
Life of this patent
Estimating the term…
Abstract
A method and apparatus for angular invariant texture level of detail calculation is disclosed. The method includes a determination for a LOD that determines angular invariant LODs that result in efficient ASIC hardware implementation.
Claims24
A method for texture mapping comprising:
- inputting at least one texture coordinate as a current texture map position and if filtering based on a projection of a pixel into a texture space is configured:
- determining texture coordinate partial derivatives;
- and
- generating singular values of a Jacobian matrix constructed from the texture coordinate partial derivatives comprising:
- generating linear combinations of the matrix elements with predefined constant coefficients;
- forming two two-dimensional vectors from the linear combinations;
- generating Euclidian norms or approximation of Euclidian norms, from the vectors;
- and
- generating singular values as linear combinations of the norms.
6 more elements
A method for texture mapping comprising:
- inputting at least one texture coordinate as a current texture map position;
- if mipmapping or anisotropic filtering is configured:
- determining texture coordinate partial derivatives;
- generating singular values of a Jacobian matrix constructed from the texture coordinate partial derivatives comprising:
- generating linear combinations of the matrix elements with predefined constant coefficients;
- forming two two-dimensional vectors from the linear combinations;
- generating Euclidian norms or approximation of Euclidian norms, from the vectors;
- and
- generating singular values as linear combinations of the norms;
- if mipmapping is configured:
- if anisotropic filtering is not configured:
- generating an isotropic level of detail (LOD) from a selected singular value from the generated singular values;
- selecting a texture map based upon the LOD;
- updating the current texture map position;
- if anisotropic filtering is configured:
- generating an anisotropic level of detail (LOD) from a selected singular value from the generated singular values;
- selecting a texture map based upon the LOD;
- updating the current texture map position;
- if anisotropic filtering is configured:
- generating an anisotropic ratio and an anisotropic line from singular value decomposition comprising:
- determining the reciprocal of the Euclidian norms;
- creating linear combinations of the reciprocals of the linear combinations and generating two two-dimensional vectors from the linear combinations;
- and
- generating the Euclidean norm of the vectors;
- adding at least one anisotropic offset to update the current texture map position;
- and
- selecting at least one texture mapping data based upon the current texture map position.
24 more elements
A texture unit comprising:
- a partial derivative generator configured to determine texture coordinate partial derivatives;
- a singular value generator configured to generate singular values of a Jacobian matrix constructed from the texture coordinate partial derivatives comprising:
- the singular value generator further configured to generate linear combinations of the matrix elements with predefined constant coefficients;
- the singular value generator further configured to form two two-dimensional vectors from the linear combinations;
- the singular value generator further configured to generate Euclidian norms or approximation of Euclidian norms, from the vectors;
- and
- the singular value generator further configured to generate singular values as linear combinations of the norms
- an anisotropic ratio generator configured to generate an anisotropic ratio from singular values;
- an anisotropic line generator configured to generate an anisotropic line from singular value decomposition comprising:
- the anisotropic line generator further configured to determine the reciprocal of the Euclidian norms;
- the anisotropic line generator further configured to create linear combinations of the reciprocals of the linear combinations and generate two two-dimensional vectors from the linear combinations;
- and
- the anisotropic line generator further configured to generate the Euclidean norm of the vectors;
- a level of detail (LOD) generator configured to generate anisotropic LOD or isotropic LOD;
- a texel fetcher configured to select texels;
- a texel filter configured to filter texels;
- and
- a memory configured to store data comprising at least one of a texel, texture data, or a frame buffer.
15 more elements
A computer readable storage medium comprising:
- a first set of instructions adapted to provide a processor, wherein the processor is configured to implement a second set of instructions, the second set of instructions comprising:
- an input code segment for inputting at least one texture coordinate as a current texture map position and if filtering based on a projection of a pixel into a texture space is configured:
- a determination code segment for determining texture coordinate partial derivatives;
- and
- a generation code segment for generating singular values of a Jacobian matrix constructed from the texture coordinate partial derivatives comprising:
- a generation code segment for generating linear combinations of the matrix elements with predefined constant coefficients;
- a formation code segment for forming two two-dimensional vectors from the linear combinations;
- a generation code segment for generating Euclidian norms or approximation of Euclidian norms, from the vectors;
- and
- a generation code segment for generating singular values as linear combinations of the norms.
7 more elements
A computer readable storage medium comprising:
- a first set of instructions adapted to provide a processor, wherein the processor is configured to implement a second set of instructions, the second set of instructions comprising:
- an input code segment for inputting at least one texture coordinate as a current texture map position;
- if mipmapping or anisotropic filtering is configured:
- a determination code segment for determining texture coordinate partial derivatives;
- a generation code segment for generating singular values of a Jacobian matrix constructed from the texture coordinate partial derivatives comprising:
- a generation code segment for generating linear combinations of the matrix elements with predefined constant coefficients;
- a formation code segment for forming two two-dimensional vectors from the linear combinations;
- a generation code segment for generating Euclidian norms or approximation of Euclidian norms, from the vectors;
- and
- a generation code segment for generating singular values as linear combinations of the norms;
- if mipmapping is configured:
- if anisotropic filtering is not configured:
- a generation code segment for generating an isotropic level of detail (LOD) from a selected singular value from the generated singular values;
- a selection code segment for selecting a texture map based upon the LOD;
- an update code segment for updating the current texture map position;
- if anisotropic filtering is configured:
- a generation code segment for generating an anisotropic level of detail (LOD) from a selected singular value from the generated singular values;
- a selection code segment for selecting a texture map based upon the LOD;
- an update code segment for updating the current texture map position;
- if anisotropic filtering is configured:
- a generation code segment for generating an anisotropic ratio and an anisotropic line from singular value decomposition comprising:
- a determination code segment for determining the reciprocal of the Euclidian norms;
- a creation code segment for creating linear combinations of the reciprocals of the linear combinations and generating two two-dimensional vectors from the linear combinations;
- and
- a generation code segment for generating the Euclidean norm of the vectors;
- an adder code segment for adding at least one anisotropic offset to update the current texture map position;
- and
- a selection code segment for selecting at least one texture mapping data based upon the current texture map position.
25 more elements
Dependencies are inferred from the claim text.