以下の説明においては、様々な実施形態について説明することとする。説明を目的として、特定の構成及び詳細が、実施形態の十分な理解を提供するべく、記述されている。但し、当業者には、実施形態が、特定の詳細を伴うことなしに実施されうることも明らかとなろう。更には、記述されている実施形態を不明瞭にしないように、周知の特徴が省略又は単純化されている場合もある。
以下において開示されているのは、レンダリング用の、且つ、更に詳しくは、レンダリング用に利用可能な色空間を拡張する、技法である。
図1は、蹄鉄の形状においてすべての可視色を有する国際照明委員会(CIE)の色度図の一例を示している。又、異なる領域又は3次元色空間を通じた2次元色空間102、104、106、108,110も示されている。これらの色空間は、3次元領域から投射された色の範囲の2次元領域である。
色空間102は、sRGB領域の範囲を示している。色空間104は、有効な反射率の領域の限界を示している。色空間106は、自然反射率の領域の限界を示している。
色空間108は、例えば、方法200(図2を参照されたい)などの、後述する技法用の入力色空間として使用されるACEScg領域を示している。色空間110は、蛍光スペクトルアンサンプリングを通じて色空間108を近似するべく使用される方法100の出力色空間を示している。この例において、色空間110は、色空間104よりも大きい。
図2は、レンダリング用のコンピュータ実装された方法200の一実施形態を示している。方法は、色空間内の第1色を表す値の第1の組を受け取るステップ202を含む。一例において、値の第1の組は、RGB値を表す三刺激値である。又、三刺激値は、例えば、YCbCr、LMS、又はXYZ値を有することもできる。
一実施形態において、色空間は、三刺激値と関連する色の範囲によって形成された3次元領域を表している。値の第1の組は、色空間108内の色を表している(図1を参照されたい)。
方法200は、第2色を表す少なくとも1つの第1反射率係数に基づいて第1色の第1近似を判定又は取得している204。1つ又は複数の第1反射率係数は、色空間内の第2色と第1色の間の誤差を低減することにより、判定されている。一例においては、入力色と第1反射率係数によって表される色の間のユークリッド距離によって付与される目的関数が極小化されている。
1つ又は複数の第1反射率係数を使用して色空間内の第2色を表す値の第2の組は、第2色と第1色の間の誤差を低減する必要がある。一例において、値の第2の組は、三刺激RGB値である。又、値の第2の組は、例えば、YCbCr、LMS、又はXYZ値などの、その他の三刺激値を有することもできる。一実施形態において、観察者の色応答に基づいた関数を適用することにより、三刺激値の第2の組が取得されている。
一例において、色のRGB値をフルスペクトルにアップサンプリングするべく、スペクトルアンサンプリング技法が使用されている。1つ又は複数の第1反射率係数は、色のフルスペクトルを表している。エネルギーの保存は、最適化の際に考慮されてはおらず、且つ、スケーリングにより、後から強制されており、従って、明るいスペクトルを常に実現可能であるわけではない。
一実施形態において、1つ又は複数の第1反射率係数は、3つの係数を有することができる。
インターバル
におけるエネルギー保存反射率は、以下の二次多項式及びシグモイドを使用することにより、モデル化することができる。このインターバルは、存在している反射率の量の倍数を表しており、この場合に、1は、波長におけるフル反射率であり(ラムダ)、0は、反射率なしである(フル吸収)。以下の二次多項式及びシグモイドは、ブロック状のスペクトルのみならず、スムーズなスペクトルを有する相対的に穏やかな入力を使用することにより、両方の飽和した色を表現するべく、使用されている。
図4は、ブロック状のスペクトル402及びスムーズなスペクトル404の例を示している。
ここで、
及び
一例において、1つ又は複数の第1反射率係数は、上述の式を使用することにより、ワンタイム最適化ステップを使用して生成された3Dルックアップテーブルから補間されている。
有効な反射率の領域又は色空間の境界におけるブロック状のスペクトルは、回避される可能性を有する。放射の欠如について補償するべく、蛍光増白剤が使用されるのに伴って、スペクトル及び蛍光染料における混合が、更にスムーズなものとなる。この方式は、反射率領域又は色空間の外に出る、且つ、相対的に豊富な色の組を表す、可能性を有する。
第2色、即ち、係数によって表される第1色の近似、を取得するべく、所与の光源について、以下の反射係数
の式が使用されている。
として、
反射係数
は、望ましい色空間と関連する色整合関数を使用することにより、RGBに変換される。色整合関数は、積分を介して、スペクトル分布を三刺激値に低減している。色整合関数は、観察者に応じて変化する。例えば、人間の知覚を表す色整合関数は、カメラの知覚を表す色整合関数とは異なっている。
図4は、上述のエネルギー保存反射率モデルを使用することにより、非蛍光スペクトルアップサンプリングを介して生成されたいくつかの例示用の反射率スペクトルを示している。ボックス様のスペクトル402は、可視範囲における自然な反射率スペクトルの滑らかさが付与された場合に、望ましいものではない。ボックス様の結果は、結果的に得られるスペクトルの滑らかさを定量化するメトリックを使用することにより、罰せられる。モデル
が、ナノメートル(nm)を単位とする可視範囲
において生成する最大絶対微分値が使用されている。
一実施形態においては、真の最大絶対微分ではなく、近似が算出されている。
まず、関数がインターバルにおいて到達するように、極値が取得されている。
は、多項式のグローバル極小値又は極大値であり、且つ、これが
と
の間に位置する場合にのみ、含まれる。
シグモイド
の単調性を活用することにより、この範囲の中間点が、その逆元を通じてマッピングされる。
関連する波長を判定するべく、二次式
を解く必要がある。最終的な近似微分値は、
又は
によって付与される。いずれかの解が適切である。図4には、一例が、406及び408において示されている。
この近似の精度は、
の最大スロープに伴って増大している。ほとんど0又は1に近接した値を有する、ボックス様のスペクトルの場合には、対応する内部多項式
は、極めて小さな又は大きな値に到達し、これらは、対称性を理由として、
における
の最も急勾配の微分を有するシグモイド
により、0に近接した状態又は1に近接した状態にマッピングされている。
特定の勾配超のスペクトルを罰することが望ましい。従って、近似の正確性が低いスムーズなスペクトルに対処するニーズが存在してはいない。
大きな微分は、ペナルティを有する。閾値
超の絶対微分を有するスペクトルは、項
を最適化オブジェクティブに追加することにより、罰せられる。一例において、最適化オブジェクティブは、色空間の内側の距離である。一例において、スムーズなスペクトルの場合に、閾値
であり(nmを単位として波長上においてプロットされた際)、これは、従来のマクベス色チェッカ上において観察されるシグモイド
の最大微分である。最大微分は、特性として反射率スペクトルを表さない非現実的に急勾配の側部を有するシグモイド
を除去するように機能している。連続的な最適化オブジェクティブを保証するべく、
を使用することが望ましい。
3次元色空間の内側の色距離が、[0,√3]内の値に到達しうることを考慮することにより、この差は、わずかに相対的に大きな微分の場合にも、ターゲット関数に影響を及ぼすべく、100の係数により、スケーリングすることが可能であり、これにより、オプティマイザは、第1色と第2色の間の誤差を低減するべく、蛍光成分を選好することになる。
図2を参照すれば、いくつかのケースにおいて、1つ又は複数の第1反射率係数に基づいた第1色の三刺激値と第2色の三刺激値の間の誤差は、望ましい閾値超である。誤差が望ましい閾値206超である場合に、1つ又は複数の第1反射率係数は、放出スペクトルのピーク波長、混合係数、及び蛍光体のストークスシフトを表す、3つの更なる蛍光係数によって拡張される。
方法200は、第2色を表す少なくとも1つの第2反射率係数及び少なくとも1つの蛍光係数に基づいて第1色の第2近似を更に判定又は取得している208。
一例において、第2色の少なくとも1つの第1反射率係数は、第1色用の十分に正確な近似を提供しておらず、従って、相対的に正確な近似のために、少なくとも1つの蛍光係数が必要とされている。不正確な近似は、所与の入力色について、物理的に有効な反射率が存在していない際に、或いは、物理的に有効な反射率が存在しているが、過剰にボックス様であることから、拒絶された際に、発生しうる。
蛍光は、光が1つの波長において吸収され、且つ、通常は相対的に長い波長である、別のものにおいて再放出される、プロセスである。一例において、このプロセスは、瞬間的なものであると仮定される。
蛍光用の最も重要なパラメータは、吸収スペクトルと放出スペクトルである。図6は、後述する技法によって判定された放出スペクトル602及び吸収スペクトル604のペアの一例を600において示している。
吸収スペクトル
は、所与の波長において吸収される光の量を決定している。次いで、この光は、放出スペクトル
に後続するスペクトル分布を伴って、再放出される。吸収及び放出スペクトルのピーク波長の間の距離は、ストークスシフトと呼称されている。蛍光成分を第2色に追加するにより、第1色が、相対的に大きな領域又は色空間から近似されることが許容される。
蛍光は、以下の式を使用してモデル化することができる。
分子における左被加数は、正反射である。左側のディラックのデルタ関数は、この項が、
が、吸収スペクトル
をスケールダウンするべく利便のために導入されたスカラーであり、且つ、
が、非蛍光反射率スペクトルである際にのみ、寄与することを保証している。右被加数においては、蛍光部分
は、量子収率を表し、且つ、
は、上述の放出スペクトルである。
三刺激値の組内において表されている任意の入力又は第1色の場合に、整合する
、
、
、及び
が得られる。
蛍光モデルは、明確な吸収及び放出スペクトルを必要としている。一例において、モデルが、レンダリングの時点において、使用するべく効率的であることを保証するべく、単純な低次元パラメータモデルが使用されている。又、低次元パラメータモデルは、分析的に、重要性サンプリングすることが可能であり、且つ、光が、コンピュータグラフィクスレンダリングなどのシーンを通じて搬送される方式をシミュレートするべく使用される技法の場合に、使用することができる。一例において、蛍光モデルは、モンテカルロ光輸送シミュレーションのために使用することができる。又、この分析モデルは、第1の又は入力された色の三刺激値の組におけるモデルパラメータのかなり単純化された最適化をも可能にしている。
いくつかの現実世界の材料は、100%に近接した量子収率
を有する。一例において、
の値は、相対的に高い飽和を再放出を介して実現するべく、物理的に妥当である程度に大きくなるように、選択されている。一例において、パラメータ
は、パラメータの数を少なく維持するべく、0.96の値に固定されている。蛍光モデルを考慮することにより、相対的に小さな
は、
及び
の低減に結合された相対的に大きな
と数学的に等価となり、従って、
用の更なるパラメータの使用から予想される利益は、ほとんど存在してはいない。
一例において、蛍光係数は、蛍光モデルの放出ピーク波長、濃度、及びストークシフトと関連している。蛍光係数は、3つのパラメータ
を有する。放出スペクトルのピーク波長は、nmを単位とする
である。混合係数
は、蛍光の量を表している。nmを単位とするストークスシフト
は、放出スペクトルと吸収スペクトルのピーク波長の間の距離を表している。
一例において、放出スペクトルは、3次bスプラインによってモデル化されている。
放出スペクトルモデルは、それぞれ、変化するスペクトル幅及び
に対応するべく、延伸され、且つ、平行運動している。吸収スペクトルは、波数にわたってプロットされた放出スペクトルのミラー画像として定義されている。これは、しばしば、現実の材料の場合に当て嵌まる。
放出及び吸収スペクトルのペアは、オーバーラップすることなしに、接触するように、モデル化されている。この仮定は、放出及び吸収スペクトルモデルを単純化しており、その理由は、励起及び放出の効果が、相対的に短い波長に遷移するイベントをサンプリングする危険を伴うことなしに、分離可能あるものとしてモデル化されうるからである。
波長にわたってミラーリングすることにより、規定された距離
において吸収ピーク波長が結果的に得られるように、放出スペクトルを延伸するべく、スケーリング係数
を使用することができる。
これは、放出スペクトル
と、吸収スペクトル
に結び付く。
そのピークにおいて値1を取得する吸収スペクトルとは対照的に、放出スペクトルは、1に積分されるように、正規化又はスケーリングされている606。この正規化は、
の場合に、一定であり、閉じた形態の解を有し、且つ、
によって付与される。
一例において、1つ又は複数の第2反射率係数及び1つ又は複数の蛍光係数は、色空間内の第2色と第1色の間のユークリッド距離を低減することにより、判定されている。
一例において、1つ又は複数の蛍光係数は、基準を充足する1つ又は複数の蛍光係数の値を判定するべく1つ又は複数の蛍光係数の値の規定された範囲を評価することにより、1つ又は複数の第1反射率係数から判定されている。
図3を参照すれば、エネルギー保存反射率モデルから得られた1つ又は複数の第1反射率係数は、小さな誤差を有する蛍光係数の組を判定するべく302、使用することができる。妥当な境界は、蛍光スペクトルの放出ピーク波長、濃度、ストークスシフトを通知する蛍光係数について見出すことができる。吸収用の妥当な境界の一例は、320nm~550nmである。放出用の妥当な境界の一例は、380nm~680nmである。ストークスシフト用の妥当な境界の一例は、50nm~150nmである。
少なくとも1つの第1反射率係数が付与された場合に、小さな誤差を有する蛍光係数の値を見出すべく、力任せサーチ方式を妥当な境界内において使用することができる。
図5は、固定された
、
、及び
における、このような力任せサーチの1次元スライスを500において示している。図5は、いくつかの局所的最小値を有する複雑な最適化オブジェクティブを開示している。
一例において、色空間内の第2色と第1色の間のユークリッド距離を低減するプロセスは、1つ又は複数の第2反射率係数と1つ又は複数の蛍光係数の両方を最適化するステップと1つ又は複数の第2反射率係数のみを最適化するステップの間において交互に変化するステップを伴っている。一実施形態において、非線形勾配降下オプティマイザが最適化を実行している。
図3を参照すれば、力任せサーチ方式から得られた蛍光係数は、第2反射率係数と共に、更に最適化することができる。一実施形態において、プロセスは、第1反射率係数のみを最適化するステップと蛍光係数と第2反射率係数を一緒に最適化するステップの間において交互に変化している306。
最適化プロセスは、最大数の反復の後に310、或いは、誤差がもはや改善しない際に308、終了している。一例において、反復の最大数は、50反復において設定されている。一例において、第2色が、第1色の十分に近接した近似であるかどうかの誤差閾値は、色空間内の第1色と第2色の間の距離に基づいている。
一例において、方法208は、第2色よりも小さな誤差を有する隣接色の係数を取得するステップ304を含む。第2色の1つ又は複数の第2反射率係数及び1つ又は複数の蛍光係数が、第2色の隣接色の1つ又は複数の第2反射率係数及び1つ又は複数の蛍光係数によって置換されている。第2色の隣接色は、色空間内の隣接する色である。
それぞれの最適化反復ごとに、隣接色からの第2反射率係数及び蛍光係数は、第2色の第2反射率係数及び蛍光係数が誤差閾値未満に未だ収束していない場合に、使用されている。一例において、26個の隣接色が、第2色よりも小さな誤差を有する係数について分析されている。第2色の係数を置換するべく、最小の誤差を有する26個の隣接色のうちの1つのものの係数を選択することができる。
相対的に小さな誤差を有する隣接色の係数が見出された場合に、隣接色の係数は、第2反射率係数及び蛍光係数を一緒に最適化するステップと第2反射率係数のみを最適化するステップの間において交互に変化するための後の反復の開始近似を初期化するべく、使用されている。このプロセスは、情報が相対的に離れたエントリまで伝播しうることを保証するべく、複数回にわたって反復されている。一例においては、隣接色の誤差を第2色の誤差と比較することにより、誤差閾値を最適化反復にわたって減少させている。
方法200は、第1色の第1近似又は第1色の第2近似を、例えば、レンダリングエンジン750内において、第1色として保存するステップを含みうる(図7を参照されたい)。例えば、方法200は、モンテカルロレンダリングシステム内において使用することができる。
例えば、図7は、スチール画像及び/又は画像のビデオシーケンスの形態において画像を生成するべく、使用されうる例示用の視覚コンテンツ生成システム700を示している。視覚コンテンツ生成システム700は、ライブアクションシーン、コンピュータ生成されたシーン、又はこれらの組合せの画像を生成しうるであろう。実際的なシステムにおいて、ユーザーには、適宜、高レベル又は低レベルにおいて、その画像内に進入するものを規定することを許容するツールが提供されている。例えば、ユーザーは、アニメーションアーティストであってもよく、且つ、いずれもが望ましいストーリーを話すように、又は望ましい画像を生成するように、サウンドステージ上においてライブを実行している2人の人間の俳優の間のやり取りをキャプチャするべく、且つ、人間の俳優のうちの1人を、置換された人間の俳優の運動及び癖を真似るように振る舞う、コンピュータ生成された擬人的非人間によって置換するべく、且つ、次いで、第3のコンピュータ生成されたキャラクタ及びコンピュータ生成された背景シーン要素を追加するべく、視覚コンテンツ生成システム700を使用しうるであろう。
視覚コンテンツ生成システム700によって出力されるスチール画像は、それぞれが2次元画像アレイ内の位置を有するピクセルと関連するピクセル色値の2次元アレイなどの、ピクセルアレイとして、コンピュータメモリ内において表されていてもよく、この場合に、それぞれは、2次元画像アレイ内において位置を有するピクセルと関連付けられている。ピクセル色値は、(例えば、RGBフォーマットにおける)赤色、緑色、及び青色などの、3つ以上の(又は、これよりも少ない数の)色値/ピクセルによって表されうるであろう。そのようなピクセル色値の2次元アレイの次元は、1920ピクセルの列×1280ピクセルの行などの、好ましい且つ/又は標準的な表示方式に対応しうるであろう。画像は、圧縮されたフォーマットにおいて保存されていてもよく、或いは、そうでなくてもよいが、いずれにしろ、望ましい画像は、ピクセル色値の2次元アレイとして表すことができる。別の変形において、画像は、3次元提示のための立体画像のペアによって表されており、且つ、その他の変形において、画像出力のいくつか又はすべては、2次元画像のみの代わりに、3次元画像を表しうるであろう。
保存されたビデオシーケンスは、上述のスチール画像などの複数の画像を含みうるが、複数の画像のそれぞれの画像が、タイミングシーケンス内において場所を有し、且つ、保存されたビデオシーケンスが、それぞれの画像が順番に表示されるように構成されている場合には、表示は、タイミングシーケンスによって通知された時点において、運動する且つ/又は変化する画像として現れるものを提示する。1つの表現において、複数の画像のそれぞれの画像は、ビデオシーケンスが再生を開始する際から規定されたフレームが表示される時点まで経過することになる時間量に対応する、規定されたフレーム数を有するビデオフレームである。フレームレートは、単位時間当たりに表示される保存されたビデオシーケンスのフレーム数を記述するべく使用されうるであろう。例示用のビデオシーケンスは、24フレーム/秒(24FPS)、50FPS、140FPS、又はその他のフレームレートを含みうるであろう。いくつかの実施形態において、フレームは、表示のためにインターレースされるか又はその他の方式で提示されるが、説明のわかりやすさを目的として、いくつかの例において、ビデオフレームは、1つの規定された表示時間を有するものと仮定されており、且つ、その他の変形も可能であることを理解されたい。
ビデオシーケンスを生成する1つの方法は、ライブアクションシーン、即ち、物理的に発生し、且つ、ビデオカメラによって記録されうる、イベント、を記録するべくビデオカメラを単純に使用する、というものである。記録されているイベントは、(2人の人間の俳優が互いに話しているのを観察するなどの)解釈されるべき観察されるイベントであることが可能であり、且つ/又は、(俳優が、実際には、類似のビルドを有するにも拘わらず、その他のものよりも大きく出現するようにステージを移動する俳優、或いは、シーンが等身大のオブジェクトを含んでいるものとして解釈されるように、その他のミニチュアオブジェクトと共に、ミニチュアオブジェクトを使用している、などの)クレバーカメラ動作に起因して異なる方式で解釈されるイベントを含みうる。
読み聞かせ又はその他の目的用のビデオシーケンスの生成は、しばしば、話す樹木、擬人化オブジェクト、宇宙戦争、及びこれらに類似したものなどの、生身の俳優によっては生成されえない、シーンを必要としている。このようなビデオシーケンスは、ライブシーンから光をキャプチャするのではなく、演算的に生成されうるであろう。いくつかの例において、ビデオシーケンスの全体は、コンピュータアニメーション化されたフィーチャフィルムのケースにおけると同様に、演算的に生成されうるであろう。いくつかのビデオシーケンスにおいては、恐らくは、2つのもののいくつかの慎重なマージを伴って、なんらかのコンピュータ生成された画像及びなんらかのライブアクションを有することが望ましい。
コンピュータ生成された画像は、それぞれのフレーム内においてそれぞれのピクセルごとにそれぞれの色値を手動的に規定することにより、生成可能でありうる一方で、これは、実際的なものとなるには、あまりに面倒過ぎる可能性が高い。この結果、クリエータは、相対的に高いレベルにおいて画像を規定するべく、様々なツールを使用している。一例として、アーティストは、オブジェクト及び/又は照明の3次元座標系のみならず、カメラの視点、及びカメラのビュープレーン、などの位置をシーン空間内において規定しうるであろう。そのすべてを入力として取得することにより、レンダリングエンジンは、フレームのそれぞれ内においてピクセル値のそれぞれを演算することができる。別の例において、アーティストは、それぞれのフレーム内においてその関節接続されたオブジェクトを表すそれぞれのピクセルの色を規定するのではなく、なんらかの規定されたテクスチャを有する関節接続されたオブジェクトの位置及び運動を規定している。
特定の例において、レンダリングエンジンは、光線追跡を実行しており、この場合に、ピクセル色値は、そのピクセルに対応するカメラのビュープレーンの地点又は部分を通じてカメラのビューポイントからシーン空間内において追跡された光線に沿って位置するオブジェクトを演算することにより、判定されている。例えば、カメラのビュープレーンは、生成対象の最終的な画像のピクセルに対応するグリッドに分割された、シーン空間内において位置を有する矩形として表されてもよく、且つ、シーン空間内のカメラのビューポイントによって定義された光線と、そのグリッド内の所与のピクセルと、が、まず、中実の、不透明な、青色オブジェクトと交差している場合には、その所与のピクセルには、青色が割り当てられる。当然のことながら、最近のコンピュータ生成された画像の場合には、ピクセル色の判定と、これによる画像の生成と、は、照明の課題、反射、補間、及びその他の考慮事項が存在していることから、更に複雑なものになりうる。
図7に示されているように、ライブアクションキャプチャシステム702は、ステージ704上において演じられているライブシーンをキャプチャしている。ライブアクションキャプチャシステム702は、本明細書において、更に詳細に記述されているが、コンピュータ処理能力、画像処理能力、1つ又は複数のプロセッサ、1つ又は複数のプロセッサによって実行可能であるプログラム命令を保存するプログラムコードストレージ、のみならず、ユーザー入力装置及びユーザー出力装置を含にうるであろうが、そのすべてが示されているわけではない。
特定のライブアクションキャプチャシステム内において、カメラ706(1)及び706(2)は、シーンをキャプチャしているが、いくつかのシステムにおいては、ライブシーンから情報をキャプチャする1つ又は複数のその他のセンサ708(例えば、赤外線カメラ、赤外線センサ、モーションキャプチャ(「mo-cap」検出器、など)が存在しうるであろう。ステージ704上には、人間の俳優、動物の俳優、無生物オブジェクト、背景オブジェクト、並びに、恐らくは、容易にコンピュータ生成された画像とオーバーレイされるような方式によってライブシーンレコーディング内においてキャプチャされるように設計されたグリーンスクリーン710などのオブジェクトが存在しうるであろう。又、ステージ704は、キャプチャの際のオブジェクトの場所を判定するべく、キャプチャ後において使用されうる基準712(1)~(3)などの、基準として機能するオブジェクトを含むこともできよう。ライブアクションシーンは、オーバーヘッドライト714などの1つ又は複数のライトによって照明されうるであろう。
ライブアクションシーンのキャプチャの際に、或いは、これに後続して、ライブアクションキャプチャシステム702は、ライブアクションフッテージをライブアクションフッテージストレージ720に出力しうるであろう。ライブアクション処理システム722は、そのライブアクションフッテージに関するデータを生成するべく、且つ、そのデータをライブアクションメタデータストレージ724に保存するべく、ライブアクションフッテージを処理しうるであろう。ライブアクション処理システム722は、コンピュータ処理能力、画像処理能力、1つ又は複数のプロセッサ、1つ又は複数のプロセッサによって実行可能であるプログラム命令を保存するプログラムコードストレージのみならず、ユーザー入力装置及びユーザー出力装置を含みうるであろうが、そのすべてが示されているわけではない。ライブアクション処理システム722は、1つ又は複数のフレーム内においてオブジェクトの境界を判定するべく、ライブアクションシーン内におけるオブジェクトの場所、カメラがなんらかのアクションとの関係にあった場所、運動するオブジェクトと基準の間の距離、などを判定するべく、ライブアクションフッテージを処理しうるであろう。要素が検知又は検出された場合に、メタデータは、コンピュータ生成された、且つ、ライブアクションフッテージ上においてオーバーレイされた、オブジェクト上においてコンピュータ生成された照明をマッチングさせるべく事後処理において有用でありうることから、オーバーヘッドライト714の、場所、色、及び強度を含みうるであろう。ライブアクション処理システム722は、ライブアクションフッテージの受取り及び入力の際に、ライブアクションメタデータを生成及び出力するべく、恐らくは、既定のプログラム命令に基づいて、自律的に動作しうるであろう。ライブアクションフッテージは、カメラによってキャプチャされたデータ、のみならず、その他のセンサからのデータであってよい。
アニメーション生成システム730は、視覚コンテンツ生成システム700の別の部分である。アニメーション生成システム730は、コンピュータ処理能力、画像処理能力、1つ又は複数のプロセッサ、1つ又は複数のプロセッサによって実行可能であるプログラム命令を保存するプログラムコードストレージ、のみならず、ユーザー入力装置及びユーザー出力装置を含みうるであろうが、これらのすべてが示されているわけではない。アニメーション生成システム730は、恐らくは、プログラム的に且つ/又は対話的に、生成対象の画像の詳細を規定するべく、アニメーションアーティスト、マネージャ、及びその他の者によって使用されうるであろう。ユーザー入力、並びに、データストア732として通知された、データベース又はその他のデータソースからのデータ、から、アニメーション生成システム730は、オブジェクトを表すデータ(例えば、馬、人間、ボール、ティーポット、雲、光源、テクスチャ、など)を生成し、且つ、オブジェクトストレージ734に出力してもよく、シーンを表すデータを生成し、且つ、シーン記述ストレージ736に出力してもよく、且つ/又は、アニメーションシーケンスを表すデータを生成し、且つ、アニメーションシーケンスストレージ738に出力しうるであろう。
シーンデータは、オブジェクト及びその他の視覚的要素の場所、そのパラメータの値、照明、カメラの場所、カメラのビュープレーン、並びに、レンダリングエンジン750がCGI画像をレンダリングするべく使用しうるその他の詳細を通知しうるであろう。例えば、シーンデータは、画像をレンダリングするためのカメラの視点及びビュープレースの場所と共に、2次元空間、3次元空間、又はその他の次元の空間(2.5次元空間、3.25空間、疑似3D空間、など)内において規定された、いくつかの関節接続されたキャラクタの場所、背景オブジェクト、照明、などを含みうるであろう。例えば、シーンデータは、いずれも、カメラの視点の上方及び背後である明るい点光源によって照明された、ビデオの右半分内においては、赤色の、ファジーな、話す犬が、且つ、ビデオの左半分内においては、静止した樹木が、存在することを要すると通知しうるであろう。いくつかのケースにおいて、カメラの視点は、明示的なものではなく、観察錐台から判定することができる。矩形の外観にレンダリングされるべき画像のケースにおいて、錐台は、先端が断ち切られたピラミッドとなろう。レンダリングされる画像用のその他の形状も、可能であり、且つ、カメラのビュープレーンは、異なる形状の場合に異なりうるであろう。
アニメーション生成システム730は、ユーザーが、アニメーションシーケンスにおいて、シーンの記述、オブジェクトの詳細、などを読み取る、且つ、これらを編集する、ことを許容する、且つ、恐らくは、既存のデータを更新又は置換するべくこれらをストレージに返す、対話型となりうるであろう。一例として、操作者は、オブジェクトストレージからのオブジェクトをベーキングプロセッサに読み込んでもよく、ベーキングプロセッサが、これらのオブジェクトを相対的に単純な形態に変換することになり、且つ、これらを新しい又は異なるオブジェクトとしてオブジェクトストレージ734に戻すことになろう。例えば、操作者は、数十の規定されたパラメータを有するオブジェクト(運動可能なジョイント、色の選択肢、テクスチャ、など)を読み込んでもよく、これらのパラメータ用のいくつかの値を選択してもよく、且つ、次いで、これらのパラメータ用のいまや固定された値を有する、単純化されたオブジェクトである、ベーキングされたオブジェクトを保存しうるであろう。
シーンのそれぞれの詳細の規定を要するのではなく、オブジェクトの提示を駆動するべく、データストア732からのデータを使用しうるであろう。例えば、アーティストが、地球の表面の上方を通過している宇宙船のアニメーションを生成している場合に、海岸線を手動で描画又は規定する代わりに、アーティストは、アニメーション生成システム730が、地球の海岸線の座標を含むファイル内のデータストア732からデータを読み取る、且つ、その海岸線データを使用してシーンの背景要素を生成するべきであると規定しうるであろう。
アニメーションシーケンスのデータは、制御可能な属性を有するオブジェクトの制御ポイントの時系列データの形態を有しうるであろう。例えば、オブジェクトは、通常の人間の運動に類似した方式によって運動可能である、四肢及び関節を有するヒューマノイドキャラクタであってもよいであろう。アーティストは、「左手が、場所(X1,Y1,Z1)」から(X2,Y2,Z2)まで、時間T1からT2にかけて運動する」などのように、ハイレベルにおいて、相対的にローレベルにおいて(例えば、「肘関節を2.5度/フレームで運動させる」)、或いは、場合によっては、非常にハイレベルにおいて(例えば、「キャラクタAは、このシーンに付与されている物理学の法則と一貫性を有する状態において、地点P1から地点P2まで、規定された経路に沿って、運動するべきである」)、アニメーションシーケンスを規定することができる。
アニメーション化されたシーン内のアニメーションシーケンスは、ライブアクションシーンにおいて発生するものによって規定されうるであろう。アニメーションドライバ生成器744は、ライブアクションシーンにおける生身の俳優の身体部分の運動及び位置を表すデータなどの、ライブアクションメタデータを読み込むことができると共に、CGIオブジェクトをアニメーション化する際に使用されるアニメーションシーケンスストレージ738内において保存される、対応するアニメーションパラメータを生成することができよう。これは、人間の俳優のライブアクションシーンが、mo-cap基準(例えば、俳優の衣服の外側の高度なコントラストを有するマーカー、俳優の皮膚上の高度な可視性を有するペイント、など)を着用している間に、キャプチャされ、且つ、これらの基準の運動がライブアクション処理システム722によって判定される、場合に、有用でありうる。アニメーションドライバ生成器744は、この運動データを関節接続されたCGIキャラクタの関節が時間に伴って運動するべき方式の仕様に変換しうるであろう。
レンダリングエンジン750は、アニメーションのシーケンス、シーンの記述、及びオブジェクトの詳細、のみならず、解像度の選択及びレンダリングパラメータの組などのレンダリングエンジンの制御入力を読み込むことができる。速度は、ムービーメーカーが特定の相互作用又は方向を試験するために、明瞭性よりも重要でありうる一方で、明瞭性は、ムービーメーカーが、フィーチャフィルムの最終的なプリントが配布されるべく使用されることになるデータを生成するために、速度よりも重要でありうることから、解像度の選択は、操作者がレンダリングの速度と詳細の明瞭性の間のトレードオフを制御するために有用でありうるであろう。レンダリングエンジン750は、コンピュータ処理能力、画像処理能力、1つ又は複数のプロセッサ、1つ又は複数のプロセッサによって実行可能なプログラム命令を保存するプログラムコードストレージ、のみならず、ユーザー入力装置及びユーザー出力装置を含みうるであろうが、これらのすべてが示されているわけではない。
又、視覚コンテンツ生成システム700は、ライブフッテージをアニメーション化されたコンテンツとマージするマージシステム760を含むこともできる。ライブフッテージは、ライブアクションフッテージを得るべくライブアクションフッテージストレージ720から読み取ることにより、(恐らくは、緑色画面710が、ライブアクションシーンの一部であったという事実によって支援される)その背景からライブアクションシーン内のオブジェクトをセグメント化するキャプチャされた画像内における推定されたセグメント化などの詳細を取得するべく、ライブアクションメタデータストレージ724から読み取ることにより、且つ、レンダリングエンジン750からCGI画像を取得することにより、取得及び入力されうるであろう。
又、マージシステム760は、マージ/組合せストレージ762用の規則セットからデータを読み取ることもできよう。規則セット内の規則の非常に単純な例は、「ライブフッテージから2次元ピクセルアレイを含むフル画像を取得する、レンダリングエンジン750から2次元ピクセルアレイを含むフル画像を取得する、且つ、ライブフッテージ内の対応するピクセルが特定の緑色の色である際には、それぞれのピクセルが、レンダリングエンジン750からの対応するピクセルである画像を出力し、さもなければ、ライブフッテージ内の対応するピクセルからピクセル値を出力する」というものでありうるであろう。
マージシステム760は、コンピュータ処理能力、画像処理能力、1つ又は複数のプロセッサ、1つ又は複数のプロセッサによって実行可能であるプログラム命令を保存するプログラムコードストレージ、のみならず、ユーザー入力装置及びユーザー出力装置を含みうるであろうが、これらのすべてが示されているわけではない。マージシステム760は、プログラミング命令をフォローすることにより、自律的に動作してもよく、或いは、操作者がマージプロセスを制御しうるユーザーインターフェイス又はプログラムインターフェイスを有することもできよう。いくつかの実施形態において、操作者は、マージプロセスにおいて使用するべきパラメータ値を規定することが可能であり、且つ/又は、セグメント化されたオブジェクトの境界の変更、不完全性をスムージングするためのブラーの挿入、或いは、その他の効果の追加などの、マージシステム760の出力に対して実施されるべき特定のトウィークを規定しうるであろう。その入力に基づいて、マージシステム760は、静的な画像ストレージ770内に保存されるように、画像を出力することが可能であり、且つ/又は、アニメーション化された/組み合わせられたビデオストレージ772内に保存されるように、ビデオの形態における画像のシーケンスを出力することができる。
従って、記述されているように、視覚コンテンツ生成システム700は、更に詳細にそのいくつかが本明細書において記述されている、様々なコンポーネント及びツールを使用することにより、ライブアクションをコンピュータ生成されたアニメーションと組み合わせたビデオを生成するべく、使用することができる。視覚コンテンツ生成システム700は、適切な設定を伴って、このような組合せについて有用でありうる一方で、これは、ライブアクションフッテージの全体を出力するべく、或いは、CGIシーケンスの全体を出力するべく、使用することができる。又、コードは、例えば、ネットワーク上において送信される信号の形態におけるものなどの、送信媒体などの、一時的なコンピュータ可読媒体により、提供及び/又は担持することもできる。
一実施形態によれば、本明細書において記述されている技法は、ファームウェア、メモリ、その他のストレージ、又はこれらの組合せ内のプログラム命令に従って技法を実行するようにプログラミングされた1つ又は複数の演算システムにより、実装されている。技法を実装するべく、布線及び/又はプログラムロジックを内蔵する、デスクトップコンピュータシステム、携帯型コンピュータシステム、ハンドヘルド装置、ネットワーキング装置、又は任意のその他の装置などの、特殊目的演算装置を使用することができる。
例えば、図8は、上述の技法(図1及び図2を参照されたい)及び/又は視覚コンテンツ生成システム700(図7を参照されたい)が実装されうるコンピュータシステム800を示すブロック図である。コンピュータシステム800は、情報を伝達するためのバス802及びその他の通信メカニズムと、情報を処理するための、バス802と結合されたプロセッサ804と、を含む。プロセッサ804は、例えば、汎用マイクロプロセッサであってよい。
又、コンピュータシステム800は、プロセッサ804によって実行される情報及び命令を保存するべくバス802に結合されたランダムアクセスメモリ(RAM)又はその他のダイナミックストレージ装置などの、メインメモリ806をも含む。又、メインメモリ806は、プロセッサ804によって実行されるべき命令の実行の際に、一時的な変数又はその他の中間的情報を保存するべく使用することもできる。このような命令は、プロセッサ804からアクセス可能な一時的はないストレージ媒体内において保存された際に、命令において規定されている動作を実行するようにカスタマイズされた特殊目的機械にコンピュータシステム800を変換している。
コンピュータシステム800は、プロセッサ804用の静的情報及び命令を保存するべく、バス802に結合された読み出し専用メモリ(ROM)808又はその他のスタティックストレージ装置を更に含む。磁気ディスク又は光ディスクなどのストレージ装置810が、提供されており、且つ、情報及び命令を保存するべく、バス802に結合されている。
コンピュータシステム800は、情報をコンピュータユーザーに表示するべく、バス802を介して、コンピュータモニタなどのディスプレイ812に結合することができる。英数及びその他のキーを含む、入力装置814が、情報及びコマンド選択をプロセッサ804に伝達するべく、バス802に結合されている。別のタイプのユーザー入力装置は、方向情報及びコマンド選択をプロセッサ804に伝達するための、且つ、ディスプレイ812上におけるカーソルの運動を制御するための、マウス、トラックボール、又はカーソル方向キーなどのカーソル制御816である。この入力装置は、通常、装置がプレーン内において位置を規定することを許容する、第1軸(例えば、x)及び第2軸(例えば、y)という、2つの軸において、2つの自由度を有する。
コンピュータシステム800は、コンピュータシステムとの組合せにおいて、コンピュータシステム800が特殊目的機械となるようにする又はプログラニングする、カスタマイズされた布線ロジック、1つ又は複数のASIC又はFPGA、ファームウェア及び/又はプログラムロジックを使用することにより、本明細書において記述されている技法を実装することができる。一実施形態によれば、本明細書における技法は、プロセッサ804がメインメモリ806内に収容されている1つ又は複数の命令の1つ又は複数のシーケンスを実行することに応答して、コンピュータシステム800によって実装されている。このような命令は、ストレージ装置810などの別のストレージ媒体からメインメモリ806内に読み取ることができる。メインメモリ806内において収容されている命令のシーケンスの実行により、プロセッサ804は、本明細書において記述されているプロセスステップを実行している。代替実施形態において、ソフトウェア命令の代わりに、或いは、これとの組み合わせにおいて、布線回路を使用することができる。
本明細書において記述されている「ストレージ媒体」という用語は、機械が特定の方式で動作するようにする、データ及び/又は命令を保存する、任意の一時的ではない媒体を意味している。このようなストレージ媒体は、不揮発性媒体及び/又は揮発性媒体を含むことができる。不揮発性媒体は、例えば、ストレージ装置810などの光又は磁気ディスクを含む。揮発性媒体は、メインメモリ806などのダイナミックメモリを含む。ストレージ媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁気テープ、又は任意のその他の磁気データストレージ媒体、CD-ROM、任意のその他の光学データストレージ媒体、孔のパターンを有する任意の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、NVRAM、任意のその他のメモリチップ又はカードリッジを含む。
ストレージ媒体は、送信媒体とは別個であるが、これとの関連において使用することができる。送信媒体は、ストレージ媒体の間の情報の転送に参画している。例えば、送信媒体は、同軸ケーブル、銅ワイヤ、光ファイバを含み、これには、バス802を含むワイヤが含まれる。又、送信媒体は、高周波及び赤外線データ通信の際に生成されるものなどの、音又は光の波の形態を有することもできる。
様々な形態の媒体は、実行のための、プロセッサ804への1つ又は複数の命令の1つ又は複数のシーケンスの搬送に関与しうる。例えば、命令は、まず、リモートコンピュータの磁気ディスク又は半導体ドライブ上において担持することができる。リモートコンピュータは、命令をそのダイナミックメモリ内に読み込むことが可能であり、且つ、命令をネットワーク接続上において送信することができる。コンピュータシステム800にローカル接続されたモデム又はネットワークインターフェイスは、データを受け取ることができる。バス802は、データをメインメモリ806に搬送し、これから、プロセッサ804は、命令を取得及び実行している。メインメモリ806によって受け取られた命令は、任意選択により、プロセッサ804による実行の前又は後に、ストレージ装置810上において保存することができる。
又、コンピュータシステム800は、バス802に結合された通信インターフェイス818をも含む。通信インターフェイス818は、ローカルネットワーク822に接続されたネットワークリンク820に結合する双方向データ通信を提供している。例えば、通信インターフェイス818は、統合サービスデジタルネットワーク(ISDN:Integrated Services Digital Network)カード、ケーブルモデム、衛星モデム、或いは、データ通信接続を対応するタイプの電話回線に提供するためのモデムであってよい。又、無線リンクも実装することができる。任意のこのような実装形態において、通信インターフェイス818は、様々なタイプの情報を表すデジタルデータストリームを担持する電気、電磁、又は光信号を送受信している。
ネットワークリンク820は、通常、その他のデータ装置に対する1つ又は複数のネットワークを通じたデータ通信を提供している。例えば、ネットワークリンク820は、ホストコンピュータ824への、或いは、インターネットサービスプロバイダ(ISP)826によって稼働しているデータ機器への、ローカルネットワーク822を通じた接続を提供することができる。そして、ISP826は、現在「インターネット」828と一般的に呼称されている、ワールドワイドパケットデータ通信ネットワークを通じて、データ通信サービスを提供している。ローカルネットワーク822及びインターネット828は、いずれも、デジタルデータストリームを搬送する、電気、電磁、又は光信号の両方を使用している。コンピュータシステム800との間においてデジタルデータを搬送している、様々なネットワークを通じた信号、或いは、ネットワークリンク820上の、且つ、通信インターフェイス818を通じた、信号は、送信媒体の例示用の形態である。
コンピュータシステム800は、1つ又は複数のネットワーク、ネットワークリンク820、及び通信インターフェイス818を通じて、プログラムコードを含むメッセージを送信することが可能であり、且つ、データを受け取ることができる。インターネットの例において、サーバー830は、インターネット828、ISP826、ローカルネットワーク822、及び通信インターフェイス818を通じて、要求されたアプリケーションプログラムのコードを送信しうるであろう。受け取られたコードは、それが受け取られるのに伴って、プロセッサ804によって実行されてもよく、且つ/又は、後の実行のために、ストレージ装置810又はその他の不揮発性ストレージ内において保存されてもよい。
本明細書において記述されているプロセスの動作は、そうではない旨が本明細書において記述されていない限り、或いは、その他の方式で文脈と明らかに矛盾していない限り、任意の適切な順序において実行することができる。本明細書において記述されているプロセス(又は、その変形及び/又は組合せ)は、実行可能な命令によって構成された1つ又は複数のコンピュータシステムの制御下において実行されてもよく、且つ、1つ又は複数のプロセッサ上において、ハードウェアにより、或いは、これらの組合せにより、集合的に稼働するコード(例えば、実行可能命令、1つ又は複数のコンピュータプログラム、或いは、1つ又は複数のアプリケーション)として実装されてもよい。コードは、例えば、1つ又は複数のプロセッサによって実行可能な複数の命令を有するコンピュータプログラムの形態において、コンピュータ可読ストレージ媒体上において保存されてもよい。コンピュータ可読ストレージ媒体は、一時的ではないものであってもよい。
「A、B、及びCの少なくとも1つ(at least one of A, B, and C)」、又は「A、B、及びCの少なくとも1つ(at least one of A, B, and C)」という形態のフレーズなどの、接続的な言語は、そうではない旨が具体的に記述されていない限り、或いは、その他の方式で文脈と明示的に矛盾していない限り、品目、用語、などが、A又はB又はCのいずれかでありうる、或いは、A及びB及びCの組の任意の空ではないサブセットでありうる、ことを提示するべく一般的に使用されるものとして、その他の方式で、文脈と共に、理解されたい。例えば、3つの構成要素を有する組の例示を目的とした例において、「A、B、及びCの少なくとも1つ」及び「A、B、及びCの少なくとも1つ」という接続的な言語は、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}という組のうちの任意のものを意味している。従って、このような接続的な言語は、一般に、特定の実施形態が、Aの少なくとも1つ、Bの少なくとも1つ、及びCの少なくとも1つが、それぞれ存在することを必要としていることを意味することを意図したものではない。
本明細書において提供されている、任意の且つすべての例、或いは、例示用の言語(例えば、「などの」)、の使用は、本発明の実施形態を更に良好に解明するべく意図されたものであるに過ぎず、且つ、そうではない旨が特許請求されていない限り、本発明の範囲に対して制限を課すものではない。本明細書における言語は、本発明の実施に必須である任意の特許請求されてはいない要素を通知するものとして解釈してはならない。
以上の説明においては、実装形態ごとに変化しうる多数の特定の詳細を参照し、本発明の実施形態について説明している。従って、説明及び図面は、制限の意味ではなく、例示を目的とした意味において、検討することを要する。本発明の範囲の単独及び排他的なインジケータと、本発明の範囲となるべく本出願人によって意図されているものと、は、任意の後続の補正を含む、本出願から発行される請求項が発行する特定の形態における、このような請求項の組の文字通りの且つ均等な範囲である。
本開示を参照した後に、当業者は、更なる実施形態を想起しうる。その他の実施形態においても、以上において開示されている本発明の組合せ又はサブ組合せは、有利に実施することができる。コンポーネントの例示用の構成は、例示を目的として示されており、且つ、組合せ、追加、再構成、及びこれらに類似したものが、本発明の代替実施形態において想定されている、ことを理解されたい。従って、本発明は、例示用の実施形態との関係において記述されているが、当業者は、多数の変更が可能であることを認識することになろう。
例えば、本明細書において記述されているプロセスは、ハードウェアコンポーネント、ソフトウェアコンポーネント、及び/又はこれらの任意の組合せを使用して実装することができる。従って、説明及び図面は、制限の意味ではなく、例示の意味において検討することを要する。但し、請求項に記述されている本発明の相対的に広い精神及び範囲を逸脱することなしに、様々な変更及び変形が、これらに対して実施されてもよく、且つ、本発明は、すべての変更及び均等物を添付の請求項の範囲内においてカバーするべく意図されている、ことが明らかであろう。
本明細書において引用されている刊行物、特許出願、及び特許を含むすべての参照文献は、これにより、それぞれの参照文献が、引用によって内蔵されるべく、個別に、且つ、具体的に、通知されているかのように、且つ、そのすべてが本明細書において記述されているかのように、同一の程度に、引用により、本明細書に内蔵されている。