IP Library Granted Patent US 11,853,764
Granted Patent B2
US 11,853,764 · App. 17/321,343 · Granted Dec 26, 2023

Accelerated processing via a physically based rendering engine

Inventors: Robert A Alfieri (Chapel Hill, NC); Peter S. Shirley (Salt Lake City, UT)
Assignee: NVIDIA Corporation
G06F9/30181G06T15/005G06T15/06G06T15/80G06T17/005G06T2210/52G06T2210/61
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 11,853,764
App. No.
17/321,343
Granted
Dec 26, 2023
Kind
B2
Abstract

One embodiment of a computer-implemented method for compiling a material graph into a set of instructions for execution within an execution unit includes receiving a first material graph having a plurality of nodes, wherein each node included in the plurality of nodes represents a different surface property of a material; parsing the material graph to generate an expression tree that includes one or more expressions for each node included in the plurality of nodes; and generating a set of byte code instructions corresponding to the material graph based on the expression tree, wherein the byte code instructions are executable by a plurality of processing cores included within the execution unit.

Claims (41)

1. A computer-implemented method for compiling a material graph into a set of instructions for execution within an execution unit, the method comprising:

receiving a first material graph having a plurality of nodes, wherein each node included in the plurality of nodes represents a different surface property of a material;

parsing the material graph to generate an expression tree that includes one or more expressions for each node included in the plurality of nodes; and

generating a set of byte code instructions corresponding to the material graph based on the expression tree, wherein the byte code instructions are executable by a plurality of processing cores included within the execution unit.

2. The computer-implemented method of claim 1 , wherein the set of byte code instructions, when executed by the plurality of processing cores, generates a color based on the first material graph.

3. The computer-implemented method of claim 1 , wherein the set of byte code instructions, when executed by the plurality of processing cores, generates a direction based on the first material graph.

4. The computer-implemented method of claim 1 , further comprising processing the expression tree to generate a processed expression tree, wherein generating the set of byte code instructions is based on the processed expression tree.

5. The computer-implemented method of claim 4 , wherein processing the expression tree comprises replacing at least one expression of the one or more expressions.

6. The computer-implemented method of claim 4 , wherein processing the expression tree comprises simplifying at least one expression of the one or more expressions.

7. The computer-implemented method of claim 4 , wherein processing the expression tree comprises removing at least one expression of the one or more expressions.

8. The computer-implemented method of claim 4 , wherein processing the expression tree comprises:

identifying a plurality of leaf nodes included in the expression tree;

generating a new node above the plurality of leaf nodes, the new node corresponding to a random selection function;

replacing a root node of the expression tree with the new node; and

for each leaf node included in the plurality of leaf nodes, computing a weight corresponding to the leaf node and assigning the weight to the leaf node.

9. The computer-implemented method of claim 8 further comprising replacing at least a first function corresponding to a first leaf node included in the plurality of leaf nodes with a second function.

10. The computer-implemented method of claim 8 further comprising removing at least one argument associated with a first function corresponding to a first leaf node included in the plurality of leaf nodes.

11. A non-transitory computer-readable medium including instructions that, when executed by a processor, cause the processor to compile a material graph into a set of instructions for execution within an execution unit, by performing the steps of:

receiving a first material graph having a plurality of nodes, wherein each node included in the plurality of nodes represents a different surface property of a material;

parsing the material graph to generate an expression tree that includes one or more expressions for each node included in the plurality of nodes; and

generating a set of byte code instructions corresponding to the material graph based on the expression tree, wherein the byte code instructions are executable by a plurality of processing cores included within the execution unit.

12. The non-transitory computer-readable medium of claim 11 , further comprising processing the expression tree to generate a processed expression tree, wherein generating the set of byte code instructions is based on the processed expression tree.

13. The non-transitory computer-readable medium of claim 12 , wherein processing the expression tree comprises replacing at least one expression of the one or more expressions.

14. The non-transitory computer-readable medium of claim 12 , wherein processing the expression tree comprises simplifying at least one expression of the one or more expressions.

15. The non-transitory computer-readable medium of claim 12 , wherein processing the expression tree comprises removing at least one expression of the one or more expressions.

16. The non-transitory computer-readable medium of claim 12 , wherein processing the expression tree comprises:

identifying a plurality of leaf nodes included in the expression tree;

generating a new node above the plurality of leaf nodes, the new node corresponding to a random selection function;

replacing a root node of the expression tree with the new node; and

for each leaf node included in the plurality of leaf nodes, computing a weight corresponding to the leaf node and assigning the weight to the leaf node.

17. The non-transitory computer-readable medium of claim 11 , wherein generating the set of byte code instructions includes adding one or more stop execution instructions.

18. The non-transitory computer-readable medium of claim 11 , wherein adding the one or more stop execution instructions comprises:

determining that a first function referenced in the expression tree does not correspond to any byte code instructions; and

replacing the first function with a first stop execution instruction.

19. The non-transitory computer-readable medium of claim 18 , further comprising generating a set of one or more program instructions, wherein the set of one or more program instructions, when executed by a processing unit, perform the first function.

20. A system for compiling a material graph into a set of instructions for execution within an execution unit, the system comprising:

a memory storing a set of instructions;

one or more processors that, when executing the set of instructions, perform the steps of:

receiving a first material graph having a plurality of nodes, wherein each node included in the plurality of nodes represents a different surface property of a material;

parsing the material graph to generate an expression tree that includes one or more expressions for each node included in the plurality of nodes; and

generating a set of byte code instructions corresponding to the material graph based on the expression tree, wherein the byte code instructions are executable by a plurality of processing cores included within the execution unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2021
From: ALFIERI, ROBERT A.; SHIRLEY, PETER S.
To: NVIDIA CORPORATION
Reel/Frame 056273/0341 →
Continuity (1)
Related Publication 20220365786A1 · Nov 17, 2022