IP Library Granted Patent US 7,940,267
Granted Patent B2
US 7,940,267 · App. 11/680,910 · Granted May 10, 2011

Systems and methods for graphical rendering

Assignee: University of Central Florida Research Foundation, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,940,267
App. No.
11/680,910
Granted
May 10, 2011
Kind
B2
Abstract

A method of rendering a graphical scene includes determining a plurality of functions that contribute to a light transport model of a scene, factoring the plurality of functions into a set of fixed functions and one varying function, determining a first radiance transfer vector that represents the product of the fixed functions in the wavelet domain, determining a second radiance transfer vector that represents the one varying function in the wavelet domain, determining an inner product of the first and second radiance transfer vectors to approximate a radiance of a point x in the scene, and rendering the scene.

Claims (35)

1. A method of rendering a graphical scene using a computer, the method comprising:

determining with the computer a plurality of functions that contribute to a light transport model of a scene;

factoring with the computer the plurality of functions into a set of fixed functions and one varying function, the varying function being interactively determinable and therefore permitted to vary during the rendering, and the fixed functions being computed in advance of the rendering so as to be invariable during the rendering;

determining with the computer a first radiance transfer vector that represents a product of the fixed functions in the wavelet domain;

determining with the computer a second radiance transfer vector that represents the one varying function in the wavelet domain;

determining with the computer an inner product of the first and second radiance transfer vectors to approximate a radiance of a point x in the scene; and

rendering with the computer the scene.

2. The method of claim 1 , wherein determining the plurality of functions that contribute to the light transport model of the scene comprises determining a distant environment lighting function, a bi-directional reflectance distribution (BRDF), a local visibility function, and one or more dynamic occlusion functions.

3. The method of claim 2 , wherein determining the plurality of functions that contribute to the light transport model of the scene further comprises collecting sampled data about the scene, and processing the sampled data to create a plurality of cubemap functions, one cubemap function being created for each function that contributes to the light transport model of the scene.

4. The method of claim 1 , wherein determining the plurality of functions comprises pre-computing a cubemap function for each of the fixed functions, and interactively determining a cubemap function for the one varying function.

5. The method of claim 1 , wherein determining a first radiance transfer vector that represents the product of the fixed functions in the wavelet domain comprises:

projecting each function of the set of fixed functions into the wavelet domain;

encoding each function of the set of fixed functions in a wavelet tree;

traversing direct paths through the wavelet trees, along which direct paths an integral coefficient may be non-zero, to determine the basis coefficients of the first radiance transfer vector.

6. The method of claim 5 , wherein projecting each function of the set of fixed functions into the wavelet domain comprises performing a two-dimensional nonstandard Haar wavelet transform on each fixed function.

7. The method of claim 5 , wherein encoding the basis coefficients of the function comprises encoding the basis coefficients of each function into six wavelet trees, each function being represented as a cubemap function and each face of each cubemap being encoded into a separate wavelet tree.

8. The method of claim 5 , wherein traversing direct paths through the wavelet trees to determine basis coefficients of the first radiance transfer vector comprises synchronously processing a set of nodes that includes one node from each wavelet tree, determining a contribution of the set of nodes to basis coefficients of the first radiance transfer vector, incrementing the basis coefficients, encoding the basis coefficients in an output wavelet tree, and synchronously processing a child set of nodes.

9. The method of claim 5 , wherein traversing the wavelet trees comprises:

separately traversing six sets of wavelet trees, each set corresponding to one face of a cubemap and each wavelet tree of the set including basis coefficients that represent one face of one cubemap function, such that traversing one set of wavelet trees determines the first radiance transfer vector for one face of the cubemap and traversing each of the six sets of wavelet trees separately determines a set of six first radiance transfer vectors that represent the entire cubemap.

10. The method of claim 5 , further comprising performing non-linear approximation on each fixed function to discard insignificant basis coefficients.

11. The method of claim 1 , wherein determining the second radiance transfer vector comprises projecting the one varying function into the wavelet domain, encoding the basis coefficients of the one varying function into a wavelet tree, and performing non-linear approximation on the one varying function to discard insignificant basis coefficients.

12. The method of claim 11 , wherein projecting the one varying function into the wavelet domain comprises performing a two-dimensional nonstandard Haar wavelet transform on the one varying function.

13. The method of claim 12 , wherein encoding the basis coefficients of the one varying function comprises encoding the basis coefficients of the one varying function into six wavelet trees, the one varying function being represented as a cubemap function and each face of the cubemap being encoded into a separate wavelet tree.

14. The method of claim 1 , wherein:

each function is represented as a cubemap function;

determining the first radiance transfer vector comprises determining a set of first radiance transfer vectors, each first radiance transfer vector of the set corresponding to one face of a cubemap that represents the product of the fixed functions in the wavelet domain;

determining a second radiance transfer vector comprises determining a set of second radiance transfer vectors, each second radiance transfer vector corresponding to one face of the cubemap function that represents the one varying function; and

determining the inner product of the first and second radiance transfer vectors comprises determining inner products of the two sets of first and second radiance transfer vectors, and summing the inner products together to determine the radiance of the point x.

15. The method of claim 1 , wherein the first radiance transfer vector is pre-computed in advance of run-time, the second radiance transfer vector is determined interactively, and the inner product of the first and second radiance transfer vectors is determined interactively.

16. The method of claim 13 , wherein the second radiance transfer vector and the inner product are determined in real time.

17. The method of claim 1 , wherein the first radiance transfer is pre-computed in advance of run-time, the second radiance transfer vector is iteratively determined in real time in response to changing scene conditions, and the inner product is iteratively determined in real time.

18. The method of claim 1 , wherein:

factoring the functions into the set of fixed functions and the one varying function comprises interactively selecting the one varying function; and

determining the first radiance transfer vector comprises pre-computed a plurality of first-radiance transfer vectors in advance of run-time, such that the first radiance transfer vector for the set of fixed functions has already been pre-computed regardless of which function is interactively selected as the one varying function.

19. The method of claim 1 , further comprising iteratively determining three color values for each visible point in the scene before rendering the scene.

Assignments (2)
CONFIRMATORY LICENSE Recorded Mar 9, 2015
From: UNIVERSITY OF CENTRAL FLORIDA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 035156/0514 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2007
From: SUN, WEIFENG, DR.; MUKHERJEE, AMAR, DR.
To: UNIVERSITY OF CENTRAL FLORIDA RESEARCH FOUNDATION, INC.
Reel/Frame 019182/0004 →
Continuity (2)
Provisional Application 60830654 · Jul 13, 2006
Related Publication 20080012857A1 · Jan 17, 2008