Method and system for implementing compressed normal maps
First Claim
Patent Images
1. A method for compressing normal maps in a computer system, comprising:
- accessing a map of input normals, said map of input normals comprising a plurality of normal vectors on a surface of an image;
defining a memory block having a first portion and a second portion;
storing a table of indices in the first portion of the memory block; and
storing a table of normals in the second portion of the memory block, the normals in the second portion of the memory block comprising a subset of normals out of a set of unit normals of a quantized unit sphere,wherein the indices of the first portion of the memory block reference the normals of the second portion of the memory block,wherein the quantized unit sphere is quantized into points and the subset of normals is derived from a subset of the points selected to represent the map of input normals,further wherein the subset of the normals stored in the second portion of the memory block is selected by applying a compression algorithm to the set of unit normals of the quantized unit sphere according to a pre-defined metric for manipulating an average value corresponding to the unit normals.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for compressing normal maps in a computer system. The method includes accessing a map of input normals. A memory block having a first portion and a second portion is defined. A table of indices is stored in the first portion of the memory block and a table of normals is stored in the second portion of the memory block. The indices of the first portion of the memory block reference the normals of the second portion. The normals in the second portion of the memory block are unit normals of a sphere defined to represent the map of input normals.
-
Citations
23 Claims
-
1. A method for compressing normal maps in a computer system, comprising:
-
accessing a map of input normals, said map of input normals comprising a plurality of normal vectors on a surface of an image; defining a memory block having a first portion and a second portion; storing a table of indices in the first portion of the memory block; and storing a table of normals in the second portion of the memory block, the normals in the second portion of the memory block comprising a subset of normals out of a set of unit normals of a quantized unit sphere, wherein the indices of the first portion of the memory block reference the normals of the second portion of the memory block, wherein the quantized unit sphere is quantized into points and the subset of normals is derived from a subset of the points selected to represent the map of input normals, further wherein the subset of the normals stored in the second portion of the memory block is selected by applying a compression algorithm to the set of unit normals of the quantized unit sphere according to a pre-defined metric for manipulating an average value corresponding to the unit normals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for compressing normal maps in a graphics computer system, the system having a graphics processor unit (GPU) coupled to a memory, the memory having computer readable code which when executed by the GPU cause the GPU to implement a method comprising:
-
accessing a map of input normals, said map of input normals comprising a plurality of normal vectors on a surface of an image; defining a memory block having a first portion and a second portion; storing a table of indices in the first portion of the memory block; and storing a table of normals in the second portion of the memory block, the normals in the second portion of the memory block comprising a subset of normals out of a set of unit normals of a quantized unit sphere, wherein the indices of the first portion of the memory block reference the normals of the second portion of the memory block, wherein the quantized unit sphere is quantized into points and the subset of normals is derived from a subset of the points selected to represent the map of input normals, further wherein the subset of the normals stored in the second portion of the memory block is selected by applying a compression algorithm to the set of unit normals of the quantized unit sphere according to a pre-defined metric for manipulating an average value corresponding to the unit normals. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable storage media having computer readable code, which when executed by a processor of a computer system cause the computer system to implement a method for compressing normal maps, comprising:
-
accessing a map of input normals, said map of input normals comprising a plurality of normal vectors on a surface of an image; defining a 64-byte memory block having a first 256-bit portion and a second 256-bit portion; storing a first table of 64 4-bit indices in the first portion of the memory block; and storing a second table of 16 entries in the second portion of the memory block, wherein each entry comprises a 16 bit encoded normal, wherein the indices of the first table reference the normals of the second table, the normals in the second table comprising a subset of a greater number of unit normals of a quantized unit sphere, wherein the quantized unit sphere is quantized into points and the subset of normals is derived from a subset of the points selected to represent the map of input normals, further wherein the subset of the normals stored in the second portion of the memory block is selected by applying a compression algorithm to the set of unit normals of the quantized unit sphere according to a pre-defined metric for manipulating an average value corresponding to the unit normals. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification