Real-time radiosity system in a video game environment
First Claim
1. A method for constructing transfer patches used for global illumination in a 3-D graphics environment, the method comprising the steps of:
- partitioning a list of raw triangles which describe objects in a world space into roughly planar transfer patches, each transfer patch having an associated texel and the partitioning being performed in a first step of a pre-processing stage of a radiosity solver implemented in a hardware-based graphics processing unit disposed in a computing platform supporting an application executable in the 3-D graphics environment, the pre-processing being performed to enable real-time radiosity during runtime of the application, the partitioning further comprising i) adding a triangle to a transfer patch only if the adding does not cause the transfer patch to exceed a threshold curvature, and ii) if the threshold curvature is exceeded, then iteratively refining UV values resulting from application of subsequent steps in the pre-processing stage;
generating, in a second step of the pre-processing stage, a projection for each transfer patch from world space into a direct product, the direct product being a closed interval of all real numbers including 0 and 1; and
packing, in a third step of the pre-processing stage, the direct product projection into a UV space with an area proportional to a relative surface area of the transfer patch in world space so that texels across different transfer patches are of substantially similar size, the packing further being performed so that each transfer patch is mapped to the UV space on a one-to-one basis with a regular grid at a fixed resolution and the iterative refinement in the partitioning step further being performed in a manner to preserve valence of incident edges of the raw triangles and to maintain relative ratios between surface areas in the world space and projected surface areas in the UV space.
2 Assignments
0 Petitions
Accused Products
Abstract
An approach for implementing an approximation of a radiosity solver that may be run entirely in the graphics processing unit of a video game console is provided. A set of raw triangles is partitioned into a collection of roughly planar transfer patches. For each patch, a projection on to the direct product is defined and mapped into the radiosity UV space. A transfer bundle set is constructed by sorting visible patches by flux contribution and storing a predetermined number of the greatest contributors in a texture. At runtime, real-time global illumination is implemented by rendering direct lighting into a texture of the same resolution as the transfer bundle set. The lighting is successively propagated in a number of passes using the transfer bundles. Each pass constitutes a single “bounce” and the per-bundle contribution of the first bounce is extracted and used for an indirect specular and diffuse bump-mapping response.
16 Citations
15 Claims
-
1. A method for constructing transfer patches used for global illumination in a 3-D graphics environment, the method comprising the steps of:
-
partitioning a list of raw triangles which describe objects in a world space into roughly planar transfer patches, each transfer patch having an associated texel and the partitioning being performed in a first step of a pre-processing stage of a radiosity solver implemented in a hardware-based graphics processing unit disposed in a computing platform supporting an application executable in the 3-D graphics environment, the pre-processing being performed to enable real-time radiosity during runtime of the application, the partitioning further comprising i) adding a triangle to a transfer patch only if the adding does not cause the transfer patch to exceed a threshold curvature, and ii) if the threshold curvature is exceeded, then iteratively refining UV values resulting from application of subsequent steps in the pre-processing stage; generating, in a second step of the pre-processing stage, a projection for each transfer patch from world space into a direct product, the direct product being a closed interval of all real numbers including 0 and 1; and packing, in a third step of the pre-processing stage, the direct product projection into a UV space with an area proportional to a relative surface area of the transfer patch in world space so that texels across different transfer patches are of substantially similar size, the packing further being performed so that each transfer patch is mapped to the UV space on a one-to-one basis with a regular grid at a fixed resolution and the iterative refinement in the partitioning step further being performed in a manner to preserve valence of incident edges of the raw triangles and to maintain relative ratios between surface areas in the world space and projected surface areas in the UV space. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for constructing transfer bundles in a UV set used for global illumination in a 3-D graphics environment, the method comprising the steps of:
-
associating UV mapping from the UV set to a regular grid of fixed resolution, the associating being performed in a first step of a pre-processing stage of a radiosity solver implemented in a hardware-based graphics processing unit disposed in a computing platform supporting an application executable in the 3-D graphics environment, the pre-processing being performed to enable real-time radiosity during runtime of the application; for each texel in the UV set, recording, as a second step in the pre-processing stage, a list of visible transfer patches, each entry in the list being given a unique identifier, the visible transfer patches being determined by traversing each element in the regular fixed resolution grid that corresponds to a mapped sub-region of a transfer patch and rendering a Z-buffered cube map centered on the sub-region in a world space, in which each texel in the Z-buffered cube map provides a record of a nearest collision between a given transfer patch and a corresponding ray when such nearest collision exists, the record including the unique identifier of the given transfer patch, UV coordinates of the collision, and a length of a collision chord in the world space; sorting, as a third step in the pre-processing stage, the list by flux contribution; storing, as a fourth step in the pre-processing stage, a specified number of highest flux contributing transfer patches into a texture, the specified number of highest flux contributing transfer patches being variable based upon a threshold energy cutoff; and
,generating, as a fifth step in the pre-processing stage, an indirection texture to indicate the specified number of stored highest flux contributing transfer patches, the indirection texture being included as a starting entry of the visible transfer patch list. - View Dependent Claims (8, 9, 10)
-
-
11. A method for rendering lighting using a global illumination model in a 3-D graphics environment, the method comprising the steps of:
-
rendering direct conventional lighting into a radiosity UV space, the rendering being performed using a hardware-based graphics processing unit that includes a radiosity solver; and using a set of transfer bundle textures to perform a real-time radiosity approximation by the radiosity solver during runtime of an application executing in the 3-D graphics environment by successively propagating the lighting using the set of transfer bundle textures in a series of passes in which each pass constitutes a single bounce, the set of transfer bundle textures including an indirection texture and being pre-constructed by sorting visible transfer patches in the visible UV space by flux contribution and storing a variable number of the highest flux contributing transfer patches in a texture, the variable number of stored highest flux contributing transfer patches being indicated by the indirection texture, the transfer patches being pre-constructed by partitioning raw triangles in a world space into roughly planar transfer patches which are projected on to a direct product and mapped into the radiosity UV space, the direct product being a closed interval of all real numbers including 0 and 1, the mapping of the transfer patches to the radiosity UV space being performed on a one-to-one basis at a fixed resolution and the partitioning including iteratively refining resulting UV values in a manner to preserve valence of incident edges of the raw triangles and to maintain relative ratios between surface areas in the world space and projected surface areas in the radiosity UV space; and extracting and storing a first bounce flux contribution per transfer bundle. - View Dependent Claims (12, 13, 14, 15)
-
Specification