IP Library Granted Patent US 10,796,479
Granted Patent B2
US 10,796,479 · App. 16/388,082 · Granted Oct 6, 2020

System and method for real time dynamic lighting simulation

Inventors: Ian Ashdown (West Vancouver, CA); Wallace Jay Scott (Victoria, CA)
G06T15/506G05B15/02G05B19/042G06F17/11G06F30/13G06F30/20G06F30/23G06F30/3323G06T15/005G06T15/04G06T15/55G06T15/80H05B47/105H05B47/11H05B47/16F24F11/30F24F11/47F24F2120/10F24F2130/20F24S2201/00G05B2219/2642G06T2215/16Y02B20/40
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 10,796,479
App. No.
16/388,082
Granted
Oct 6, 2020
Kind
B2
Abstract

Sustainable building lighting and energy modelling and control, and the associated computer graphics, including real-time dynamic lighting simulation, are concerned with: an optimized method for radiance modelling, including its application to predictive daylight harvesting; and the real-time simulation of physically-based electric lighting and daylighting for architectural, horticultural, and theatrical lighting systems visualization. In order to display and analyze in real time a photometrically accurate representation of an environment, thousands of lighting channels may have their intensity settings continually varied such that a user may interactively view the three-dimensional environment without the need for ongoing global illumination calculations. This can be accomplished utilizing texture maps as a multiplicity of canonical radiosity solutions, each representing a lighting channel for dynamic lighting simulation, and storing the solutions in the texture memory of a graphics processing unit.

Claims (108)

1. A system for displaying real-time dynamic lighting simulations, comprising:

one or more processors;

a display device;

one or more graphics processing units (GPUs); and

one or more memory devices storing computer-readable instructions, which, when executed by the one or more processors cause the system to:

encode a texture map as a multiplicity of canonical radiosity solutions, each representing a lighting channel;

store the canonical radiosity solutions in a texture memory of the one or more GPUs;

generate a multiplicity of lighting channel intensity settings;

store the lighting channel intensity settings in the one or more memory devices;

access the canonical radiosity solutions on a per-vertex basis with a vertex shader program;

multiply vertex channel colors associated with the vertices by the lighting channel intensity settings;

sum resultant colors to generate a display vertex color; and

display the vertex color on the display device.

2. The system of claim 1 wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

use, for each vertex, a vertex constant color value from the texture map to initialize the display vertex color with one of the multiplicity of canonical radiosity solutions;

wherein said one canonical radiosity solution represents a direct and indirect illuminance distribution within an environment for constant electric light sources.

3. The system of claim 2 wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

initialize a vertex channel color texel array index in order to access a spectral radiant exitances array associated with each vertex.

4. The system of claim 3 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to process one or more active color channels by:

fetching a vertex channel color texel from the texture map;

multiplying the vertex channel color represented by the texel with an associated global channel dimmer setting or sky patch luminance;

adding the vertex channel color to the display vertex color;

incrementing the vertex channel color texel array index; and

processing the next active color channel, if any.

5. The system of claim 2 , comprising, in the one or more GPUs, a multiplicity of GPU processor cores, wherein the computer-readable instructions, when executed by the one or more processors, cause the system to apply an inverse gamma correction to the display vertex color, by:

correcting each component of a red-green-blue triplet with an inverse gamma correction;

setting vertex texture coordinates as required for the vertex shader program;

calculating a vertex position as required for the vertex shader program; and

executing a fragment shader program on a per-pixel basis for an entire displayed image, utilizing the multiplicity of GPU processor cores.

6. The system of claim 1 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

enable textures for a displayed image; and

initialize a fragment color as an input color times a texel color.

7. The system of claim 6 , wherein:

the vertex belongs to an opaque surface; and

the computer-readable instructions, when executed by the one or more processors, cause the system to:

specify an exposure setting to lighten or darken the displayed image; and

multiply the fragment color by the exposure setting.

8. The system of claim 7 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

output a value of the fragment color as required for a fragment shader program.

9. The system of claim 7 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

specify a grayscale display:

calculate the fragment color as a luminance of its red-green-blue values;

calculate the fragment color as a pseudocolor; and

output a value of the fragment color as required for a fragment shader program.

10. The system of claim 1 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to initialize a fragment color as an input color.

11. The system of claim 10 , wherein:

the vertex belongs to an opaque surface; and

the computer-readable instructions, when executed by the one or more processors, cause the system to:

specify an exposure setting to lighten or darken the displayed image; and

multiply the fragment color by the exposure setting.

12. The system of claim 11 , wherein the computer-readable instructions, when executed by the one or more processors, cause the system to:

specify a grayscale display:

calculate the fragment color as a luminance of its red-green-blue values;

calculate the fragment color as a pseudocolor; and

output a value of the fragment color as required for a fragment shader program.

13. The system of claim 1 , comprising a daylight harvesting modelling system, wherein the computer-readable instructions, when executed by the one or more processors, cause the system to display, on the display device, a real-time dynamic lighting simulation for a building, a space in the building, a horticultural lighting purpose, a greenhouse or a theatre.

14. Computer readable memory storing computer-readable instructions, which, when executed by one or more processors cause a lighting modelling system to:

encode a texture map as a multiplicity of canonical radiosity solutions, each representing a lighting channel;

store the canonical radiosity solutions in a texture memory of one or more graphics processing units (GPUs);

generate a multiplicity of lighting channel intensity settings;

store the lighting channel intensity settings;

access the canonical radiosity solutions on a per-vertex basis with a vertex shader program;

multiply vertex channel colors associated with the vertices by the lighting channel intensity settings;

sum resultant colors to generate a display vertex color; and

display the vertex color.

15. The computer readable memory of claim 14 wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

use, for each vertex, a vertex constant color value from the texture map to initialize the display vertex color with one of the multiplicity of canonical radiosity solutions;

wherein said one canonical radiosity solution represents a direct and indirect illuminance distribution within an environment for constant electric light sources.

16. The computer readable memory of claim 15 wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

initialize a vertex channel color texel array index in order to access a spectral radiant exitances array associated with each vertex.

17. The computer readable memory of claim 16 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to process one or more active color channels by:

fetching a vertex channel color texel from the texture map;

multiplying the vertex channel color represented by the texel with an associated global channel dimmer setting or sky patch luminance;

adding the vertex channel color to the display vertex color;

incrementing the vertex channel color texel array index; and

processing the next active color channel, if any.

18. The computer readable memory of claim 15 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to apply an inverse gamma correction to the display vertex color, by:

correcting each component of a red-green-blue triplet with an inverse gamma correction;

setting vertex texture coordinates as required for the vertex shader program;

calculating a vertex position as required for the vertex shader program; and

executing a fragment shader program on a per-pixel basis for an entire displayed image, utilizing a multiplicity of processor cores in the one or more GPUs.

19. The computer readable memory of claim 14 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

enable textures for a displayed image; and

initialize a fragment color as an input color times a texel color.

20. The computer readable memory of claim 19 , wherein:

the vertex belongs to an opaque surface; and

the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

specify an exposure setting to lighten or darken the displayed image; and

multiply the fragment color by the exposure setting.

21. The computer readable memory of claim 20 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

output a value of the fragment color as required for a fragment shader program.

22. The computer readable memory of claim 20 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

specify a grayscale display:

calculate the fragment color as a luminance of its red-green-blue values;

calculate the fragment color as a pseudocolor; and

output a value of the fragment color as required for a fragment shader program.

23. The computer readable memory of claim 14 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to initialize a fragment color as an input color.

24. The computer readable memory of claim 23 , wherein:

the vertex belongs to an opaque surface; and

the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

specify an exposure setting to lighten or darken the displayed image; and

multiply the fragment color by the exposure setting.

25. The computer readable memory of claim 24 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to:

specify a grayscale display:

calculate the fragment color as a luminance of its red-green-blue values;

calculate the fragment color as a pseudocolor; and

output a value of the fragment color as required for a fragment shader program.

26. The computer readable memory of claim 14 , wherein the computer-readable instructions, when executed by the one or more processors, cause the lighting modelling system to display, on the display device, a real-time dynamic lighting simulation for a building, a space in the building, a horticultural lighting purpose, a greenhouse or a theatre.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2019
From: ASHDOWN, IAN; SCOTT, WALLACE
To: SUNTRACKER TECHNOLOGIES LTD.
Reel/Frame 050805/0039 →
Continuity (15)
Continuation 15666938 · Aug 2, 2017
Continuation In Part 15470180 · Mar 27, 2017
Continuation In Part 15407176 · Jan 16, 2017
Continuation In Part 14792590 · Jul 6, 2015
Continuation In Part 13446577 · Apr 13, 2012
Continuation In Part 14792590 · Jul 6, 2015
Continuation In Part 15407176 · Jan 16, 2017
Continuation In Part 14792590 · Jul 6, 2015
Provisional Application 62279764 · Jan 17, 2016
Provisional Application 62172641 · Jun 8, 2015
Provisional Application 61565195 · Nov 30, 2011
Provisional Application 61457509 · Apr 14, 2011
Provisional Application 62313718 · Mar 26, 2016
Provisional Application 62369912 · Aug 2, 2016
Related Publication 20190244417A1 · Aug 8, 2019