Claims
- 1. A computer program embodied on an electronic medium, wherein the computer program is configured to:
create a scene graph by:
adding a first object to a hierarchy; adding a second object to the hierarchy; and defining a parent-child relationship between the first and second objects; create a plurality of data structures and threads, wherein the threads are configured to generate messages to specify state changes, wherein each data structure corresponds to a particular type of object in the hierarchy, wherein each object in the hierarchy has an entry in at least one of the data structures, wherein each thread is configured to execute one of the data structures; and render the scene graph by executing the threads in lieu of traversing the scene graph.
- 2. The computer program of claim 1, wherein the messages can be multicast to multiple data structures or unicast to a single data structure.
- 3. The computer program of claim 1, wherein the messages include a time stamp.
- 4. The computer program of claim 3, wherein the time stamp is a change count.
- 5. The computer program of claim 1, wherein the messages include an event stamp.
- 6. The computer program of claim 1, wherein the messages are utilized to allow parallel processing of the threads.
- 7. The computer program of claim 1, further comprising transmitting one or more of the data structures to a remote processor for remote processing.
- 8. The computer program of claim 1, further comprising transmitting one or more of the threads to a remote processor for remote processing.
- 9. The computer program of claim 1, further comprising transmitting at least a subset of the messages from a local processor across a network to a remote processor.
- 10. The computer program of claim 1, wherein each data structure includes a task queue.
- 11. The computer program of claim 1, wherein the task queue is configured to store incoming messages that are to be processed by the thread corresponding to the data structure.
- 12. The computer program of claim 1, wherein each data structure corresponds to a particular thread, wherein the particular thread is configured to process any received messages that relate to the corresponding data structure.
- 13. A method of parallel processing graphics data, the method comprising:
generating a plurality of data structures from a scene graph; creating at least one thread that operates on each data structure, wherein at least a subset of the threads are configured to generate messages to communicate state changes to one or more of the data structures; and executing at least a subset of the threads in parallel, wherein at least one of the threads is configured to read and render data from at least one of the data structures, wherein at least a subset of the threads render a frame based on the scene graph.
- 14. The method of claim 13, wherein the threads executed in parallel.
- 15. The method of claim 13, further comprising transmitting at least one of the data structures and corresponding threads across a network to a remote processor, wherein the remote processor is configured to execute the corresponding threads, wherein the remote processor is configured to convey messages generated by the corresponding threads across the network.
- 16. The method of claim 13, further comprising transmitting at least one of the data structures and corresponding threads across a network to each of a plurality of remote processors, wherein each remote processor is configured to execute the threads corresponding to the data structure received by the remote processor, wherein each remote processor is configured to convey messages generated by the corresponding threads across the network.
- 17. The method of claim 13, wherein the messages include a time stamp.
- 18. The method of claim 17, wherein the time stamp is a change count.
- 19. The method of claim 13, wherein the messages include an event stamp.
- 20. The method of claim 13, wherein each data structure includes a message queue configured to store incoming messages.
- 21. The method of claim 20, wherein each data structure's threads are configured to process messages stored in the data structure's message queue.
- 22. A computer program embodied on an electronic medium, wherein the computer program is an application program interface, and wherein the program comprises a plurality of instructions configured to:
create a scene graph for an application by:
adding a first pointer to the scene graph, wherein the first pointer points to a first object; adding a second pointer to the scene graph, wherein the second pointer points to a second object;
defining a parent-child relationship between the first and second objects; create a plurality of data structures and threads for an application program, wherein the threads are configured to generate messages to specify state changes in the scene graph or the objects,
wherein each data structure corresponds to a particular type of object in the scene graph, wherein each object in the scene graph has an entry in at least one of the data structures, and wherein each thread is configured to execute one of the data structures; and render the scene graph for an application program by executing the threads in lieu of traversing the scene graph.
- 23. The computer program of claim 22, wherein the messages can be multicast to multiple structures or unicast to a single structure.
- 24. The computer program of claim 22, wherein the messages include a time stamp.
- 25. The computer program of claim 24, wherein the time stamp is a change count.
- 26. The computer program of claim 22, wherein the messages include an event stamp.
- 27. The computer program of claim 22, wherein the messages are utilized to allow parallel processing of individual threads.
- 28. The computer program of claim 22, further comprising transmitting one or more of the data structures to a remote processor for remote processing.
- 29. The computer program of claim 22, further comprising transmitting the messages from a local processor across a network to a remote processor for parallel processing.
- 30. The computer program of claim 22, wherein each data structure comprises a task queue.
- 31. The computer program of claim 30, wherein the task queue is configured to store incoming messages that are to be processed by the thread corresponding to the task queue's data structure.
- 32. The computer program of claim 22, wherein each data structure corresponds to a particular working thread, wherein the particular working thread is configured to process any received messages that relate to the corresponding data structure.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/175,580, filed on Jan. 11, 2000.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60175580 |
Jan 2000 |
US |
|
60156054 |
Sep 1999 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09668493 |
Sep 2000 |
US |
Child |
09760511 |
Jan 2001 |
US |