IP Library › Granted Patent US 9,478,065
Granted Patent B2
US 9,478,065 · App. 13/828,871 · Granted Oct 25, 2016

System and method for remote generation of indirect illumination sources in three-dimensional graphics

Inventors: Markus Billeter (Palo Alto, CA); Lei Yang (Cupertino, CA); Liu Ren (Cupertino, CA)
Assignee: Robert Bosch GmbH
G06T15/506G06T15/005G06T2210/52
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 9,478,065
App. No.
13/828,871
Granted
Oct 25, 2016
Kind
B2
Abstract

A method for generating three-dimensional graphics includes generating a virtual environment in a server including a first object, second object and a direct illumination source. The method includes generating a virtual point light (VPL) in the virtual environment at an intersection between a ray from the direct illumination source and the first object, and sending data corresponding to the VPL to a client computing device through a data network. The method includes generating an illumination of the second object in the virtual environment with the VPL received from the server, and displaying the illuminated second object.

Claims (64)

1. A method for rendering graphics corresponding to a three-dimensional virtual environment comprising:

generating a virtual environment with a first processor in a server computing device, the virtual environment including a first object, a second object, and a direct illumination source, a memory in the server computing device storing data corresponding to the virtual environment including the first object, the second object, and the direct illumination source;

generating with the first processor in the server computing device a virtual point light (VPL) at a location in the virtual environment corresponding to an intersection of a ray from the direct illumination source and the first object;

sending data corresponding to the VPL to a client computing device through a data network;

generating with a second processor in the client computing device illumination data for a surface of the second object in the virtual environment with reference to illumination data identified with reference to the direct illumination source and the VPL received from the server computing device, and storing data corresponding to the virtual environment including the direct illumination source, the first object and the second object in a memory in the client computing device; and

generating with the second processor in the client computing device a graphical display of the virtual environment including the surface of the second object with the generated illumination data.

2. The method of claim 1 further comprising:

generating with the first processor in the server computing device a plurality of VPLs at a plurality of locations in the virtual environment corresponding to a plurality of intersections of a plurality of rays from the direct illumination source and a plurality of objects in the virtual environment; and

sending data corresponding to only a portion of the plurality of VPLs to the client computing device through the data network, the portion of the VPLs corresponding to a portion of the plurality of objects in the virtual environment that are displayed in a display device in the client computing device.

3. The method of claim 1 further comprising:

transforming the second object in the virtual environment with the second processor in the client computing device;

generating illumination data for the surface in the transformed second object in the virtual environment using the VPL with the second processor in the client computing device without receiving additional data corresponding to the VPL from the server computing device;

generating with the display device another graphical display of the virtual environment including the surface of the second object with the illumination data generated for the transformed second object surface.

4. The method of claim 1 further comprising:

identifying with the first processor in the server computing device a change in the virtual environment that invalidates the VPL that is sent to the client computing device;

generating with the second processor illumination data for the surface of the second object with only the direct illumination source in response to a failure to receive data corresponding to another VPL from the server computing device; and

generating another graphical display of the virtual environment including the second object only illuminated by the direct illumination source with the display device.

5. The method of claim 4 wherein the VPL is invalidated in response to a transformation of the first object.

6. The method of claim 4 wherein the VPL is invalidated in response to a transformation of the direct illumination source.

7. The method of claim 4 wherein the VPL is invalidated in response to a transposition of another object in the virtual environment between the direct illumination source and the first object.

8. The method of claim 1 further comprising:

sending the VPL from the server computing device to another client computing device;

generating with a third processor in the other client computing device illumination data for a surface of a third object in the virtual environment with reference to illumination identified with reference to the direct illumination source and the VPL received from the server computing device, and storing data corresponding to the virtual environment including the direct illumination source, the first object and the second object in another memory in the other client computing device; and

generating another graphical display of the virtual environment including the surface of the third object with the other generated illumination data with another display device operatively connected to the third processor in the other client computing device.

9. A system for displaying three-dimensional graphics comprising:

a server computing device comprising:

a first memory configured to store data corresponding to a virtual environment including a first object, a second object, and a direct illumination source;

a first network interface device configured to send data through a data network; and

a first processor operatively connected to the first memory and the first network interface device, the first processor being configured to:

generate the virtual environment including the first object, the second object, and the direct illumination source;

generate a virtual point light (VPL) in the virtual environment at a location corresponding to an intersection of a ray from the direct illumination source and the first object; and

send data corresponding to the VPL with the first network interface device to a client computing device through the data network; and

the client computing device comprising:

a second memory configured to store data corresponding to the virtual environment including the first object, the second object, and the direct illumination source;

a second network interface device configured to receive data from the data network;

a display device; and

a second processor operatively connected to the second memory, the second network interface device, and the display device, the second processor being configured to:

receive data corresponding to the VPL from the server computing device with the second network interface device;

generate illumination data for a surface of the second object in the virtual environment with reference to illumination identified with reference to the direct illumination source and the VPL received from the server computing device;

store data corresponding to the virtual environment including the direct illumination source, the first object and the second object in the second memory; and

generate with the display device a graphical display of the virtual environment including the surface of the second object using the generated illumination data.

10. The system of claim 9 , the second processor being further configured to:

transform the second object in the virtual environment;

generate illumination data for the surface of the transformed second object in the virtual environment using the VPL without receiving additional data corresponding to the VPL from the server computing device; and

generate with the second processor in the client computing device another graphical display of the virtual environment including the surface of the transformed second object using the other generated illumination.

11. The system of claim 10 , the first processor being further configured to:

identify a change in the virtual environment that invalidates the VPL.

12. The system of claim 11 , the second processor being further configured to:

generate illumination data for the surface of the second object with reference to the direct illumination source only in response to a failure to receive data corresponding to another VPL from the server computing device; and

generate with the display device another graphical display of the virtual environment including the second object only illuminated by the direct illumination source.

13. The system of claim 11 wherein the first processor invalidates the VPL in response to a transformation of the first object.

14. The system of claim 11 wherein the first processor invalidates the VPL in response to a transformation of the direct illumination source.

15. The system of claim 11 wherein the first processor invalidates the VPL in response to a transposition of another object in the virtual environment between the direct illumination source and the first object.

16. The system of claim 9 the first processor being further configured to:

send the VPL with the network interface device to another client computing device.

17. The system of claim 16 , the other client computing device further comprising:

a third memory configured to store data corresponding to the virtual environment including the first object, the second object, and the direct illumination source;

a third network interface device configured to receive data from the data network;

another display device; and

a third processor operatively connected to the third memory, the third network interface device, and the other display device, the third processor being configured to:

receive data corresponding to the VPL from the server computing device with the third network interface device;

generate illumination data for a surface of a third object in the virtual environment with reference to the direct illumination source and the VPL received from the server computing device; and

generate with another display device operatively connected to the third processor in the other client computing device another graphical display of the virtual environment including the surface of the third object with the illumination data generated for the surface of the third object.

18. The system of claim 9 wherein the client computing device is a mobile electronic device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2013
From: BILLETER, MARKUS; YANG, LEI; REN, LIU
To: ROBERT BOSCH GMBH
Reel/Frame 030687/0317 →
Continuity (1)
Related Publication 20140267271A1 · Sep 18, 2014