Offline optimization pipeline for 3D content in embedded devices
AssigneeQUALCOMM Incorporated
InventorsBaback Elmieh, James Ritts, David L. Durnil, Maurya Shah
Life of this patent
Estimating the term…
Abstract
Apparatus are provided including assets defining 3D models, including 3D icons and scenes, and animations of the 3D models. An offline optimization engine is provided to process data to be acted upon by a graphics engine of a target embedded device. A graphics engine simulator is provided to simulate, on a computer platform other than a target embedded device, select functions of a target embedded device running a graphics engine including API calls that directly calls API functions of a hardware level API of the target embedded device.
Claims60
An apparatus comprising:
- a computer-readable media embodied three-dimensional (3D) application in a computer platform other than a target mobile device;
- and
- a baking mechanism operative in an offline engine of the computer platform to bake animation data into an animation data structure to be loaded into a graphics engine of the target mobile device, the baking mechanism operative to convert frame-node combinations of an animation stream into clusters, to determine whether an error between a particular pair of clusters satisfies a predetermined threshold, and to merge the particular pair of clusters to create a new cluster when the error satisfies the predetermined threshold.
An apparatus comprising:
- a mobile device including a graphics engine;
- a mobile device asset load mechanism operative to load an asset produced from an offline computer platform into the graphics engine, the mobile device asset load mechanism using a single allocation to prepare the asset for use;
- and
- a node processing hierarchy update mechanism operative to perform hierarchy updates based on update data provided at an animation data buffer of the mobile device using a breadth-first traversal of the hierarchy.
An apparatus comprising:
- assets defining three-dimensional (3D) models, including 3D icons and scenes, and animations of the 3D models;
- and
- an off-line optimization engine operative in a computer platform other than a target embedded device to process data to be acted upon by a graphics engine of the target embedded device, the off-line optimization engine comprising:
- a hierarchy update pre-processing mechanism operative to establish an order of processing of nodes in a 3D object, wherein the nodes are stored in a memory in a particular order for processing by the graphics engine, and wherein at least two contiguous nodes are sized for storage in a cache line.
A method comprising:
- storing a three-dimensional (3D) application in a computer platform other than a target mobile device;
- and
- baking animation data in an offline engine of the computer platform into an animation data structure to be loaded into a graphics engine of the target mobile device, the baking further comprising:
- converting frame-node combinations of an animation stream into clusters;
- determining whether an error between a particular pair of clusters satisfies a predetermined threshold;
- and
- merging the particular pair of clusters to create a new cluster when the error satisfies the predetermined threshold.
A method comprising:
- providing a mobile device including a graphics engine;
- loading an asset produced from an offline computer platform into the graphics engine, the loading using a single allocation to prepare the asset for use;
- and
- updating a node processing hierarchy based on update data provided at an animation data buffer of the mobile device using a breadth-first traversal of the node processing hierarchy.
A method comprising:
- storing assets defining three-dimensional (3D) models, including 3D icons and scenes, and animations of the 3D models;
- processing, on a computer platform other than a target embedded device, data to be acted upon by a graphics engine of the target embedded device, the processing further comprising:
- updating a node processing hierarchy to establish an order of processing of nodes in a 3D object, wherein the nodes are stored in a memory in a particular order for processing by the graphics engine, and wherein at least two contiguous nodes are sized for storage in a cache line;
- and
- simulating, on the computer platform, select functions of the target embedded device running the graphics engine including application programming interface (API) calls that directly call API functions of a hardware level API of the target embedded device.
Machine-readable storage media encoded with data, the encoded data being interoperable with a machine to cause:
- storing a three-dimensional (3D) application in a computer platform other than a target mobile device;
- and
- baking animation data in an offline engine of the computer platform into an animation data structure to be loaded into the graphics engine of the target mobile device, the baking further comprising:
- converting frame-node combinations of an animation stream into clusters;
- determining whether an error between a particular pair of clusters satisfies a predetermined threshold;
- and
- merging the particular pair of clusters to create a new cluster when the error satisfies the predetermined threshold.
Machine-readable storage media encoded with data, the encoded data being interoperable with a machine to cause:
- loading an asset produced from an offline computer platform into a graphics engine of a mobile device, the loading using a single allocation to prepare the asset for use;
- and
- updating a node processing hierarchy based on update data provided at an animation data buffer of a mobile device using a breadth-first traversal of the node processing hierarchy.
Machine-readable storage media encoded with data, the encoded data being interoperable with a machine to cause:
- storing assets defining three-dimensional (3D) models, including 3D icons and scenes, and animations of the 3D models;
- processing, on a computer platform other than a target embedded device, data to be acted upon by a graphics engine of a target embedded device, the processing further comprising:
- updating a node processing hierarchy to establish an order of processing of nodes in a 3D object, wherein the nodes are stored in a memory in a particular order for processing by the graphics engine, and wherein at least two contiguous nodes are sized for storage in a cache line;
- and
- simulating, on the computer platform, select functions of the target embedded device running the graphics engine including application programming interface (API) calls that directly call API functions of a hardware level API of the target embedded device.
An apparatus comprising:
- means for storing a three-dimensional (3D) application in a computer platform other than a target mobile device;
- and
- means for baking animation data in an offline engine of the computer platform into an animation data structure to be loaded into a graphics engine of the target mobile device, the means for baking further comprising:
- means for converting frame-node combinations of an animation stream into clusters;
- means for determining whether an error between a particular pair of clusters satisfies a predetermined threshold;
- and
- means for merging the particular pair of clusters to create a new cluster when the error satisfies the predetermined threshold.
An apparatus comprising:
- means for loading an asset produced from an offline computer platform into a graphics engine of a mobile device, the means for loading using a single allocation to prepare the asset for use;
- and
- means for updating a node processing hierarchy based on update data provided at an animation data buffer of a mobile device using a breadth-first traversal of the processing node hierarchy.
An apparatus comprising:
- means for storing assets defining three-dimensional (3D) models, including 3D icons and scenes, and animations of the 3D models;
- means for processing, on a computer platform other than a target embedded device, data to be acted upon by a graphics engine of the target embedded device, the means for processing further comprising:
- means for updating a node processing hierarchy to establish an order of processing of nodes in a 3D object, wherein the nodes are stored in a memory in a particular order for processing by the graphics engine, and wherein at least two contiguous nodes are sized for storage in a cache line;
- and
- means for simulating, on the computer platform, select functions of the target embedded device running the graphics engine including application programming interface (API) calls that directly call API functions of a hardware level API of the target embedded device.
Dependencies are inferred from the claim text.