JP2009500750A - 組込デバイス内の3dコンテンツ用のオフライン最適化パイプライン - Google Patents

組込デバイス内の3dコンテンツ用のオフライン最適化パイプライン Download PDF

Info

Publication number
JP2009500750A
JP2009500750A JP2008520327A JP2008520327A JP2009500750A JP 2009500750 A JP2009500750 A JP 2009500750A JP 2008520327 A JP2008520327 A JP 2008520327A JP 2008520327 A JP2008520327 A JP 2008520327A JP 2009500750 A JP2009500750 A JP 2009500750A
Authority
JP
Japan
Prior art keywords
data
engine
animation
computer
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008520327A
Other languages
English (en)
Inventor
エルミー、ババック
リッツ、ジェームズ
ダーニル、デイビッド・エル.
シャー、マウルヤ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009500750A publication Critical patent/JP2009500750A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72427User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting games or graphical animations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【解決手段】3Dアイコン及びシーンを含む3Dモデルと、3Dモデルのアニメーションとを定義するアセットを含む装置が提供される。ターゲット組込デバイスのグラフィックエンジンによって動作するデータを処理する、オフライン最適化エンジンが提供される。ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行するターゲット組込デバイスの選択機能を、ターゲット組込デバイス以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンシミュレータが提供される。
【選択図】 図6

Description

本開示の局面は、組込デバイス内で使用される3Dコンテンツの開発及び実施を容易にするツールに関連する。本開示の他の局面は、そのような3Dコンテンツを最適化するツールに関連する。組込デバイスは、音声、データ、テキスト、及び/又はイメージをキャプチャし、受信し、及び/又は送信するモバイルデバイスでありうる。
著作権表示
本特許文献は、著作権保護に従う情報を含んでいる。本特許文献又は特許は、米国特許商標局出願又は記録として現れるし、そうでない場合も、全ての著作権を保持しているので、本著作権所有者は、本特許文献又は特許の如何なる者による複写再生に対しても異議を唱えない。
関連出願との相互参照
それぞれ2005年6月29日に出願された米国仮出願番号60/696,347、60/696,185、60/696,488、60/696,346、及び60/696,186に対する優先権が主張される。
組込デバイス内で使用される3Dコンテンツの開発及び実施を容易にする様々なシステムが存在する。そのような組込デバイスは、一般に、3Dコンテンツを表示するディスプレイを含む。この点に関し、クオルコム株式会社は、BREW(登録商標)の名の下で多くのソフトウェアを販売している。それは例えば、モバイル電話のような組込デバイス内に3Dコンテンツを提供するプログラムを開発するために、与えられたコンピュータプラットフォーム上で動作するSDKを含む。
1つの実施形態に従って、3Dアイコン及びシーンを含む3Dモデルと、3Dモデルのアニメーションとを定義するアセット含む装置が提供される。ターゲット組込デバイスのグラフィックエンジンに従うデータを処理する、オフライン最適化エンジンが提供される。ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行するターゲット組込デバイスの選択機能を、ターゲット組込デバイス以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンシミュレータが提供される。
本開示の限定しない例である実施形態が、図面を参照して、下記詳細説明において記述される。ここでは、同一の参照番号が、幾つかの図面を通じて同一部位を示す。
図面を用いて詳細に説明するように、図1は、3Dコンテンツ開発システム9を例示している。図示するシステム9は、1又は複数のデバイスコンテンツ開発プラットフォーム10と、モバイルデバイス11とを含む。図示するモバイルデバイス11は、ディスプレイ12とキー13とを含む。図示するディスプレイ12は、3Dアイコン及び3Dシーンを含む3Dグラフィック仮想インタフェースを表示する。この点に関し、シーン内の所与の3Dオブジェクトをモバイルデバイスインタフェースツールに関連付け、所与の3Dオブジェクトを操作することによって、モバイルデバイスに関連する情報又は信号の入力か出力のうちの少なくとも1つを起こさせる、アイコン関連付けメカニズムを含む3Dアイコンアプリケーションが開発される。モバイルデバイスは、例えばモバイル電話でありうる。その入力は、モバイルデバイスの制御機能、モバイルデバイスの切換状態変化、又は、モバイルデバイスのテキスト入力を含みうる。出力は、モバイルデバイスに関連する状態表示、デバイスの状態、又は、情報表示を含む。3Dアイコンを含む3Dグラフィック仮想インタフェースを用いた入力又は出力であるこれら情報は、モバイルデバイス11の状態、イベント、設定、及び/又は動作に関連しうる。
図示するモバイルデバイス11は、組込デバイスのうちの1つのタイプであり、音声、データ、テキスト、及び/又はイメージをキャプチャ、受信、及び/又は送信する。図示するモバイルデバイス11は、ディスプレイ12及びキー13を含んでおり、モバイルデバイス11の制御や、モバイルデバイス11への情報の入力を可能にする。
図示するデバイスコンテンツ開発プラットフォーム10は、単一又は分散型のプラットフォームであるか、あるいは多数のプラットフォームを含んでいる。図示するプラットフォームセットは、コンピュータプラットフォーム上の対応するウィンドウやスクリーンとの対話及び提供を行う多くのソフトウェアインタフェースを含む。これらは、スクリプトウィンドウ14aと、対応するスクリプト言語インタフェース14bとを含む。ソースコードインタフェース16bに対応するソースコードウィンドウ16aも提供される。インタフェース14b,16bの各々は、コンピュータスクリーンを介して制御及び情報を受け取り、かつ、ユーザに情報を表示するための、対応するウィンドウ14a,16aを用いることによって操作可能である。
図示するプラットフォームセット10は更に、ターゲットシミュレータ19を含むオフライン最適化エンジン18を備えている。
スクリプト言語インタフェース14bは、ターゲット組込デバイス上の3Dユーザインタフェースの構築に資する1又は複数のスクリプトファイル20を生成し、接続されている。これらスクリプトファイル20は、定義された3Dアイコン及び3Dシーンのアニメーションのプログラミングのみならず、3Dアイコン及び3Dシーン定義のための情報を定義する。
ソースコードインタフェース16bは、ソースコードウィンドウ16aとともに、一般に、オリジナル機器製造者(OEM)のために与えられたコードで提供されたコマンドを用いて、ソースコードを用いたプログラムの生成を可能にする。
3Dモデルシステム32は、技術者が、3Dモデリング及び/又はイメージ処理を実行して、3Dユーザインタフェースアセットを生成し、かつ、各フォームに対して、ユーザインタフェースレイアウトを定義し、最終的に3Dユーザインタフェースを定義することを可能にするために提供される。エクスポータ30は、ターゲット組込デバイスへエクスポートされる特定のタイプの3Dユーザインタフェースにするために、ファイルのエクスポート、すなわち、3Dモデルシステム32からのファイルを、コンパイル済スクリプト及び/又はソースコード24によって利用可能なあるタイプのファイルへ変換するために提供される。エクスポータ30によって実行される「エクスポート」は、結果として得られたコード及びデータを、モバイルデバイス11のようなターゲット組込デバイスへエクスポートするために提供されているデバイスエクスポートインタフェース41によって実行されるエクスポートとは異なる。エクスポータ30は、情報を、コンパイル済スクリプト及び/又はソースコード24と互換性のある(また、コンパイル済コードに従うグラフィックエンジンによっても利用可能な)ファイルに変換する。一方、デバイスエクスポートインタフェース41は、コンパイル済スクリプト及び/又はソースコードと、関連するユーザインタフェースアセットと、ユーザインタフェースレイアウトファイルとの、モバイルデバイス11への物理的なエクスポートを容易にする。
図示する実施形態では、エクスポータ30は、3Dモデリングシステム32からの情報を、ユーザインタフェースアセット25,26,27を定義するファイルのセット、及び、ユーザインタフェースレイアウト28を定義するファイルのセットへエクスポートする。具体的には、ユーザインタフェースアセットは、3Dモデル25、アニメーション26、及びテクスチャ27を含む。
オフライン最適化エンジン18は、例えば、図2に例示するようなグラフィックエンジン上で動作するターゲット組込デバイスの選択機能を、ターゲット組込デバイス(すなわち、プラットフォーム10)以外のコンピュータプラットフォーム上でシミュレートするグラフィックエンジンをシミュレートするターゲットシミュレータ19を含む。
図2は、例えばモバイルデバイス11のようなターゲット組込デバイスへ一旦エクスポートされて存在するソフトウェアのアーキテクチャ図を与える。このアーキテクチャは、コンパイル済スクリプト及び/又はソースコード40(APIコールを含む)、管理API44、ベース構造及びAPI46、及び、ハードウェアレベルAPI64を含む。コンパイル済スクリプト及び/又はソースコードは、管理API44とベース構造API46との各々と直接的に通信する。すなわち、管理API44及びベース構造API46内のAPI機能に対してAPIコールを実行する。管理API44は、レンダリングAPI48、リソース管理API50、及び、カメラ管理API52を含む。レンダリングAPI48は、メモリ管理、レンダ状態、及びその他のブックキーピング(bookkeeping)タスクを担当する。
ベース構造及びAPI46は、テクスチャ54、メッシュ56、アニメーション58、カメラ60、数学及びーティリティ62を含む。これら構造及びAPIは、すべての幾何、アニメーションストリーム、及びその他の根本的エンジンデータタイプへのフルアクセスを与える。更に、エンジンの残りと独立して使用可能な固定小数点数学及びコンテナ構造が提供されうる。アプリケーションは、幾つか又は全ての機能について、管理API44を通じてインタフェースできるように、コンパイル済スクリプト及び/又はソースコード40内に組み込まれ実現される。それらは、それら自身のリソース管理と、メモリインスタンシエーション技術とを実施し、もって、ベース構造及びAPI46と直接的にインタフェースする。更に、OEM開発者が、エクスポータとメッシュ最適化ツールとを活用するソースコードを書き込むことを希望するか、そうでない場合には、より高いレベルの機能がどのようにして実現されるかに関する制御を維持することを希望するイベントにおいて、管理API44を完全にバイパスすることが可能である。
ベース構造及びAPI46は、管理API44とともに、最適化エンジンレイヤ42を備える。ハードウェアレベルAPI64は、例えば、Open GL−ESソフトウェア、Direct 3Dモバイルソフトウェア、又はSKT GIGAソフトウェアを含みうる。
図3は、3Dモデルファイル70のデータ構造の1つの実施形態を示す。与えられた3つのモデルファイル70は、モデル72を識別する識別子72と、そのモデルの幾何を描く方式を定義するマテリアルパラメータ74a,74b,・・・,74cのセットとを含む。例えば、特定のマテリアル74aは、特定のテクスチャ及びメッシュのマッピングカラー、特定の透明値、及び特定の白熱値(incandescence value)を有しうる。マテリアル情報74aは、これらレンダリングパラメータを含む。マテリアルパラメータ74aの与えられたセットに対応したレンダメッシュ76が提供される。図示した構成では、レンダメッシュ76は、頂点アレイ78、テクスチャ座標アレイ80、及び、レンダグループ82を含む。レンダグループ82は、レンダ原始関数のグループ(三角形ストライプ、三角形リスト等)を含む。1又は複数の最新階層84が提供されうる。これは、ローカル空間からワールド空間へのレンダグループの変換及びアニメーションのために使用される。
図4は、ユーザインタフェースレイアウトファイル90のデータ構造を概略的に示す。UIレイアウトファイル90は、UI定義ファイル92及びシーンファイル94を含む。UI定義ファイル92は、アセットリンク情報と、UI状態、状態管理、ある状態遷移の発生に関するコマンド、UIイベントのようなその他の情報とを含む。シーンファイル94は、リンクノード情報及びシーンノード情報を含む。
シーンノードは、3Dモデルにリンクされない全てのノードである。リンクノードは、関連する3Dモデルを持つ。リンクノードに関連するこのモデルは、自身のファイルにエクスポートされ、そのリンクノード関連性が、UI定義ファイル92内に指定される。スクリプト言語は、ユーザインタフェースアセットとも称される外部生成された3Dアセットとともに使用されうるタグのセットを提供するために使用され、図1に示す3Dモデルシステム32のような他のソフトウェアのセットによって生成されうる。この外部ソフトウェアによって生成されたファイルは、エクスポータ30によってエクスポートされ、その後、スクリプトファイル20及び/又はソースコード22からコンパイルされた3Dユーザインタフェース開発コード24と互換性のあるフォーマットに変換される。
図5は、オフライン最適化パイプライン99の例を示すブロック図である。これは、図1に示すオフライン最適化エンジン18を実現するために使用することができる。図5に示すオフライン最適化パイプライン99は、スタートステージ100で始まる。スタートステージでは、データ検証及び一般的なセットアップが実行され、最適処理の残りの処理が容易になる。スタートステージ100後、パイプラインは、シーン抽出ステージ102に移る。シーン抽出ステージ102では、パイプラインは、3Dユーザインタフェース内の特定のシーンのためにパイプライン内で使用されるデータを抽出する。その後のステージは、アニメーションベーキング(baking)ステージ104、オフラインセットアップステージ106、階層更新事前処理ステージ108、及び、事前割当ステージ110を連続的に含む。
アニメーションベーキングステージ104では、抽出されたシーンのアニメーションがベーキング(baking)され、ターゲット組込デバイス内で3Dアニメーション更新を実行する際における処理時間が低減される。また、ベーキングされたアニメーションが圧縮され、ターゲット組込デバイス内のアニメーションデータによって占められる空間が低減される。オフラインセットアップステージ106では、例えば、ブックキーピング、インデクス構造、データ準備、及びメモリ割当等を含む様々な処理ステップが実行される。
次に続く階層更新事前処理ステージ108では、ローカル座標からワールド座標への変換を含む階層更新が、階層ツリーの幅優先横断(breadth first traversal)を実行することによる非再帰的ツリー横断を含むように、抽出されたシーンの階層の各々が(3Dモデルやアニメーションについて)、ターゲット組込デバイス内で再配列される。更に、このステージでは、ツリーのノードが圧縮され、ターゲット組込デバイスが、処理中の階層更新を実行することを可能にするために存在する必要があるノードを含む単一の隣接バッファに階層がパックされる。図示する実施形態では、このバッファは、ターゲットデバイスへ一旦エクスポートされると、(図6に示すような)ツリーデータバッファ129の形態をとるだろう。
事前割当ステージ110では、抽出されたシーンに要求される全てのデータ構造が識別され、ターゲット組込デバイス内で必要とされるメモリ割当が決定される。これは、メモリ割当の全体像(本明細書では、しばしば、パック合計とも称される)となり、単一のメモリ割当コールではない場合に必要とされる多くのメモリ割当コールと比較して、(例えば、ANSI CのMALLOCコールを用いて)単一のメモリ割当コールを実行するためにターゲット組込デバイス内で使用される。
図7及び図8は、アニメーションベーキング及び圧縮の処理のフローチャートを示す。
図7及び図8に示すフローチャートは、オフラインステップにおいてアニメーション曲線を事前評価することによって、ターゲット組込デバイス上のアニメーション更新を最適化するために提供される。図7及び図8に示す実施形態は(図6に示すように)、ベーキング済アニメーションルックアップテーブル(LUT)124を生成する。これは、最終的には、ターゲット組込デバイス120内のコード及びデータ122の一部となる。
図7及び図8に示すベーキング処理では、初期動作200において、抽出されたシーンから、アニメーションが階層的に抽出される。次の動作202では、抽出された階層の各ノードについて、アニメーションストリームが生成される。動作204では、生成された全てのアニメーションストリームに対して、サンプリングレートが決定される。この点に関し、ユーザは、具体的なサンプリングレートを選択することができる。一般に、サンプリングレートは、アニメーションフレームが、図1に示すようにエクスポータ30によってエクスポートされ、アニメーションファイル26内に格納される標準的なフレームレートよりもはるかに高い。サンプリングレートは、反復処理を用いて調節することができる。例えば、オーサ(author)は、選択された具体的なサンプリングレートを用いて、3Dユーザインタフェースアプリケーションのスクリプト結果をシミュレートすることができる。結果として得られるグラフィックの品質が、オーサの予想に対して十分でない場合には、サンプルレートが変更される。
動作206では、アニメーション曲線の全て(あるいは、代替実施例ではサブセット)が、選択されたサンプルレートで評価される。この時点で、生のアニメーションデータストリームが得られる。それは、決定されたサンプルレートにおいてベーキングされる。このデータは、オフラインプラットフォームに格納される。
一例として、この生のアニメーションデータを、インデクスアレイ(図示せず)内に格納することができる。インデクスアレイ内の各ロウには、例えば、インデクスルックアップテーブル(LUT)(図示せず)を用いて決定されたインデクス値をアレイ内に入力することによりアクセスすることができる。インデクスアレイは、各ロウ内に、属性のセットを格納する。各ロウは、特定のノード及びフレームに関連付けられる。これらの属性は、例えば、x,y,z,r11、r12,r13,r21,r22,r23,r31,r32,r33、及び色でありうる。x属性,y属性、及びz属性は、シーンのローカル座標であるか、シーンの一部でありうる。属性r11,r12,r13,r21,r22,r23,r31,r32,r33は、例えば3×3行列に対応する回転値及び方向値である。
次の動作208では、(ベーキングされた生のアニメーションデータストリームから)各フレーム/ノード組み合わせのための回転値及び方向値が、四元数に変換される。四元数は、例えば、オイラー角及び行列を用いる代わりに、回転と方向とを表す別の方法である。四元数は、4つの値(α、β、γ、ω)によって表わされる。従って、この例では、9つの回転値及び方向値が、4つの四元数値に変換される。
次の動作210では、ベーキングされた生のアニメーションデータストリームの回転及び方向から変換された四元数内で、各ユニーク値についてクラスタが生成される。例示する実施形態では、クラスタは、座標(x,y,z)と四元数値(α、β、γ、ω)とのローカルセットを用いて生成される7つの要素からなる値である。1つの局面では、7つの要素からなる値がユニークである場合、クラスタが生成される。従って、ベーキングされた生のアニメーションデータ内に、(異なるフレーム値とノード値との各組み合わせに対応して)M個のロウからなるデータが存在するのであれば、N個のクラスタが存在する。ここでNは、ユニークではない7個の要素からなる値であるので、Mよりも小さい。クラスタは、クラスタベクトル(x、y、z)及びクラスタ四元数(α、β、γ、ω)からなる。
次の動作212では、与えられたクラスタのペアについて、これらクラスタ間のエラーが、与えられたしきい値よりも小さいかに関して判定がなされる。各クラスタには、エラー値が提供される。一例として、このエラー値は、各クラスタの中点値でありうる。
例えば、クラスタペアは、2つの空間、すなわち、(1) 直交(cartesian)空間(x,y,z)、及び(2)四元数空間内の7つの要素に関する演算によって識別されうる。直交空間では、任意の2つのクラスタベクトル間の中間点の大きさは、中点値mpv1となる。同様に、四元数空間では、任意の2つのクラスタ四元数間の中点アーク(arc)距離の大きさは、中点値mpv2となる。
動作212において、エラーがしきい値よりも小さいと判定された場合には、動作214に進み、クラスタのペアが新たなクラスタに合成され、新たな最小エラー値(すなわち、中点値)が、その新たに合成されたクラスタのために計算される。処理は、別のペアのクラスタを評価する動作212に戻る。
このクラスタリング処理は、ユニークなフレーム−ノードペアに対応するデータのロウの数を低減する方法と考えることができる。これによって、アニメーションデータを有する複数のユニークなフレーム−ノードペア(一般に、変換情報、方向及び回転情報)が、同じセットのクラスタデータを持つことができる。
どのクラスタのペアも、動作212の条件を満足しなくなった場合には、処理は動作216に進む。この時点では、与えられたクラスタのための与えられたアニメーション値のセットについて、四元数値(一般に、4つの異なる値)が、(例えば32ビットのようなNビットからなる)単一のバイナリワードにパックされる。
動作216の後、圧縮処理が終了する。
クラスタは、アニメーション再生精度を高めるために、あるいはファイルサイズを低減するために、大きくされることも、小さくされることもある。一旦ストリームが圧縮されると、アニメーションストリーム内の個々の値が、単一の隣接メモリバッファ内にバッファされる。このメモリバッファイは、モバイルデバイスのキャッシュライン特性のために配列され最適化される。
一旦アニメーションストリームが圧縮されると、アニメーションストリーム内の個々の値が、単一の隣接アニメーション値メモリバッファ128内にパックされる。これは最終的には、図6に示すように、ターゲット組込デバイス120へエクスポートされる。
図6に示すように、ターゲットデバイスの与えられた処理が、アニメーション値バッファ128内のデータにアクセスするために、各ユニークなフレーム−ノード組み合わせについて、バッファ128内の対応するアニメーションデータを見つけ出すオフセット値を出力するアニメーションルックアップテーブル(LUT)124が提供される。
図9は、3Dオブジェクト階層220の概略図である。図示するオブジェクト階層220は、二本足(biped)であり、ルートノードであるウエスト(waist)含む。右上(UR)レッグ(leg)、左上(UL)レッグ、及びチェスト(chest)はそれぞれウエストに接続されている。これらノードの各々は、ウエストノードの子ノードである。URレッグには、右下(LR)レッグと右下(LR)フット(foot)とがそれぞれ接続されている。これら各ノードは、URレッグノードの子コードであり、ウエストノードの孫ノードである。ULレッグには、左下(LL)レッグと左下(LL)フットとがそれぞれ接続されている。これら各ノードは、ULレッグの子ノードであり、ウエストノードの孫ノードである。チェストノードの子ノードであり、ウエストノードの孫ノードであるヘッド、右上(UR)アーム、及び左上(UL)アームの各ノードが提供される。
図9に例示される階層が、幅優先横断順でノードが処理される再帰的アルゴリズムを用いて更新されるのであれば、これらノードは、第1に、ウエストノード、第2に、URレッグノード、第3に、ULレッグノード、第4に、LRレッグノード、第5に、LLレッグノード等の順に処理されるだろう。対照的に、図9に示す実施形態では、幅優先横断の順番が使用される。ここでは、第1にウエストノードが処理され、第2にURレッグノードが処理され、第3にULレッグノードが処理され、第4にチェストノードが処理される。ノードが処理される順番は、関連するノードの各々の左側の数字によって示されている。従って、次の深さレベルに下がってノードが処理される前に、ウエストノード、URレッグノード、ULレッグノード、及びチェストノードが、第1、第2、第3、及び第4番目にそれぞれ処理される。これらノードの処理は、最終的には、ターゲット組込デバイス内でなされるが、これらノードが処理される順番は、ターゲット組込デバイスのヒープメモリ内に最終的に形成されるツリーデータバッファ129(図6に示す)の隣接部分に格納される順番を制御することによって制御することができる。従って、連続したメモリ量と、ノードをメモリ内にターゲット組込デバイス内で最終的に処理される特定の順番で格納することとを考慮したデータ構造221が、(図5に示すような階層更新事前処理ステージ108によってオフラインで)提供される。
図示するように、特定階層の、処理中の階層を更新するために、ターゲット組込デバイス120内のコード及びデータ122の一部として、幅優先階層更新メカニズム130が提供される。階層に関連付けられたデータが、アニメーションデータバッファ128のどこにあるかを判定するために、幅優先階層更新メカニズム130が、ベーキング済アニメーションLUT124によって与えられるオフセット値に従ってデータを見つける。
幅優先階層更新メカニズム130が一旦、アニメーションデータバッファ128内のデータを見つけると、復号メカニズム126(データを均質な変換マトリクスに変換すること)によってデータが復号され、ノードが、ツリーデータバッファ129内に格納されたように、ツリーの構造毎、すなわち、図9の例において、第1にウエストノード、第2にURレッグノード、第3にULレッグノード等のように連続して処理される。更新されたアニメーションデータはその後、ツリーデータバッファ129内にデータのために備えられた保持空間内に、ノード毎に格納される。
幅優先アプローチは、与えられたツリーのノードを、最初にルートノード、次に子1、子2、・・・子N、孫1、孫2、・・・孫M、ひ孫1、・・・の順に処理する。
図9に示す例では、キャッシュライン境界が、少なくとも、2つの隣接するノードのために必要なメモリ量に及んでいる。従って、ターゲット組込デバイス内に提供されたキャッシュが2つのラインを持っているのであれば、1つのキャッシュミスのみが、図9に示す例における第1乃至第4のノードの階層を処理、すなわち更新することが要求されよう。1つのキャッシュライン境界の空間内に2つのノードを格納する能力を容易にするために、個々のノードは、例えば、図5に示すようなベーキングアニメーションステージ104によって提供されるベーキングアニメーションの結果である圧縮を用いて圧縮されうる。
深さ優先横断順を含む階層更新は、一般に、多くのキャッシュミスをもたらすだろう。この理由の中には、階層のノードが、隣接したメモリ内に格納されないという事実がある。更に、この横断(traversal)は、各ノード、その親ノードのそれぞれのためのデータについて再帰的であるので、そのノードの処理及び更新のために、最終的なルートノードに対する全ての経路が必要とされる。
例えば、図9に示される例に関連して、階層を更新することに関する議論の目的のために、更新とは、ターゲット組込デバイスのディスプレイ上にレンダする前に、そのローカル座標からワールド座標へノードを変換することを称する。
図9に示す例において、ノードデータを体系化するアプローチの長所は、階層情報を更新するためにターゲットデバイス内のスタックを用いる必要がないことである。更に、ターゲット組込デバイスのヒープメモリのスタックをエミュレートする必要も無い。更に、ターゲット組込デバイスのヒープメモリで使用される全体空間が最小化され、もって、より大きな階層ツリーを収納することができる。
図6に示すように、幅優先階層更新メカニズム130によってノードデータが一旦更新されると、レンダメカニズム135によるレンダリングの準備ができる。
図10は、事前割当処理のフローチャートを示す。第1の動作250では、オフライン最適化パイプライン99において、各アセット、及び、生成された各データ構造に対して、この点までメモリが割り当てられる。動作252では、ターゲット組込デバイス内にある任意のエンジンデータ構造が、スクリプトを実行し必要な全ての動作を実行する場合に、構築される。動作254では、ターゲットシミュレータ19が、ターゲットデバイスをシミュレートする。これは例えば、シミュレートされたターゲット組込デバイス内のキャッシュメモリ、スタック、及びヒープのエミュレーションを含む。ターゲットシミュレータ19は更に、3Dプログラム内のアセットの各々について、エンジンの全てのデータ構造をシミュレートする。
動作256では、シミュレートされたエンジンによってアクセスされた、あるいは、シミュレートされたエンジンによって生成されたデータの全てが、エンジンアクセス又は生成の順に、「シミュレートされた」ヒープメモリの隣接部分にパックされる。動作258では、ターゲット組込デバイス内のエンジンに役立つメタデータ構造が生成されうる。更に、事前割当処理の結果生じる割当データが格納される。一般に、割当データは、動作256においてパックされた隣接メモリのサイズと、合計メモリ空間とを含む。
図5に示すようなオフライン最適化パイプライン99の事前割当ステージ110で実行される図10に示す割当処理によって、最終的には、事前割当処理の結果として生成されるメタデータ及びパック合計データ138に従って、ターゲット組込デバイス120において、メモリ割当及びコピーメカニズム136によるメモリ割当及びコピー動作が行われる。具体的には、3Dアプリケーションの実行開始時に、事前割当処理におけるパック動作256中にパックされた全データの単一のメモリコピーと同様に、単一のメモリ割当が、ターゲット組込デバイス120のメモリ134内でなされる。その後、オフラインで構築された任意のエンジンデータ構造がメモリにコピーされ、ターゲット組込デバイスで用いられるデータの準備に必要な単一のメモリコピー、及び、単一の割当が得られる。これは、ターゲット組込デバイスに必要な割当を最小化する。更に、ターゲット組込デバイスの起動及び初期化の時間が最小化される。なぜなら、パックされたデータの全てが、ターゲット組込デバイスのメモリに一度にロードされるからである。
本明細書の図面で示す構成要素の各々によって実行される処理は、汎用コンピュータ、及び/又は、専用の処理コンピュータによって実行されうる。そのような処理は、単一のプラットフォーム、分散処理プラットフォーム、あるいは個別のプラットフォームによって実行されうる。更に、そのような処理は、特別目的のハードウェアの形態で、あるいは、汎用コンピュータによって実行されるソフトウェアの形態で実施することができる。そのような処理で取り扱われるか、あるいは、そのような処理の結果として生成されるあらゆるデータは、任意のタイプのメモリに格納することができる。一例として、そのようなデータは、例えば、与えられたコンピュータシステム又はサブシステムのRAM内のテンポラリメモリに格納されうる。更に、あるいはその代替例として、そのようなデータは、例えば磁気ディスク、再書込可能光ディスク等のような長期的な記憶デバイスに格納されうる。本明細書の開示の目的として、コンピュータ読取可能媒体が、そのような構造及びデータのハードウェアや回路の代表例のみならず、そのようなメモリ技術を含む任意の形態のデータ記憶メカニズムを備えることができる。処理は、任意の計算機読取可能媒体及び/又は集積回路内で行われうる。
最初に提示された請求項、及び、補正されうる請求項は、変形、代替、修正、改良、等価物を含む。また、例えば、現在予期されていないか、価値を認められていないもの、更には、出願人/特許権者及びその他の人によって想起されうるものを含む本明細書で開示された実施形態及び教示の実質的な等価物をも含む。
図1は、1又は複数のデバイスコンテンツ開発プラットフォームのブロック図である。 図2は、ターゲット組込デバイス内のソフトウェアアーキテクチャの実施形態を例示するブロック図である。 図3は、3Dモデルファイルのデータ構造の一例を示す概略図である。 図4は、ユーザインタフェース(UI)レイアウトファイルのデータ構造の一例を示す概略図である。 図5は、オフライン最適化パイプラインのブロック図である。 図6は、ターゲット組込デバイス内においてコード及びデータを選択する概略図である。 図7は、アニメーションを作成する処理のフローチャートを図示する。 図8は、アニメーションをベーキング(baking)する処理のフローチャートを図示する。 図9は、3Dモデル及びアニメーションデータについて階層更新前処理を行なう処理を例示するブロック図である。 図10は、組込デバイス内で要求されるメモリ空間を決定する事前割当処理のフローチャートである。

Claims (60)

  1. 装置であって、
    ターゲットモバイルデバイス以外のコンピュータプラットフォーム内のコンピュータ読取可能媒体組込式3Dアプリケーションと、
    前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上で処理するオフラインエンジンと
    を備える装置。
  2. 前記3Dアプリケーションは、3Dユーザインタフェースアプリケーションを含む請求項1に記載の装置。
  3. 前記オフラインエンジンは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備するデータ構造メカニズムを含む請求項1に記載の装置。
  4. 前記ターゲットモバイルデバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上で、 シミュレートするグラフィックエンジンシミュレータを更に備える請求項2に記載の装置。
  5. 装置であって、
    グラフィックエンジンを含むモバイルデバイスと、
    オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードするモバイルデバイスアセットロードメカニズムとを備え、
    前記モバイルデバイスアセットロードメカニズムは、使用するデータを準備するために、単一の割当を用いる装置。
  6. 前記アセットは、3Dアイコンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを含む請求項5に記載の装置。
  7. 装置であって、
    3Dアイコン及びシーンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットと、
    ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理するオフライン最適化エンジンと、
    前記ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上で、シミュレートするグラフィックエンジンシミュレータと
    を備える装置。
  8. 前記3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットは、システムを定義する3Dイメージからエクスポートされたエクスポート済アセットである請求項7に記載の装置。
  9. 前記オフライン最適化エンジンは、パイプラインを含む請求項8に記載の装置。
  10. 3Dユーザインタフェースを定義するスクリプトステートメントを、コンピュータスクリーン入力を介して受け取り、前記3Dユーザインタフェースを定義するスクリプトステートメントを表すスクリプトファイルのセットを生成するスクリプト言語インタフェースを更に備える請求項9に記載の装置。
  11. 与えられた3Dオブジェクトを、モバイル電話のインタフェースツールにおいてシーンに関連付け、前記与えられた3Dオブジェクトを操作することによって、前記モバイル電話に関する信号の入力及び出力のうちの少なくとも一方を行わせるアイコン関連付けメカニズムを更に備える請求項10に記載の装置。
  12. 前記グラフィックエンジンシミュレータは、Open GL−ES、Direct 3D mobile、及びSKT GIGAのうちの1つと互換性を持つグラフィックエンジンをシミュレートする請求項7に記載の装置。
  13. 前記コンピュータプラットフォームにおいて動作可能であり、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキング(baking)するベーキングメカニズムを更に備える請求項7に記載の装置。
  14. 前記ベーキングメカニズムは、方向及び回転データを四元数に変換する変換メカニズムと、値のグループをクラスタ化するクラスタメカニズムと、四元数値のグループをパックするパックメカニズムとを含む請求項13に記載の装置。
  15. 3Dモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理メカニズムを更に備える請求項7に記載の装置。
  16. 前記確立されたノードの処理の順番は、前記3Dモデルツリーの幅優先横断(breadth-first traversal)順である請求項15に記載の装置。
  17. 前記空間を有する処理済ノードはそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮される請求項16に記載の装置。
  18. 事前割当メカニズムを前記コンピュータプラットフォーム内に更に備え、前記事前割当メカニズムは、
    エンジンデータ構造を構築するエンジンデータ構造ビルダと、
    シミュレートされたエンジンと、
    前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックするシミュレーションデータパッカと、
    パック合計判定部と
    を含む請求項7に記載の装置。
  19. 方法であって、
    ターゲットモバイルデバイス以外のコンピュータプラットフォームに3Dアプリケーションを格納することと、
    前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理することと
    を備える方法。
  20. 前記3Dアプリケーションは、3Dユーザインタフェースアプリケーションを含む請求項19に記載の方法。
  21. 前記処理することは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備することを含む請求項19に記載の方法。
  22. 前記ターゲットモバイルデバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上で シミュレートすることを更に備える請求項20に記載の方法。
  23. 方法であって、
    グラフィックエンジンを含むモバイルデバイスを準備することと、
    オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードすることとを備え、
    前記ロードすることは、使用するデータを準備するために、単一の割当を用いる方法。
  24. 前記アセットは、3Dアイコンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを含む請求項23に記載の方法。
  25. 方法であって、
    3Dアイコン及びシーンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを格納することと、
    ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理することと、
    前記ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることと
    を備える方法。
  26. 前記3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットは、システムを定義する3Dイメージからエクスポートされたエクスポート済アセットである請求項25に記載の方法。
  27. 前記コンピュータプラットフォームにおいてベーキングすることを含み、
    前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項25に記載の方法。
  28. 前記ベーキングすることは、方向及び回転データを四元数に変換することと、値のグループをクラスタ化することと、四元数値のグループをパックすることとを含む請求項27に記載の方法。
  29. 3Dモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理を実行することを更に備える請求項25に記載の方法。
  30. 前記確立されたノードの処理の順番は、前記3Dモデルツリーの幅優先横断順である請求項29に記載の方法。
  31. 前記空間を有する処理済ノードはそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮される請求項30に記載の方法。
  32. 前記コンピュータプラットフォーム内で事前割当を更に実行し、前記事前割当は、
    エンジンデータ構造を構築することと、
    エンジンをシミュレートすることと、
    前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
    パック合計を判定することと
    を含む請求項25に記載の方法。
  33. データで符号化された計算機読取可能媒体であって、前記符合化されたデータは、
    ターゲットモバイルデバイス以外のコンピュータプラットフォームに3Dアプリケーションを格納させ、
    前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理させる
    計算機と用いることが可能である計算機読取可能媒体。
  34. 前記3Dアプリケーションは、3Dユーザインタフェースアプリケーションを含む請求項33に記載の計算機読取可能媒体。
  35. 前記符号化されたデータは、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備する処理を更に行わせる計算機と用いることが可能である請求項33に記載の計算機読取可能媒体。
  36. 前記符号化されたデータは、前記ターゲットモバイルデバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることを更にさせる
    計算機と用いることが可能である請求項34に記載の計算機読取可能媒体。
  37. データで符号化された計算機読取可能媒体であって、
    前記符号化されたデータは、
    グラフィックエンジンを含むモバイルデバイスを準備することと、
    オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードすることと
    を更にさせる計算機と用いることが可能であり、
    前記ロードすることは、使用するデータを準備するために、単一の割当を用いる計算機読取可能媒体。
  38. 前記アセットは、3Dアイコンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを含む請求項37に記載の計算機読取可能媒体。
  39. データで符号化された計算機読取可能媒体であって、前記符号化されたデータは、
    3Dアイコン及びシーンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを格納することと、
    ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理することと、
    前記ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートすることと
    をさせる計算機と用いることが可能である計算機読取可能媒体。
  40. 前記3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットは、システムを定義する3Dイメージからエクスポートされたエクスポート済アセットである請求項39に記載の計算機読取可能媒体。
  41. 前記符号化されたデータは、前記コンピュータプラットフォームにおいてベーキングさせる計算機と用いることが可能であり、
    前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項39に記載の計算機読取可能媒体。
  42. 前記符合化されたデータは、前記ベーキングすることに対して、方向及び回転データを四元数に変換することと、値のグループをクラスタ化することと、四元数値のグループをパックすることと
    を更にさせる計算機と用いることが可能である請求項41に記載の計算機読取可能媒体。
  43. 前記符合化されたデータは、3Dモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する 階層更新事前処理を実行させる
    計算機と用いることが可能である請求項39に記載の計算機読取可能媒体。
  44. 前記確立されたノードの処理の順番は、前記3Dモデルツリーの幅優先横断順である請求項43に記載の計算機読取可能媒体。
  45. 前記符合化されたデータは、更に、前記空間を有する処理済ノードがそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する空間を有したまま圧縮されるようにする計算機と用いることが可能である請求項44に記載の計算機読取可能媒体。
  46. 前記符合化されたデータは、前記コンピュータプラットフォーム内で事前割当を更に実行させる計算機と用いることが可能であり、前記事前割当は、
    エンジンデータ構造を構築することと、
    エンジンをシミュレートすることと、
    前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
    パック合計を判定することと
    を含む請求項39に記載の計算機読取可能媒体。
  47. 装置であって、
    ターゲットモバイルデバイス以外のコンピュータプラットフォームに3Dアプリケーションを格納する手段と、
    前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータを、前記コンピュータプラットフォーム上でオフラインで処理する手段と
    を備える装置。
  48. 前記3Dアプリケーションは、3Dユーザインタフェースアプリケーションを含む請求項47に記載の装置。
  49. 前記処理する手段は、前記ターゲットモバイルデバイスのグラフィックエンジンに従うデータ構造を生成し、準備する手段を含む請求項47に記載の装置。
  50. 前記ターゲットモバイルデバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲットモバイルデバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートする手段を更に備える請求項48に記載の装置。
  51. 装置であって、
    グラフィックエンジンを含むモバイルデバイスを準備する手段と、
    オフラインコンピュータプラットフォームから生成されたアセットを前記グラフィックエンジンにロードする手段とを備え、
    前記ロードすることは、使用するデータを準備するために、単一の割当を用いる装置。
  52. 前記アセットは、3Dアイコンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを含む請求項51に記載の装置。
  53. 装置であって、
    3Dアイコン及びシーンを含む3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットを格納する手段と、
    ターゲット組込デバイスのグラフィックエンジンに従うデータを、前記ターゲット組込デバイス以外のコンピュータプラットフォーム上で処理する手段と、
    前記ターゲット組込デバイスのハードウェアレベルAPIのAPI機能を直接コールするAPIコールを含むグラフィックエンジンを実行する前記ターゲット組込デバイスの選択機能を、前記コンピュータプラットフォーム上でシミュレートする手段と
    を備える装置。
  54. 前記3Dモデルと、前記3Dモデルのアニメーションとを定義するアセットは、システムを定義する3Dイメージからエクスポートされたエクスポート済アセットである請求項53に記載の装置。
  55. 前記コンピュータプラットフォームにおいてベーキングすることを更に備え、
    前記ベーキングすることは、与えられたシーンアニメーションについて、ノード位置、方向、及び回転データを含み、前記アニメーションシーンがレンダリングされると表示される各ディスプレイフレームの全てのノードに関連している全てのアニメーションデータを、前記ターゲット組込デバイスのグラフィックエンジンにロードされるアニメーションデータ構造へベーキングすることを含む請求項53に記載の装置。
  56. 前記ベーキングする手段は、方向及び回転データを四元数に変換する手段と、値のグループをクラスタ化する手段と、四元数値のグループをパックする手段とを含む請求項55に記載の装置。
  57. 3Dモデルツリー内のノードの処理の順番を確立し、空間を有する処理済ノードを、前記ターゲット組込デバイスへエクスポートするために、ツリーデータバッファ内に配列する階層更新事前処理を実行する手段を更に備える請求項53に記載の装置。
  58. 前記確立されたノードの処理の順番は、 前記3Dモデルツリーの幅優先横断順である請求項57に記載の装置。
  59. 前記空間を有する処理済ノードがそれぞれ、フォーマットを変更せずに前記ノードの情報を保持するために必要とされるメモリ空間量と関連する 空間を有したまま圧縮される請求項58に記載の装置。
  60. 前記コンピュータプラットフォーム内で事前割当を実行する手段を更に備え、前記事前割当は、
    エンジンデータ構造を構築することと、
    エンジンをシミュレートすることと、
    前記シミュレートされたエンジンによってアクセスされ生成されたデータをパックし、構築済エンジンデータ構造をパックすることと、
    パック合計を判定することと
    を含む請求項53に記載の装置。
JP2008520327A 2005-06-29 2006-06-29 組込デバイス内の3dコンテンツ用のオフライン最適化パイプライン Pending JP2009500750A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US69634705P 2005-06-29 2005-06-29
US69618505P 2005-06-29 2005-06-29
US69648805P 2005-06-29 2005-06-29
US69634605P 2005-06-29 2005-06-29
US69618605P 2005-06-29 2005-06-29
PCT/US2006/025954 WO2007002943A2 (en) 2005-06-29 2006-06-29 Offline optimization pipeline for 3d content in embedded devices

Publications (1)

Publication Number Publication Date
JP2009500750A true JP2009500750A (ja) 2009-01-08

Family

ID=37441776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008520327A Pending JP2009500750A (ja) 2005-06-29 2006-06-29 組込デバイス内の3dコンテンツ用のオフライン最適化パイプライン

Country Status (6)

Country Link
US (1) US8026910B2 (ja)
EP (1) EP1899922A2 (ja)
JP (1) JP2009500750A (ja)
KR (1) KR100928192B1 (ja)
CA (1) CA2614759A1 (ja)
WO (1) WO2007002943A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262646A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 動的グラフ用アニメーション・プランニング方法及び装置
JP7397940B2 (ja) 2021-10-12 2023-12-13 スクウェア エニックス、リミテッド コンピュータゲームにおけるサブアイテムの平坦化リストを使用したシーンエンティティ処理

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100084036A (ko) * 2009-01-15 2010-07-23 삼성전자주식회사 소프트웨어의 에러 검출 장치 및 방법
EP2261859A1 (en) 2009-06-10 2010-12-15 Thomson Licensing Method for encoding/decoding a 3D mesh model that comprises one or more components
KR101674205B1 (ko) * 2009-10-27 2016-11-08 엘지전자 주식회사 이동 통신 단말기에서의 아이콘 표시 제어 방법 및 이를 적용한 이동 통신 단말기
KR101631451B1 (ko) * 2009-11-16 2016-06-20 엘지전자 주식회사 영상표시장치 및 그 동작방법
EP2529356A1 (en) 2010-01-25 2012-12-05 Thomson Licensing Method for encoding normals of a 3d mesh model, method for decoding normals of a 3d mesh model, encoder and decoder
CN102254475B (zh) * 2011-07-18 2013-11-27 广州赛宝联睿信息科技有限公司 内窥镜微创手术模拟训练3d平台系统的实现方法
RU2013102854A (ru) 2013-01-30 2014-08-10 ЭлЭсАй Корпорейшн Способ и устройство для повышения кадровой частоты потока изображений с использованием, по меньшей мере, одного потока изображений с более высокой кадровой частотой
US10156842B2 (en) 2015-12-31 2018-12-18 General Electric Company Device enrollment in a cloud service using an authenticated application
US10565802B2 (en) * 2017-08-31 2020-02-18 Disney Enterprises, Inc. Collaborative multi-modal mixed-reality system and methods leveraging reconfigurable tangible user interfaces for the production of immersive, cinematic, and interactive content
CN108734788A (zh) * 2018-05-17 2018-11-02 成都明镜视觉科技有限公司 一种3d对象在虚拟场景中的节点化组织方法
US11567628B2 (en) * 2018-07-05 2023-01-31 International Business Machines Corporation Cognitive composition of multi-dimensional icons
US11281477B2 (en) * 2020-07-24 2022-03-22 Weta Digital Limited Assigning computing resources to execution of evaluators for image animation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199142A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd 携帯端末機器及び画像表示方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272650B1 (en) * 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6263496B1 (en) * 1998-02-03 2001-07-17 Amazing Media, Inc. Self modifying scene graph
US6477563B1 (en) * 1998-04-13 2002-11-05 Kabushiki Kaisha Toshiba Agent system and information processing method for same
GB0013764D0 (en) * 2000-06-07 2000-07-26 Koninkl Philips Electronics Nv Animated graphic image generation and coding
GB2374775B (en) * 2001-04-19 2005-06-15 Discreet Logic Inc Rendering animated image data
US7027056B2 (en) * 2002-05-10 2006-04-11 Nec Electronics (Europe) Gmbh Graphics engine, and display driver IC and display module incorporating the graphics engine
US7388579B2 (en) * 2003-05-01 2008-06-17 Motorola, Inc. Reduced power consumption for a graphics accelerator and display
JP3928635B2 (ja) * 2003-10-27 2007-06-13 日本電気株式会社 着信メロディ指定機能付携帯電話システム及び携帯電話機
US7593015B2 (en) * 2003-11-14 2009-09-22 Kyocera Wireless Corp. System and method for sequencing media objects
EP1716469A4 (en) * 2004-02-12 2008-07-09 Mobileframe Llc INTEGRATED DEPLOYMENT OF SOFTWARE PROJECTS
US7406329B2 (en) * 2004-09-04 2008-07-29 Varun Khurana Method and apparatus for subscribing and receiving personalized updates in a format customized for handheld mobile communication devices
US7719532B2 (en) * 2007-02-09 2010-05-18 International Business Machines Corporation Efficient and flexible data organization for acceleration data structure nodes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199142A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd 携帯端末機器及び画像表示方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262646A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 動的グラフ用アニメーション・プランニング方法及び装置
JP7397940B2 (ja) 2021-10-12 2023-12-13 スクウェア エニックス、リミテッド コンピュータゲームにおけるサブアイテムの平坦化リストを使用したシーンエンティティ処理

Also Published As

Publication number Publication date
US8026910B2 (en) 2011-09-27
KR100928192B1 (ko) 2009-11-25
EP1899922A2 (en) 2008-03-19
WO2007002943A2 (en) 2007-01-04
CA2614759A1 (en) 2007-01-04
US20070109298A1 (en) 2007-05-17
KR20080022591A (ko) 2008-03-11
WO2007002943A3 (en) 2007-04-05

Similar Documents

Publication Publication Date Title
KR100928192B1 (ko) 내장형 디바이스에서의 3d 콘텐츠에 대한 오프라인 최적화파이프라인
US6154215A (en) Method and apparatus for maintaining multiple representations of a same scene in computer generated graphics
CN107393013B (zh) 虚拟漫游文件生成、显示方法、装置、介质、设备和系统
US8584084B2 (en) System for library content creation
WO2019212870A1 (en) Authoring content in three-dimensional environment
US20080049015A1 (en) System for development of 3D content used in embedded devices
CN102135873B (zh) 一种创建用户界面的方法和装置
WO2000041139A1 (fr) Dispositif de compression de donnees squelette a base tridimensionnelle
WO2023071579A1 (zh) 物理特效渲染方法、装置、计算机设备和存储介质
US6670954B2 (en) Three-dimensional skeleton data error absorbing apparatus
GB2373349A (en) Data definition language
WO2021154101A1 (en) Software broker for assets managed with nested instancing
CN101243473A (zh) 用于嵌入式装置中的3d内容的离线优化管线
KR100817506B1 (ko) 지능형 콘텐츠 생성방법
Yang et al. A Fire Escape Simulation System Based on the Dijkstra Algorithm.
CN113467770B (zh) 一种基于标准数据交换的指令集可视化操作系统、方法及应用
KR100657116B1 (ko) 3차원 오브젝트 애니메이션 구현 방법 및 그 시스템
CN114912617A (zh) 一种量子化设计的方法
CN117785194A (zh) Web应用可视化页面的开发工具生成方法
CN116719521A (zh) 一种示教器型号编辑方法、系统及组态软件系统
CN117111919A (zh) 内容显示方法、电子设备及存储介质
CN115423910A (zh) 虚拟场景下布料的物理模拟方法及装置
CN116564153A (zh) 一种基于三维架构的作战仿真引擎
CN117853661A (zh) 一种基于物件模型的可视化效果自定义方法和系统
KR20220074246A (ko) 화재 시뮬레이터기반 실시간 화재 가시화 시스템 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301