(57)【特許請求の範囲】
【請求項１】
３Ｄモデルの複数のピクセルをグルーピングするスーパーピクセルに対して少なくとも１つの光源に関わるライトシェーディング演算を第１解像度で行って前記第１解像度のスーパーピクセルライトシェーディング結果を取得する第１シェーダーと、
前記３Ｄモデルの前記複数のピクセルそれぞれの表面シェーディング演算を前記第１解像度と異なる第２解像度で行って前記第２解像度の表面シェーディング結果を取得する第２シェーダーと、
前記スーパーピクセルを前記複数のピクセルに分割し、前記スーパーピクセルライトシェーディング結果を前記複数のピクセルそれぞれに割り当て、前記複数のピクセルそれぞれに対するライトシェーディング結果を取得することで前記スーパーピクセルをアップスケールし、前記複数のピクセルそれぞれのライトシェーディング結果を前記複数のピクセルそれぞれの前記表面シェーディング結果とを組み合わせて前記複数のピクセルそれぞれのレンダリング結果を生成するプロセッサと、
を含む、映像処理装置。
【請求項２】
前記第１解像度は前記第２解像度よりも低い、請求項１に記載の映像処理装置。
【請求項３】
前記第１解像度は前記第２解像度の半分である、請求項２に記載の映像処理装置。
【請求項４】
前記第１シェーダーは、
静的シーンよりも動的シーンで前記第１解像度をさらに低くする、又は
暗いシーンよりも明るいシーンで前記第１解像度をさらに低くする、又は
前記レンダリング結果に反映される間接光の数が多いほど前記第１解像度をさらに低くする、
請求項１に記載の映像処理装置。
【請求項５】
３Ｄモデルに対して少なくとも１つの光源に関わるライトシェーディング演算を複数のフレームのうち第１フレームに行って前記第１フレームのライトシェーディング結果を取得する第１シェーダーと、
前記３Ｄモデルの表面シェーディング演算を前記複数のフレームそれぞれで行って前記複数のフレームそれぞれの表面シェーディング結果を取得する第２シェーダーと、
前記複数のフレームで残りのフレームに前記第１フレームのライトシェーディング結果を割り当て、前記複数のフレームそれぞれのライトシェーディング結果を前記複数のフレームそれぞれの前記表面シェーディング結果を組み合わせて前記複数のフレームそれぞれのレンダリング結果を生成するプロセッサと、
を含む、映像処理装置。
【請求項６】
前記第１シェーダーは前記ライトシェーディング演算を第１解像度で行い、前記第２シェーダーは前記表面シェーディング演算を第２解像度で行い、前記第１解像度と前記第２解像度は互いに異なる、請求項５に記載の映像処理装置。
【請求項７】
前記第１解像度は前記第２解像度よりも低い、請求項６に記載の映像処理装置。
【請求項８】
複数のフレームそれぞれに含まれた複数のピクセルのいずれか１つのピクセルに対してライトシェーディング演算を行って、前記複数のピクセルのうち残りのピクセルに対しては以前フレームで算出されたライトシェーディング演算をリサイクルすることによって、３Ｄモデルに対して少なくとも１つの光源に関わるライトシェーディング演算を行って複数のフレームそれぞれのライトシェーディング結果を取得する第１シェーダーと、
前記３Ｄモデルの表面シェーディング演算を前記複数のフレームそれぞれで行って、前記複数のフレームそれぞれの表面シェーディング結果を取得する第２シェーダーと、
前記複数のフレームそれぞれの前記ライトシェーディング結果及び、前記複数のフレームそれぞれの表面シェーディング結果とを組み合わせて前記複数のフレームそれぞれのレンダリング結果を生成するプロセッサと、
を含む、映像処理装置。
【請求項９】
前記第１シェーダーは前記ライトシェーディング演算を第１解像度で行い、前記第２シェーダーは前記表面シェーディング演算を第２解像度で行い、前記第１解像度は前記第２解像度よりも低い、請求項８に記載の映像処理装置。
【請求項１０】
前記第１シェーダーは、グルーピングされる複数のピクセルに対して互いに異なるフレームで交番にライトシェーディング演算を行う、請求項８に記載の映像処理装置。
【請求項１１】
前記複数のピクセルのうち第１ピクセルに対するライトシェーディング演算が行われる第２フレームで、前記第１シェーダーは前記第１ピクセルを除いた他のピクセルに対して前記第２フレーム以前のライトシェーディング結果をリサイクルする、請求項１０に記載の映像処理装置。
【請求項１２】
３Ｄモデルのライトシェーディング演算を行うが、グルーピングされる複数のピクセルに対して、互いに異なるフレームで前記複数のピクセルに対してライトシェーディング演算を交番に行い、第１フレームでライトシェーディングが実行されないピクセルは、前記第１フレームの以前フレームのライトシェーディング演算結果をリサイクルする第１シェーダーと、
毎フレームで前記３Ｄモデルの表面シェーディング演算を行う第２シェーダーと、
前記ライトシェーディング演算の結果と前記表面シェーディング演算の結果とを組み合わせてレンダリング結果を生成するプロセッサと、
を含む、映像処理装置。
【請求項１３】
少なくとも１つのプロセッサを含む映像処理装置の映像処理方法において、前記方法は、
３Ｄモデルの複数のピクセルをグルーピングするスーパーピクセルに対して少なくとも１つの光源に関わるライトシェーディング演算を第１解像度で行って、前記第１解像度のスーパーピクセルライトシェーディング結果を取得するライトシェーディングステップと、
前記３Ｄモデルの前記複数のピクセルそれぞれの表面シェーディング演算を前記第１解像度よりも大きい第２解像度で行って、前記第２解像度の表面シェーディング結果を取得する表面シェーディングステップと、
前記スーパーピクセルを前記複数のピクセルに分割し、前記スーパーピクセルライトシェーディング結果を前記複数のピクセルそれぞれに割り当て、前記複数のピクセルそれぞれに対するライトシェーディング結果を取得することで前記スーパーピクセルをアップスケールし、前記複数のピクセルそれぞれのライトシェーディング結果を前記複数のピクセルそれぞれの表面シェーディング結果とを組み合わせて前記複数のピクセルそれぞれのレンダリング結果を生成する映像生成ステップと、
を含む、映像処理方法。
【請求項１４】
前記第１解像度のライトシェーディング結果を前記第２解像度と同一に調整する解像度調整ステップをさらに含み、
前記映像生成ステップは、前記第２解像度と同一に調整されたライトシェーディング結果を前記表面シェーディング結果と組み合わせて前記レンダリング結果を生成する、請求項１３に記載の映像処理方法。
【請求項１５】
レンダリングされるシーンの特性を分析するステップと、
前記分析されたシーンの特性に応じて前記第１解像度を適応的に調整する解像度決定ステップと、
をさらに含む、請求項１３に記載の映像処理方法。
【請求項１６】
前記シーンの特性はフレーム間の差であり、
前記解像度決定ステップは、分析された前記フレーム間の差を参照して静的シーンよりも動的シーンで前記第１解像度をさらに低くする、又は
前記シーンの特性はシーンの明るさであり、前記解像度決定ステップは、前記シーンの明るさを参照して暗いシーンよりも明るいシーンで前記第１解像度をさらに低くする、又は
前記シーンの特性は前記レンダリングに反映される間接光の数であり、前記解像度決定ステップは、前記レンダリングに反映される間接光の数が多いほど前記第１解像度をさらに低くする、
請求項１５に記載の映像処理方法。
【請求項１７】
ハードウェアであるコンピュータ装置が映像処理方法を行うようにするプログラムを収録したコンピュータで読み出し可能な記録媒体において、前記方法は、
３Ｄモデルの複数のピクセルをグルーピングするスーパーピクセルに対して少なくとも１つの光源に関わるライトシェーディング演算を第１解像度で行って、前記第１解像度のスーパーピクセルライトシェーディング結果を取得するライトシェーディングステップと、
前記３Ｄモデルの前記複数のピクセルそれぞれの表面シェーディング演算を前記第１解像度と異なる第２解像度で行って、前記第２解像度の表面シェーディング結果を取得する表面シェーディングステップと、
前記スーパーピクセルを前記複数のピクセルに分割し、前記スーパーピクセルライトシェーディング結果を前記複数のピクセルそれぞれに割り当て、前記複数のピクセルそれぞれに対するライトシェーディング結果を取得することで前記スーパーピクセルをアップスケールし、前記複数のピクセルそれぞれのライトシェーディング結果を前記複数のピクセルそれぞれの表面シェーディング結果とを組み合わせて前記複数のピクセルそれぞれのレンダリング結果を映像生成するステップと、
を含む、コンピュータ読み出し可能記録媒体。
【請求項１８】
３Ｄモデルに対して少なくとも１つの光源に関わるライトシェーディング演算を行って第１特徴値を有するライトシェーディング結果を取得する第１シェーダーと、
前記３Ｄモデルに対して少なくとも表面シェーディング演算を行って第２特徴値を有する表面シェーディング結果を取得する第２シェーダーであって、前記第２特徴値は、前記第１特徴値と同じ種類の値であるか値の大きさが相異する、第２シェーダーと、
前記ライトシェーディング結果と前記表面シェーディング結果とを組み合わせてレンダリング結果を生成するプロセッサと、
を含み、
前記第１特徴値は第１解像度であり、前記第２特徴値は第２解像度であり、前記第２解像度は前記第１解像度よりも大きい値である、又は、
前記第１特徴値は第１フレームレートであり、前記第２特徴値は第２フレームレートであり、前記第２フレームレートは前記第１フレームレートよりも大きい値である、又は
前記第１特徴値は第１ピクセルアップデート率であり、前記第２特徴値は第２ピクセルアップデート率であり、前記第２ピクセルアップデート率は前記第１ピクセルアップデート率よりも大きい値である、映像処理装置。
【請求項１９】
前記第１シェーダーが前記ライトシェーディング演算を行うために必要なコンピュータ演算量のサイズは、前記第２シェーダーが前記表面シェーディング演算を行うために必要なコンピュータ演算量のサイズよりも小さい、請求項１８に記載の映像処理装置。
【請求項２０】
前記第１シェーダーは毎Ｎ個のフレームごとに１回前記ライトシェーディング演算を行い、前記Ｎ個のフレーム内で前記ライトシェーディング演算が行われる先行フレームのライトシェーディング結果をライトシェーディング演算が実行されない後続フレームで再び使用し、Ｎは２以上の自然数であり、
前記第２シェーダーは、前記Ｎ個のフレームの各フレームで前記表面シェーディング演算を行う、請求項１８に記載の映像処理装置。
【請求項２１】
前記第１シェーダーは、各フレーム内のピクセルをそれぞれＮ個のピクセルを有するグループにグルーピングし、Ｎ個のフレームごとに１回前記ライトシェーディング演算を行い、前記Ｎ個のフレームの間に前記ライトシェーディング演算が行われる先行フレームのライトシェーディング結果をライトシェーディング演算が実行されない後続フレームで再び使用し、Ｎは２以上の自然数であり、
前記第２シェーダーは、前記Ｎ個のフレームの各フレームで各ピクセルに対して前記表面シェーディング演算を行う、請求項１８に記載の映像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
映像処理分野に関し、より詳細には、全域照明又は間接照明の効果を表現するレンダリング分野に関する。
【背景技術】
【０００２】
３Ｄゲーム、バーチャルリアリティアニメーション、映画などの様々な分野で３Ｄモデルに対するリアルタイムレンダリングに対する関心が高まっている。全域照明技術を用いて３Ｄシーンをレンダリングする場合、イメージ空間内で光の回折、反射などの間接照明の効果を代表する仮想点光源（ｖｉｒｔｕａｌ  ｐｏｉｎｔ  ｌｉｇｈｔ：ＶＰＬ）がサンプリングされる。このようなＶＰＬは、場合に応じて複数がサンプリングされるが、これはレンダリング過程における可視性チェック及びシェーディングに多くの演算量が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、映像処理装置を提供することにある。
【課題を解決するための手段】
【０００４】
一側面によると、３Ｄモデルに対して少なくとも１つの光源に関わるライトシェーディング演算を第１解像度で行って前記第１解像度のライトシェーディング結果を取得する第１シェーダーと、前記３Ｄモデルの表面シェーディング演算を前記第１解像度と異なる第２解像度で行って前記第２解像度の表面シェーディング結果を取得する第２シェーダーと、前記ライトシェーディング結果と前記表面シェーディング結果とを組み合わせてレンダリング結果を生成するプロセッサと、を含む、映像処理装置が提供される。
【発明の効果】
【０００５】
本発明によると、映像処理装置を提供することができる。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係る映像処理装置を示すブロック図である。
【図２】レンダリングされる３Ｄモデル及び光を示す。
【図３】一実施形態に係るレンダリングを示す。
【図４Ａ】一実施形態により表面シェーディング解像度とライトシェーディング解像度を相異にする過程を説明するための図である。
【図４Ｂ】一実施形態により表面シェーディング解像度とライトシェーディング解像度を相異にする過程を説明するための図である。
【図４Ｃ】一実施形態により表面シェーディング解像度とライトシェーディング解像度を相異にする過程を説明するための図である。
【図５】表面シェーディング結果とライトシェーディング結果とを組み合わせてレンダリングする過程を説明するための図である。
【図６】他の一実施形態に係る映像処理装置を示すブロック図である。
【図７】実施形態に係るライトシェーディングを処理する過程を説明するための図である。
【図８Ａ】実施形態に係るライトシェーディングを処理する過程を説明するための図である。
【図８Ｂ】実施形態に係るライトシェーディングを処理する過程を説明するための図である。
【図９】一実施形態に係る映像処理方法を示すフローチャートである。
【図１０】一実施形態に係る映像処理方法を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、一部実施形態を添付する図面を参照しながら詳細に説明する。しかし、このような実施形態によって制限されたり限定されることはない。各図面に提示された同一の参照符号は同一の部材を示す。
【０００８】
以下の説明で用いられる用語は、関連する技術分野において一般的で普遍的なものに選択されたが、技術の発達及び／又は変化、慣例、技術者の選好などに応じて他の用語が存在し得る。したがって、以下の説明で用いられる用語は技術的な思想を限定するものとして理解してはならず、実施形態を説明するための例示的な用語として理解すべきである。
【０００９】
また、特定の場合に出願人が任意に選定した用語も存在し、この場合に該当する説明部分で詳細な意味を記載する。したがって、以下の説明で用いられる用語は単純な用語の名称ではない、その用語が有する意味と明細書の全般にわたった内容に基づいて理解されなければならない。
【００１０】
図１は、一実施形態に係る映像処理装置を示すブロック図である。装置１００は、３Ｄモデルに対する全域照明レンダリングを行う。装置１００は、ＧＰＵ（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の少なくとも一部によって実現され得る。装置１００は、第１シェーダー１１０及び第２シェーダー１２０を含む。第１シェーダー１１０は、３Ｄモデルに対して直接光及び間接光のカラー値シェーディングを算出するライトシェーディングを行う。ライトシェーディングは、直接又は間接光に対して、カラー、明るさ、方向などを考慮してシーンに対する可視性をチェックしてレンダリングする過程である。そして、第２シェーダー１２０は、表面シェーディングを行う。表面シェーディングは、オブジェクト表面の表面法線、テクスチャカラーなどを考慮してシーンをレンダリングする過程である。このようなライトシェーディング結果と表面シェーディング結果とをプロセッサ１３０が組み合わせることによって、例えば、マルチフライすることによりシーンに対するレンダリング結果映像が生成され得る。
【００１１】
一実施形態によると、第１シェーダー１１０と第２シェーダー１２０は互いに異なる解像度でシェーディングを行う。既存のＧＰＵでライト・表面シェーディングが行われる場合、ライトシェーディングと表面シェーディングが同一の解像度に実行された。この場合、ＧＰＵが出力する映像の解像度に基づいて遅延レンダリング（ｄｅｆｅｒｒｅｄ  ｒｅｎｄｅｒｉｎｇ）のような場合、シェーダーに与えられる入力解像度及びシェーダー処理解像度が全て同一に設定され得る。ライトシェーディングは、数多い間接光、例えば、ＶＰＬに対する可視性テストなどの演算を必要とするため演算量が極めて大きい。光は空間でスムーズかつ拡散しやすいよう影響を与え、これによってライトシェーディング解像度が多少減少しても全体レンダリングの品質に大きい影響を与えない特性がある。実施形態に係る装置１００は、ライトシェーディング解像度と表面シェーディング解像度を互いに相異に設定し、それぞれの最適な解像度に応じて処理することによって効率よく演算リソースを使用することができる。このようにすることで、ライトシェーディング解像度と表面シェーディング解像度を全て全体解像度で進行することに比べて必要な演算リソースを小さくできる。
【００１２】
例示的に、第１シェーダー１１０はライトシェーディングを第１解像度で行う。そして、第２シェーダー１２０は表面シェーディングを第２解像度で行う。第２解像度は、ＧＰＵの出力解像度と同一であってもよい。もちろん、出力解像度と相異に設定されてもよい。前記のように、ライトシェーディングに関わる第１解像度は、表面シェーディングに関わる第２解像度よりも低いこともある。例えば、第１解像度は、第２解像度の半分の解像度又は４分の１の解像度であってもよい。プロセッサ１３０は、低い解像度で生成されるライトシェーディング結果を表面解像度に適するようにアップスケールして結果映像をレンダリングすることができる。
【００１３】
一方、一実施形態によると、第１解像度と第２解像度の比率は時間の流れによって変わり得る。例えば、シーン特性に応じて第１解像度と第２解像度の比率が適応的に変更され得る。例えば、前記第１シェーダー１１０は、静的シーンよりも動的シーンで前記第１解像度をさらに低くしてもよい。動的シーンにおいては、速い演算処理がレンダリング品質に比べてより重要なためである。そして、第１シェーダー１１０は、レンダリングされるシーンの全体的な明るさを参照して暗いシーンよりも明るいシーンでライトシェーディング解像度をさらに低くすることもできる。人の目が明るさの差異を認識する敏感度は明るい環境よりも暗い環境において高いためである。また、前記レンダリングに反映される間接光の数が多いほど、前記第１解像度をさらに低くすることもできる。間接光、例えば、ＶＰＬが多ければ、ライトシェーディング演算のために求められる演算量は大きいものの、多くのＶＰＬに対してフル解像度のライトシェーディングすることは過剰な演算になりかねないためである。したがって、ＶＰＬが多くサンプリングされたフレームシーンでは、ライトシェーディング解像度を低くすることによって演算のオーバーヘッドを減少することができる。
【００１４】
図２は、レンダリングされる３Ｄモデル及び光を示す。オブジェクト２１０及びオブジェクト２２０が図示されている。レンダリングされる視点２３０から３Ｄモデルを観測したシーンをスクリーンスペースとも表す。実施形態によって、このスクリーンスペースを複数のタイルに分割してタイルベース遅延レンダリング（Ｔｉｌｅ−Ｂａｓｅｄ  Ｄｅｆｅｒｒｅｄ  Ｒｅｎｄｅｒｉｎｇ：ＴＢＤＲ）が行われてもよい。このようなタイルベース処理は、並列処理を通じたＧＰＵの高速化に有利である。サンプリングされたＶＰＬ２０１、２１２、２２２が示されている。ＶＰＬは、直接光２００の視点で３Ｄモデルをレンダリングし、レンダリングの結果に基づきサンプルされたものである。直接光２００の視点で可視性のある部分２２１にはＶＰＬが隙間のないよう（密に）サンプルされ、そうではない部分２１１にはＶＰＬが僅かにサンプルされている。場合に応じて、このようなＶＰＬは数千〜数万個がサンプルされ得るが、これを考慮してライトシェーディングする場合に演算量は極めて大きくなる。したがって、実施形態では、ライトシェーディングの解像度を低くして処理することができる。図３以下を参照して様々な実施形態を説明する。
【００１５】
図３は、一実施形態に係るレンダリングを示す。表面シェーダーからシェーディングされた結果３１０は相対的に高い解像度を有する。例えば、この解像度は１９２０×１０８０のＦＨＤ（Ｆｕｌｌ  ＨＤ）であり得る。ライトシェーダーからシェーディングされた結果３２０はこれより低い解像度を有し得る。例示的に、この解像度は９６０×５４０のｑＨＤ（ｑｕａｒｔｅｒ  ＨＤ）であってもよい。光はスムーズに且つ広く拡散されるため、ライトシェーディング結果３２０の解像度は低いものの、エイリアスによるアーティファクトの発生による結果、品質への影響は相対的に小さいため、アップスケールに有利である。
【００１６】
一方、上記にて説明したように、ライトシェーダーがライトシェーディングを行う第１解像度は適応的に変更され得る。例えば、シーン特性が分析され得る。前記シーン特性は、例えば、３Ｄモデルの複雑度、３Ｄモデルのオブジェクトのテクスチャ特性、フレーム間のオブジェクト動き、レンダリングするカメラ視点の変化速度、シーンの照度、サンプルされたＶＰＬの個数など、様々なものを含み得る。精密な色彩表現よりも素早い画面転換の特性がより重要な動的シーンでは素早い演算処理のためにライトシェーディング解像度をさらに低くすることが可能である。そして、人の目は明るいところより暗いところで明るさ差異によるアーティファクトをはやく発見するため、ライトシェーダーは暗いシーンよりも明るいシーンでライトシェーディング解像度をさらに低くすることができる。また、このような処理において、直接光の数やサンプルされたＶＰＬの数が考慮されることもある。例示的に、サンプルされてシーンで考慮しなければならないＶＰＬが多ければ、ライトシェーディング演算のために必要な演算量が大きいことからライトシェーディング解像度をさらに低くし得る。
【００１７】
一実施形態によると、レンダリングはタイルベース遅延レンダリングであり得るため、この場合に上記のような解像度の調整はタイル又はグリッドごとに行われてもよい。表面シェーディング解像度とライトシェーディング解像度の比率が全てのタイルに同一に適用されてもよく、タイルに応じて前記特性を分析して個別タイルに適する比率が適用されてもよい。このような過程によって並列処理ＧＰＵのセル割り当ての効率がより向上される。
【００１８】
ライトシェーダーにより低い解像度で提供された結果３２０は、表面シェーダー結果３１０と同じ解像度の映像３２１にアップスケールされ得る。このようなアップスケール過程は、すでに紹介した多くの方法に基づいて行われ、補間を用いてアンチエイリアスなどの処理が行われてもよい。このようにアップスケールされた映像３２１と表面シェーディング結果３１０を組み合わせる又は乗算することによって、全域照明レンダリングの結果映像３３０を生成することができる。
【００１９】
図４Ａ〜４Ｃは、一実施形態により表面シェーディング解像度とライトシェーディング解像度を相異にする過程を説明するための図である。図４Ａにおいて、表面シェーディングが行われている。ピクセル４１０、４１１、４１２、４１３それぞれに対してオブジェクト表面の表面法線、テクスチャカラーなどを考慮したカラー値が決定される。このように処理された結果４０１は、レンダリング映像を作るためにライトシェーディング結果と組合わせることができる。図４Ｂに示すように、ライトシェーディング過程が行われている。ピクセル４２０は、アップスケールされる場合、図４Ａに示すピクセル４１０、４１１、４１２、４１３に対応する。ピクセル４２０は、図４Ａに示すピクセル４１０、４１１、４１２、４１３に対応するスーパーピクセルとして理解され得る。考慮されなければならないＶＰＬそれぞれに対して、ＶＰＬカラー、明るさ、方向などを参照したシェーディング演算が行われる。
【００２０】
一方、図４Ｂにおいて、ライトシェーディング結果４０２をアップスケールした結果４０３が図４Ｃに図示されている。図４Ａに示すピクセル４１０、４１１、４１２、４１３それぞれに対応するよう解像度が同一であり、この過程でピクセル４３０、４３１、４３２、４３３はそれぞれ図４Ｂに示すピクセル４２０値と同じ値を有し得る。もちろん、このような過程でエイリアスなどを防止するために適切な後処理が行われてもよい。
【００２１】
図５は、表面シェーディング結果とライトシェーディング結果とを組み合わせてレンダリングする過程を説明するための図である。プロセッサは、表面シェーダーのシェーディング結果（例えば、図４Ａに示す４０１）とライトシェーダーのシェーディング結果とをアップスケールした結果（例えば、図４Ｃに示す４０３）を組み合わせて結果映像５００を生成することができる。ピクセルごとに演算することによって、ピクセル５１０値は図４Ａに示すピクセル４１０と図４Ｃに示すピクセル４３０を組み合わせて又は乗算して生成することができる。類似の方法によって他のピクセル５１１、５１２、５１３に対してカラー値も算出できる。
【００２２】
図６は、他の一実施形態に係る映像処理装置を示すブロック図である。装置６００は、第１シェーダー６１０、バッファ６２０、プロセッサ６３０、及び第２シェーダー６４０を含む。第１シェーダー６１０は、３Ｄモデルに対してライトシェーディングを行う。そして、第２シェーダー６４０は表面シェーディングを行う。図１を参照した実施形態では、ライトシェーディングの解像度が表面シェーディング解像度よりも低く設定された。これは空間的な相関性を用いて過剰なライトシェーディング演算を減らすことに貢献した。本実施形態では、このような実施形態と共に及び／又はこれを代替して時間的相関性を用いて過剰なライトシェーディング演算を減らすことができる。
【００２３】
例示的な応用として、ライトシェーディングを行う第１シェーダー６１０は、全てのフレームでライトシェーディングを行う代わりに、一部フレームのライトシェーディングを省略してもよい。言い換えれば、第１シェーダー６１０は、毎Ｎフレームごとに１回ずつのみライトシェーディングしてもよい（Ｎは２以上の自然数）。このように省略したフレームでは、隣接する異なるフレームのライトシェーディングの結果をリサイクルできる。例えば、第２シェーダー６４０が予め指定されたＦＰＳ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）で表面シェーディングする一方、第１シェーダー６１０は、前記ＦＰＳよりも低い比率でライトシェーディングを行ってもよい。フレームインデックスが奇数であるフレームに対してライトシェーディングを行い、フレームインデックスが偶数であるフレームではこれをリサイクルするなどの処理が可能である。すなわち、ライトシェーディングが表面シェーディングに比べて低いＦＰＳで行われるが、どれ程低いＦＰＳであるかの比率は異なる。例えば、動的シーンで素早い演算処理のためにライトシェーディングよりもＦＰＳを多いに低くすることが可能である。そして、シーンが明るいほどライトシェーディングＦＰＳを多いに低くすることも可能である。さらに、直接光の数やサンプルされたＶＰＬの数が多い区間においてライトシェーディングのＦＰＳをさらに低くすることも可能である。このような処理のために、バッファ６２０はライトシェーディング演算結果を一定の区間バッファリングする。繰り返し説明するが、このようにライトシェーディングのＦＰＳを調整することが、図１を参照して説明した解像度調整の実施形態と両立不可能ではない。したがって、ＦＰＳも調整しながら解像度も適応的に調整することによって最適の演算効率を取得することができる。
【００２４】
一方、一実施形態によると、ライトシェーディングのＦＰＳを表面シェーディングのＦＰＳと相異にすると同時に、または、これに代ってライトシェーディング結果に対して以前フレーム結果をリサイクルすることができる。ここでのリサイクルは、例えば、バッファ６２０に格納された所定の個数の以前フレームのライトシェーディング結果を用いて現在のフレームのライトシェーディングを調整し得る。例えば、以前数個のフレームのライトシェーディング結果を平均したり、加重平均したり、以前フレームの結果を補間したり、外挿するなどの方式に基づいて現在のフレームライトシェーディングの結果を取得することができる。このような処理によって、ＶＰＬのサンプリング変化によるちらつき（フリッカ）が著しく減少する。そして、前記加重平均においては、時間インデックスが近いフレームであるほどより大きいウェイトを付与し、より相関性の高い結果を取得することができる。そして、このようなライトシェーディング結果と表面シェーディング結果とをプロセッサ６３０が組み合わせることによってシーンに対するレンダリング結果映像が生成され、このような過程を図７及び図８を参照して説明する。
【００２５】
図７〜図８Ｂは、実施形態に係るライトシェーディングを処理する過程を説明するための図である。図７には、現在のフレームであるＴフレームに先行する２つのフレームのライトシェーディング結果がバッファリングされることが図示されている。（Ｔ−２）フレームのライトシェーディング結果７１２は、２フレームだけ遅延されて合算器に入力される。そして、（Ｔ−１）フレームのライトシェーディング結果７１１は１フレームだけ遅延されて合算器に入力される。そして、結果７１１と結果７１２が現在のフレーム（Ｔ）フレームのライトシェーディング結果７１０と共に加重平均されることによって、現在のフレームに対して使用する補正されたライトシェーディング結果７２０が生成される。これにより、プロセッサは、現在のフレームの表面シェーディング結果７３０と前記補正されたライトシェーディング結果７２０とを組み合わせて結果映像７４０を取得できる。ライトシェーディング結果７１０、７１１、７１２の解像度は、表面シェーディング結果７３０の解像度と同一であり得る。しかし、一部の実施形態では、ライトシェーディング結果７１０、７１１、７１２の解像度は表面シェーディング結果７３０の解像度と異なることがある。補正されたライトシェーディング結果７２０は、加重平均後にアップスケールしたものであってもよい。
【００２６】
一方、図８Ａを参照すると、ライトシェーディングが表面シェーディングに比べて低いＦＰＳで行われる実施形態が提示されている。図示された例では、ライトシェーディングが２つのフレームごとに実行されている。言い換えれば、ライトシェーディングのＦＰＳが表面シェーディングのＦＰＳの半分である。これにより、（Ｔ−３）フレームのライトシェーディング結果８１３は、（Ｔ−２）フレームのライトシェーディング結果８１２としてリサイクルされる。同様に、（Ｔ−１）フレームのライトシェーディング結果８１１は、現在のフレームである（Ｔ）フレームのライトシェーディング結果８１０としてリサイクルされる。このような過程は、（Ｔ−１）フレームのライトシェーディング結果８１１を１フレームだけ遅延させて現在のフレームである（Ｔ）フレームの表面シェーディング結果８２０と組み合わせることで実現可能であり、このような組合せによって結果映像８３０が生成される。ライトシェーディング結果８１１、８１３の解像度が表面シェーディング結果８２０の解像度と同一であり得る。しかし、他の実施形態では、ライトシェーディング結果８１１及び８１３の解像度は、表面シェーディングの結果８２０の解像度と異なってもよい。これにより、プロセッサによる乗算処理に前もってライトシェーディング結果に対するアップスケールが行われてもよい。
【００２７】
一方、図示された例として、ライトシェーディングＦＰＳと表面シェーディングＦＰＳの比率が１：２であったが、この比率はいくらでも相異に設定されてもよい。また、１回設定して持続されることなく、シーンの特性に応じて相異になり得る。上述したように、静的シーンよりも動的シーンで、暗いシーンよりも明るいシーンでライトシェーディング比率がさらに小さくなる。さらに、サンプルされたＶＰＬ数に応じて、ＦＰＳの比率が変わり得ることは上述した通りである。
【００２８】
一実施形態によると、このようなフレームごとのライトシェーディングは、ピクセルをグルーピングしてグループ内のピクセルに対して互いに異なるフレームで順次アップデートする方式で行うこともできる。図８Ｂを参照すると、複数のフレームに対するライトシェーディング対象ピクセルが図示されている。この実施形態で、隣接する４個のピクセルｂ０、ｂ１、ｂ２及びｂ３が１つのグループにグルーピングされている。そして、（Ｔ−３）フレームではｂ０ピクセルに対してライトシェーディング演算が行われる。そして、ｂ０ピクセルのライトシェーディング演算結果は、グループ内のピクセル数に対応する後続フレームでリサイクルできる。例えば、（Ｔ−３）フレームでは、実際にｂ０ピクセルに対してライトシェーディング演算され、（Ｔ−２）フレーム、（Ｔ−１）フレーム、及び（Ｔ）フレームではこの演算結果がリサイクルされる。そして、ｂ０ピクセルに対するライトシェーディング演算は、（Ｔ＋１）フレームで再び行われることができる。このような方法で、（Ｔ−２）フレームではｂ１ピクセルに対してライトシェーディング演算が行われ、この値が（Ｔ−１）フレーム、（Ｔ）フレーム、及び（Ｔ＋１）フレームでリサイクルされてもよい。（Ｔ−１）フレームではｂ２ピクセルに対してライトシェーディング演算が行われ、この値が（Ｔ）フレーム、（Ｔ＋１）フレーム、及び（Ｔ＋２）フレームでリサイクルされる。さらに、（Ｔ）フレームではｂ３ピクセルに対してライトシェーディング演算が行われ、この値は（Ｔ＋１）フレーム、（Ｔ＋２）フレーム、及び（Ｔ＋３）フレームでリサイクルされる。これにより、（Ｔ＋４）フレームでｂ３ピクセルに対する新しいライトシェーディング演算は行われる。
【００２９】
図９及び図１０は、一実施形態に係る映像処理方法を示すフローチャートである。図９を参照すると、ステップＳ９１０において、ライトシェーダーは、第１解像度で３Ｄモデルに対するライトシェーディングを行う。このライトシェーディングで多くの直接光及び／又はＶＰＬに対してカラー、明るさ、方向などを考慮した可視性をチェックするなど、演算量の大きい処理が行われる。ところが、一実施形態によると、この段階でライトシェーディング解像度を低くしたり、及び／又はシェーディングＦＰＳを低くして演算量を減らす。ステップＳ９２０において、ライトシェーダーは、第２解像度で３Ｄモデルに対する表面シェーディングを行う。例示的に、ライトシェーディング解像度の第１解像度は、表面シェーディング解像度の第２解像度の半分の解像度、又は４分の１の解像度になり得る。このように第１解像度と第２解像度が異なる実施形態では、ステップＳ９３０において解像度調整が行われる。解像度差については図３を参照し、解像度の調整については図４Ｂ及び図４Ｃを参照して上述した通りである。
【００３０】
そして、プロセッサは、ステップＳ９２０で生成された表面シェーディング結果と解像度調整されたライトシェーディング結果とを組み合わせて結果映像を生成する（Ｓ９４０）。以上の過程は、図１〜図５を参照して前述した通りである。
【００３１】
図１０を参照すると、ライトシェーディングの解像度及び／又はシェーディングＦＰＳ調整にシーンの特性が反映される実施形態が提示される。ステップＳ１０１０において、シーンの特性が分析される。シーンの特性分析に加えてＶＰＬサンプル現況などの他の要因も分析できる。例えば、シーンが動的シーンであるか静的シーンであるか、シーンの全体的な明るさが暗いか明るいか、サンプルされたＶＰＬはどれ程多いかなどがシーン特性として分析され得る。ステップＳ１０２０において、ライトシェーディングを行う第１解像度が決定される。上述したシーン特性について、例示的に、しかしながら限定されないように、静的シーンより動的シーンで第１解像度がさらに低い値に決定され得る。また、暗いシーンより明るいシーンで第１解像度がさらに低い値に決定され得る。さらに、上述したように、ＶＰＬが多くサンプリングされたフレームのシーンで第１解像度がさらに低い値に決定され得る。
【００３２】
このような解像度調整に加えて、又はこれに代って、ライトシェーディングＦＰＳ調整ステップ（図示せず）が行われてもよい。例えば、ステップＳ１０１０で分析されたシーン特性に応じて、静的シーンより動的シーンで、暗いシーンより明るいシーンでライトシェーディングＦＰＳがさらに小さい値に調整される。そして、サンプルされたＶＰＬ数が多いほど、ライトシェーディングＦＰＳがさらに小さい値に決定され得る。詳細な内容は、図１〜図８を参照して説明した通りである。
【００３３】
以上で説明された実施形態は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータで読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち１つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
【００３４】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００３５】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【００３６】
１００  映像処理装置
１１０  第１シェーダー
１２０  第２シェーダー
１３０  プロセッサ
２００  直接光
２０１、２１２、２２２  ＶＰＬ
２１０、２２０  オブジェクト
４１０、４１１、４１２、４１３、４２０、５１０、５１１、５１２、５１３  ピクセル
６００  映像処理装置
６１０  第１シェーダー
６２０  バッファ
６３０  プロセッサ
６４０  第２シェーダー
【図１】
0006639877.tif 000002
【図２】
0006639877.tif 000003
【図３】
0006639877.tif 000004
【図４Ａ】
0006639877.tif 000005
【図４Ｂ】
0006639877.tif 000006
【図４Ｃ】
0006639877.tif 000007
【図５】
0006639877.tif 000008
【図６】
0006639877.tif 000009
【図７】
0006639877.tif 000010
【図８Ａ】
0006639877.tif 000011
【図８Ｂ】
0006639877.tif 000012
【図９】
0006639877.tif 000013
【図１０】
0006639877.tif 000014