JP2008033941A - 三次元キャラクタ・アニメーションを表すオペレータ・グラフの効率的処理 - Google Patents

三次元キャラクタ・アニメーションを表すオペレータ・グラフの効率的処理 Download PDF

Info

Publication number
JP2008033941A
JP2008033941A JP2007198512A JP2007198512A JP2008033941A JP 2008033941 A JP2008033941 A JP 2008033941A JP 2007198512 A JP2007198512 A JP 2007198512A JP 2007198512 A JP2007198512 A JP 2007198512A JP 2008033941 A JP2008033941 A JP 2008033941A
Authority
JP
Japan
Prior art keywords
operator
subgraph
graph
changes
operator graph
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
JP2007198512A
Other languages
English (en)
Inventor
Jerome Couture-Gagnon
ジェローム・クートル−ガニョン
Peter Zion
ピーター・ズィオン
Ian Stewart
イアン・スチュアート
Ronald Beirouti
ロナルド・ベイルーティ
Domimic Laflamme
ドミニク・ルフランム
Maxime Beaudry
マクシム・ボードリー
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.)
Avid Technology Inc
Original Assignee
Avid Technology 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 Avid Technology Inc filed Critical Avid Technology Inc
Publication of JP2008033941A publication Critical patent/JP2008033941A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Abstract

【課題】 コンピュータの処理資源を効率的に用いて、システムの対話式編集または再生をサポートするシステムの能力を高める。
【解決手段】 三次元アニメーションを表すオペレータ・グラフを分析し、オペレータ・グラフの内、オペレータが直列的に動作する必要がないサブグラフを特定可能とする。この条件が生ずる可能性があるのは、例えば、2つのオペレータが互いにデータに対して依存しない場合である。この条件は、オペレータが場面における異なるエレメント上で動作しているときに生ずる可能性がある。このようなオペレータは並列に評価することができる。これらのオペレータを特定するために、依存性グラフを作成する。依存性グラフは、どのオペレータの入力が、他のオペレータが供給する出力に依存するかを示す。このグラフを用いると、互いに独立しているオペレータを容易に特定することができる。これらのオペレータは、並列に評価することができる。
【選択図】 図1

Description

三次元コンピュータ発生アニメーションを作成する際、1つ以上のオブジェクトがある場面を定義するのが通例である。オブジェクトは、スケルトンおよび付随するメッシュ、NURBS面、粒子等を用いるように、多数の方法で定義することができる。各オブジェクトの位置、方位、スケール、および/またはその他の特性を、時間の流れに合わせて動画で表現することができる。また、各オブジェクトの表面には、シェーディングまたはレンダリングと呼ばれるプロセスによって、模様を付けてオブジェクトが実物に見えるようにすることもできる。場面の複雑さは、オブジェクトの数、各オブジェクトの複雑さ、およびアニメーションの複雑さによって様々に変化する可能性がある。多数の異なる動作を用いて、様々な異なるタイプの入力場面データを処理して、三次元コンテンツを編集したり、あるいは三次元場面のビューを表す二次元画像(またはそのような画像のシーケンス)を生成する。
三次元コンピュータ発生アニメーションのオーサリング・システムでは、殆どがオペレータ・グラフの一形式を用いて場面を定義する動作の組み合わせを表す。オペレータ・グラフにおける各ノードは、データ上の動作を表す。オペレータは、場面を定義するいずれのパラメータでも変化させることができる。ノードは、コンピュータ・プログラムの明示的にコード化した機能として実装する動作を表すことができ、あるいは別のオペレータ・グラフによって定義した動作を表すことができる。
これらのオペレータ・グラフは、種々のタイプの三次元データを用いて場面を作成できるように設計されており、三次元データには、NURBS面、メッシュ、粒子、スケルトン、特性、制約等を含むが、これらに限定されるのではない。言い換えると、各オペレータは、他のオペレータとは異なる種類のデータ上で動作することができる。オペレータの中には、他のオペレータよりも複雑なものもある。例えば、あるオペレータは単純な変形を実行し、一方他のオペレータは三次元データ間の複雑な制約を定義するという場合もある。その結果、オペレータ・グラフにおける各動作は、通例、他の動作とは独立して行われるが、しかしながら、各動作は、通例、当該動作に可能な並列処理(parallelism)であればいずれでも利用するように実装されている。
したがって、アニメーションを表示するために必要な処理資源は膨大となる。しなしながら、対話式編集には、再生とは異なる要望がある。即ち、編集ツールの方が柔軟性のあるデータを表すので、幾何学的要素の追加、除去および/または修正というような、オペレータ・グラフを修正する対話式変化が可能であるが、再生はデータをメモリにキャッシュし最適化して、視認プロセスによって高速な読み取りアクセスを可能とし、更に効率的な再生のためにオペレータ・グラフのコンパイルを伴うこともある。その結果、編集ツールおよび再生システムは、別々にデータをメモリに配列し、オペレータ・グラフを処理することになる。
コンピュータ・アーキテクチャが発展した結果、コンピュータが一層強力となり、1つ以上の中央演算装置(CPU)、および/または1つ以上のグラフィック処理装置(GPU)、および/または1つ以上の物理的処理装置(PPU)、および/または1つ以上のセル・プロセッサ(マルチ・コアCPU)を含む、多くのプロセッサを有するようになった。これらの処理資源はシステムの対話式編集または再生をサポートするシステムの能力を高めるが、これらの資源を効率的に用いることが課題となっている。
三次元アニメーションを表すオペレータ・グラフを分析し、オペレータ・グラフの内、オペレータが直列的に動作する必要がないサブグラフを特定可能とする。このような条件が生ずる可能性があるのは、例えば、2つのオペレータが互いにデータに対して依存しない場合である。この条件は、オペレータが場面における異なるエレメント上で動作しているときに生ずる可能性がある。このようなオペレータは並列に評価することができる。これらのオペレータを特定するために、依存性グラフを作成する。依存性グラフは、どのオペレータの入力が、他のオペレータが供給する出力に依存するかを示す。このグラフを用いると、互いに独立しているオペレータを容易に特定することができる。これらのオペレータは、並列に評価することができる。三次元アニメーション、またはオペレータ・グラフの分析のような、その他のリッチ・メディア(rich media)の対話式編集システムでは、このようなオペレータ・グラフの分析は、アニメーションを変更するときに行われる。依存性グラフの作成および使用によって、場面を変化させつつ、場面の処理高速化が可能となる。
直列化を必要としない他の条件が生ずるのは、例えば、第1オペレータが書いたデータを用いる第2オペレータが、当該第1オペレータが書いたデータを処理し始めることができ、その後にこのデータ処理を第1オペレータが完了する場合である。通例、この条件が生ずるのは、オペレータが同質データ上で動作し、空間変位のような単純な操作を実行するときである。このようなオペレータは、パイプライン状に評価することができ、計算を直列化しなければならない同期点がない。サブグラフのオペレータの多数のインスタンシエーションによっても、データの異なるセグメント上でサブグラフの並列評価が可能となる。
この並列パイプライン動作が可能なのは、アニメーション・オペレータの大部分が、明示的な幾何学的データの動画化した変形であるからである。明示データとは、メッシュ、粒子、またはポイント・クラウド(point cloud)、NURBS、骨等のような幾何学的オブジェクトの点または頂点である。このデータの均一性およびこれらの動作における依存性抑制が並列パイプライン処理を可能にする。各動作は、纏まった量のデータ上で内部的に動作することができ、並行処理が可能となる。動作の連鎖において、1つの動作は、通例、データ全ての処理を完了するために、以前の動作を待つ必要がなく、パイプライン動作が可能となる。このように、オペレータを連結して、各オペレータの終了時に同期を取る必要がないオペレータ・シーケンスを生成し、これらの計算を直列化する。
これより図1を参照して、オペレータ・グラフの一例についてここで説明する。このオペレータ・グラフでは、明確化のためにデータも示されている。オペレータ・グラフは、通例、場面要素(メッシュ、骨、粒子等)、パラメータ(位置、角度等)、およびオペレータを含む。オペレータは、パラメータおよびその他の場面要素の値を取り込み、ある種の数学的または幾何学的動作を、オペレータに応じて、実行することにより、場面要素を作成または修正する。オペレータ・グラフの一部は暗示的にそのデータをグラフに対するソース・データとして表し、データがグラフにおけるノードとはならないようにする。
図1において、2つの場面要素100および102が設けられている。各々はポリゴン・メッシュである。並進量(パラメータ)104も設けられている。これらのデータは、並進オペレータ106への入力である。並進オペレータは、メッシュ100および102をそれぞれ並進パラメータだけ並進させることによって、第1並進ポリゴン・メッシュ100’および第2並進ポリゴン・メッシュ102’を生成する。計算した変形パラメータ108および並進ポリゴン・メッシュ100’は、変形オペレータへの入力であり、変形パラメータ110は変形ポリゴン・メッシュ112をその出力として生成する。同様に、計算した変形パラメータ114および並進ポリゴン・メッシュ102’は、変形オペレータ116への入力であり、変形オペレータ116は、変形ポリゴン・メッシュ118をその出力として生成する。このオペレータ・グラフが記述する場面では、2つのオブジェクトが同量だけ並進するが、別個に変形する。オペレータ・グラフにおいて、矢印のある線がオペレータから出ているが、これは書き込み動作を意味する。
図1のオペレータ・グラフを用いると、変形オペレータ110のようなオペレータは、コンピュータ・プログラムにおける単一の関数として実装できることがわかる。また、このオペレータ自体が、オペレータ・グラフによって定義されるオペレータの組み合わせを表すことも可能である。このように、オペレータ・グラフは、数段のネスティング「レベル」を有することができ、最上位レベルでは、オペレータ・グラフが実行する動作の内最も抽象的なビュー(view)を表す。一方、各ノードは、オペレータ・グラフによって表すことができる。これらネスティングしたオペレータ・グラフは、最上位レベルのオペレータ・グラフよりも「下」のレベルにあると考えることができる。
オペレータ・グラフを処理するために、各オペレータは直列化または同期を必要とすると仮定する。即ち、各オペレータは、その入力データ全ての処理を完了し、その出力データの全てを書き込んだ後でないと、グラフにおける次のオペレータはその出力データを読み取ることができないと仮定する。これらのサブグラフを識別するためにグラフを横断する(traverse)と、データおよび動作の特質により、サブグラフにおいては、この制限が取り払われて、パイプライン即ち並列動作が可能となる。簡素化の1つでは、オペレータ・グラフの最上位レベルにあるオペレータ・グラフにおける各ノードを直列に評価する。他のオペレータ・グラフによって定義されているノードを処理して、その評価を並列化またはパイプライン化する方法を見出すことができる。
グラフを分析するために、オペレータが実行する書き込み動作を用いて依存性グラフを作成する。即ち、オペレータ・グラフの出力から開始して、グラフを横断して、オペレータ毎に、実行する各動作が、データを作成するのかまたは修正するのか識別する。この書き込み動作は、依存性グラフにおけるノードである。オペレータ・グラフを横断することにより、この書き込み動作の結果を用いる他のオペレータを識別し、依存性グラフにおけるこのノードに接続する。即ち、オペレータがその書き込みを実行するために読み込む入力全て(パラメータおよびその他の場面要素)を特定する。他のオペレータからの1回以上の書き込みが見つかるまで、これらの入力の各々をオペレータ・グラフ全域にわたって辿っていく。これらの書き込みは、オペレータが依存する書き込みである。1つのオペレータが多数の場面要素を書き込むことは可能である。一般にオペレータを多数回並列に走らせることはできないので、所与のオペレータの書き込み全ては順次互いに依存し合う。つまり、2回目の書き込みは最初の書き込みに依存し、3回目の書き込みは2回目の書き込みに依存する等となる。多数の書き込みがあるオペレータでは、各書き込みは、特定の書き込みを実行するために実際に用いる入力のみに依存する。オペレータ・グラフの中にループがある場合、即ち、2つのオペレータの入力が互いの書き込みに依存する場合、依存性グラフを構築するときにこれらのループは壊される。具体的には、依存性グラフを構築するとき、オペレータ・グラフを横断している間、各ノードを訪問する毎にそれに印を付ける。このグラフの1つの経路に沿って進む横断は、オペレータ・グラフにおいて既に訪問したノードに達したときに終了する。
図1に対応する依存性グラフを図2に示す。このグラフでは、矢印は「依存する」ことを意味する。つまり、変形オペレータ110が実行する書き込み動作200は、並進オペレータ106が実行する書き込み動作202に依存する。並進オペレータ106からの書き込み動作202は、並進オペレータ106が他のメッシュを最初に処理し書き込んだ(204)後でなければ、行うことはできない。このように、書き込み動作202は書き込み動作204に依存する。他の変形オペレータ116からの書き込み動作206も、書き込み動作204の完了に依存する。
依存性グラフを構築した後であれば、次々に動作を実行することができる。最初に、書き込み動作202を実行する。次いで、書き込み動作204および200を並列に実行することができる。書き込み動作204が終了すると、書き込み200が未だ終了していなくても、書き込み動作206を直ぐに開始することができる。一旦書き込み動作206および書き込み動作200の双方が終了したなら、処理は完了する。
依存性グラフのいずれの部分でも、依存性がなければ、並列に実行することができる。一般に、1つの動作が、終了している他の2つの動作に依存する場合、当該動作が依存する2つの動作は並列に実行し、何らかの同期を取って、双方の動作が完了していることを確実に確かめる。この種の同期は、少なくとも、2つの動作を実行する2つのプロセッサの内部キャッシュを同期させなければならず、そうしなければ得られた性能の向上が事実上帳消しになってしまうので、大きな犠牲を伴う。しかしながら、ある動作が、完了している別の1つの動作のみに依存する場合、同期は必要ない。何故なら、2番目の動作は、単に、同じプロセッサの最初の動作の後に実行するだけであるからである。
場合によっては、オペレータは、後続のオペレータがその出力を処理し始めることができるようにデータを書き込むことができ、したがって、これらのオペレータはパイプライン状にデータを評価し、計算を直列化するために同期点を必要としないこともある。例えば、このような1つの動作が内部でパイプライン状になって、包み込んでいる(enveloping)ことにより、ポリゴン・メッシュが、スケルトンにおける骨の位置に基づいて変形する。メッシュ上の各点は、他のあらゆる点とも独立して位置決めし直すことができる。これは費用がかかるものの非常に普及している動作であるので、内部パイプライニングを用いて、エンベロッピング・オペレータ(enveloping operator)を実装することもできる。
これらのプロセスを想定し、独立した要素の互換性がある集合上で作用するオペレータを接続して構成したサブグラフを特定する。これらのサブグラフは、事実上併合し、依存性グラフにおいては1つのメタ・オペレータとして扱うことができ、併合したオペレータの読み取りおよび書き込み依存性をメタ・オペレータに割り当てる。このメタ・ノードは、内部的に多数の並列動作を管理することができるものとして識別される。
三次元アニメーションまたはその他のリッチ・メディア用の対話式編集システムでは、オペレータ・グラフのこのような分析を行うのは、アニメーションおよび三次元データ・コンテンツを変更するときである。対話式編集の間に依存性グラフを動的に作成し使用することによって、独立したサブグラフが動的に更新されるので、場面を変化させつつ、当該場面の処理を高速化することができる。
各サブグラフを並列に評価し、それ自体のメモリを管理する。各サブグラフに割り当てられるメモリ領域は、当該サブグラフが場面変化によって変化するまでは、変わらない。サブグラフおよびキャッシュは不変量であり、割り当てのためにオペレーティング・システムに戻る必要なく、実行の準備ができているので、演算装置に整列する時間を短縮する。
ここに記載するシステムの種々の構成要素は、汎用コンピュータを用いて、コンピュータ・プログラムとして実現することができる。このようなコンピュータ・システムは、通例、ユーザに情報を表示する出力デバイスと、ユーザからの入力を受ける入力デバイスの双方に接続された主ユニットを含む。主ユニットは、一般に、相互接続機構を通じてメモリ・システムに接続されているプロセッサを含む。入力デバイスおよび出力デバイスも、相互接続機構を通じて、プロセッサおよびメモリ・システムに接続されている。
1つ以上の出力デバイスをコンピュータ・システムに接続することもできる。出力デバイスの例には、陰極線管ディスプレイ(CRT)、液晶ディスプレイ(LCD)、およびその他のビデオ出力デバイス、プリンタ、モデムのような通信デバイス、ならびにディスクまたはテープのような記憶装置が含まれるが、これらに限定する訳ではない。1つ以上の入力デバイスをコンピュータ・システムに接続することもできる。入力デバイスの例には、キーボード、キーパッド、トラック・ボール、マウス、ペンおよびタブレット、通信デバイス、ならびにデータ入力デバイスが含まれるが、これらに限定する訳ではない。本発明は、コンピュータ・システムと組み合わせて用いられる特定の入力または出力デバイスにも、ここに記載したものにも限定されることはない。
コンピュータ・システムは、コンピュータ・プログラミング言語を用いてプログラム可能な、汎用コンピュータ・システムとすることができる。また、コンピュータ・システムは、特別にプログラムされた、特殊目的ハードウェアとすることもできる。汎用コンピュータ・システムでは、プロセッサは、通例、市販のプロセッサである。また、汎用コンピュータは、通例、オペレーティング・システムを含み、オペレーティング・システムが、他のコンピュータ・プログラムの実行を制御し、スケジューリング、デバッグ、入力/出力制御、アカウンティング、コンパイル、ストレージの割り当て、データ管理、およびメモリ管理、ならびに通信制御および関係するサービスを行う。
メモリ・システムは、通例、コンピュータ読み取り可能媒体を含む。この媒体は、揮発性または不揮発性、書き込み可能または書き込み不可能、および/または書き換え可能または書き換え不可能な場合がある。メモリ・システムは、通例、二進形式でデータを格納する。このようなデータは、マイクロプロセッサが実行するアプリケーション・プログラム、またはディスク上に格納されアプリケーション・プログラムが処理する情報を定義することができる。本発明は、特定のメモリ・システムに限定されることはない。
ここに記載するようなシステムは、ソフトウェアまたはハードウェアまたはファームウェア、あるいはこれら3つの組み合わせで実施することができる。システムの種々のエレメントは、個別であれ組み合わせであれ、コンピュータによる実行のためにコンピュータ読み取り可能媒体上にコンピュータ・プログラム命令が格納されている、1つ以上のコンピュータ・プログラム製品として実施することができる。プロセスの種々のステップは、このようなコンピュータ・プログラム命令を実行するコンピュータによって、行うことができる。コンピュータ・システムは、マルチプロセッサ・コンピュータ・システムでもよく、あるいはコンピュータ・ネットワークを通じて接続されている多数のコンピュータを含むこともできる。本発明は、コンピュータ・プログラムの別個のモジュールを用いて実施することもでき、または別個のコンピュータ上で動作可能な、別個のコンピュータ・プログラムでもよい。これらの構成要素によって生成されるデータは、メモリ・システムに格納するか、またはコンピュータ・システム間で送信することができる。
以上実施形態の一例について説明したが、前述したことは単なる例示であり限定ではなく、一例として提示したにすぎないことは、当業者には明白なはずである。多数の変更やその他の実施形態も、当技術分野における通常技術の1つの範囲内にあり、本発明の範囲内に該当するものとする。
図1は、アニメーションを作成するために適用する処理を表すオペレータ・グラフの図である。 図2は、オペレータ・グラフの分析から発生する依存性グラフの図である。
符号の説明
100 元のポリゴン・メッシュ1
100’ 並進ポリゴン・メッシュ1
102 元のポリゴン・メッシュ2
102’ 並進ポリゴン・メッシュ2
104 並進量
106 並進オペレータ
108 計算した変形パラメータ1
110 変形オペレータ1
112 変形ポリゴン・メッシュ1
114 計算した変形パラメータ2
116 変形オペレータ2
118 変形ポリゴン・メッシュ

Claims (19)

  1. オペレータのグラフによって定義したキャラクタ・アニメーションの処理方法であって、
    三次元アニメーションを表すオペレータ・グラフを受け取るステップと、
    前記オペレータ・グラフの内、第1オペレータへの入力が第2オペレータの出力から独立しているサブグラフを特定するステップと、
    前記第1オペレータおよび前記第2オペレータを並列に評価するステップと、
    を備えている、方法。
  2. 請求項1記載の方法であって、更に、
    前記オペレータ・グラフの内、第1オペレータが書き込むデータを用いる第2オペレータが、前記第1オペレータが前記データの処理を完了する前に、前記第1オペレータが書き込む前記データを処理し始めることができるサブグラフを特定するステップと、
    前記特定したサブグラフ内において、前記第1および第2オペレータをパイプライン状に評価するステップと、
    を備えている、方法。
  3. 請求項2記載の方法であって、更に、
    前記データの異なるセグメントに対する並列評価のため、特定したサブグラフの複数のインスタンシエーションを作成するステップを備えている、方法。
  4. 請求項1記載の方法であって、更に、オペレータ・グラフが、ユーザが定義する場面に対する変化に応答して変化する場合にのみ、各サブグラフに割り当てられるメモリ領域が変化するように、特定した各サブグラフに関連したメモリを管理するステップを備えている、方法。
  5. 請求項4記載の方法において、メモリを管理するステップは、前記ユーザが定義した前記場面に対する変化による前記オペレータ・グラフの変化に応答する場合を除いて、実行までのレイテンシ時間を短縮するように、サブグラフと、該サブグラフに対する関連したメモリとを不変に、かつ実行の準備を整えて維持することを含む、方法。
  6. オペレータのグラフによって定義したキャラクタ・アニメーションの処理方法であって、
    三次元アニメーションを表すオペレータ・グラフを受け取るステップと、
    前記オペレータ・グラフの内、第1オペレータが書き込むデータを用いる第2オペレータが、前記第1オペレータが前記データの処理を完了する前に、前記第1オペレータが書き込む前記データを処理し始めることができるサブグラフを特定するステップと、
    前記特定したサブグラフ内において、前記第1および第2オペレータをパイプライン状に評価するステップと、
    を備えている、方法。
  7. 請求項6記載の方法であって、更に、
    前記データの異なるセグメントに対する並列評価のため、特定したサブグラフの複数のインスタンシエーションを作成するステップを備えている、方法。
  8. 請求項7記載の方法であって、更に、前記オペレータ・グラフが、ユーザが定義する場面に対する変化に応答して変化する場合にのみ、各サブグラフに割り当てられるメモリ領域が変化するように、特定した各サブグラフに関連したメモリを管理するステップを備えている、方法。
  9. 請求項8記載の方法において、メモリを管理するステップは、前記ユーザが定義した前記場面に対する変化による前記オペレータ・グラフの変化に応答する場合を除いて、実行までのレイテンシ時間を短縮するように、サブグラフと、該サブグラフに対する関連したメモリとを不変に、かつ実行の準備を整えて維持することを含む、方法。
  10. コンピュータ・プログラム製品であって、
    コンピュータ読み取り可能媒体と、
    前記コンピュータ読み取り可能媒体上に格納され、コンピュータによって実行されると、オペレータのグラフによって定義したキャラクタ・アニメーションの処理方法を前記コンピュータに実行させるコンピュータ・プログラム命令と、
    を備えており、前記方法が、
    三次元アニメーションを表すオペレータ・グラフを受け取るステップと、
    前記オペレータ・グラフの内、第1オペレータへの入力が第2オペレータの出力から独立しているサブグラフを特定するステップと、
    前記第1オペレータおよび前記第2オペレータを並列に評価するステップと、
    を備えている、コンピュータ・プログラム製品。
  11. 請求項10記載の方法であって、更に、
    前記オペレータ・グラフの内、第1オペレータが書き込むデータを用いる第2オペレータが、前記第1オペレータが前記データの処理を完了する前に、前記第1オペレータが書き込む前記データを処理し始めることができるサブグラフを特定するステップと、
    前記特定したサブグラフ内において、前記第1および第2オペレータをパイプライン状に評価するステップと、
    を備えている、方法。
  12. 請求項11記載の方法であって、更に、
    前記データの異なるセグメントに対する並列評価のため、特定したサブグラフの複数のインスタンシエーションを作成するステップを備えている、方法。
  13. 請求項10記載の方法であって、更に、オペレータ・グラフが、ユーザが定義する場面に対する変化に応答して変化する場合にのみ、各サブグラフに割り当てられるメモリ領域が変化するように、特定した各サブグラフに関連したメモリを管理するステップを備えている、方法。
  14. 請求項13記載の方法において、メモリを管理するステップは、前記ユーザが定義した前記場面に対する変化による前記オペレータ・グラフの変化に応答する場合を除いて、実行までのレイテンシ時間を短縮するように、サブグラフと、該サブグラフに対する関連したメモリとを不変に、かつ実行の準備を整えて維持することを含む、方法。
  15. コンピュータ・プログラム製品であって、
    コンピュータ読み取り可能媒体と、
    前記コンピュータ読み取り可能媒体上に格納され、コンピュータによって実行されると、オペレータのグラフによって定義したキャラクタ・アニメーションの処理方法を前記コンピュータに実行させるコンピュータ・プログラム命令と、
    を備えており、前記方法が、
    三次元アニメーションを表すオペレータ・グラフを受け取るステップと、
    前記オペレータ・グラフの内、第1オペレータが書き込むデータを用いる第2オペレータが、前記第1オペレータが前記データの処理を完了する前に、前記第1オペレータが書き込む前記データを処理し始めることができるサブグラフを特定するステップと、
    前記特定したサブグラフ内において、前記第1および第2オペレータをパイプライン状に評価するステップと、
    を備えている、方法。
  16. 請求項15記載の方法であって、更に、
    前記データの異なるセグメントに対する並列評価のため、特定したサブグラフの複数のインスタンシエーションを作成するステップを備えている、方法。
  17. 請求項16記載の方法であって、更に、オペレータ・グラフが、ユーザが定義する場面に対する変化に応答して変化する場合にのみ、各サブグラフに割り当てられるメモリ領域が変化するように、特定した各サブグラフに関連したメモリを管理するステップを備えている、方法。
  18. 請求項17記載の方法において、メモリを管理するステップは、前記ユーザが定義した前記場面に対する変化による前記オペレータ・グラフの変化に応答する場合を除いて、実行までのレイテンシ時間を短縮するように、サブグラフと、該サブグラフに対する関連したメモリとを不変に、かつ実行の準備を整えて維持することを含む、方法。
  19. オペレータのグラフによって定義したキャラクタ・アニメーションの処理方法であって、前記オペレータのグラフは、ユーザが編集している場面を表し、
    三次元アニメーションを表すオペレータ・グラフを受け取るステップと、
    前記オペレータ・グラフの内、第1オペレータへの入力が第2オペレータの出力から独立しているサブグラフを特定するステップと、
    表示データをユーザに供給するために、前記第1オペレータおよび前記第2オペレータを並列に評価するステップと、
    前記ユーザによる前記場面に対する変化による前記オペレータ・グラフに対する変化に応答して、前記受け取るステップ、前記特定するステップ、および前記変化したオペレータ・グラフを用いて評価するステップを繰り返すステップと、
    を備えている、方法。
JP2007198512A 2006-07-31 2007-07-31 三次元キャラクタ・アニメーションを表すオペレータ・グラフの効率的処理 Pending JP2008033941A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US83437206P 2006-07-31 2006-07-31

Publications (1)

Publication Number Publication Date
JP2008033941A true JP2008033941A (ja) 2008-02-14

Family

ID=38694955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007198512A Pending JP2008033941A (ja) 2006-07-31 2007-07-31 三次元キャラクタ・アニメーションを表すオペレータ・グラフの効率的処理

Country Status (4)

Country Link
US (1) US8310484B2 (ja)
EP (1) EP1884899A3 (ja)
JP (1) JP2008033941A (ja)
CA (1) CA2593902A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916324A (zh) * 2008-11-17 2010-12-15 迪士尼企业公司 用于动画的依赖图评估的系统和方法
US9183175B2 (en) 2013-01-28 2015-11-10 International Business Machines Corporation Memory management in a streaming application

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8466919B1 (en) * 2009-11-06 2013-06-18 Pixar Re-rendering a portion of an image
KR20110089649A (ko) * 2010-02-01 2011-08-09 삼성전자주식회사 병렬 연산 처리 방법 및 장치
EP2880636B1 (en) * 2012-08-03 2022-01-05 DreamWorks Animation LLC Constraint evaluation in directed acyclic graphs
US9224239B2 (en) 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9171401B2 (en) * 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9230294B2 (en) * 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9147010B2 (en) 2013-04-17 2015-09-29 International Business Machines Corporation Reconfiguring an operator graph based on attribute usage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644209A (ja) * 1992-07-27 1994-02-18 Toshiba Corp 並列シミュレーションモデル分割決定装置
JP2001318798A (ja) * 2000-03-16 2001-11-16 Square Co Ltd 並列オブジェクトタスクエンジンおよび並列処理方法
JP2003529808A (ja) * 1999-01-13 2003-10-07 エービー イニティオ ソフトウェア コーポレーション スクリプト駆動ツールの並列処理アプリケーション

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6948128B2 (en) * 1996-12-20 2005-09-20 Avid Technology, Inc. Nonlinear editing system and method of constructing an edit therein
US6574788B1 (en) * 2000-11-13 2003-06-03 Reshape, Inc. Method and system for automatically generating low level program commands as dependency graphs from high level physical design stages
US20060274070A1 (en) * 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US7409656B1 (en) * 2005-09-12 2008-08-05 Cadence Design Systems, Inc. Method and system for parallelizing computing operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644209A (ja) * 1992-07-27 1994-02-18 Toshiba Corp 並列シミュレーションモデル分割決定装置
JP2003529808A (ja) * 1999-01-13 2003-10-07 エービー イニティオ ソフトウェア コーポレーション スクリプト駆動ツールの並列処理アプリケーション
JP2001318798A (ja) * 2000-03-16 2001-11-16 Square Co Ltd 並列オブジェクトタスクエンジンおよび並列処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916324A (zh) * 2008-11-17 2010-12-15 迪士尼企业公司 用于动画的依赖图评估的系统和方法
CN101916324B (zh) * 2008-11-17 2015-05-13 迪士尼企业公司 用于动画的依赖图评估的系统和方法
US9183175B2 (en) 2013-01-28 2015-11-10 International Business Machines Corporation Memory management in a streaming application
US9189449B2 (en) 2013-01-28 2015-11-17 International Business Machines Corporation Memory management in a streaming application

Also Published As

Publication number Publication date
EP1884899A3 (en) 2009-12-09
CA2593902A1 (en) 2008-01-31
US8310484B2 (en) 2012-11-13
EP1884899A2 (en) 2008-02-06
US20080028414A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP2008033941A (ja) 三次元キャラクタ・アニメーションを表すオペレータ・グラフの効率的処理
Smilkov et al. Tensorflow. js: Machine learning for the web and beyond
CN106251392B (zh) 用于执行交织的方法和设备
JP5123323B2 (ja) アプリケーションの変更前にコマンドの変更のパフォーマンスを解析するためのグラフィックコマンド管理ツールおよびその方法
US9582848B2 (en) Sprite Graphics rendering system
US8743126B2 (en) Systems and methods for portable animation rigs
JP2009259241A (ja) 汎用プロセッサによるリターゲティングされたグラフィックプロセッサ加速コードの実行
Ren et al. Stardust: Accessible and transparent gpu support for information visualization rendering
US20180300924A1 (en) Evaluation manager for 3d animation scenes
Wolff OpenGL 4 shading language cookbook
US20190278574A1 (en) Techniques for transforming serial program code into kernels for execution on a parallel processor
Ghayour et al. Real-time 3D graphics with WebGL 2: build interactive 3D applications with JavaScript and WebGL 2 (OpenGL ES 3.0)
Mousa et al. High-performance simplification of triangular surfaces using a GPU
Wolff OpenGL 4 Shading Language Cookbook: Build high-quality, real-time 3D graphics with OpenGL 4.6, GLSL 4.6 and C++ 17
US8432398B2 (en) Characteristic determination for an output node
US9741087B2 (en) Parallel image processing method and system
US20210326179A1 (en) Progress visualization of computational job
KR102128028B1 (ko) 비순차적 픽셀 셰이더 익스포트
US20210294579A1 (en) Graphics pipeline optimizations
Joshi et al. Graphics programming for the web
JP6038346B2 (ja) 装置、システム、プログラム、および機械可読記憶媒体
Gwosdek et al. Variational optic flow on the Sony PlayStation 3: Accurate dense flow fields for real-time applications
US20170039493A1 (en) Managing product quality through an achievement-based workflow tool
Kolpakov et al. Software for heterogeneous computer systems and structures of data processing systems with increased performance
CN114357340A (zh) 基于WebGL的网络图处理方法、装置和电子设备

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100603