Method and apparatus for projective texture mapping rendered from arbitrarily positioned and oriented light source
First Claim
1. For a computer controlled display system for interactively displaying three dimensional graphical images, a method for obtaining pixel shading values directly from a texture map for pixels of a geometric primitive, said pixels having coordinates defined relative to an eye coordinate system, said geometric primitive having coordinates defined relative to a three dimensional world coordinate system, and said text map defined relative to a texture coordinate system, said method comprising the steps of:
- a) identifying an origin point for a light coordinate system, said origin point being variably positioned, wherein said origin point of said light coordinate system is a source point for projecting said texture map onto said geometric primitive;
b) determining coordinates in said light coordinate system of a point of said geometric primitive from coordinates of said point in said three dimensional world coordinate system;
c) determining intermediate texture coordinates of said point in said texture coordinate system from coordinates of said point in said light coordinate system;
d) determining coordinates of said point in said eye coordinate system from coordinates of said point in said three dimensional world coordinate system; and
e) determining final texture coordinates of said point from a depth coordinate of said point'"'"'s coordinates in said eye coordinate system and from said point'"'"'s intermediate texture coordinates;
f) wherein said final texture coordinates are used to obtain pixel shading values for shading a pixel on a screen of said display system, said pixel corresponding to said point of said geometric primitive; and
g) wherein said final texture coordinates are used to obtain pixel shading values from said texture map.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for generating interactive computer graphics images using projective texture mapping. The projective texture mapping of the present invention involves the mapping of a texture map onto a scene being rendered from the perspective of an arbitrarily positioned and oriented projection light source. The visual effect is as if the texture map were a slide being displayed onto the objects comprising the scene. During this process, homogeneous texture map coordinates are generated for corresponding geometric primitive vertex points. The vertex points of the geometric primitive are defined in terms of a world coordinate system. The homogeneous texture map coordinates of the vertex points are generated using transformation matrices of world coordinates to screen/clip coordinates and world coordinates to light source/texture map coordinates. Texture map coordinates for the remainder of the points of the geometric primitives are derived through interpolation of the vertex homogeneous texture coordinates. Texture map coordinates are generated during a span iteration process by dividing the two spatial homogeneous coordinates by the depth homogeneous coordinate.
139 Citations
30 Claims
-
1. For a computer controlled display system for interactively displaying three dimensional graphical images, a method for obtaining pixel shading values directly from a texture map for pixels of a geometric primitive, said pixels having coordinates defined relative to an eye coordinate system, said geometric primitive having coordinates defined relative to a three dimensional world coordinate system, and said text map defined relative to a texture coordinate system, said method comprising the steps of:
-
a) identifying an origin point for a light coordinate system, said origin point being variably positioned, wherein said origin point of said light coordinate system is a source point for projecting said texture map onto said geometric primitive; b) determining coordinates in said light coordinate system of a point of said geometric primitive from coordinates of said point in said three dimensional world coordinate system; c) determining intermediate texture coordinates of said point in said texture coordinate system from coordinates of said point in said light coordinate system; d) determining coordinates of said point in said eye coordinate system from coordinates of said point in said three dimensional world coordinate system; and e) determining final texture coordinates of said point from a depth coordinate of said point'"'"'s coordinates in said eye coordinate system and from said point'"'"'s intermediate texture coordinates; f) wherein said final texture coordinates are used to obtain pixel shading values for shading a pixel on a screen of said display system, said pixel corresponding to said point of said geometric primitive; and g) wherein said final texture coordinates are used to obtain pixel shading values from said texture map. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer controlled display system for generating and displaying three-dimensional graphical images, a method for interactive projection of a texture map into a three dimensional scene being rendered by obtaining pixel shading values directly from said texture map for pixels of geometric primitives comprising said three dimensional scene, said pixels having coordinates defined relative to an eye coordinate system, said geometric primitives having coordinates defined relative to a three-dimensional world coordinate system, and said texture map defined relative to a texture coordinate system, said method comprising the steps of:
-
a) interactively positioning and orienting a projection source point relative to said three dimensional world coordinate system; b) positioning said texture map at a unit distance from said projection source point and at an arbitrary orientation relative to said geometric primitives in said three dimensional scene, wherein said unit distance determines a scaling of said texture map projected into said three dimensional scene being rendered; and c) mapping said texture map through said geometric primitives to the reverse projection of the three dimensional scene onto an arbitrarily positioned and oriented viewing screen, said mapping based on said projection source point and said unit distance, wherein final texture coordinates are used to directly obtain pixel shading values from said texture map. - View Dependent Claims (10, 11)
-
-
12. A computer controlled display system for interactively displaying three dimensional graphical images by obtaining pixel shading values directly from a texture map for pixels of a geometric primitive, said pixels having coordinates defined relative to an eye coordinate system, said geometric primitive having coordinates defined relative to a three dimensional world coordinate system, and said texture map defined relative to a texture coordinate system, said computer controlled display system comprising:
-
a) a processor for processing instructions; b) input means for providing input; c) a display for displaying three dimensional graphical images; d) a graphical image generation means for generating pixel shading values for graphical primitives, each of said graphical primitives comprised of a plurality of vertex points, said graphical image generation means comprises; a texture map storage means for storing said texture map; means for identifying an origin point for a light coordinate system, said origin point being variably positioned, wherein said origin point of said light coordinate system is a source point for projecting said texture map onto said geometric primitive; means for determining coordinates in said light coordinate system of a point of said geometric primitive from coordinates of said point in said three dimensional world coordinate system; means for determining intermediate texture coordinates of said point in said texture coordinate system from coordinates of said point in said light coordinate system; means for determining coordinates of said point in said eye coordinate system from coordinates of said point in said three dimensional world coordinate system; and means for determining final texture coordinates of said point from a depth coordinate of said point'"'"'s coordinates in said eye coordinate system and from said point'"'"'s intermediate texture coordinates; wherein said final texture coordinates are used to obtain pixel shading values for shading a pixel on said display, said pixel corresponding to said point of said geometric primitive; and
wherein final texture coordinates are used to directly obtain pixel shading values from said texture map. - View Dependent Claims (13, 14, 15, 16)
-
-
17. For a computer controlled display system having a display, and frame buffer memory, an improved graphics subsystem comprised of:
-
a texture map storage memory; a geometry subsystem receiving a plurality of geometric primitives representing a three dimensional scene and converting said geometric primitives into data for said display, said geometry subsystem generating final texture coordinates for vertex points of said geometric primitives based on a light coordinate system having an arbitrarily oriented and positioned origin which represents a projection source point relative to a three dimensional world coordinate system, said geometric primitives being defined in said three dimensional world coordinate system, said projection source point being interactively positioned and oriented relative to said three dimensional world coordinate system, said texture map storage memory being coupled to said geometry subsystem and storing a texture map which is positioned at a unit distance from said projection source point and at an arbitrary orientation relative to said geometric primitives, wherein said unit distance determines a scaling of said texture map projected into said three dimensional scene, said geometric subsystem mapping said texture map through said geometric primitives to the reverse projection of the three dimensional scene onto an arbitrarily positioned and oriented viewing screen on said display, said mapping being based on said projection source point and said unit distance; a scan conversion subsystem coupled to said geometry subsystem and to said texture map storage memory, said scan conversion subsystem generating pixel data by interpolating between final texture coordinates of vertex points to generate texture map indexes and accessing said texture map storage memory in order to determine texture shading values for said pixels, wherein final texture coordinates are used to directly obtain pixel shading values from said texture map; a raster subsystem coupled to said scan conversion subsystem for storing pixel shading values in corresponding locations in said frame buffer memory, said raster subsystem coupled to said frame buffer memory and to said scan conversion subsystem; and a display subsystem coupled to said frame buffer memory and to said display for reading said frame buffer memory and providing pixel shading values to said display. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. For a computer controlled display system for interactively displaying three dimensional graphical images, a method for obtaining pixel shading values directly from a texture map for pixels of a geometric primitive, said pixels having coordinates defined relative to an eye coordinate system, said geometric primitive having coordinates defined relative to a three dimensional world coordinate system, and said texture map defined relative to a texture coordinate system, said method comprising the steps of:
-
a) identifying an origin point for a light coordinate system, said origin point being variably positioned, wherein said origin point of said light coordinate system is a source point for projecting said texture map onto said geometric primitive; b) determining for said geometric primitive a first transformation between a coordinate in said light coordinate system and a coordinate in said three dimensional world coordinate system; c) determining a second transformation between a coordinate in said texture coordinate system and a coordinate in said light coordinate system; d) determining for said geometric primitive a third transformation between a coordinate in said eye coordinate system and a coordinate in said three dimensional world coordinate system; and e) determining final texture coordinates of a point of said geometric primitive from a depth coordinate of said point'"'"'s coordinates in said eye coordinate system and from said point'"'"'s coordinates in said texture coordinate system, wherein said point'"'"'s coordinates in said eye coordinate system are obtained using said third transformation and said point'"'"'s coordinates in said texture coordinate system are obtained using said second transformation, and wherein said final texture coordinates are obtained by either (a) dividing said point'"'"'s coordinates in said texture coordinates system by said depth coordinates of said point'"'"'s coordinates in said eye coordinates system or (b) multiplying said point'"'"'s coordinates in said texture coordinates system by a reciprocal of said depth coordinate of said point'"'"'s coordinates in said eye coordinate system. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
Specification