IP Library Granted Patent US 9,171,401
Granted Patent B2
US 9,171,401 · App. 13/831,309 · Granted Oct 27, 2015

Conservative partitioning for rendering a computer-generated animation

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,171,401
App. No.
13/831,309
Granted
Oct 27, 2015
Kind
B2
Abstract

A system for partitioning a set of assets, where each asset represents a computer-generated object associated with a computer-generated scene. A dependency graph comprising a plurality of interconnected nodes including an organizer node is accessed. The set of assets identified by an input of a predicate test of the organizer node are accessed. It is determined if the at least one predicate test can be evaluated using the set of assets. If the at least one predicate test can be evaluated, one or more partition assets are identified and passed to a next node. If the at least one predicate test cannot be evaluated, a conservative set of assets is identified and passed to the next node, wherein the conservative set of assets is the same set of assets identified by the input of the predicate test.

Claims (83)

1. A computer-implemented method for partitioning a set of assets, wherein each asset represents a computer-generated object associated with a computer-generated scene, the method comprising:

accessing, by one or more processors, a dependency graph, the dependency graph comprising a plurality of interconnected nodes, wherein one of the interconnected nodes includes an organizer node having at least one predicate test;

accessing, by one or more processors, the set of assets identified by an input of the predicate test of the organizer node;

determining, by one or more processors, if the at least one predicate test can be evaluated using the set of assets;

if the at least one predicate test can be evaluated,

performing, by one or more processors, a logical operation on the set of assets to identify one or more partition assets, wherein the one or more partition assets are a subset of the set of assets, and

passing, by one or more processors, the one or more partition assets at an output of the organizer node to a next node in the dependency graph; and

if the at least one predicate test cannot be evaluated,

passing, by one or more processors, a conservative set of assets at the output of the organizer node to the next node, wherein the conservative set of assets is the same set of assets identified by the input of the predicate test.

2. The computer-implemented method of claim 1 , wherein the set of assets includes asset geometry and asset attributes for one or more assets of the set of assets.

3. The computer-implemented method of claim 1 , wherein the set of assets does not include asset geometry for one or more assets of the set of assets.

4. The computer-implemented method of claim 1 , wherein the at least one predicate test can be evaluated if a first asset attribute is required for the logical operation and the first asset attribute is able to be accessed at the input to the predicate test.

5. The computer-implemented method of claim 1 , wherein the at least one predicate test cannot be evaluated if a first asset attribute is required for the logical operation and the first asset attribute is not able to be accessed at the input to the predicate test.

6. The computer-implemented method of claim 1 , wherein the at least one predicate test cannot be evaluated if the asset geometry is required for the logical operation and the asset geometry is able to be accessed at the input to the predicate test.

7. The computer-implemented method of claim 1 , wherein the at least one predicate test cannot be evaluated because at least some information for one or more assets of the set of assets is not loaded in computer memory.

8. The computer-implemented method of claim 1 , wherein one or more nodes of the plurality of nodes assigns a visual effect to the set of assets.

9. The computer-implemented method of claim 1 , wherein the visual effect is a virtual light source.

10. The computer-implemented method of claim 1 , further comprising:

passing, by one or more processors, the one or more partition assets to a render node of the dependency graph; and

computing, by one or more processors, a rendered image of the computer-generated objects represented by the one or more partition assets using the render node.

11. A computer-implemented method for partitioning a set of assets, wherein each asset represents a computer-generated object associated with a computer-generated scene, the method comprising:

accessing, by one or more processors, a dependency graph, the dependency graph comprising a plurality of interconnected nodes, including a render node associated with a rendering pass;

identifying, by one or more processors, a render node of the dependency graph, the render node associated with a rendering pass of the computer-generated scene;

identifying, by one or more processors, a set of nodes of the dependency graph that are connected to the render node and are upstream from the render node;

performing, by one or more processors, a first pass through the dependency graph through the set of nodes to identify a set of partition assets;

loading, by one or more processors, asset information for the set of partition assets;

performing, by one or more processors, a second pass through the dependency graph through the set of nodes using the asset information for the set of partition assets; and

computing, by one or more processors, a rendered image based on the second pass through the dependency graph.

12. The computer-implemented method of claim 11 , wherein performing a first pass through the dependency graph comprises:

accessing, by one or more processors, the dependency graph, wherein one of the interconnected nodes includes an organizer node having at least one predicate test;

accessing, by one or more processors, the set of assets identified by an input of the predicate test of the organizer node;

determining, by one or more processors, if the at least one predicate test can be evaluated using the set of assets;

if the at least one predicate test can be evaluated,

performing, by one or more processors, a logical operation on the set of assets to identify one or more partition assets, wherein the one or more partition assets are a subset of the set of assets, and

passing, by one or more processors, the one or more partition assets at an output of the organizer node to a next node in the dependency graph; and

if the at least one predicate test cannot be evaluated,

passing, by one or more processors, a conservative set of assets at the output of the organizer node to the next node, wherein the conservative set of assets is the same set of assets identified by the input of the predicate test.

13. A non-transitory computer-readable storage medium comprising computer-executable instructions for partitioning a set of assets, wherein each asset represents a computer-generated object associated with a computer-generated scene, the computer-executable instructions comprising instructions for:

accessing a dependency graph, the dependency graph comprising a plurality of interconnected nodes, wherein one of the interconnected nodes includes an organizer node having at least one predicate test;

accessing the set of assets identified by an input of the predicate test of the organizer node;

determining if the at least one predicate test can be evaluated using the set of assets;

if the at least one predicate test can be evaluated,

performing a logical operation on the set of assets to identify one or more partition assets, wherein the one or more partition assets are a subset of the set of assets, and

passing the one or more partition assets at an output of the organizer node to a next node in the dependency graph; and

if the at least one predicate test cannot be evaluated,

passing a conservative set of assets at the output of the organizer node to the next node, wherein the conservative set of assets is the same set of assets identified by the input of the predicate test.

14. The computer-readable storage medium of claim 13 , wherein the set of assets includes asset geometry and asset attributes for one or more assets of the set of assets.

15. The computer-readable storage medium of claim 13 , wherein the set of assets does not include asset geometry for one or more assets of the set of assets.

16. The computer-readable storage medium of claim 13 , further comprising instructions for:

passing the one or more partition assets to a render node of the dependency graph; and

computing a rendered image of the computer-generated objects represented by the one or more partition assets using the render node.

17. A non-transitory computer-readable storage medium comprising computer-executable instructions for partitioning a set of assets, wherein each asset represents a computer-generated object associated with a computer-generated scene, the computer-executable instructions comprising instructions for:

accessing a dependency graph, the dependency graph comprising a plurality of interconnected nodes, including a render node associated with a rendering pass;

identifying a render node of the dependency graph, the render node associated with a rendering pass of the computer-generated scene;

identifying a set of nodes of the dependency graph that are connected to the render node and are upstream from the render node;

performing a first pass through the dependency graph through the set of nodes to identify a set of partition assets;

loading asset information for the set of partition assets;

performing a second pass through the dependency graph through the set of nodes using the asset information for the set of partition assets; and

computing a rendered image based on the second pass through the dependency graph.

18. An apparatus for performing graphics processing, the apparatus comprising:

a memory configured to store data; and

a computer processor configured to:

access a dependency graph, the dependency graph comprising a plurality of interconnected nodes, wherein one of the interconnected nodes includes an organizer node having at least one predicate test;

access the set of assets identified by an input of the predicate test of the organizer node;

determine if the at least one predicate test can be evaluated using the set of assets;

if the at least one predicate test can be evaluated,

perform a logical operation on the set of assets to identify one or more partition assets, wherein the one or more partition assets are a subset of the set of assets, and

pass the one or more partition assets at an output of the organizer node to a next node in the dependency graph; and

if the at least one predicate test cannot be evaluated,

pass a conservative set of assets at the output of the organizer node to the next node, wherein the conservative set of assets is the same set of assets identified by the input of the predicate test.

19. The apparatus of claim 18 , wherein the computer processor is further configured to:

pass the one or more partition assets to a render node of the dependency graph; and

compute a rendered image of the computer-generated objects represented by the one or more partition assets using the render node.

20. An apparatus for performing graphics processing, the apparatus comprising:

a memory configured to store data; and

a computer processor configured to:

access a dependency graph, the dependency graph comprising a plurality of interconnected nodes, including a render node associated with a rendering pass;

identify a render node of the dependency graph, the render node associated with a rendering pass of the computer-generated scene;

identify a set of nodes of the dependency graph that are connected to the render node and are upstream from the render node;

perform a first pass through the dependency graph through the set of nodes to identify a set of partition assets;

load asset information for the set of partition assets;

perform a second pass through the dependency graph through the set of nodes using the asset information for the set of partition assets; and

compute a rendered image based on the second pass through the dependency graph.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2016
From: JPMORGAN CHASE BANK, N.A.
To: DREAMWORKS ANIMATION L.L.C.; PACIFIC DATA IMAGES L.L.C.
Reel/Frame 041193/0144 →
SECURITY INTEREST Recorded Mar 31, 2015
From: PACIFIC DATA IMAGES L.L.C.; DREAMWORKS ANIMATION L.L.C.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035343/0829 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2013
From: SMYTH, EVAN P.
To: DREAMWORKS ANIMATION LLC
Reel/Frame 030357/0535 →