説明

動画像構成方法及びシーン構成方法

効率的な宣言型マークアップ言語(図1A中の12)により、複雑、ダイナミックでインタラクティブな視聴体験のリアルタイム作成及び表示を行うためのシステム及び方法(図1A中の11)。面構成を用いることにより、制作者は、自分の3次元シーン内で従来のテクスチャマップを用いるような箇所に、画像又はフルモーションビデオデータ(図1A中の20)を埋め込むことができる。また、制作者は、1つのシーン記述の描画結果を、他のシーンにテクスチャマッピングされる画像として使用することができる(図1A中の28)。特に、面構成により、いずれの描画アプリケーションの結果も、制作者のシーン内のテクスチャとして使用することが可能となる(図1A中の28)。これにより、ネストされたシーンの宣言型描画や、コンポーネントサーフェイスを有するシーンを異なる描画速度で描画することが可能となる(図1A中の26F)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、3次元グラフィックスのためのモデリング言語に関し、特に、シーンに対する画像の埋込みに関する。
【背景技術】
【0002】
コンピュータグラフィックスにおいて、従来のリアルタイム3次元シーン描画は、シーンの3次元ジオメトリの記述を計算することに基づいており、コンピュータディスプレイ上に画像の表現を生成することになる。仮想現実モデリング言語(Virtual Reality Modeling Language:以下、VRMLと略す)は、従来の3次元アプリケーションで一般的に使用されている意味の多くは、例えば階層的変換、光源、視点、ジオメトリ、アニメーション、フォグ、素材特性、テクスチャマッピング等を定義する従来のモデリング言語である。テクスチャマッピング処理は、一般的には、外部から供給される画像データをシーン内の所定のジオメトリに適用するのに使用される。例えば、VRMLによって、外部から供給される画像データ、外部から供給されるビデオデータ、あるいは外部から供給される画素データを面に適用することができる。しかし、VRMLでは、描画されたシーンを、別のシーンに宣言的にマッピングされるテクスチャの画像として用いることはできない。宣言型マークアップ言語において、所望の結果を得るのに必要な意味論は暗黙的であることから、結果の記述は、所望の結果を得るのに十分である。したがって、所望の結果を得るための処理手順(すなわちスクリプトの記述)を準備する必要はない。その結果、宣言を用いてシーンを構成できることが望ましい。宣言型言語の一例は、ハイパーテキストマークアップ言語(Hypertext Markup Language:以下、HTMLと略す)である。
【0003】
さらに、画像データが適用された2つの面を宣言的に組み合わせて、第3の面を生成することが望ましい。また、ある面に適用された画像データを宣言的に再描画して、画像の現在の状態を反映することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来、3次元シーンは一体的に描画され、視聴者に対する最終的なフレームレートは、シーンの複雑さ又はテクスチャの入換えによって決まる最悪の性能によって、定まる。しかし、同じ画面上の異なる要素について異なる描画速度を使用すると、画質が向上し、視聴体験が、よりテレビ視聴に近くなり、ウェブページのような視聴体験ではなくなる。
【課題を解決するための手段】
【0005】
効率的な宣言型マークアップ言語により、複雑、ダイナミックで、インタラクティブな体験のリアルタイム構成及び表示を行うためのシステム及び方法を提供する。面構成を用いることにより、制作者は、自分の3次元シーン内で従来のテクスチャマップを使用するような箇所に、画像又はフルモーションビデオデータを埋め込むことができる。また、制作者は、1つのシーン記述の描画結果を、他のシーンにテクスチャマッピングされる画像として用いることができる。特に、面構成により、いずれの描画アプリケーションの結果も、制作者のシーン内のテクスチャとして使用することができる。これにより、ネストされたシーンの宣言型描画や、コンポーネントサーフェイスを有するシーンを異なる描画速度で描画することが可能となる。
【発明を実施するための最良の形態】
【0006】
「ブレンド(Blendo)」は、アニメーション及び目に見えるイメージの制御、現在再生中のメディア資産(media asset)に対するオーディオメディア、ビデオメディア、アニメーション、イベントデータのキューイング等、メディア資産の時間的な操作を可能にする本発明の例示的な一実施形態である。図1Aは、ブレンドの基本的なアーキテクチャを示す。ブレンドのアーキテクチャの中心部には、コアランタイムモジュール10(以下、コアと呼ぶ)があり、種々のアプリケーションプログラマインタフェース(Application Programmer Interface:以下、APIと略す)要素、及びシステム11内に存在するオブジェクトのセットに対するオブジェクトモデルを提供する。通常動作時には、パーサ14によって、ファイルは解析され、未処理シーングラフ16とされ、コア10に供給され、コア10において、コアのオブジェクトはインスタンス化され、ランタイムシーングラフが生成される。オブジェクトは、内蔵オブジェクト18、制作者が定義したオブジェクト20、ネイティブオブジェクト24等とすることができる。これらのオブジェクトは、利用可能なマネージャ26のセットを用いて、プラットフォームサービス32を得る。これらのプラットフォームサービス32には、イベントの処理、メディア資産のローディング、メディアの再生等が含まれる。オブジェクトは、レンダリングレイヤ28を用いて、表示するための中間的な画像又は最終的な画像を構成する。ページ統合コンポーネント30は、ブレンドを、例えばHTML又はXMLページ等の外部環境にインタフェースさせるために使用される。
【0007】
ブレンドは、マネージャ26のセットに関するシステムオブジェクトを含んでいる。各マネージャ26は、システム11の何らかの特徴(aspect)を制御するためのAPIのセットを提供する。イベントマネージャ26Dは、ユーザ入力又は環境イベントから生じる入力システムイベントへのアクセスを提供する。ローディングマネージャ26Cは、ブレンドファイルのローディング及びネイティブノード実行を容易にする。メディアマネージャ26Eは、オーディオ、画像及びビデオのメディア資産をローディングし、制御し、再生する能力を提供する。レンダリングマネージャ26Gは、シーンの描画に使用されるオブジェクトを生成及び管理できるようにする。シーンマネージャ26Aは、シーングラフを制御する。サーフェイスマネージャ26Fは、その上でシーンの要素及び他の資産が合成される面を生成及び管理できるようにする。スレッドマネージャ26Bは、制作者がスレッドを発生させ、制御し、スレッド間で通信できるようにする。
【0008】
図1Bは、ブレンドエンジンによるコンテンツの流れを概念的に説明するためのフローチャートである。ステップ50において、パーサ14(図1A)に取り込まれているコンテンツのファイル又はストリーム34(図1A)を含むソースによって表示が始まる。ソースのフォーマットは、ネイティブVRMLのようなテキストフォーマット、ネイティブバイナリフォーマット、XMLベースのフォーマット等であってもよい。ソースのフォーマットに関わらず、ステップ55において、ソースは未処理シーングラフ16(図1A)に変換される。未処理シーングラフ16は、コンテンツ中のノード、フィールド、他のオブジェクトのほか、フィールド初期値を表すことができる。また、オブジェクトプロトタイプ、ストリーム34内の外部プロトタイプ参照、ルート文の記述を含むこともできる。
【0009】
未処理シーングラフ16の最上位には、ファイルに含まれるノード、最上位フィールド及び機能、プロトタイプ及びルートが含まれる。ブレンドにより、従来の要素に加えて最上位のフィールド及び機能が可能となる。これらは、外部環境に対するインタフェース、例えばHTMLページ等を提供するのに使用される。また、これらは、ストリーム34が外部プロトタイプのコンテンツとして使用されるときに、オブジェクトインタフェースを提供する。
【0010】
各未処理ノードは、そのコンテキスト内で初期化されるフィールドのリストを含んでいる。各未処理フィールドエントリは、そのフィールドの名称、タイプ(あれば)、データ値を含んでいる。各データ値は、明示的に入力されたフィールド値を表すことができる番号、ストリング、未処理ノード及び/又は未処理フィールドを含んでいる。
【0011】
ステップ60において、最上位又は未処理シーングラフ16(図1A)からプロトタイプが抽出され、このプロトタイプを用いて、このシーンによってアクセス可能なオブジェクトプロトタイプのデータベースが生成される。
【0012】
そして、未処理シーングラフ16は、構造トラバース(build traversal)によって送られる。この移動の間、オブジェクトプロトタイプのデータベースを用いて、各オブジェクトが構成される(ステップ65)。
【0013】
ステップ70において、ストリーム34内のルートが確立される。その後、ステップ75において、シーン内の各フィールドが初期化される。これは、オブジェクトの非デフォルトフィールドに初期イベントを送ることによって行われる。シーングラフ構造はノードフィールドを使用することによって達成されるので、ステップ75において、シーン階層構造も構成される。通りがけ順(in order traversal)を用いてイベントが発せられる。最初に出てきたノードは、ノード内のフィールドを列挙している。フィールドがノードである場合、そのノードは最初に移動される。
【0014】
その結果、ツリーのその特定のブランチにおけるノードが初期化される。そして、1つのイベントが、ノードフィールドの初期値とともに、そのノードフィールドに送られる。
【0015】
所定ノードのフィールドが初期化された後、制作者は、ノードが呼出時間に完全に初期化されていることを確実にするために、初期化論理をプロトタイプオブジェクトに追加する(ステップ80)。上述の各ステップはルートシーン(root scene)を生成する。ステップ85において、シーンは、そのシーン用に生成されたシーンマネージャ26A(図1A)に供給される。ステップ90において、シーンマネージャ26Aを用いて、暗黙的に又は制作者の制御の下で、描画し、行動の処理を実行する。
【0016】
シーンマネージャ26Aによって描画されたシーンは、ブレンドのオブジェクト階層構造からのオブジェクトを用いて構成することができる。オブジェクトは、それらの親オブジェクトから幾つかの機能を取り出して、その機能を拡張又は変更することができる。階層構造の最下部にはオブジェクトがある。オブジェクトから取り出した2つのメインオブジェクトクラスは、ノードとフィールドである。ノードは、特にレンダリング方法を含んでいるが、これは表示トラバース(render traversal)の一部と呼ばれる。ノードのデータ属性はフィールドと呼ばれる。ブレンドのオブジェクト階層構造の中には、タイミングオブジェクトと呼ばれるオブジェクトのクラスがあり、これについては以下に詳細に説明する。以下の各コード部は例示的なものである。なお、各コード部の行番号は、単に特定のコード部の行番号を表しており、元のソースコードにおける行番号を表すものではない。
【0017】
面オブジェクト(Surface Objects)
面オブジェクトとは、サーフェイスノード(SurfaceNode)タイプのノードである。サーフェイスノードクラスは、2次元画像を色、深さ、不透明(アルファ)値のアレーとして記述する全てのオブジェクトの基本クラスである。サーフェイスノードは、主としてテクスチャマップとして使用される画像を提供するのに用いられる。サーフェイスノードクラスからは、ムービーサーフェイス(MovieSurface)、イメージサーフェイス(ImageSurface)、マットサーフェイス(MatteSurface)、ピクセルサーフェイス(PixelSurface)、ピクセルサーフェイス(SceneSurface)が導かれる。なお、各コード部の行番号は、単にそのコード部についての行番号を表しており、元のソースコードにおける行番号を表すものではない。
【0018】
ムービーサーフェイス(MovieSurface)
以下のコード部はムービーサーフェイスノードを示している。このノードの各フィールドの記述は以下のようになる。
【0019】
1) MovieSurface: SurfaceNode TimedNode AudioSourceNode{
2) field MF String url []
3) field TimeBaseNode timeBase NULL
4) field Time duration 0
5) field Time loadTime 0
6) field String loadStatus “NONE”
}
【0020】
ムービーサーフェイスノードは、映画を定義する画像シーケンスにアクセスを行うことにより、映画を面上に描画する。ムービーサーフェイスのタイムドノード親クラス(TimedNode parent class)は、一度にどのフレームを面上に描画するのかを定義している。映画はオーディオソースとして使用することもできる。
【0021】
コード部の2行目において、(多値フィールド)URLフィールドは、面に対する映画データの潜在的位置のリストを提供する。このリストは、要素0がデータの好ましいソースを記述するように順序付けられている。何らかの理由で要素0が利用できないとき、あるいはサポートされないフォーマットである場合、次の要素を使用することができる。
【0022】
3行目において、タイムベース(timeBase)フィールドが指定されている場合、タイムベースフィールドは、映画に関するタイミング情報を供給するノードを特定する。特に、タイムベースフィールドは、ある瞬間に映画のどのフレームを面に表示するかを決定するのに必要な情報を、映画に与える。タイムベースが指定されていない場合、面は、映画の最初のフレームを表示する。
【0023】
4行目において、映画データが取り込まれると数秒後に、ムービーサーフィルノードにより、継続時間(duration)フィールドが映画の長さに設定される。
【0024】
5行目及び6行目において、ロードタイム(loadTime)フィールド及びロードステータス(loadStatus)フィールドは、ムービーサーフェイスノードから、映画データの利用可能性に関する情報を提供する。ロードステータスは5つの値が可能である。すなわち、「なし(NONE)」、「要求(REQUESTED)」、「失敗(FAILED)」、「中止(ABORTED)」、「ロード(LOADED)」である。
【0025】
「なし(NONE)」は初期状態である。「なし(NONE)」イベントは、値の数を0に設定し、又は最初のURLストリングを空ストリングに設定することにより、ノードのURLを消去した場合にも送られる。このとき、面の画素は黒及び不透明に設定される(すなわち、色は0,0,0となり、透明度は0である)。
【0026】
「要求(REQUESTED)」イベントは、空でないURL値が設定されると必ず送られる。面の画素は、「要求(REQUESTED)」イベントの後も変化しない。
【0027】
「失敗(FAILED)」は、映画のローディングが成功しなかった場合に「要求(REQUESTED)」イベントの後に送られる。これは、例えば、URLが存在しないファイルを参照している場合、又はファイルに有効データが含まれていない場合に起こる。面の画素は、「失敗(FAILED)」イベントの後も変化しない。
【0028】
「中止(ABORTED)」イベントは、現在の状態が「要求(REQUESTED)」であり、URLが変化した場合に送られる。URLが空でない値に変更されると、「中止(ABORTED)」の後に「要求(REQUESTED)」イベントがくる。URLが空の値に変更されると、「中止(ABORTED)」の後に「なし(NONE)」の値がくる。面の画素は、「中止(ABORTED)」イベントの後も変化しない。
【0029】
「ロード(LOADED)」イベントは、映画の表示準備ができると送られる。その後、現在時刻に一致した値のロードタイム(loadTime)イベントがくる。タイムベースフィールドで示される映画のフレームが、面上に描画される。タイムベースがヌル(NULL)である場合、映画の最初のフレームが面上に描画される。
【0030】
イメージサーフェイス(ImageSurface)
以下のコード部はイメージサーフェイス(ImageSurface)ノードを示している。ノードの各フィールドの記述は以下のようになる。
【0031】
1) ImageSurface: SurfaceNode {
2) field MF String url []
3) field Time loadTime 0
4) field String loadStatus “NONE”
}
【0032】
イメージサーフェイスノードは、画像ファイルを面上に描画する。コード部の2行目において、URLフィールドは、面に対する画像データの潜在的位置のリストを提供する。このリストは、要素0がデータの最も好ましいソースを記述するように順序付けられている。何らかの理由で要素0が利用できないとき、あるいはサポートされないフォーマットである場合、次の要素を使用することができる。
【0033】
3行目及び4行目において、ロードタイム(loadTime)フィールド及びロードステータス(loadStatus)フィールドは、イメージサーフェイスノードから、画像データの利用可能性に関する情報を提供する。ロードステータスは5つの値が可能である。すなわち、「なし(NONE)」、「要求(REQUESTED)」、「失敗(FAILED)」、「中止(ABORTED)」、「ロード(LOADED)」である。
【0034】
「なし(NONE)」は初期状態である。「なし(NONE)」イベントは、値の数を0に設定し、又は最初のURLストリングを空ストリングに設定することにより、ノードのURLを消去した場合にも送られる。このとき、面の画素は黒及び不透明に設定される(すなわち、色は0,0,0となり、透明度は0である)。
【0035】
「要求(REQUESTED)」イベントは、空でないURL値が設定されると必ず送られる。面の画素は、「要求(REQUESTED)」イベントの後も変化しない。
【0036】
「失敗(FAILED)」は、画像のローディングが成功しなかった場合に「要求(REQUESTED)」イベントの後に送られる。これは、例えば、URLが存在しないファイルを参照している場合、又はファイルに有効データが含まれていない場合に起こる。面の画素は、「失敗(FAILED)」イベントの後も変化しない。
【0037】
「中止(ABORTED)」イベントは、現在の状態が「要求(REQUESTED)」であり、URLが変化した場合に送られる。URLが空でない値に変更されると、「中止(ABORTED)」の後に「要求(REQUESTED)」イベントがくる。URLが空の値に変更されると、「中止(ABORTED)」の後に「なし(NONE)」の値がくる。面の画素は、「中止(ABORTED)」イベントの後も変化しない。
【0038】
「ロード(LOADED)」イベントは、画像が面上に描画されたときに送られる。その後、現在時刻に一致した値のロードタイム(loadTime)イベントがくる。
【0039】
マットサーフェイス(MatteSurface)
以下のコード部はマットサーフェイス(MatteSurface)ノードを示している。ノードの各フィールドの記述は以下のようになる。
1) MatteSurface: SurfaceNode {
2) field SurfaceNode surface1 NULL
3) field SurfaceNode surface2 NULL
4) field String operation ““
5) field MF Float parameter 0
6) field Bool overwriteSurface2 FALSE
}
【0040】
マットサーフェイスノードは、画像合成動作を用いて、面1(surface1)と面2(surface2)とからの画像データを組み合わせて第3の面とする。合成動作の結果は、面2の解像度で計算される。面1の大きさが面2の大きさと異なる場合、動作実行前に面1の画像データのズームアップ又はズームダウンを行い、面1の大きさを面2の大きさと等しくする。
【0041】
コード部の2行目及び3行目において、面1及び面2は、合成動作のための入力画像データを与える2つの面を特定している。4行目において、オペレーションフィールドは、2つの入力サーフィルに対して行う作成機能を特定している。可能な動作を以下に説明する。
【0042】
「アルファ置換(REPLACE_ALPHA)」動作は、面1からのデータを用いて、面2のアルファチャンネルAに上書きを行う。面1が1つのコンポーネント(グレースケール強度のみ)を有している場合、そのコンポーネントはアルファ(不透明)値として使用される。面1が2つ又は4つのコンポーネント(グレースケール強度+アルファ又はRGBA)を有している場合、アルファチャンネルAを用いてアルファ値を与える。面1が3つのコンポーネント(RGB)を有している場合、動作は不確定である。この動作を用いて、静止画像又は動画像に対するスタティック又はダイナミックなアルファマスクを行うことができる。例えば、ピクセルサーフェイス(SceneSurface)は、透明な背景にジェームズ・ボンドのアニメーションキャラクターを描画することができる。そして、この画像のアルファコンポーネントは、ビデオクリップのマスク形状として用いることができる。
【0043】
「アルファ乗算(MULTIPLY_ALPHA)」動作は、面1からのアルファ値を面2からのアルファ値で乗算することを除いては、アルファ置換動作と同様である。
【0044】
「クロスフェード(CROSS_FADE)」動作は、各面の目に見える割合(パーセンテージ)を制御するパラメータ値を用いて、2つの面間でフェードを行う。この動作は、2つの静止画像又は動画像の間でダイナミックにフェードを行うことができる。パラメータ値(5行目)を0から1に動かすことにより、面1の画像が面2の画像にフェードしてゆく。
【0045】
「混合(BLEND)」動作は、面2からのアルファチャンネルを用いて混合率(パーセンテージ)を制御し、面1及び面2からの画像データを組み合わせる。この動作により、面2のアルファチャンネルは、2つの画像の混合を制御することができる。ピクセルサーフェイス(SceneSurface)を描画する、あるいは、ムービーサーフェイス(MovieSurface)を再生することにより面2のアルファチャンネルを動作させることで、複雑でトラバースのマット効果が得られる。R1、G1、B1、A1が、面1の赤、緑、青、アルファの各値を表し、R2、G2、B2、A2が面2における対応する画素の赤、緑、青、アルファの各値を表すとすると、その画素の赤、緑、青、アルファの各コンポーネントについて得られる値は以下のようになる。
【0046】
赤=R1*(1−A2)+R2*A2 (1)
緑=G1*(1−A2)+G2*A2 (2)
青=B1*(1−A2)+B2*A2 (3)
アルファ=1 (4)
【0047】
「加算(ADD)」動作及び「減算(SUBTRACT)」動作は、面1と面2のカラーチャンネルの加算又は減算を行う。結果のアルファ値は面2のアルファ値に等しい。
【0048】
5行目において、パラメータフィールドは、作成機能の効果を変更できる1つ以上の浮遊点パラメータを与える。パラメータ値の具体的な解釈は、どの動作が特定されているかによって異なる。
【0049】
6行目において、オーバーライト・面2(overwriteSurface2)フィールドは、マットサーフェイスノードが合成動作の結果を記録するための新たな面を割り当てるか(overwriteSurface2=FALSE)、あるいは、面2に記録されたデータを合成動作により上書きするか(overwriteSurface2=TRUE)を示す。
【0050】
ピクセルサーフェイス(PixelSurface)
以下のコード部はピクセルサーフェイス(SceneSurface)ノードを示している。ノードのフィールドの記述は以下のようになる。
1) PixelSurface: SurfaceNode {
2) field Image image 0 0 0
}
【0051】
ピクセルサーフェイス(PixelSurface)ノードは、ユーザが特定した画素の列を面上に描画する。2行目において、画像フィールドは面上に描画される画素データを記述する。
【0052】
以下のコード部はピクセルサーフェイス(SceneSurface)ノードを示している。ノードの各フィールドの記述は以下のようになる。
1) SceneSurface: SurfaceNode {
2) field MF ChildNode children []
3) field UInt32 width 1
4) field UInt32 height 1
}
【0053】
ピクセルサーフェイス(SceneSurface)ノードは、特定大きさの面に特定の子ノードを描画する。ピクセルサーフェイスは、子ノードの現在の状態を反映するように自動的に再描画を行う。
【0054】
コード部の2行目において、子フィールドは、描画される子ノードを記述する。概念的には、子フィールドは、シーンサーフェイスノードを含むシーングラフとは無関係に描画されるシーングラフ全体を記述する。
【0055】
3行目及び4行目において、幅フィールド及び高さフィールドは、面の大きさを画素で特定する。例えば、幅が256、高さが512の場合、面は256×512の画素値の列を含んでいる。
【0056】
ムービーサーフェイスノード、イメージサーフェイスノード、マットサーフェイスノード、ピクセルサーフェイスノード、シーンサーフェイスノードは、シーンの描画に用いられる。
【0057】
シーンの記述の最上位には、「最上位面」であるディスプレイに出力がマッピングされる。その結果をディスプレイに描画するのではなく、3次元描画されたシーンは、上述の各サーフェイスノードのうちの1つを用いて出力を面上に生成することができる。ここで、出力は、制作者が望むような高品位のシーン混合に組み込むことができる。面のコンテンツは、面に埋め込まれたシーン記述を描画することにより生成されるが、これには、面の画像構成の一部として、色情報、透明度(アルファチャンネル)、深さが含まれる。この場合の画像とは、ビデオ画像、静止画像像、アニメーション又はシーンを含むものとして定義される。
【0058】
また、面は、種々のテクスチャマッピングシステムの特殊化された条件を、一般的な画像管理インタフェースよりも内部でサポートするものとして定義される。その結果、このシステムにおけるサーフェイスプロデューサはいずれも、3次元描画処理によりテクスチャとして使用することができる。このようなサーフェイスプロデューサの例として、イメージサーフェイス、ムービーサーフェイス、マットサーフェイス、ピクセルサーフェイス、アプリケーションサーフェイスがある。
【0059】
アプリケーションサーフェイス(ApplicationSurface)は、従来のウィンドウシステムにおけるアプリケーションウィンドウと同じように、表計算やワープロ等、埋め込まれたアプリケーションプロセスにより描画されたように画像データを維持する。
【0060】
面モデルと、レンダリング生成及びテクスチャ使用とを統合することにより、異なる描画速度の宣言型オーサリングが可能になる。従来、3次元シーンは一体的に描画され、視聴者に対する最終的なフレームレートは、シーンの複雑さ又はテクスチャの入換えに起因した最悪の性能によって定まっていた。リアルタイムの連続的な作成フレームワークにおいては、面の抽象化により、同じ画面上の異なる要素に対して描画速度を異ならせるメカニズムが得られる。例えば、毎秒1フレームという低速で描画を行うウェブブラウザを描画することも可能であるが、これは、他のアプリケーションにより作成され、ブラウザの出力とともに表示されるビデオフレームレートが、毎秒30フレーム(フルフレームで)に維持される場合に限り可能である。ウェブブラウザアプリケーションが自己の面に引っ込むと、画面作成機能は、高速画面更新の一部としてウェブブラウザの面から完全に引き出した最後の画像を使用して、フルモーションビデオフレームレートにて制約を受けずに描画を行うことができる。
【0061】
図2Aは、フルモーションビデオフレームレートで画面表示200の複雑な部分202を描画する方式を示している。図2Bは、フルモーションビデオレートで複雑な部分202を含む画面表示200を描画する際に行われる種々の動作を示すフローチャートである。画面表示200は毎秒30フレームで表示することが望ましいが、画面表示200の部分202は複雑すぎて、毎秒30フレームでは表示することができない。この場合、ステップ210(図2B)において、部分202を第1の面上に描画し、バッファ204に記憶する。ステップ215において、バッファ204に記憶された第1の面を用いることにより、部分202を含む画面表示200を毎秒30フレームで表示する。部分202を含む画面表示200を表示している間、ステップ220において、部分202の次フレームを第2の面上に描画し、バッファ206に記憶する。この部分202の次フレームが使用可能になれば、画面表示200の次の更新で第2の面を使用し(ステップ225)、部分202の更なる更新バージョンがバッファ204で使用可能になるまで、これを続ける。第2の面を使用して画面表示200を表示している間、ステップ230に示すように、部分202の次フレームを第1の面上に描画する。第1の面への次フレームの描画が終わると、複雑な部分202を含む画面表示200を毎秒30フレームで表示するために、更新された第1の面が使用される。
【0062】
面モデルと、レンダリング生成及びテクスチャ使用とを統合することにより、ネストされたシーンを宣言的に描画することが可能となる。画像として描画されたサブシーンの再作成により、オープンエンドのオーサリングが可能になる。特に、アニメーション化されたサブシーンは、より大きなビデオコンテキストに画像混合されるが、これらサブシーンを使用することにより、エンターテインメント用コンピュータグラフィックとして、より適切な画質が得られる。例えば、画像を混合するアプローチにより、ビジュアルアーティストは、ウィンドウシステムによる前世代の粗く、輪郭のくっきりしたクリッピングに替わる手段が得られる。
【0063】
図3Aは、アニメーション化されたサブシーンを含むネストされたシーンを示す。図3Bは、図3Aのネストされたシーンを描画するのに行われる動作を示すフローチャートである。ステップ310において、画面表示200に表示される背景画像を描画し、ステップ315において、画面表示200に表示される背景画像内にキューブ302を配置する。キューブ302外の領域は、表示200にキューブ302の背景を液性する面の一部である。キューブ302の面304は、第3の面として定義される。ステップ320において、ムービーサーフェイスノードを用いて、第3の面に映画を描画する。これにより、キューブの面304が、第3の面上に描画された映画を表示する。キューブ302の面360は、第4の面として定義される。ステップ325において、イメージサーフェイスノードを用いて、第4の面に画像を描画する。これにより、キューブの面306が、第4の面上に描画された画像を表示する。ステップ330において、キューブ302全体が第5の面として定義され、ステップ335において、この第5の面が平行移動及び/又は回転することにより、面304に映画を再生するとともに面305に静止画像を表示する移動キューブ52が作成される。上述の処理手順を行うことにより、キューブ302の各面に別の描画を表示することもできる。なお、ステップ310〜335は、いずれの順序で行ってもよく、ステップ310〜335の全てを同時に開始してもよい。
【0064】
なお、本発明は「ブレンド(Blendo)」とは無関係であり、「ブレンド」とは別の実施形態の一部となることができる。また、本発明の説明では3次元シーン描画について説明しているが、本発明は2次元シーン描画にも同様に適用可能である。面モデルにより、制作者は、画像及びビデオ効果を2次元及び3次元幾何学的マッピング及びアニメーションと自在に組み合わせることができる。
【0065】
本発明の特定の実施形態について図示及び説明をしてきたが、本発明の広い解釈から逸脱しない範囲で種々の変更や修正を行えることは当業者にとって明らかである。したがって、添付の特許請求の範囲は、このような変更や修正が本発明の精神及び趣旨の範囲内であるとして、これらの変更や修正を全て、本発明の範囲に含めるものである。
【図面の簡単な説明】
【0066】
【図1A】ブレンド(Blendo)の基本的なアーキテクチャを示す図である。
【図1B】ブレンドエンジンによるコンテンツの流れを示すフローチャートである。
【図2A】1つのシーンにおける2つの面が、異なる描画速度でどのように描画されるかを示す図である。
【図2B】異なる描画速度で図2Aに示す2つの面を描画する際に行われる動作を示すフローチャートである。
【図3A】ネストされたシーンを示す図である。
【図3B】図3Aのネストされた図を描画するのに行われる動作を示すフローチャートである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、3次元グラフィックスのためのモデリング言語に関し、特に、シーンに対する画像の埋込みに関する。
【背景技術】
【0002】
コンピュータグラフィックスにおいて、従来のリアルタイムの3次元シーンの描画は、シーンの3次元ジオメトリの記述を計算することに基づいており、コンピュータディスプレイ上に画像の表現を生成することになる。仮想現実モデリング言語(Virtual Reality Modeling Language:以下、VRMLと略す)において、従来の3次元アプリケーションで一般的に使用されている意味の多くは、例えば階層的変換、光源、視点、ジオメトリ、アニメーション、フォグ、素材特性、テクスチャマッピング等を定義する従来のモデリング言語である。テクスチャマッピング処理は、一般的には、外部から供給される画像データをシーン内の所定のジオメトリに適用するのに使用される。例えば、VRMLによって、外部から供給される画像データ、外部から供給されるビデオデータ、あるいは外部から供給される画素データを面に適用することができる。しかし、VRMLでは、描画されたシーンを、別のシーンに宣言的にマッピングされるテクスチャの画像として用いることはできない。宣言型マークアップ言語において、所望の結果を得るのに必要な意味論は暗黙的であることから、得られる結果の記述は、所望の結果を得るのに十分である。したがって、所望の結果を得るための処理手順(すなわちスクリプトの記述)を準備する必要はない。その結果、宣言を用いてシーンを構成できることが望ましい。宣言型言語の一例は、ハイパーテキストマークアップ言語(Hypertext Markup Language:以下、HTMLと略す)である。
【0003】
更に、画像データが適用された2つの面を宣言的に組み合わせて、第3の面を生成することが望ましい。また、ある面に適用された画像データを宣言的に再描画して、画像の現在の状態を反映することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来、3次元シーンは一体的に描画され、視聴者に対する最終的なフレームレートは、シーンの複雑さ又はテクスチャの入換えによって決まる最悪の性能によって、定まる。しかし、同じ画面上の異なる要素について異なる描画速度を適用すると、画質が向上し、視聴体験が、よりテレビ視聴に近くなり、ウェブページのような視聴体験ではなくなる。
【課題を解決するための手段】
【0005】
本発明に係るコンピュータシステムは、コンピュータと、コンピュータによって実行されるコンピュータプログラムとを備える。このコンピュータプログラムは、第1の画像が描画された第1の面と、第2の画像が描画された第2の面とを用いて、動画像を宣言的に構成するコンピュータインストラクションと、動画像は宣言型マークアップ言語によって生成され、第1の画像は空間におけるオブジェクトの3次元的表現であり、第2の面は空間における3次元的表現を有する突出であり、第1の画像は第1の不透明度の値を有し、第2の画像は第2の不透明度の値を有し、動画像は第3の不透明度の値を有し、第1の面からの第1の画像と第2の面からの第2の画像とを組み合わせて動画像を構成するコンピュータインストラクションと、第1の画像と第2の画像とを組み合わせてトラバースのマット効果を得るときに、第2の画像の不透明度の値を動かすコンピュータインストラクションとを有する。第1及び第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択される。
【0006】
さらに、本発明に係るコンピュータシステムにおけるコンピュータプログラムは、第1の画像を第1の面上に描画するコンピュータインストラクションと、第2の画像を第2の面上に描画するコンピュータインストラクションと、第3の画像を第3の面上に宣言的に描画するコンピュータインストラクションとを有する。第1の画像は第3の画像用のテクスチャとして使用され、第2の画像はテクスチャと混合されて第3の画像を形成し、第3の面は宣言型マークアップ言語によって生成され、第1の画像は空間における3次元的表現を有する突出であり、第2の画像はオブジェクトの3次元的表現である。
【0007】
本発明に係るコンピュータを用いて動画像を構成する動画像構成方法は、第1の画像を第1の面上に描画し、第2の画像を第2の面上に描画し、動画像は宣言型マークアップ言語によって生成され、第1の画像はオブジェクトの3次元的表現であり、第2の面は空間における3次元的表現を有する突出であり、第1の画像と第2の画像とを組み合わせて動画像を宣言的に構成し、第1の画像の第1の不透明度の値を与え、第2の画像の第2の不透明度の値を与え、動画像の第3の不透明度の値を与え、第1の画像と第2の画像とを組み合わせてマット効果を得るときに、第2の画像の不透明度の値を動かす。
【0008】
本発明に係るコンピュータを用いてシーンを構成するシーン構成方法は、第1の画像を第1の面上に描画し、第2の画像を第2の面上に描画し、第1の画像をシーン用のテクスチャとして使用し、テクスチャを第2の画像に混合して、第1のシーンを、第1のシーンを形成する第3の面上に描画する。第3の面は宣言型マークアップ言語によって生成され、第1の画像は空間における3次元的表現を有する突出であり、第2の画像はオブジェクトの3次元的表現である。
【0009】
本発明は、効率的な宣言型マークアップ言語により、複雑で、動的で、インタラクティブな体験のリアルタイム構成及び表示を行うためのシステム及び方法を提供する。面構成を用いることにより、制作者は、自分の3次元シーン内で従来のテクスチャマップを使用するような箇所に、画像又はフルモーションビデオデータを埋め込むことができる。また、制作者は、1つのシーン記述の描画結果を、他のシーンにテクスチャマッピングされる画像として用いることができる。特に、面構成により、いずれの描画アプリケーションの結果も、制作者のシーン内のテクスチャとして使用することができる。これにより、ネストされたシーンを宣言的に描画し、コンポーネントサーフェスを有するシーンを異なる描画速度で描画することができる。
【発明を実施するための最良の形態】
【0010】
「ブレンド(Blendo)」は、本発明の典型的な実施形態であり、アニメーション及び目に見える画像の制御、現在再生中のメディア資産(media asset)に対するオーディオメディア、ビデオメディア、アニメーション、イベントデータのキューイング等、メディア資産の時間的な操作を可能にする。図1Aは、ブレンドの基本的なアーキテクチャを示すブロック図である。ブレンドのアーキテクチャの中心部には、コアランタイムモジュール10(以下、コアと呼ぶ)があり、コア10は、アプリケーションプログラマインタフェース(Application Programmer Interface:以下、APIと略す)の様々な要素、及びシステム11内に存在するオブジェクトのセットに対するオブジェクトモデルを提供する。通常動作時には、パーサ14によって、ファイルは解析されて、未処理シーングラフ16とされ、コア10に供給され、コア10において、そのオブジェクトはインスタンス化され、ランタイムシーングラフが生成される。オブジェクトは、内蔵オブジェクト18、制作者が定義したオブジェクト20、ネイティブオブジェクト24等とすることができる。これらのオブジェクトは、利用可能なマネージャ26のセットを用いて、プラットフォームサービス32を得る。これらのプラットフォームサービス32には、イベントの処理、メディア資産のローディング、メディアの再生等が含まれる。オブジェクトは、レンダリングレイヤ28を用いて、表示するための中間的な画像又は最終的な画像を構成する。ページ統合コンポーネント30は、ブレンドを、例えばHTML又はXMLページ等の外部環境にインタフェースさせるために使用される。
【0011】
ブレンドは、マネージャ26のセットに関するシステムオブジェクトを含んでいる。各マネージャ26は、システム11の何らかの特徴(aspect)を制御するためのAPIのセットを提供する。イベントマネージャ26Dは、ユーザ入力又は環境イベントから生じる入力装置イベントへのアクセスを提供する。ローディングマネージャ26Cは、ブレンドファイルのローディング及びネイティブノード実行を容易にする。メディアマネージャ26Eは、オーディオ、画像及びビデオのメディア資産をローディングし、制御し、再生する能力を提供する。レンダリングマネージャ26Gは、シーンの描画に使用されるオブジェクトを生成及び管理できるようにする。シーンマネージャ26Aは、シーングラフを制御する。サーフェスマネージャ26Fは、その上でシーンの要素及び他の資産が合成される面を生成及び管理できるようにする。スレッドマネージャ26Bは、制作者がスレッドを発生させ、制御し、スレッド間で通信できるようにする。
【0012】
図1Bは、ブレンドエンジンによるコンテンツの流れを概念的に説明するためのフローチャートである。ステップ50において、パーサ14(図1A)に取り込まれているコンテンツのファイル又はストリーム34(図1A)を含むソースによって表示が始まる。ソースのフォーマットは、ネイティブVRMLのようなテキストフォーマット、ネイティブバイナリフォーマット、XMLベースのフォーマット等とすることができる。ステップ55において、ソースのフォーマットに関わらず、ソースは未処理シーングラフ16(図1A)に変換される。未処理シーングラフ16は、コンテンツ中のノード、フィールド、他のオブジェクトだけではなく、フィールドの初期値を表すことができる。また、オブジェクトプロトタイプ、ストリーム34内の外部プロトタイプ参照及びルート文の記述を含むこともできる。
【0013】
未処理シーングラフ16の最上位には、ファイルに含まれるノード、最上位フィールド及び機能、プロトタイプ及びルートが含まれる。ブレンドにより、従来の要素に加えて最上位のフィールド及び機能を使用することが可能となる。これらは、外部環境に対するインタフェース、例えばHTMLページ等を提供するのに使用される。また、これらは、ストリーム34が外部プロトタイプのコンテンツとして使用されるときに、オブジェクトインタフェースを提供する。
【0014】
各未処理ノードは、そのコンテキスト内で初期化されるフィールドのリストを含んでいる。各未処理フィールドエントリは、そのフィールドの名称、タイプ(あれば)、データ値を含んでいる。各データ値は、明示的に入力されたフィールド値を表すことができる番号、文字列、未処理ノード及び/又は未処理フィールドを含んでいる。
【0015】
ステップ60において、最上位又は未処理シーングラフ16(図1A)からプロトタイプが抽出され、このプロトタイプを用いて、このシーンによってアクセス可能なオブジェクトプロトタイプのデータベースが生成される。
【0016】
そして、未処理シーングラフ16は、構造トラバース(build traversal)によって送られる。この移動の間、オブジェクトプロトタイプのデータベースを用いて、各オブジェクトが構成される(ステップ65)。
【0017】
ステップ70において、ストリーム34内のルートが確立される。その後、ステップ75において、シーン内の各フィールドが初期化される。フィールドの初期化は、オブジェクトの非デフォルトフィールドに初期イベントを送ることによって行われる。シーングラフ構造はノードフィールドを使用することによって達成されるので、ステップ75において、シーン階層構造も構成される。通りがけ順(in order traversal)を用いてイベントが発せられる。最初に出てきたノードは、ノード内のフィールドを列挙している。フィールドがノードである場合、そのノードは最初に移動される。
【0018】
その結果、ツリーのその特定のブランチにおけるノードが初期化される。そして、1つのイベントが、ノードフィールドの初期値とともに、そのノードフィールドに送られる。
【0019】
特定のノードのフィールドが初期化された後、制作者は、ノードが呼出時間に完全に初期化されていることを確実にするために、初期化論理をプロトタイプオブジェクトに追加する(ステップ80)。上述の各ステップはルートシーン(root scene)を生成する。ステップ85において、シーンは、そのシーン用に生成されたシーンマネージャ26A(図1A)に供給される。ステップ90において、シーンマネージャ26Aを用いて、暗黙的に又は制作者の制御の下で、描画し、行動の処理を実行する。
【0020】
シーンマネージャ26Aによって描画されるシーンは、ブレンドのオブジェクト階層構造からのオブジェクトを用いて構成することができる。オブジェクトは、それらの親オブジェクトから幾つかの機能を取り出して、その機能を拡張又は変更することができる。階層構造の最下部にはオブジェクトがある。オブジェクトから取り出した2つのメインオブジェクトクラスは、ノードとフィールドである。ノードは、特にレンダリング方法を含み、これは、表示トラバース(render traversal)の一部と呼ばれる。ノードのデータ属性はフィールドと呼ばれる。ブレンドのオブジェクト階層構造の中には、タイミングオブジェクトと呼ばれるオブジェクトのクラスがあり、これについては以下に詳細に説明する。以下の各コード部は例示的なものである。なお、各コード部の行番号は、単に特定のコード部の行番号を表しており、元のソースコードにおける行番号を表すものではない。
【0021】
面オブジェクト(Surface Objects)
面オブジェクトとは、サーフェスノードSurfaceNodeタイプのノードである。サーフェスノードSurfaceNodeのクラスは、2次元画像を色、深さ、不透明度(アルファ)の値の配列として記述する全てのオブジェクトの基本クラスである。サーフェスノードSurfaceNodeは、主としてテクスチャマップとして使用される画像を提供するのに用いられる。サーフェスノードSurfaceNodeのクラスからは、ムービーサーフェスMovieSurface、イメージサーフェスImageSurface、マットサーフェスMatteSurface、ピクセルサーフェスPixelSurface、シーンサーフェスSceneSurfaceが導かれる。なお、各コード部の行番号は、単にそのコード部についての行番号を表しており、元のソースコードにおける行番号を表すものではない。
【0022】
ムービーサーフェスMovieSurface
以下のコード部は、ムービーサーフェスMovieSurfaceのノードを示している。ムービーサーフェスMovieSurfaceのノードの各フィールドの記述は、以下のようになる。
【0023】
1) MovieSurface: SurfaceNode TimedNode AudioSourceNode{
2) field MF String url []
3) field TimeBaseNode timeBase NULL
4) field Time duration 0
5) field Time loadTime 0
6) field String loadStatus “NONE”
}
【0024】
ムービーサーフェスMovieSurfaceのノードは、映画を定義する画像シーケンスにアクセスを行うことにより、映画を面上に描画する。ムービーサーフェスMovieSurfaceのタイムドノードTimedNodeの親クラス(parent class)は、一度にどのフレームを面上に描画するのかを定義している。映画はオーディオソースとしても使用することができる。
【0025】
コード部の2行目において、(多値フィールドの)URLフィールドは、面に対する映画データの潜在的位置のリストを提供する。このリストは、要素0がデータの好ましいソースを記述するように順序付けられている。何らかの理由で要素0が利用できないとき、あるいはサポートされないフォーマットである場合、次の要素を使用することができる。
【0026】
3行目において、タイムベースtimeBaseのフィールドが指定されている場合、タイムベースtimeBaseのフィールドは、映画に関するタイミング情報を提供するノードを指定する。特に、タイムベースtimeBaseのフィールドは、ある瞬間に映画のどのフレームを面に表示するかを決定するのに必要な情報を、映画に与える。タイムベースtimeBaseが指定されていない場合、面は、映画の最初のフレームを表示する。
【0027】
4行目において、映画データが取り込まれると数秒後に、ムービーサーフェスMovieSurfaceのノードにより、継続時間durationのフィールドが映画の長さに設定される。
【0028】
5行目及び6行目において、ロードタイムloadTimeのフィールド及びロードステータスloadStatusのフィールドは、ムービーサーフェスMovieSurfaceのノードから、映画データの利用可能性に関する情報を提供する。ロードステータスloadStatusは、5つの値、すなわち「なし(NONE)」、「要求(REQUESTED)」、「失敗(FAILED)」、「中止(ABORTED)」、「ロード(LOADED)」が可能である。
【0029】
「なし(NONE)」は初期状態である。「なし(NONE)」イベントは、値の数を0に設定し、又はURLの最初の文字列を空の文字列に設定することによって、ノードのURLを消去した場合にも送られる。このとき、面の画素は、黒及び不透明に設定される(すなわち、色は0,0,0となり、透明度は0である)。
【0030】
「要求(REQUESTED)」イベントは、空でないURL値が設定されると必ず送られる。面の画素は、「要求(REQUESTED)」イベントの後も変化しない。
【0031】
「失敗(FAILED)」は、映画のローディングが成功しなかった場合に、「要求(REQUESTED)」イベントの後に送られる。これは、例えば、URLが存在しないファイルを参照している場合、又はファイルに有効なデータが含まれていない場合に起こる。面の画素は、「失敗(FAILED)」イベントの後も変化しない。
【0032】
「中止(ABORTED)」イベントは、現在の状態が「要求(REQUESTED)」であり、URLが変更された場合に送られる。URLが空でない値に変更されると、「中止(ABORTED)」の後に「要求(REQUESTED)」イベントがくる。URLが空の値に変更されると、「中止(ABORTED)」の後に「なし(NONE)」の値がくる。面の画素は、「中止(ABORTED)」イベントの後も変化しない。
【0033】
「ロード(LOADED)」イベントは、映画を表示する準備ができると送られる。その後、現在時刻に一致した値のロードタイムloadTimeのイベントがくる。タイムベースtimeBaseのフィールドで示される映画のフレームが、面上に描画される。タイムベースtimeBaseがヌル(NULL)である場合、映画の最初のフレームが面上に描画される。
【0034】
イメージサーフェスImageSurface
以下のコード部は、イメージサーフェスImageSurfaceのノードを示している。イメージサーフェスImageSurfaceのノードの各フィールドの記述は、以下のようになる。
【0035】
1) ImageSurface: SurfaceNode {
2) field MF String url []
3) field Time loadTime 0
4) field String loadStatus “NONE”
}
【0036】
イメージサーフェスImageSurfaceのノードは、画像ファイルを面上に描画する。コード部の2行目において、URLフィールドは、面に対する画像データの潜在的位置のリストを提供する。このリストは、要素0がデータの最も好ましいソースを記述するように順序付けられている。何らかの理由で要素0が利用できないとき、あるいはサポートされないフォーマットである場合、次の要素を使用することができる。
【0037】
3行目及び4行目において、ロードタイムloadTimeのフィールド及びロードステータスloadStatusのフィールドは、イメージサーフェスImageSurfaceのノードから、画像データの利用可能性に関する情報を提供する。ロードステータスloadStatusは、5つの値、すなわち「なし(NONE)」、「要求(REQUESTED)」、「失敗(FAILED)」、「中止(ABORTED)」、「ロード(LOADED)」が可能である。
【0038】
「なし(NONE)」は初期状態である。「なし(NONE)」イベントは、値の数を0に設定し、又はURLの最初の文字列を空の文字列に設定することによって、ノードのURLを消去した場合にも送られる。このとき、面の画素は、黒及び不透明に設定される(すなわち、色は0,0,0となり、透明度は0である)。
【0039】
「要求(REQUESTED)」イベントは、空でないURL値が設定されると必ず送られる。面の画素は、「要求(REQUESTED)」イベントの後も変化しない。
【0040】
「失敗(FAILED)」は、画像のローディングが成功しなかった場合に、「要求(REQUESTED)」イベントの後に送られる。これは、例えば、URLが存在しないファイルを参照している場合、又はファイルに有効なデータが含まれていない場合に起こる。面の画素は、「失敗(FAILED)」イベントの後も変化しない。
【0041】
「中止(ABORTED)」イベントは、現在の状態が「要求(REQUESTED)」であり、URLが変更された場合に送られる。URLが空でない値に変更されると、「中止(ABORTED)」の後に「要求(REQUESTED)」イベントがくる。URLが空の値に変更されると、「中止(ABORTED)」の後に「なし(NONE)」の値がくる。面の画素は、「中止(ABORTED)」イベントの後も変化しない。
【0042】
「ロード(LOADED)」イベントは、画像が面上に描画されたときに送られる。その後、現在時刻に一致した値のロードタイムloadTimeのイベントがくる。
【0043】
マットサーフェスMatteSurface
以下のコード部は、マットサーフェスMatteSurfaceのノードを示している。マットサーフェスMatteSurfaceのノードの各フィールドの記述は、以下のようになる。
1) MatteSurface: SurfaceNode {
2) field SurfaceNode surface1 NULL
3) field SurfaceNode surface2 NULL
4) field String operation ““
5) field MF Float parameter 0
6) field Bool overwriteSurface2 FALSE
}
【0044】
マットサーフェスMatteSurfaceのノードは、画像合成操作を用いて、面surface1と面surface2とからの画像データを組み合わせて第3の面とする。合成操作の結果は、面surface2の解像度で計算される。面surface1の大きさが面surface2の大きさと異なる場合、操作実行前に、面surface1の画像データをズームアップ又はズームダウンして、面surface1の大きさを面surface2の大きさと等しくする。
【0045】
コード部の2行目及び3行目において、面surface1及び面surface2のフィールドは、合成操作のための入力画像データを提供する2つの面を指定する。4行目において、オペレーションフィールドは、2つの入力面上で実行する合成関数を指定する。可能な操作を以下に説明する。
【0046】
「アルファ置換(REPLACE_ALPHA)」操作は、面surface1からのデータで面surface2のアルファチャンネルAを上書きする。面surface1が1つの成分(グレースケール強度のみ)を有している場合、その成分は、アルファ(不透明度の)値として用いられる。面surface1が2つ又は4つの成分(グレースケール強度+アルファ値、すなわちRGBA)を有している場合、アルファ値を得るためにアルファチャンネルAを用いる。面surface1が3つの成分(RGB)を有している場合、操作は未定義である。この操作を用いて、静止画像又は動画像に対する静的な又は動的なアルファマスクを行うことができる。例えば、シーンサーフェスSceneSurfaceは、透明な背景にジェームズ・ボンドのアニメーションキャラクタを描画することができる。そして、この画像のアルファ成分は、ビデオクリップのマスク形状として用いることができる。
【0047】
「アルファ乗算(MULTIPLY_ALPHA)」操作は、面surface1からのアルファ値を面surface2からのアルファ値で乗算することを除いては、アルファ置換操作と同じである。
【0048】
「クロスフェード(CROSS_FADE)」操作は、2つの面の目に見える割合(percentage)を制御するパラメータ値を用いて、2つの面間でフェードを行う。この操作は、2つの静止画像又は動画像間で動的にフェードを行うことができる。パラメータ値(5行目)を0から1に動かすことにより、面surface1の画像が面surface2の画像にフェードしてゆく。
【0049】
「混合(BLEND)」操作は、面surface2からの混合率(blending percentage)を制御するアルファチャンネルを用いて、面surface1及び面surface2からの画像データを組み合わせる。この操作により、面surface2のアルファチャンネルは、2つの画像の混合率を制御することができる。シーンサーフェスSceneSurfaceを描画する、あるいはムービーサーフェスMovieSurfaceを再生することによって面surface2のアルファチャンネルを移動させることにより、複雑でトラバースのマット効果が得られる。R1、G1、B1、A1が、面surface1の画素の赤、緑、青、アルファの各値を表し、R2、G2、B2、A2が、面surface2における対応する画素の赤、緑、青、アルファの各値を表しているとき、その画素の赤、緑、青、アルファの各成分について得られる値は、以下のようになる。
【0050】
赤=R1*(1−A2)+R2*A2 (1)
緑=G1*(1−A2)+G2*A2 (2)
青=B1*(1−A2)+B2*A2 (3)
アルファ=1 (4)
【0051】
「加算(ADD)」操作及び「減算(SUBTRACT)」操作は、面surface1と面surface2のカラーチャンネルの加算又は減算を行う。得られるアルファ値は、面surface2のアルファ値に等しい。
【0052】
5行目において、パラメータフィールドは、合成関数の効果を変更できる1つ以上の浮動小数点パラメータを与える。パラメータ値の具体的な解釈は、どの操作が指定されているかによって異なる。
【0053】
6行目において、オーバライトサーフェスoverwriteSurface2のフィールドは、マットサーフェスMatteSurfaceのノードが合成操作の結果を記憶するための新たな面を割り当てるか(overwriteSurface2=FALSE)、あるいは面surface2に記憶されているデータを合成操作によって上書きするか(overwriteSurface2=TRUE)を指示する。
【0054】
ピクセルサーフェスPixelSurface
以下のコード部は、ピクセルサーフェスPixelSurfaceのノードを示している。ピクセルサーフェスPixelSurfaceのノードのフィールドの記述は、以下のようになる。
1) PixelSurface: SurfaceNode {
2) field Image image 0 0 0
}
【0055】
ピクセルサーフェスPixelSurfaceのノードは、ユーザが指定した画素の配列を面上に描画する。2行目において、画像フィールドは、面上に描画される画素データを記述する。
【0056】
シーンサーフェスSceneSurface
以下のコード部は、シーンサーフェスSceneSurfaceのノードを示している。シーンサーフェスSceneSurfaceのノードの各フィールドの記述は、以下のようになる。
1) SceneSurface: SurfaceNode {
2) field MF ChildNode children []
3) field UInt32 width 1
4) field UInt32 height 1
}
【0057】
シーンサーフェスSceneSurfaceのノードは、特定の大きさの面に特定の子ノードを描画する。シーンサーフェスSceneSurfaceは、子ノードの現在の状態を反映するように自動的に再描画する。
【0058】
コード部の2行目において、子フィールドは、描画される子ノードを記述する。概念的には、子フィールドは、シーンサーフェスSceneSurfaceのノードを含むシーングラフとは無関係に描画されるシーングラフ全体を記述する。
【0059】
3行目及び4行目において、幅フィールド及び高さフィールドは、面の大きさを画素で指定する。例えば、幅が256、高さが512の場合、その面は256×512の画素値の配列を有する。
【0060】
ムービーサーフェスMovieSurfaceのノード、イメージサーフェスImageSurfaceのノード、マットサーフェスMatteSurfaceのノード、ピクセルサーフェスPixelSurfaceのノード、シーンサーフェスSceneSurfaceのノードは、シーンの描画に用いられる。
【0061】
シーンの記述の最上位において、「最上位面(top level Surface)」の出力が、ディスプレイにマッピングされる。その結果をディスプレイに描画するのではなく、3次元的に描画されたシーンにより、上述の各サーフェスノードのうちの1つを用いて、その出力を面上に生成することができる。ここで、出力は、制作者が望むような高品位のシーン構成に組み込むことができる。面のコンテンツは、面に埋め込まれたシーン記述を描画することにより生成され、これには、面の画像構成の一部として、色情報、透明度(アルファチャンネル)、深さを含めることができる。この場合の画像とは、ビデオ画像、静止画像像、アニメーション又はシーンを含むものとして定義される。
【0062】
また、面は、様々なテクスチャマッピングシステムの特殊化された条件を、一般的な画像管理インタフェースよりも、内部でサポートするものとして定義される。その結果、テクスチャマッピングシステムにおけるあらゆるサーフェスプロデューサ(Surface producer)は、3次元描画処理によりテクスチャとして使用することができる。このようなサーフェスプロデューサの例として、イメージサーフェスImageSurface、ムービーサーフェスMovieSurface、マットサーフェスMatteSurface、シーンサーフェスSceneSurface及びアプリケーションサーフェスApplicationSurfaceがある。
【0063】
アプリケーションサーフェスApplicationSurfaceは、アプリケーション処理により埋め込まれて描画された画像データ、例えば従来のウィンドウシステムにおけるアプリケーションウィンドウに類似した方法で描画された表計算、ワープロ等の画像データを維持する。
【0064】
面モデルを描画生成(rendering production)と統合するとともに、テクスチャを使用することにより、異なる描画速度の宣言型オーサリングが可能になる。従来、3次元シーンは一体的に描画され、視聴者に対する最終的なフレームレートは、シーンの複雑さ又はテクスチャの入換えに起因した最悪の性能によって定まっていた。フレームワーク(framework)のリアルタイムで連続した構成では、面を抽象化することにより、同じ画面上の異なる要素に対して描画速度を異ならせるメカニズムが得られる。例えば、毎秒1フレームという低速で描画を行うウェブブラウザを描画することも可能であるが、これは、他のアプリケーションによって生成され、ブラウザの出力とともに表示されるビデオフレームレートが、フルフレームレートの毎秒30フレームに維持されている場合に限り可能である。ウェブブラウザアプリケーションがそれ自身に面を描画する場合、画面制作者(screen compositor)は、フルモーションビデオフレームレートに妨げられずに、ウェブブラウザ面の最後に完全に描画された画像を高速画面更新の一部として使用して、描画を行うことができる。
【0065】
図2Aは、画面表示200の複雑な部分202をフルモーションビデオフレームレートで描画する方法を説明するための図である。図2Bは、複雑な部分202を含む画面表示200をフルモーションビデオレートで描画する際の様々な動作を示すフローチャートである。画面表示200は毎秒30フレームで表示することが望ましいが、画面表示200の部分202は、複雑すぎて、毎秒30フレームでは表示することができない。この場合、ステップ210(図2B)において、部分202を第1の面上に描画するとともに、バッファ204に記憶する。ステップ215において、バッファ204に記憶された第1の面を用いることにより、部分202を含む画面表示200を毎秒30フレームで表示する。部分202を含む画面表示200を表示している間、ステップ220において、部分202の次フレームを第2の面上に描画するとともに、バッファ206に記憶する。この部分202の次フレームが一旦利用可能になると、第2の面を用いて画面表示200の次の更新を行うとともに(ステップ225)、部分202の更なる更新バージョンがバッファ204で利用可能になるまで、これを続ける。第2の面を用いて画面表示200を表示している間、ステップ230において、部分202の次フレームを第1の面上に描画する。第1の面への部分202の次フレームの描画が終わると、複雑な部分202を含む画面表示200を毎秒30フレームで表示するために、更新された第1の面を使用する。
【0066】
面モデルを描画生成と統合するとともに、テクスチャを使用することにより、ネストされたシーンを宣言的に描画することができる。画像として描画されたサブシーンを再合成することにより、オープンエンドなオーサリングが可能になる。特に、アニメーション化され、より大きなビデオコンテキストに画像混合されたサブシーンを用いることにより、エンターテインメント用のコンピュータグラフィックとして、より適切な画質が得られる。例えば、この画像を混合する方法により、ビジュアルアーティストは、ウィンドウシステムによる前世代の粗く、明確な輪郭を有するクリッピングに替わる手段が得られる。
【0067】
図3Aは、アニメーション化されたサブシーンを含むネストされたシーンを示す。図3Bは、図3Aのネストされたシーンを描画する際に実行される動作を示すフローチャートである。ステップ310において、画面表示200に表示される背景画像を描画し、ステップ315において、画面表示200に表示された背景画像内にキューブ302を配置する。キューブ302の外側の領域は、画面表示200にキューブ302の背景を形成するする面の一部である。キューブ302の面304は、第3の面として定義される。ステップ320において、ムービーサーフェスMovieSurfaceのノードを用いて、第3の面に映画を描画する。これにより、キューブ302の面304は、第3の面上に描画された映画を表示する。キューブ302の面306は、第4の面として定義される。ステップ325において、イメージサーフェスImageSurfaceのノードを用いて、第4の面に画像を描画する。これにより、キューブ302の面306は、第4の面上に描画された画像を表示する。ステップ330において、キューブ302全体が第5の面として定義され、ステップ335において、この第5の面が移動及び/又は回転されることにより、面304に映画を再生するとともに面305に静止画像を表示する移動キューブが構成される。上述の処理手順を行うことにより、キューブ302の各面に別の描画を表示することもできる。なお、ステップ310〜335は、いずれの順序で行ってもよく、ステップ310〜335の全てを同時に開始してもよい。
【0068】
なお、本発明は、「ブレンド(Blendo)」から独立しており、「ブレンド」とは別の実施形態の一部とすることができる。また、本発明の説明では、3次元シーンの描画について説明しているが、本発明は、2次元シーンの描画にも同様に適用することができる。面モデルにより、制作者は、画像とビデオ効果を、2次元及び3次元の幾何学的マッピング及びアニメーション化によって、自由に組み合わせることができる。
【0069】
本発明を、特定の実施形態について図示し、説明したが、本発明の特徴から逸脱することなく、種々の変更や修正を行えることは、当業者にとって明らかである。したがって、特許請求の範囲は、このような変更や修正が本発明の趣旨及び範囲内であるとして、これらの変更や修正を全て含むものである。
【図面の簡単な説明】
【0070】
【図1A】ブレンド(Blendo)の基本的なアーキテクチャを示す図である。
【図1B】ブレンドエンジンによるコンテンツの流れを示すフローチャートである。
【図2A】1つのシーンにおける2つの面が、異なる描画速度でどのように描画されるかを示す図である。
【図2B】異なる描画速度で図2Aに示す2つの面を描画する際に行われる動作を示すフローチャートである。
【図3A】ネストされたシーンを示す図である。
【図3B】図3Aのネストされた図を描画するのに行われる動作を示すフローチャートである。

【特許請求の範囲】
【請求項1】
コンピュータと、上記コンピュータにより実行されるコンピュータプログラムとを備えるコンピュータシステムにおいて、
上記コンピュータプログラムは、
第1の画像が描画された第1の面と、第2の画像が描画された第2の面とを用いて動画像を構成するためのコンピュータインストラクションを有し、
上記第1の面からの上記第1の画像と、上記第2の面からの上記第2の画像とを組み合わせて、上記動画像を構成することを特徴とするコンピュータシステム。
【請求項2】
上記第1の画像及び上記第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項1に記載のコンピュータシステム。
【請求項3】
上記第1の画像は、第1の2次元画素列に描画され、上記第2の画像は、第2の2次元画素列に描画されることを特徴とする請求項2に記載のコンピュータシステム。
【請求項4】
上記動画像は、宣言型インストラクションに従って作成されることを特徴とする請求項2に記載のコンピュータシステム。
【請求項5】
上記動画像は、リアルタイムで作成されることを特徴とする請求項4に記載のコンピュータシステム。
【請求項6】
上記動画像は、リアルタイムで作成されることを特徴とする請求項2に記載のコンピュータシステム。
【請求項7】
上記第1の画像は、第1の不透明値を有し、上記第2の画像は、第2の不透明値を有し、上記動画像は、第3の不透明値を有することを特徴とする請求項2に記載のコンピュータシステム。
【請求項8】
上記第1の画像と上記第2の画像とを組み合わせて上記動画像を構成するときに、上記第1の不透明値を用いて上記第2の不透明値を上書きするためのコンピュータインストラクションを、さらに有することを特徴とする請求項7に記載のコンピュータシステム。
【請求項9】
上記第1の不透明値に上記第2の不透明値を乗算して上記第3の不透明値を得るためのコンピュータインストラクションを、さらに有することを特徴とする請求項7に記載のコンピュータシステム。
【請求項10】
上記第1の画像と上記第2の画像とを組み合わせることによりトラバースのマット効果を得るときに、上記第2の画像の不透明値を動かすためのコンピュータインストラクションを、さらに有することを特徴とする請求項7に記載のコンピュータシステム。
【請求項11】
コンピュータと、上記コンピュータにより実行されるコンピュータプログラムとを備えるコンピュータシステムにおいて、上記コンピュータプログラムは、
第1の画像を第1の面上に描画し、
第2の画像を第2の面上に描画し、
第3のシーンを第3の面上に描画するためのコンピュータインストラクションを有し、
上記第1の画像は上記第3のシーン用のテクスチャとして使用され、上記第2の画像は上記テクスチャと混合されて上記第3のシーンを形成することを特徴とするコンピュータシステム。
【請求項12】
ユーザは、上記第1の画像、上記第2の画像及び上記第3のシーンを描画するための宣言型インストラクションを与えることを特徴とする請求項11に記載のコンピュータシステム。
【請求項13】
上記第2の画像は時間とともに変化することを特徴とする請求項11に記載のコンピュータシステム。
【請求項14】
第4のシーンを第4の面に宣言的に描画するためのコンピュータインストラクションをさらに有し、上記第3のシーンは、上記第4のシーン内に混合されて上記第4のシーン内にサブシーンを形成することを特徴とする請求項11に記載のコンピュータシステム。
【請求項15】
上記サブシーン内の上記第2の画像は、上記第2の面の上記第2の画像における変化を反映するように変化することを特徴とする請求項14に記載のコンピュータシステム。
【請求項16】
上記第1の画像及び上記第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択することができることを特徴とする請求項11に記載のコンピュータシステム。
【請求項17】
コンピュータと、上記コンピュータにより実行されるコンピュータプログラムとを備えるコンピュータシステムにおいて、上記コンピュータプログラムは、
第1のシーンを第1の描画速度にて描画し、
第2のシーンを第2の描画速度にて描画するためのコンピュータインストラクションを有し、
上記第2のシーンは上記第1のシーン内にサブシーンを形成することを特徴とするコンピュータシステム。
【請求項18】
上記第1のシーン及び上記第2のシーンは、宣言型インストラクションに基づいて描画されることを特徴とする請求項17に記載のコンピュータシステム。
【請求項19】
上記第2のシーンの第1の画像は第1のバッファに記憶され、上記第2のシーンの第2の画像は第2のバッファに記憶され、上記第1の画像及び上記第2の画像は連続的に更新され、一度にいずれか一方の描画が更新されることを特徴とする請求項17に記載のコンピュータシステム。
【請求項20】
上記サブシーンは、上記第1の画像と上記第2の画像とからなるグループから選択される最後の描画を用いて更新されることを特徴とする請求項19に記載のコンピュータシステム。
【請求項21】
上記第1の描画速度は上記第2の描画速度に等しいことを特徴とする請求項20に記載のコンピュータシステム。
【請求項22】
コンピュータを用いて動画像を構成する方法において、
第1の画像を第1の面上に描画し、
第2の画像を第2の面上に描画し、
上記第1の画像と上記第2の画像とを組み合わせて、上記動画像を構成することを特徴とする方法。
【請求項23】
上記第1の画像及び上記第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項22に記載の方法。
【請求項24】
上記シーンは、ビデオ画像、静止画像、アニメーション、シーンからなるグループのうちの少なくとも1つからなることを特徴とする請求項23に記載の方法。
【請求項25】
さらに、上記第1の画像を第1の2次元画素列に描画し、上記第2の画像を第2の2次元画素列に描画することを特徴とする請求項22に記載の方法。
【請求項26】
さらに、上記動画像を構成するための宣言型インストラクションを与えることを特徴とする請求項22に記載の方法。
【請求項27】
上記動画像はリアルタイムで作成されることを特徴とする請求項22に記載の方法。
【請求項28】
さらに、上記第1の画像に第1の不透明値を与え、
上記第2の画像に第2の不透明値を与え、
上記動画像に第3の不透明値を与えることを特徴とする請求項22に記載の方法。
【請求項29】
さらに、上記第1の不透明値を用いて上記第2の不透明値を上書きすることを特徴とする請求項28に記載の方法。
【請求項30】
さらに、上記第1の不透明値と上記第2の不透明値とを乗算して上記第3の不透明値を得ることを特徴とする請求項28に記載の方法。
【請求項31】
さらに、上記第1の画像と上記第2の画像とを組み合わせることによりマット効果を得るときに、上記第2の画像の不透明値を動かすことを特徴とする請求項28に記載の方法。
【請求項32】
コンピュータを用いてシーンを作成する方法において、
第1の画像を第1の面上に描画し、
第2の画像を第2の面上に描画し、
第1の画像を上記シーン用のテクスチャとして使用し、上記第2の画像と上記テクスチャとを混合して第1のシーンを形成する第3の面に、第1のシーンを描画することを特徴とする方法。
【請求項33】
上記第1の画像、上記第2の画像及び上記第1のシーンを描画するための宣言型インストラクションを与えることを特徴とする請求項32に記載の方法。
【請求項34】
上記第2の画像は時間とともに変化することを特徴とする請求項32に記載の方法。
【請求項35】
上記第1の画像及び上記第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項32に記載の方法。
【請求項36】
コンピュータを用いてシーンを表示する方法において、
第1のシーンを第1の描画速度にて描画し、
第2のシーンを第2の描画速度にて描画し、
上記第2のシーンは上記第1のシーン内にサブシーンを形成することを特徴とする方法。
【請求項37】
さらに、上記第1のシーン及び上記第2のシーンを描画するための宣言型インストラクションを与えることを特徴とする請求項36に記載の方法。
【請求項38】
さらに、上記第2のシーンの第1の画像を第1のバッファに記憶し、上記第2のシーンの第2の画像を第2のバッファに記憶し、
上記第1の画像及び上記第2の画像について、一度にいずれか一方の描画を更新して、これらを連続的に更新することを特徴とする請求項36に記載の方法。
【請求項39】
上記第1の画像と上記第2の画像とからなるグループから選択される最後の描画を用いて、上記サブシーンを更新することを特徴とする請求項36に記載の方法。
【請求項40】
上記第1の描画速度は上記第2の描画速度とは異なることを特徴とする請求項36に記載の方法。
【特許請求の範囲】
【請求項1】
コンピュータと、該コンピュータによって実行されるコンピュータプログラムとを備えるコンピュータシステムにおいて、
上記コンピュータプログラムは、
第1の画像が描画された第1の面と、第2の画像が描画された第2の面とを用いて、動画像を宣言的に構成するコンピュータインストラクションと、
上記動画像は宣言型マークアップ言語によって生成され、上記第1の画像は空間におけるオブジェクトの3次元的表現であり、上記第2の面は空間における3次元的表現を有する突出であり、該第1の画像は第1の不透明度の値を有し、該第2の画像は第2の不透明度の値を有し、上記動画像は第3の不透明度の値を有し、上記第1の面からの第1の画像と上記第2の面からの第2の画像とを組み合わせて該動画像を構成するコンピュータインストラクションと、
上記第1の画像と上記第2の画像とを組み合わせてトラバースのマット効果を得るときに、上記第2の画像の不透明度の値を動かすコンピュータインストラクションとを有し、
上記第1及び第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とするコンピュータシステム。
【請求項2】
上記第1の画像は、第1の2次元画素配列で描画され、上記第2の画像は、第2の2次元画素配列で描画されることを特徴とする請求項1に記載のコンピュータシステム。
【請求項3】
上記動画像は、宣言型インストラクションによって構成されることを特徴とする請求項1に記載のコンピュータシステム。
【請求項4】
上記動画像は、リアルタイムで構成されることを特徴とする請求項3に記載のコンピュータシステム。
【請求項5】
上記動画像は、宣言型インストラクションによって構成されることを特徴とする請求項2に記載のコンピュータシステム。
【請求項6】
上記コンピュータプログラムは、上記第1の画像と上記第2の画像とを組み合わせて上記動画像を構成するときに、上記第1の不透明度の値で上記第2の不透明度の値を上書きするコンピュータインストラクションを有することを特徴とする請求項1に記載のコンピュータシステム。
【請求項7】
上記コンピュータプログラムは、上記第1の不透明度の値に上記第2の不透明度の値を乗算して上記第3の不透明度の値を得るコンピュータインストラクションを有することを特徴とする請求項1に記載のコンピュータシステム。
【請求項8】
コンピュータと、該コンピュータによって実行されるコンピュータプログラムとを備えるコンピュータシステムにおいて、
上記コンピュータプログラムは、
第1の画像を第1の面上に描画するコンピュータインストラクションと、
第2の画像を第2の面上に描画するコンピュータインストラクションと、
第3の画像を第3の面上に宣言的に描画するコンピュータインストラクションとを有し、
上記第1の画像は上記第3の画像用のテクスチャとして使用され、上記第2の画像は該テクスチャと混合されて該第3の画像を形成し、上記第3の面は宣言型マークアップ言語によって生成され、該第1の画像は空間における3次元的表現を有する突出であり、該第2の画像はオブジェクトの3次元的表現であることを特徴とするコンピュータシステム。
【請求項9】
上記第1、第2及び第3の画像は、ユーザからの宣言型インストラクションによって描画されることを特徴とする請求項8に記載のコンピュータシステム。
【請求項10】
上記第2の画像は、時間とともに変化することを特徴とする請求項8に記載のコンピュータシステム。
【請求項11】
上記コンピュータプログラムは、第4の画像を第4の面上に宣言的に描画するコンピュータインストラクションを有し、上記第3の画像は、上記第4の画像内に混合されて該第4の画像内にサブシーンを形成することを特徴とする請求項8に記載のコンピュータシステム。
【請求項12】
上記サブシーン内の第2の画像は、上記第2の面の第2の画像における変化を反映するように変化することを特徴とする請求項11に記載のコンピュータシステム。
【請求項13】
上記第1及び第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項8に記載のコンピュータシステム。
【請求項14】
上記第1、第2及び第3の画像の描画は、再帰的に行われることを特徴とする請求項8に記載のコンピュータシステム。
【請求項15】
コンピュータを用いて動画像を構成する動画像構成方法において、
第1の画像を第1の面上に描画し、
第2の画像を第2の面上に描画し、
上記動画像は宣言型マークアップ言語によって生成され、上記第1の画像はオブジェクトの3次元的表現であり、上記第2の面は空間における3次元的表現を有する突出であり、該第1の画像と該第2の画像とを組み合わせて該動画像を宣言的に構成し、
上記第1の画像の第1の不透明度の値を与え、
上記第2の画像の第2の不透明度の値を与え、
上記動画像の第3の不透明度の値を与え、
上記第1の画像と上記第2の画像とを組み合わせてマット効果を得るときに、上記第2の画像の不透明度の値を動かす動画像構成方法。
【請求項16】
上記第1及び第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項15に記載の動画像構成方法。
【請求項17】
上記シーンは、ビデオ画像、静止画像、アニメーション、シーンからなるグループのうちの少なくとも1つを含むことを特徴とする請求項16に記載の動画像構成方法。
【請求項18】
更に、上記第1の画像を第1の2次元画素配列で描画し、
上記第2の画像を第2の2次元画素配列で描画する請求項15に記載の動画像構成方法。
【請求項19】
更に、上記動画像を構成するために、宣言型インストラクションを与える請求項15に記載の動画像構成方法。
【請求項20】
上記動画像は、リアルタイムで構成されることを特徴とする請求項15に記載の動画像構成方法。
【請求項21】
上記第1の不透明度の値で上記第2の不透明度の値を上書きすることを特徴とする請求項15に記載の動画像構成方法。
【請求項22】
更に、上記第1の不透明度の値に上記第2の不透明度の値を乗算して上記第3の不透明度の値を得る請求項15に記載の動画像構成方法。
【請求項23】
コンピュータを用いてシーンを構成するシーン構成方法において、
第1の画像を第1の面上に描画し、
第2の画像を第2の面上に描画し、
上記第1の画像をシーン用のテクスチャとして使用し、該テクスチャを上記第2の画像に混合して、第1のシーンを、該第1のシーンを形成する第3の面上に描画し、
上記第3の面は宣言型マークアップ言語によって生成され、上記第1の画像は空間における3次元的表現を有する突出であり、上記第2の画像はオブジェクトの3次元的表現であることを特徴とするシーン構成方法。
【請求項24】
更に、上記第1及び第2の画像、及び上記第1のシーンを描画する宣言型インストラクションを与える請求項23に記載のシーン構成方法。
【請求項25】
上記第2の画像は、時間とともに変化することを特徴とする請求項23に記載のシーン構成方法。
【請求項26】
上記第1及び第2の画像は、ビデオ画像、静止画像、アニメーション、シーンからなるグループから選択されることを特徴とする請求項23に記載のシーン構成方法。
【請求項27】
上記第1及び第2の画像、及び上記第3のシーンの描画は、再帰的に行われることを特徴とする請求項23に記載のシーン構成方法。

【図1A】
image rotate

【図1B】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate


【公表番号】特表2006−505050(P2006−505050A)
【公表日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−549857(P2004−549857)
【出願日】平成14年11月1日(2002.11.1)
【国際出願番号】PCT/US2002/035212
【国際公開番号】WO2004/042659
【国際公開日】平成16年5月21日(2004.5.21)
【出願人】(593181638)ソニー エレクトロニクス インク (371)
【Fターム(参考)】