Hardware-accelerated computation of radiance transfer coefficients in computer graphics
First Claim
1. A method of producing radiance transfer coefficients for a set of points sampled over a modeled object for rendering images of the object on a computer having a graphics processing unit for performing operations over sets of data values contained in textures, the method comprising:
- creating an object positions texture containing a set of data values representing positions of a set of points sampled over the object mapped into a texture space;
creating an object normals texture containing a set of data values representing normals of the set of sampled points mapped into the texture space;
iteratively, for each of a set of directions sampled about the object,rendering the object from the direction to produce a shadow buffer representing depth from the object in the direction for the set of points;
as a texture-based operation using the graphics processing unit, determining cosine terms of the set of sampled points for the currently iterated direction based on the normals represented in the object normals texture and currently iterated direction;
as a texture-based operation using the graphics processing unit, determining shadowing of the set of sampled points for the currently iterated direction based on the depths represented in the shadow buffer and positions represented in the object positions texture;
as a texture-based operation using the graphics processing unit, determining radiance transfer contribution of the set of sampled points for the currently iterated direction based on the determined cosine terms and shadowing; and
accumulating the radiance transfer contributions of the set of sampled points for the currently iterated direction with that of previously iterated directions;
producing a radiance transfer value for each of the sampled points from the accumulated radiance transfer contributions for the iterated directions at the respective sampled points;
rendering an image of the object in a lighting environment based on the accumulated radiance transfer contributions; and
presenting the image.
2 Assignments
0 Petitions
Accused Products
Abstract
A hardware-accelerated process of computing radiance transfer coefficients (such as for use in image rendering based on precomputed radiance transfer (PRT) techniques) is re-ordered as compared to previously known PRT precomputations to iterate over a sampling of directions about an object. The hardware-accelerated process uses a set of textures representing positions and normals for a sampling of points over a modeled object. In iterating over the directions, the process computes the depth of the object in a shadow buffer, then computes a texture of the radiance contribution based on the normal and position textures and depth from the shadow buffer. The resulting radiance contribution textures of the iterated directions are accumulated to produce a texture representing the radiance transfer coefficients of the sampled positions. This enables the process to avoid reduction operations, ray tracing and slow read-back path limitations of graphical processing units.
20 Citations
20 Claims
-
1. A method of producing radiance transfer coefficients for a set of points sampled over a modeled object for rendering images of the object on a computer having a graphics processing unit for performing operations over sets of data values contained in textures, the method comprising:
-
creating an object positions texture containing a set of data values representing positions of a set of points sampled over the object mapped into a texture space; creating an object normals texture containing a set of data values representing normals of the set of sampled points mapped into the texture space; iteratively, for each of a set of directions sampled about the object, rendering the object from the direction to produce a shadow buffer representing depth from the object in the direction for the set of points; as a texture-based operation using the graphics processing unit, determining cosine terms of the set of sampled points for the currently iterated direction based on the normals represented in the object normals texture and currently iterated direction; as a texture-based operation using the graphics processing unit, determining shadowing of the set of sampled points for the currently iterated direction based on the depths represented in the shadow buffer and positions represented in the object positions texture; as a texture-based operation using the graphics processing unit, determining radiance transfer contribution of the set of sampled points for the currently iterated direction based on the determined cosine terms and shadowing; and accumulating the radiance transfer contributions of the set of sampled points for the currently iterated direction with that of previously iterated directions; producing a radiance transfer value for each of the sampled points from the accumulated radiance transfer contributions for the iterated directions at the respective sampled points; rendering an image of the object in a lighting environment based on the accumulated radiance transfer contributions; and presenting the image. - View Dependent Claims (4, 6, 7, 8, 9, 10, 11, 12)
-
-
2. A computer system for hardware-accelerated processing of a radiance transfer coefficients computation for a set of points sampled over a modeled object for use in rendering images of the object, the computer system comprising:
-
a memory for storing program code of at least one pixel shader and a radiance transfer coefficients processing program; a central processing unit operating to execute the radiance transfer coefficients processing program; a graphics processing unit programmable by and operating to execute the at least one pixel shader; wherein the radiance transfer coefficients processing program executing on the central processing unit creates an object positions texture that contains data values representing positions of a set of points sampled over the object mapped into a texture space, and creates an object normals texture that contains data values representing normals of the set of sampled points mapped into the texture space; wherein the at least one pixel shader executing on the graphics processing unit performs texture operations that iteratively, for each of a set of directions sampled about the object, render the object from the direction to produce a shadow buffer representing depth from the object in the direction for the set of points; determine cosine terms of the set of sampled points for the currently iterated direction based on the normals represented in the object normals texture and currently iterated direction; determine shadowing of the set of sampled points for the currently iterated direction based on the depths represented in the shadow buffer and positions represented in the object positions texture; determine radiance transfer contribution of the set of sampled points for the currently iterated direction based on the determined cosine terms and shadowing; and accumulate the radiance transfer contributions of the set of sampled points for the currently iterated direction with that of previously iterated directions; and wherein the graphics processing unit produces a radiance transfer value for each of the sampled points from the accumulated radiance transfer contributions for the iterated directions at the respective sampled points. - View Dependent Claims (5, 13, 14, 15, 16, 17, 18)
-
-
3. Computer-readable storage media having stored thereon programming code executable at least in part on graphics accelerating hardware on a computer to perform processing of a radiance transfer coefficients computation for a set of points sampled over a modeled object for use in rendering images of the object, the computer-readable storage media not consisting of a signal, the programming code comprising:
-
code means executable on a computer for creating an object positions texture that contains data values representing positions of a set of points sampled over the object mapped into a texture space; code means executable on a computer for creating an object normals texture that contains data values representing normals of the set of sampled points mapped into the texture space; code means executable on the graphics accelerating hardware of the computer to perform texture-based operations that iteratively, for each of a set of directions sampled about the object, render the object from the direction to produce a shadow buffer representing depth from the object in the direction for the set of points; determine cosine terms of the set of sampled points for the currently iterated direction based on the normals represented in the object normals texture and currently iterated direction; determine shadowing of the set of sampled points for the currently iterated direction based on the depths represented in the shadow buffer and positions represented in the object positions texture; determine radiance transfer contribution of the set of sampled points for the currently iterated direction based on the determined cosine terms and shadowing; and accumulate the radiance transfer contributions of the set of sampled points for the currently iterated direction with that of previously iterated directions; and code means executable on the computer to produce a radiance transfer value for each of the sampled points from the accumulated radiance transfer contributions for the iterated directions at the respective sampled points. - View Dependent Claims (19, 20)
-
Specification