IP Library › Granted Patent US 9,582,848
Granted Patent B2
US 9,582,848 · App. 14/063,970 · Granted Feb 28, 2017

Sprite Graphics rendering system

Inventors: Jacques P. Gasselin de Richebourg (Sunnyvale, CA); Norman N. Wang (San Jose, CA); Timothy R. Oriol (Cupertino, CA); Geoffrey G. Stahl (San Jose, CA)
Assignee: Apple Inc.
G06T1/60G06T15/005G06T15/04G06T2210/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 9,582,848
App. No.
14/063,970
Granted
Feb 28, 2017
Kind
B2
Abstract

A set of tools, in the form of a software developers kit (SDK) for a graphics rendering system, is provided to improve overall graphics operations. In general, the tools are directed to analyzing a scene tree and optimizing its presentation to one or more graphics processing units (GPUs) so as to improve rendering operations. This overall goal is provided through a number of different capabilities, each of which is presented to software developers through a new applications programming interface (API).

Claims (79)

1. A non-transitory computer-readable storage medium, comprising instructions that when executed cause one or more processors to:

cache a texture in a first memory associated with a graphics processor;

automatically update a texture atlas to identify the cached texture, wherein the cached texture maps to a searchable name; and

automatically reload the cached texture when rendering a scene graph by the graphics processor without creating a copy of the cached texture within the first memory, wherein the instructions to automatically reload the cached texture comprises instructions that cause the one or more processors to:

receive a request for an image, wherein the request includes the searchable name;

reference the cached texture by the searchable name;

perform a lookup with the searchable name to obtain coordinates and dimensions of the cached texture from the texture atlas; and

provide, in response to the received request, a sub-rectangle of the texture atlas corresponding to the coordinates and the dimensions of the cached texture.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions further cause the one or more processors to:

remove the cached texture from the first memory automatically;

cache the texture in a storage medium; and

reload the texture from the storage medium into the first memory automatically.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions further cause the one or more processors to:

generate the texture from a flattened subtree of a scene graph;

insert a node associated with the texture into the scene graph; and

render the cached texture instead of rendering the subtree.

4. The non-transitory computer-readable storage medium of claim 3 , wherein the instructions further cause the one or more processors to:

regenerate the texture responsive to a change in the subtree; and

re-cache the regenerated texture in the first memory.

5. The non-transitory computer-readable storage medium of claim 3 , wherein the instructions further cause the one or more processors to:

generate a second texture by applying an effect to the cached texture; and

cache the second texture in the first memory.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions further cause the one or more processors to automatically remove the cached texture from the first memory.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the instructions to automatically remove the cached texture comprise instructions that cause the one or more processors to:

detect whether the cached texture has not been used within a predetermined time; and

remove the cached texture from the first memory based on the determination that the cached texture has not been used within a predetermined time.

8. The non-transitory computer-readable storage medium of claim 6 , wherein the instructions to automatically remove the cached texture comprise instructions that cause the one or more processors to:

detect whether the cached texture has not been used within a number of draw calls; and

remove the cached texture from the first memory based on the determination that the cached texture has not been used within the number of draw calls.

9. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions further cause the one or more processors to:

automatically identify a plurality of texture files;

automatically parse the texture files to generate the texture atlas; and

automatically parse a manifest file to record a plurality of texture coordinates and a plurality of dimensions associated with the texture files in the texture atlas.

10. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions further cause the one or more processors to serialize the scene graph into a storage medium or a data file.

11. A method for rendering graphics, comprising:

caching a texture in a memory associated with a graphics processor;

automatically updating a texture atlas to include the cached texture, wherein the cached texture maps to a searchable name; and

automatically reloading the cached texture while rendering a scene graph by the graphics processor without creating a copy of the cached texture within the first memory, wherein automatically reloading the cached texture comprises:

receiving a request for an image, wherein the request includes the searchable name;

referencing the cached texture by the searchable name received from the request;

performing a lookup with the searchable name to obtain coordinates and dimensions of the cached texture in the texture atlas; and

providing, in response to the received request, a sub-rectangle of the texture atlas corresponding to the coordinates and the dimensions of the cached texture.

12. The method of claim 11 , further comprising:

remove the cached texture from the first memory automatically;

caching the texture in a storage medium; and

reloading the texture from the storage medium into the memory automatically.

13. The method of claim 11 , further comprising:

generating the texture from a flattened subtree of a scene graph;

inserting a node associated with the texture into the scene graph; and

rendering the cached texture instead of rendering the subtree.

14. The method of claim 13 , further comprising:

regenerating the texture responsive to a change in the subtree; and

re-caching the regenerated texture in the first memory.

15. The method of claim 13 , further comprising:

generating a second texture by applying an effect to the cached texture; and

caching the second texture in the first memory.

16. The method of claim 11 , further comprising automatically removing the cached texture from the first memory.

17. The method of claim 11 , further comprising:

automatically identifying a plurality of texture files;

automatically parsing the texture files to generate the texture atlas; and

automatically parsing a manifest file to record a plurality of texture coordinates and a plurality of dimensions associated with the texture files in the texture atlas.

18. A system comprising:

one or more processors;

memory coupled to the one or more processors, wherein the memory stores instructions when executed by the one or more processors, causes the one or more processors to:

cache a texture in a first memory associated with a graphics processor;

automatically update a texture atlas that identifies the cached texture, wherein the cached texture maps to a searchable name; and

automatically reload the cached texture when rendering a scene graph by the graphics processor without creating a copy of the cached texture within the first memory, wherein the instructions to automatically reload the cached texture comprises instructions that cause the one or more processors to:

receive a request for an image, wherein the request includes the searchable name;

reference the cached texture by the searchable name;

perform a lookup with the searchable name to obtain coordinates and dimensions of the cached texture associated with the texture atlas; and

provide, in response to the received request, a sub-rectangle of the texture atlas corresponding to the coordinates and the dimensions of the cached texture.

19. The system of claim 18 , wherein the instructions further cause the one or more processors to:

remove the cached texture from the first memory automatically;

cache the texture in a storage medium; and

reload the texture from the storage medium into the first memory automatically.

20. The system of claim 18 , wherein the instructions further cause the one or more processors to:

automatically identify a plurality of texture files;

automatically parse the texture files to generate the texture atlas; and

automatically parse a manifest file to record a plurality of texture coordinates and a plurality of dimensions associated with the texture files in the texture atlas.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2014
From: DE RICHEBOURG, JACQUES P. GASSELIN; WANG, NORMAN N.; ORIOL, TIMOTHY R.; STAHL, GEOFFREY G.
To: APPLE INC.
Reel/Frame 031878/0199 →
Continuity (2)
Provisional Application 61746678 · Dec 28, 2012
Related Publication 20140184606A1 · Jul 3, 2014