(57)【特許請求の範囲】
【請求項１】
両眼視差を有する第１映像及び第２映像に対するレンダリングを行う方法において、
前記第１映像に対するレンダリングを行い、前記第１映像のピクセルに関する深度情報を生成する段階と、
前記第２映像の再投影を行う段階であり、該再投影は、前記第１映像のピクセルに対応する前記第２映像の第１ピクセル、および、前記第１映像のピクセルに対応しない前記第２映像の第２ピクセルを特定する段階を含み、該特定は、前記第１映像のピクセルと関連付けされた前記深度情報に基づいている、段階と、
前記第２映像のピクセルグループを特定する段階であり、該ピクセルグループは、前記第２ピクセルおよび前記第１ピクセルのうち選択されたピクセルを含んでおり、前記第１ピクセルの選択されたピクセルそれぞれは、前記第２ピクセルにおけるピクセルと隣接している、段階と、
前記第２映像に対してレンダリングを行う段階であり、該レンダリングは、前記第２映像のピクセルグループにおけるピクセルのラスタ化を行う段階、および、前記レンダリングされた前記第１映像のピクセルの色情報と深度情報を再使用する段階と、
を含む、方法。
【請求項２】
前記再投影を行う段階は、
前記第２映像の第１ピクセルと、前記第２映像の第２ピクセルとを区分するオクルージョンマップを生成する段階を含み、
前記第２映像に対してレンダリングを行う段階は、
前記オクルージョンマップに基づいて、前記第２映像の第２ピクセルのラスタ化を行う段階を含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記再投影を行う段階は、
前記第２映像の第１ピクセルそれぞれに第１値を設定し、かつ、前記第２映像の第２ピクセルそれぞれに第２値を設定して、オクルージョンマップを生成する段階を含み、
前記第２映像に対してレンダリングを行う段階は、
前記第２値を有する前記オクルージョンマップのピクセルについて前記第２映像のピクセルのラスタ化を行う段階を含む、
ことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記再投影を行う段階は、
前記第２映像の第２ピクセルおよび前記第２映像の第１ピクセルのいくつかを含む、第１ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成する段階を含み、
前記第２映像に対してレンダリングを行う段階は、
前記拡張されたオクルージョンマップに基づいて、前記第１ピクセルグループのラスタ化を行う段階を含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記再投影を行う段階は、
前記第２映像の第２ピクセルそれぞれの深度値が、前記第２映像の深度バッファを生成するための深度テスト（Ｚ−test）を満足する所定値であるように決定する段階を含み、
前記レンダリングを行う段階は、
前記第２映像の前記深度バッファを利用して、前記第２映像の第１ピクセル及び第２ピクセルについて前記深度テストを行う段階と、
前記第２映像に対するレンダリングの最中に、前記深度テストを満足する前記第２映像のピクセルだけにピクセルシェーディングを行う段階と、を含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記再投影を行う段階は、
前記第２映像の第１ピクセルそれぞれのカラー値を前記第１映像のピクセルに対応して決定されたカラー値であるように決定し、かつ、
前記第１映像に対するレンダリング結果として生成される前記第１映像のカラー情報を基に、前記第２映像の第２それぞれのカラー値を所定値であるように決定し、前記第２映像のカラーバッファを生成する段階を含み、
前記第２映像に対してレンダリングを行う段階は、
前記第２映像の第２ピクセルそれぞれのカラー値を計算する段階と、
前記所定値に決定された前記第２映像の第２ピクセルそれぞれのカラー値を、前記第２映像の第２ピクセルそれぞれについて前記計算されたカラー値であるように修正し、前記第２映像のカラーバッファを修正する段階と、を含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記第１映像に対するレンダリングを行い、第１映像の深度情報を生成する段階は、
前記第１映像及び前記第２映像に対するドローコマンドを受信する段階と、
前記受信されたドローコマンドに基づいて、前記第１映像に対するレンダリングを行う段階と、を含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記ドローコマンドは、前記第１映像及び前記第２映像それぞれに係わる状態情報を含む、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記第１映像に対するレンダリングを行い、第１映像の深度情報を生成する段階は、
前記第１映像のタイルそれぞれに対するレンダリングを行い、前記タイルそれぞれの深度バッファを生成する段階を含み、
前記再投影を行う段階は、
前記タイルそれぞれの深度バッファを基に、前記タイルそれぞれのピクセルと対応する前記第２映像の第１ピクセルを決定し、再投影を行う段階を含む、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記第１映像及び前記第２映像に対するドローコマンドに基づいて、前記第１映像及び前記第２映像に係わるタイルビニングを行う段階をさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記タイルビニングを行う段階は、
前記ドローコマンドをバッチに分け、前記バッチを複数のグラフィックスパイプラインに割り当てる段階と、
前記バッチのうち第１バッチを、前記複数のグラフィックスパイプラインのうち第１グラフィックスパイプラインに割り当てる場合、前記第１バッチ、及び前記第１バッチと対応する状態情報に基づいて、前記第１映像及び前記第２映像それぞれに係わるタイルビニングを行う段階と、をさらに含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記選択してレンダリングを行う段階は、
前記オクルージョンマップに基づいて、第２映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定する段階と、
前記決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行う段階と、をさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項１３】
両眼視差を有する第１映像及び第２映像に対するレンダリングを行うデバイスにおいて、
前記第１映像に対するレンダリングを行い、前記第１映像のピクセルに関する深度情報を生成するＧＰＵ（graphics  processing  unit）と、
前記第１映像のピクセルに関する深度情報を保存するメモリと、を含み、
前記ＧＰＵは、さらに、
前記第２映像の再投影を行うように構成されており、該再投影は、
前記第１映像のピクセルに対応する前記第２映像の第１ピクセル、および、前記第１映像のピクセルに対応しない前記第２映像の第２ピクセルに対応する前記第２映像の第１ピクセルを特定する段階であり、前記特定は、前記第１映像のピクセルと関連付けされた前記深度情報に基づいている、段階と、
前記第２映像のピクセルグループを特定する段階であり、該ピクセルグループは、前記第２ピクセルおよび前記第１ピクセルのうち選択されたピクセルを含んでおり、前記第１ピクセルの選択されたピクセルそれぞれは、前記第２ピクセルにおけるピクセルと隣接している、段階と、
前記第２映像に対してレンダリングを行う段階であり、該レンダリングは、前記第２映像のピクセルグループにおけるピクセルのラスタ化を行う段階、および、前記レンダリングされた前記第１映像のピクセルの色情報と深度情報を再使用する段階と、
を含む、デバイス。
【請求項１４】
前記ＧＰＵは、
前記第２映像の第１ピクセルと、前記第２映像の第２ピクセルとを区分するオクルージョンマップを生成するシェーダと、
前記オクルージョンマップに基づいて、前記第２映像の第２ピクセルのラスタ化を行うラスタライザと、を含む、
ことを特徴とする請求項１３に記載のデバイス。
【請求項１５】
前記シェーダは、
オクルージョンマップを生成するように構成されており、第１値を設定することにより前記オクルージョンマップにおいて前記第２映像の第１ピクセルそれぞれを示し、かつ、第２値を設定することにより前記第２映像の第２ピクセルそれぞれを示し、
前記ラスタライザは、さらに、
前記第２値を有する前記オクルージョンマップのピクセルについて前記第２映像のピクセルのレンダリングを行うことによって、前記第２映像のピクセルグループにおけるピクセルのラスタ化を行うように構成されている、
ことを特徴とする請求項１４に記載のデバイス。
【請求項１６】
前記シェーダは、
前記第２映像の第２ピクセルおよび前記第２映像の第１ピクセルのいくつかを含む、第１ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成するように構成されており、
前記ラスタライザは、
前記拡張されたオクルージョンマップに基づいて、前記第１ピクセルグループのラスタ化を行うように構成されている、
ことを特徴とする請求項１４に記載のデバイス。
【請求項１７】
前記ＧＰＵは、
前記第２映像の第１ピクセルそれぞれの深度値が、前記第１映像の対応するピクセルの深度値であるように決定し、かつ、
前記第２映像の第２ピクセルそれぞれの深度値が、前記第２映像の深度バッファを生成するための深度テストを満足する所定値であるように決定する、
ように構成されている、シェーダと、
前記第２映像の深度バッファを利用して、前記第２映像の第１ピクセル及び第２ピクセルに係わる前記深度テストを行う、ように構成されているＺ−テスト部と、を含み、
前記ＧＰＵは、
前記第２映像に対するレンダリングの最中に、前記深度テストを満足する前記第２映像のピクセルだけにピクセルシェーディングを行う、
ことを特徴とする請求項１３に記載のデバイス。
【請求項１８】
前記ＧＰＵは、
前記第２映像の第１ピクセルそれぞれのカラー値を前記第１映像のピクセルに対応して決定されたカラー値であるように決定し、かつ、
前記第１映像に対するレンダリング結果として生成される前記第１映像のカラー情報を基に、前記第２映像の第２ピクセルそれぞれのカラー値を所定値であるように決定し、前記第２映像の他の一部ピクセルそれぞれのカラー値は、既設定値であるように決定し、前記第２映像のカラーバッファを生成するシェーダを含み、
前記ＧＰＵは、
前記第２映像の第２ピクセルそれぞれのカラー値を計算し、かつ、
前記所定値に決定された前記第２映像の第２ピクセルそれぞれのカラー値を、前記第２映像の第２ピクセルそれぞれについて前記計算されたカラー値であるように修正し、前記第２映像のカラーバッファを修正する、
ことを特徴とする請求項１３に記載のデバイス。
【請求項１９】
前記ＧＰＵは、
前記第１映像及び前記第２映像に対するドローコマンドを受信し、かつ、
前記受信されたドローコマンドに基づいて、前記第１映像に対するレンダリングを行う、
ことを特徴とする請求項１３に記載のデバイス。
【請求項２０】
前記ドローコマンドは、前記第１映像及び前記第２映像それぞれに係わる状態情報を含む、
ことを特徴とする請求項１９に記載のデバイス。
【請求項２１】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記ＧＰＵは、前記第１映像のタイルそれぞれに対するレンダリングを行い、前記タイルそれぞれの深度バッファを生成し、
前記メモリは、前記タイルそれぞれの深度バッファを保存し、
前記ＧＰＵは、
前記タイルそれぞれの深度バッファを基に、前記タイルそれぞれのピクセルと対応する前記第２映像の第１ピクセルを決定し、再投影を行い、前記再投影に基づいて、前記第２映像の第２ピクセルを選択してレンダリングを行う、
ことを特徴とする請求項１３に記載のデバイス。
【請求項２２】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記ＧＰＵは、前記第１映像及び前記第２映像に対するドローコマンドに基づいて、前記第１映像及び前記第２映像に係わるタイルビニングを行う、
ことを特徴とする請求項１３に記載のデバイス。
【請求項２３】
前記ＧＰＵは、
前記ドローコマンドをバッチに分け、前記バッチを複数のグラフィックスパイプラインに割り当て、かつ、
前記バッチのうち第１バッチを、前記複数のグラフィックスパイプラインのうち第１グラフィックスパイプラインに割り当てる場合、前記第１バッチ、及び前記第１バッチと対応する状態情報に基づいて、前記第１映像及び前記第２映像それぞれに係わるタイルビニングを行う、
ことを特徴とする請求項２２に記載のデバイス。
【請求項２４】
前記第１映像及び前記第２映像に対するレンダリングがタイル基盤レンダリングである場合、
前記ＧＰＵは、
前記オクルージョンマップに基づいて、第２映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定するスケジューラと、
前記決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うグラフィックスパイプラインと、をさらに含む、
ことを特徴とする請求項１４に記載のデバイス。
【請求項２５】
請求項１ないし１２のうちいずれか１項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レンダリング装置が遂行する両眼視差映像に対するレンダリング方法に関する。
【背景技術】
【０００２】
ＧＰＵ（graphics
processing unit）のようなグラフィックプロセッシング装置は、デバイスにおいてグラフィックスデータをレンダリングする役割を行う。一般的に、グラフィックプロセッシング装置は、二次元または三次元の客体に該当するグラフィックスデータを、二次元ピクセル表現に変換し、ディスプレイのためのフレームを生成する。デバイスの種類としては、ＰＣ（personal computer）、ノート型パソコン、ビデオゲーム用コンソールだけではなく、スマートフォン、タブレットデバイス、ウェアラブルデバイスのようなエンベデッド（embedded）デバイスも含まれる。スマートフォン、タブレットデバイス、ウェアラブルデバイスのようなエンベデッドデバイスは、比較的低い演算処理能力と、多くの電力消耗との問題によって、十分なメモリ空間とプロセッシングパワーとを確保しているＰＣ、ノート型パソコン、ビデオゲーム用コンソールのようなワークステーションと同一のグラフィックプロセッシング性能を備え難い。しかし、最近、全世界的にスマートフォンまたはタブレットデバイスのような携帯用デバイスが広く普及されるにつれ、ユーザは、スマートフォンまたはタブレットデバイスを介して、ゲームをプレイしたり、映画、ドラマなどのコンテンツを鑑賞したりする頻度が急激に高くなった。それにより、グラフィックプロセッシング装置の製造会社は、ユーザの需要に足並みを合わせ、エンベデッドデバイスにおいても、グラフィックプロセッシング装置の性能及び処理効率を高めるための多くの研究を進めている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明が解決しようとする課題は、両眼視差映像に対するレンダリングを行う装置及びその方法を提供するところにある。本実施形態が扱う技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されるであろう。
【課題を解決するための手段】
【０００４】
一側面によって、両眼視差（binocular  disparity）を有する第１映像及び第２映像に対するレンダリング（tile  based  rendering）を行う方法は、第１映像に対するレンダリングを行い、第１映像の深度情報を生成する段階と、第１映像の深度情報を基に、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、再投影（reprojection）を行う段階と、再投影に基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行う段階と、を含んでもよい。
【０００５】
また、再投影を行う段階は、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップ（occlusion  map）を生成する段階を含み、選択してレンダリングを行う段階は、オクルージョンマップに基づいて、第２映像の他の一部ピクセルを選択してラスタ化（rasterization）を行う段階を含んでもよい。
【０００６】
また、再投影を行う段階は、第２映像の一部ピクセルそれぞれには第１値を設定し、第２映像の他の一部ピクセルそれぞれには第２値を設定し、オクルージョンマップ（occlusion  map）を生成する段階を含み、選択してレンダリングを行う段階は、第２値が設定された第２映像の他の一部ピクセルを選択してラスタ化を行う段階を含んでもよい。
【０００７】
また、再投影を行う段階は、第２映像の他の一部ピクセルを含む第１ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成する段階を含み、選択してレンダリングを行う段階は、拡張されたオクルージョンマップに基づいて、第１ピクセルグループを選択してラスタ化を行う段階を含んでもよい。
【０００８】
また、再投影を行う段階は、第２映像の一部ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第２映像の他の一部ピクセルそれぞれの深度値は、既設定値であるように決定し、第２映像の深度バッファを生成する段階を含み、選択してレンダリングを行う段階は、第２映像の深度バッファを利用して、第２映像の一部ピクセル、及び他の一部ピクセルに対する深度テスト（Ｚ−test）を行う段階と、深度テストを介して選択された第２映像内の他の一部ピクセルに対するピクセルシェーディング（pixel  shading）を遂行する段階と、を含んでもよい。
【０００９】
また、再投影を行う段階は、第１映像に対するレンダリング結果として生成される第１映像のカラー情報を基に、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、既設定値であるように決定し、第２映像のカラーバッファを生成する段階を含み、選択してレンダリングを行う段階は、第２映像の他の一部ピクセルそれぞれのカラー値を計算する段階と、既設定値に決定された第２映像の他の一部ピクセルそれぞれのカラー値を、計算された前記第２映像の他の一部ピクセルそれぞれのカラー値に修正し、第２映像のカラーバッファを修正する段階と、を含んでもよい。
【００１０】
また、第１映像に対するレンダリングを行い、第１映像の深度情報を生成する段階は、第１映像及び第２映像に対するドローコマンド（draw command）を受信する段階と、受信されたドローコマンドに基づいて、第１映像に対するレンダリングを行う段階と、を含んでもよい。
【００１１】
また、ドローコマンドは、前記第１映像及び第２映像それぞれに係わる状態情報（state  information）を含んでもよい。
【００１２】
また、本方法は、第１映像及び第２映像に対するレンダリングがタイル基盤レンダリング（tile  based  rendering）である場合、第１映像のタイルそれぞれに対するレンダリングを行い、タイルそれぞれの深度バッファを生成する段階と、タイルそれぞれの深度バッファを基に、タイルそれぞれのピクセルと対応する第２映像の一部ピクセルを決定し、再投影を行う段階と、再投影に基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行う段階と、を含んでもよい。
【００１３】
また、本方法は、第１映像及び第２映像に対するレンダリングがタイル基盤レンダリングである場合、第１映像及び第２映像に対するドローコマンドに基づいて、第１映像及び第２映像に係わるタイルビニング（tile  binning）を行う段階をさらに含んでもよい。
【００１４】
また、タイルビニングを行う段階は、ドローコマンドをバッチに分け、バッチを複数のグラフィックスパイプラインに割り当てる段階と、バッチのうち第１バッチを複数のグラフィックスパイプラインのうち第１グラフィックスパイプラインに割り当てる場合、第１バッチ、及び第１バッチと対応する状態情報に基づいて、第１映像及び第２映像それぞれに係わるタイルビニングを行う段階と、を含んでもよい。
【００１５】
また、本方法は、第１映像及び第２映像に対するレンダリングが、タイル基盤レンダリングである場合、選択してレンダリングを行う段階は、オクルージョンマップに基づいて、第２映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定する段階と、決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行う段階と、を含んでもよい。
【００１６】
他の側面によって、両眼視差（binocular  disparity）を有する第１映像及び第２映像に対するレンダリングを行うデバイスにおいて、第１映像に対するレンダリングを行い、第１映像の深度情報を生成するＧＰＵと、第１映像の深度情報を保存するメモリと、を含み、該ＧＰＵは、第１映像の深度情報を基に、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、再投影を行い、再投影に基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。
【００１７】
さらに他の側面によって、両眼視差を有する第１映像及び第２映像に対するレンダリングを行う方法を具現化するためのプログラムが記録されたコンピュータで判読可能な記録媒体が提供される。
【発明の効果】
【００１８】
本発明によれば、両眼視差を有する第１映像及び第２映像において、第１映像のピクセルと対応する第２映像の一部ピクセルについては、再投影を行い、第２映像の他の一部ピクセルについては、選択的レンダリングを行うことにより、第２映像をレンダリングするための演算量を減少させることができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態によるデバイスに係わるブロック図である。
【図２Ａ】ＧＰＵが第１映像のピクセルと対応する第２映像のピクセルを決定する一実施形態を示す図面である。
【図２Ｂ】ＧＰＵが第１映像のピクセルと対応する第２映像のピクセルを決定する一実施形態を示す図面である。
【図３】一実施形態によるデバイスが両眼視差を有する第１映像及び第２映像に対するレンダリングを行う方法を示す図面である。
【図４】一実施形態によるデバイスに係わるブロック図である。
【図５】シェーダがオクルージョンマップを生成する一実施形態を示す図面である。
【図６】ラスタライザがオクルージョンマップに基づいてラスタ化を行う一実施形態を示す図面である。
【図７】ＧＰＵが第２映像のカラーバッファを修正する実施形態を示す図面である。
【図８】シェーダがオクルージョンマップを拡張する実施形態を示す図面である。
【図９】ＧＰＵが、拡張されたオクルージョンマップに基づいて、第２映像のカラーバッファを修正する実施形態を示す図面である。
【図１０】一実施形態による、デバイスが両眼視差を有する第１映像及び第２映像に対するレンダリングを行う方法を示すフローチャートである。
【図１１】一実施形態によるデバイスに係わるブロック図である。
【図１２】シェーダが第２映像の深度バッファを生成する一実施形態を示す図面である。
【図１３】ＧＰＵが第２映像のカラーバッファを修正する実施形態を示す図面である。
【図１４】一実施形態による、デバイスが両眼視差を有する第１映像及び第２映像に対するレンダリングを行う方法を示すフローチャートである。
【図１５】一実施形態によるデバイスに係わるブロック図である。
【図１６】一実施形態によるデバイスに係わるブロック図である。
【図１７】一実施形態によるデバイスに係わるブロック図である。
【図１８】ＧＰＵがタイルビニングを行う実施形態を示す図面である。
【図１９】一実施形態による、デバイスが両眼視差を有する第１映像及び第２映像に対するタイル基盤レンダリングを行う方法を示すフローチャートである。
【図２０】一実施形態による、図１９のＳ１９１０についてさらに詳細に説明するためのフローチャートである。
【図２１】一実施形態によるデバイスのブロック図である。
【発明を実施するための形態】
【００２０】
以下、添付された図面を参照しながら、例示のためだけの実施形態について詳細に説明する。下記実施形態は、技術的思想を具体化するためだけのものであり、権利範囲を制限したり限定したりするものではないことは言うまでもない。詳細な説明及び実施形態から、当該技術分野に属する当業者であるならば、容易に類推することができるものは、権利範囲に属すると解釈される。
【００２１】
本明細書で使用される「構成される」または「含む」というような用語は、明細書上に記載されたさまざまな構成要素、またはさまざまな段階を必ずしもいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれないこともあり、または追加的な構成要素または段階をさらに含んでもよいと解釈されなければならない。
【００２２】
また、本明細書で使用される「第１」または「第２」のように序数を含む用語は、多様な構成要素についての説明に使用することができるが、かような用語は、１つの構成要素を他の構成要素からの区別であったり、説明の便宜であったりする目的で使用され得る。
【００２３】
また、本明細書で言及されるデバイス１００、４００、１１００、１５００、１６００、１７００、２１００は、デスクトップコンピュータ、ノート型パソコン、スマートフォン、ＰＤＡ（personal  digital  assistant）、携帯型メディアプレイヤ、ビデオゲーム用コンソール、テレビセットトップボックス、タブレットデバイス、電子書籍リーダ、ウェアラブルデバイスなどを例として挙げることができるが、それらに制限されるものではない。また、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００は、仮想現実（virtual  reality）を実現するためのデバイスにもなる。一例として、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００は、ＨＭＤ（head  mounted  display）にもなる。すなわち、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００は、コンテンツのディスプレイのためのグラフィックスプロセッシング機能を有する装置であり、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００の範疇には、多様な装置が含まれてもよい。
【００２４】
また、本明細書で言及されるＧＰＵ（graphics  processing  unit）１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０は、グラフィック専用プロセッサであり、三次元イメージ上の三次元客体を、ディスプレイ用の二次元イメージにレンダリングするために具現化されたハードウェアでもある。例えば、ＧＰＵ１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０は、シェーディング、ブレンディング、イルミネーティングのような多様な機能、及びディスプレイされるピクセルに係わるピクセル値を生成するための多様な機能を遂行することもできる。
【００２５】
また、本明細書で言及されるメモリ１２０、４２０、１１２０、１５４０、１６４０、１７４０、２１６０は、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００内で処理される各種データを保存するハードウェアであり、例えば、メモリ１２０、４２０、１１２０、１５４０、１６４０、１７４０、２１６０は、ＧＰＵ１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０で処理されたデータ、及び処理されるデータを保存することができる。また、メモリ１２０、４２０、１１２０、１５４０、１６４０、１７４０、２１６０は、ＧＰＵ１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ１２０、４２０、１１２０、１５４０、１６４０、１７４０、２１６０は、ＤＲＡＭ（dynamic  random  access  memory）・ＳＲＡＭ（static  random  access  memory）のようなＲＡＭ（random  access  memory）、ＲＯＭ（read  only  memory）、ＥＥＰＲＯＭ（electrically  erasable  and  programmable  read  only  memory）、ＣＤ（compact  disc）−ＲＯＭ、ブルーレイ（登録商標（Blu-ray））、他の光学ディスクストレージ、ＨＤＤ（hard  disk  drive）、ＳＳＤ（solid  state  drive）またはフラッシュメモリを含み、さらにデバイス１００、４００、１１００、１５００、１６００、１７００、２１００にアクセスされる外部の他のストレージデバイスを含んでもよい。
【００２６】
また、本明細書で言及されるバス１３０、４３０、１１３０、２１７０は、デバイス１００、４００、１１００、１５００、１６００、１７００、２１００内のハードウェア間でデータを送受信することができるように、ハードウェアを連結させるハードウェアであり、バス１３０、４３０、１１３０、２１７０は、例えば、ＰＣＩ（peripheral  component  interconnect）バス、ＰＣＩ Expressバスのような多様な種類を含んでもよい。
【００２７】
また、本明細書で言及されるＧＰＵ１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０は、両眼視差映像（binocular  disparity  image）に係わるレンダリングを行うことができる。すなわち、ＧＰＵ１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０は、両眼視差映像を示すために、両眼視差を有する第１映像及び第２映像それぞれに対するレンダリングを行うことができる。例えば、第１映像は、左目（left  eye）に係わる映像、第２映像は、右目（right  eye）に係わる映像でもある。以下では、説明の便宜性のために、両眼視差を有する第１映像及び第２映像を、第１映像及び第２映像と縮約して表現する。
【００２８】
以下では、図面を参照し、本発明の実施例について詳細に説明する。
【００２９】
図１は、一実施形態によるデバイス１００に係わるブロック図を示している。
【００３０】
デバイス１００は、一実施形態によって、ＧＰＵ１１０、メモリ１２０及びバス１３０を含んでもよい。図１に図示されたデバイス１００は、本実施形態に係わる構成要素だけが図示されている。従って、図１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【００３１】
ＧＰＵ１１０は、一実施形態によって、第１映像に対するレンダリングを行うことができる。ＧＰＵ１１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度情報を生成することができる。第１映像の深度情報は、第１映像のピクセルそれぞれの深度値を含んでもよい。例えば、第１映像の深度情報は、第１映像の深度バッファ（depth  buffer）にもなる。また、ＧＰＵ１１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラー情報を生成することができる。第１映像のカラー情報は、第１映像の各ピクセルのカラー値を含んでもよい。例えば、第１映像のカラー情報は、第１映像のカラーバッファ（color  buffer）にもなる。
【００３２】
メモリ１２０は、一実施形態によって、第１映像に対するレンダリング結果として生成される第１映像の深度情報を保存することができる。また、一実施形態によって、メモリ１２０は、第１映像に対するレンダリング結果として生成される第１映像のカラー情報を保存することができる。
【００３３】
ＧＰＵ１１０は、一実施形態によって、メモリ１２０に保存された第１映像の深度情報またはカラー情報に基づいて、再投影（reprojection）を行うことができる。再投影は、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、第２映像の一部ピクセルのピクセル値を、第１映像のピクセルのピクセル値であるように決定することを意味する。ピクセル値の例としては、ピクセルが有する深度値またはカラー値にもなる。一実施形態によって、再投影は、第１映像の深度情報及びカラー情報に基づいて、オクルージョンマップ（occlusion  map）、及び第２映像のカラーバッファを生成する内容を含んでもよい。また、再投影は、第１映像の深度情報及びカラー情報に基づいて、第２映像の深度バッファ、及び第２映像のカラーバッファを生成する内容を含んでもよい。
【００３４】
第１映像が第１視点を基準に客体をレンダリングした映像であり、第２映像が第２視点を基準に同一客体をレンダリングした映像である場合、客体の所定部分が第１映像の第１ピクセルで見られ、同一客体の所定部分が第２映像の第２ピクセルで見られるならば、第１映像の第１ピクセルと、第２映像の第２ピクセルは、互いに対応すると見られる。例えば、第１視点が左目であり、第２視点が右目である場合、第１映像の（ｘ，ｙ）座標を有するピクセルと対応する第２映像のピクセルの座標は（ｘ＋ｄ，ｙ）にもなる。すなわち、第１映像のピクセルと対応する第２映像のピクセルは、ｘ軸上で変化量ｄほど差を有することができる。また、第１視点では見える客体が、第２視点では見えないこともあるために、第１映像の全てのピクセルが、第２映像のピクセルと対応するものではない。すなわち、第１映像のピクセルと対応関係を有する第２映像のピクセルは、第２映像の一部ピクセルにもなる。従って、第１映像のピクセルと対応関係を有する第２映像のピクセルが、第２映像の一部ピクセルであるならば、第２映像の他の一部ピクセルは、第１映像のピクセルと対応関係を有さないピクセルにもなる。
【００３５】
一実施形態によって、ＧＰＵ１１０は、第１映像の深度情報に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができる。さらに具体的な実施形態は、以下、図２で説明する。
【００３６】
図２Ａ及び図２Ｂは、ＧＰＵ１１０が、第１映像のピクセルと対応する第２映像のピクセルを決定する実施形態を示している。
【００３７】
図２Ａは、第１カメラ視点２１２を基準にレンダリングされた第１映像２１４を示す。図２Ｂは、第２カメラ視点２２２を基準にレンダリングされた第２映像２２４を示す。例えば、第１カメラ視点２１２は、左目にもなり、第１映像２１４は、左目映像にもなる。また、第２カメラ視点２２２は、右目にもなり、第２映像２２４は、右目映像にもなる。図２Ａによれば、深度値ｚを有する客体２１６は、第１映像２１４のβピクセルで見られるので、第１映像２１４のβピクセルの座標は、（ｘ’，ｙ，ｚ）と表現される。
【００３８】
次に、ＧＰＵ１１０は、第１カメラ視点２１２及び第２カメラ視点２２２に係わる情報、及びβピクセルの座標情報に基づいて、βピクセルと対応する第２映像２２４のαピクセルを決定することができる。すなわち、図２Ａの客体２１６と同一客体２１８が第２映像２２４のαピクセルで見られる。一実施形態によって、ＧＰＵ１１０は、下記数式（１）を介して、βピクセルと対応する第２映像２２４のαピクセルを決定することができる。
【００３９】
【数１】
0006530728.tif 000002
数式（１）において、ｂ及びｆは、第１カメラ視点２１２及び第２カメラ視点２２２に係わる情報であり、ｂは、baselineを意味し、ｆは、focal lengthを意味する。また、ｚは、第１映像２１４のβピクセルの深度値を意味し、ｄは、βピクセルのｘ座標の変化量を示す。従って、ＧＰＵ１１０は、数式（１）を介してｄを計算することができ、第２映像２２４のαピクセルの座標として、（ｘ，ｙ，ｚ）＝（ｘ’−ｄ，ｙ，ｚ）を決定することができる。すなわち、ＧＰＵ１１０は、第２映像２２４に対するレンダリングを行わず、カメラ視点に係わる情報、及び第１映像２１４のβピクセルの深度値を利用して、βピクセルと対応する第２映像２２４のαピクセルを決定することができる。従って、ＧＰＵ１１０は、第１映像２１４のβピクセルの深度値またはカラー値を、第２映像２２４のαピクセルの深度値またはカラー値であるように決定することができる。
【００４０】
また、図１のＧＰＵ１１０は、一実施形態によって、再投影を行い、オクルージョンマップを生成することができる。オクルージョンマップは、第１映像のピクセルと対応する第２映像の一部ピクセルと、第１映像のピクセルと対応しない第２映像の他の一部ピクセルとを区分するためのマップを意味する。従って、ＧＰＵ１１０は、第１映像の深度情報に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができ、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
【００４１】
また、一実施形態によって、ＧＰＵ１１０は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。任意の値は、ユーザによる既設定値でもある。次に、ＧＰＵ１１０は、第２映像のカラーバッファに基づいて、任意の値に決定された第２映像の他の一部ピクセルを確認することにより、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
【００４２】
一実施形態によって、メモリ１２０は、ＧＰＵ１１０によって生成されたオクルージョンマップ、または第２映像のカラーバッファを保存することができる。
【００４３】
ＧＰＵ１１０は、一実施形態によって、メモリ１２０に保存されたオクルージョンマップまたはカラーバッファに基づいて、第２映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、ＧＰＵ１１０は、メモリ１２０に保存されたオクルージョンマップに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。オクルージョンマップでは、第１映像のピクセルと対応する第２映像の一部ピクセル、第１映像のピクセルと対応しない第２映像の他の一部ピクセルが区分されているために、ＧＰＵ１１０は、オクルージョンマップによって、第２映像の一部ピクセルについては、ラスタ化（rasterization）を行わず、第２映像の他の一部ピクセルについては、ラスタ化を行うことができる。ラスタ化に続き、ＧＰＵ１１０は、第２映像の他の一部ピクセルに対して、ピクセルシェーディング（pixel  shading）のようなさらなる演算を行うことができ、結果として、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、ＧＰＵ１１０は、メモリ１２０に保存済みの第２映像のカラーバッファを読み取ることができ、ＧＰＵ１１０は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第２映像のカラーバッファを修正することができる。すなわち、ＧＰＵ１１０は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【００４４】
従って、ＧＰＵ１１０は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【００４５】
一実施形態によって、ＧＰＵ１１０は、再投影を行い、第１映像のピクセルと対応する第２映像の一部ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第２映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファを生成することができる。すなわち、ＧＰＵ１１０は、第１映像のピクセルと対応する第２映像の第１ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第１映像のピクセルと対応しない第２映像の第２ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファを生成することができる。所定の値は、ユーザによって既設定の初期値（clear  value）でもある。同様に、ＧＰＵ１１０は、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。
【００４６】
メモリ１２０は、一実施形態によって、ＧＰＵ１１０によって生成された第２映像の深度バッファ及びカラーバッファを保存することができる。
【００４７】
ＧＰＵ１１０は、一実施形態によって、メモリ１２０に保存された第２映像の深度バッファ及びカラーバッファに基づいて、第２映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、ＧＰＵ１１０は、メモリ１２０に保存された第２映像の深度バッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。ＧＰＵ１１０は、一実施形態によって、メモリ１２０に保存された第２映像の深度バッファを利用して、第１映像のピクセルと対応する第２映像の一部ピクセル、及び第１映像のピクセルと対応しない第２映像の他の一部ピクセルに係わる深度テスト（Ｚ−test）を行うことができる。メモリ１２０に保存された第２映像の深度バッファにおいては、第２映像の一部ピクセルが第１映像のピクセルの深度値を有するために、第２映像の一部ピクセルは、深度テストを通過することができず、結果として、ＧＰＵ１１０は、深度テスト以後の過程において、第２映像の一部ピクセルに係わる演算を行わない。また、メモリ１２０に保存された第２映像の深度バッファにおいては、第２映像の他の一部ピクセルが、初期値のような所定値を有するために、第２映像の他の一部ピクセルは、深度テストを通過し、ＧＰＵ１１０は、深度テスト以後の過程において、第２映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によって、ＧＰＵ１１０は、深度テストを通過した第２映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、ＧＰＵ１１０は、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、ＧＰＵ１１０は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、メモリ１２０に保存済みの第２映像のカラーバッファを修正することができる。すなわち、ＧＰＵ１１０は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【００４８】
従って、ＧＰＵ１１０は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【００４９】
従って、デバイス１００は、第２映像をレンダリングする場合、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができるが、演算量を減少させ、デバイス１００の性能を高めることができる。すなわち、デバイス１００は、第１映像のピクセルと対応する第２映像の一部ピクセルについては、再投影を介してピクセル値を獲得することができ、第２映像の他の一部ピクセルについては、選択的レンダリングを行ってピクセル値を獲得することができるので、第２映像の全てのピクセルに対してレンダリングを行う場合より演算量を減少させることができる。
【００５０】
図３は、一実施形態による、デバイス１００が両眼視差を有する第１映像及び第２映像に対するレンダリングを行うフローチャートを示している。
【００５１】
図３に図示された方法は、図１のデバイス１００によって遂行され、重複説明については省略する。
【００５２】
段階Ｓ３１０において、デバイス１００は、一実施形態によって、第１映像に対するレンダリングを行うことができる。デバイス１００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度情報を生成することができる。第１映像の深度情報は、第１映像の深度バッファにもなる。また、デバイス１００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラー情報を生成することができる。第１映像のカラー情報は、第１映像のカラーバッファにもなる。
【００５３】
段階Ｓ３２０において、デバイス１００は、一実施形態によって、レンダリング結果として生成される第１映像の深度情報に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、再投影を行うことができる。一実施形態によって、再投影は、第１映像の深度情報及びカラー情報に基づいて、オクルージョンマップ、及び第２映像のカラーバッファを生成する内容を含んでもよい。また、再投影は、第１映像の深度情報及びカラー情報に基づいて、第２映像の深度バッファ、及び第２映像のカラーバッファを生成する内容を含んでもよい。
【００５４】
一実施形態によるデバイス１００は、再投影を行い、オクルージョンマップを生成することができる。すなわち、デバイス１００は、第１映像の深度情報に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができ、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
【００５５】
また、デバイス１００は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。次に、デバイス１００は、第２映像のカラーバッファに基づいて、所定値に決定された第２映像の他の一部ピクセルを確認することにより、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
【００５６】
デバイス１００は、生成されたオクルージョンマップ、または第２映像のカラーバッファを内部メモリに保存することができる。
【００５７】
他の実施形態によるデバイス１００は、再投影を行い、第１映像のピクセルと対応する第２映像の一部ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第２映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファを生成することができる。すなわち、デバイス１００は、第１映像のピクセルと対応する第２映像の第１ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第１映像のピクセルと対応しない第２映像の第２ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファを生成することができる。同様に、デバイス１００は、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。
【００５８】
デバイス１００は、生成された第２映像の深度バッファ、または第２映像のカラーバッファを内部メモリに保存することができる。
【００５９】
段階Ｓ３３０において、一実施形態によるデバイス１００は、再投影に基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。
【００６０】
一実施形態によるデバイス１００は、オクルージョンマップに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。オクルージョンマップにおいては、第１映像のピクセルと対応する第２映像の一部ピクセル、第１映像のピクセルと対応しない第２映像の他の一部ピクセルが区分されているために、デバイス１００は、オクルージョンマップによって、第２映像の一部ピクセルについては、ラスタ化を行わず、第２映像の他の一部ピクセルについては、ラスタ化を行うことができる。ラスタ化に続いて、デバイス１００は、第２映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス１００は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第２映像のカラーバッファを修正することができる。すなわち、デバイス１００は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【００６１】
従って、デバイス１００は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【００６２】
他の実施形態によるデバイス１００は、第２映像の深度バッファに基づいて、第２映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によるデバイス１００は、生成済みの第２映像の深度バッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス１００は、一実施形態によって、第２映像の深度バッファを利用して、第１映像のピクセルと対応する第２映像の一部ピクセル、及び第１映像のピクセルと対応しない第２映像の他の一部ピクセルに係わる深度テスト（Ｚ−test）を行うことができる。第２映像の深度バッファにおいては、第２映像の一部ピクセルが第１映像のピクセルの深度値を有するために、第２映像の一部ピクセルは、深度テストを通過することができず、結果として、デバイス１００は、深度テスト以後の過程において、第２映像の一部ピクセルに係わる演算を行わない。また、第２映像の深度バッファにおいては、第２映像の他の一部ピクセルが、初期値のような所定値を有するために、第２映像の他の一部ピクセルは、深度テストを通過し、デバイス１００は、深度テスト以後の過程において、第２映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によるデバイス１００は、深度テストを通過した第２映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、デバイス１００は、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス１００は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第２映像のカラーバッファを修正することができる。すなわち、デバイス１００は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【００６３】
従って、デバイス１００は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【００６４】
図４は、一実施形態によるデバイス４００に係わるブロック図を示している。
【００６５】
デバイス４００は、一実施形態によって、ＧＰＵ４１０、メモリ４２０及びバス４３０を含んでもよい。図４に図示されたデバイス４００は、本実施形態に係わる構成要素だけが図示されている。従って、図４に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【００６６】
ＧＰＵ４１０は、一実施形態によって、第１映像に対するレンダリングを行うことができる。ＧＰＵ４１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度バッファ４２２を生成することができる。第１映像の深度バッファ４２２は、第１映像のピクセルそれぞれの深度値を含んでもよい。また、ＧＰＵ４１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラーバッファ４２４を生成することができる。第１映像のカラーバッファ４２４は、第１映像の各ピクセルのカラー値を含んでもよい。
【００６７】
メモリ４２０は、一実施形態によって、第１映像に対するレンダリング結果として生成される第１映像の深度バッファ４２２を保存することができる。また、一実施形態によって、メモリ４２０は、第１映像に対するレンダリング結果として生成される第１映像のカラーバッファ４２４を保存することができる。
【００６８】
ＧＰＵ４１０は、一実施形態によって、シェーダ４１２及びラスタライザ４１４を含んでもよい。図４に図示されたＧＰＵ４１０は、本実施形態に係わる構成要素だけが図示されている。従って、図４に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【００６９】
一実施形態によって、シェーダ４１２は、メモリ４２０に保存された第１映像の深度バッファ４２２に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができる。また、シェーダ４１２は、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップ４２８を生成することができる。一実施形態によって、シェーダ４１２は、第２映像の一部ピクセルについては、０の値を設定し、第２映像の他の一部ピクセルについては、１の値を設定し、オクルージョンマップ４２８を生成することができる。ただし、０または１の値は、ただの例示であり、オクルージョンマップ４２８は、０または１以外の値を含んでもよい。
【００７０】
また、一実施形態によって、シェーダ４１２は、第１映像のカラーバッファ４２２に基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファ４２６を生成することができる。任意の値は、ユーザによって既設定の値でもある。次に、シェーダ４１２は、第２映像のカラーバッファ４２６に基づいて、任意の値に決定された第２映像の他の一部ピクセルを確認することにより、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップ４２８を生成することができる。
【００７１】
図５は、シェーダ４１２がオクルージョンマップを生成する一実施形態を示している。
【００７２】
図５の領域５１０は、第１視点５１２及び第２視点５１４から、スクリーン５１６を介して客体５１８を眺めるところを示している。従って、ＧＰＵ４１０は、第１視点５１２及び第２視点５１４それぞれを基準に、両眼視差映像に対するレンダリングを行うことができる。
【００７３】
ＧＰＵ４１０は、一実施形態によって、第１視点５１２を基準に、第１映像５２０に対するレンダリングを行うことができる。従って、ＧＰＵ４１０は、第１映像５２０に対するレンダリングを行い、客体５１８を示す第１映像５２０の深度バッファまたはカラーバッファを生成することができる。すなわち、ＧＰＵ４１０は、客体５１８を示すピクセル５２２それぞれの深度値及びカラー値を計算することができる。
【００７４】
シェーダ４１２は、第１映像５２０の深度バッファに基づいて、再投影を行うことができる。すなわち、シェーダ４１２は、ピクセル５２２の深度値に基づいて、ピクセル５２２と対応する第２映像５３０の一部ピクセル５３２を決定することができる。従って、シェーダ４１２は、ピクセル５２２と対応する第２映像５３０の一部ピクセル５３２と、ピクセル５２２と対応しない第２映像５３０の他の一部ピクセル５３４とを区分するオクルージョンマップ５４０を生成することができる。一実施形態によって、シェーダ４１２は、第２映像５３０の一部ピクセル５３２と同一位置のピクセル５４２については、０の値に設定し、第２映像５３０の他の一部ピクセル５３４と同一位置のピクセル５４４については、１の値に設定し、オクルージョンマップ５４０を生成することができる。
【００７５】
また、他の実施形態によって、シェーダ４１２は、第１映像５２０のカラーバッファに基づいて、第２映像の一部ピクセル５３２それぞれのカラー値は、第１映像５２０のピクセル５２２それぞれのカラー値であるように決定し、第２映像５３０の他の一部ピクセル５３４それぞれのカラー値は、任意の値であるように決定し、第２映像５３０のカラーバッファを生成することができる。次に、シェーダ４１２は、第２映像５３０のカラーバッファに基づいて、任意の値に決定された第２映像５３０の他の一部ピクセル５３４を確認することにより、第２映像５３０の一部ピクセル５３２と、第２映像５３０の他の一部ピクセル５３４とを区分するオクルージョンマップ５４０を生成することができる。
【００７６】
図４のメモリ４２０は、シェーダ４１２によって生成されたオクルージョンマップ４２８、及び第２映像のカラーバッファ４２６を保存することができる。
【００７７】
ＧＰＵ４１０は、一実施形態によって、メモリ４２０に保存されたオクルージョンマップ４２８、または第２映像のカラーバッファ４２６に基づいて、第２映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、ＧＰＵ４１０は、メモリ４２０に保存されたオクルージョンマップ４２８に基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、オクルージョンマップにおいて、第１映像のピクセルと対応する第２映像の一部ピクセル、第１映像のピクセルと対応しない第２映像の他の一部ピクセルが区分されているために、ラスタライザ４１４は、オクルージョンマップ４２８によって、第２映像の一部ピクセルについては、ラスタ化を行わず、第２映像の他の一部ピクセルについては、ラスタ化を行うことができる。
【００７８】
図６は、ラスタライザ４１４が、オクルージョンマップに基づいてラスタ化を行う一実施形態を示している。
【００７９】
一実施形態によって、図５の第１映像のピクセルと対応する第２映像６１０の一部ピクセル６１１のうち、第１領域６１２がラスタライザ４１４に入力される。ラスタライザ４１４は、オクルージョンマップ６２０に基づいて、第１領域６１２に該当するピクセル６１５に対して、ラスタ化を省略することができる。すなわち、オクルージョンマップ６２０においては、第１領域６１２に該当するピクセル６１５が０の値に設定されているので、ラスタライザ４１４は、ピクセル６１５に対するラスタ化を省略することができる。同様に、ラスタライザ４１４は、オクルージョンマップ６２０に基づいて、第２映像６１０の一部ピクセル６１１のうち、第２領域６１３に該当するピクセルに係わるラスタ化を省略することができる。オクルージョンマップ６２０においては、第１映像のピクセルと対応しない第２映像６１０の他の一部ピクセル６１４が１の値に設定されているので、ラスタライザ４１４は、他の一部ピクセル６１４に対するラスタ化を行うことができる。
【００８０】
図４のＧＰＵ４１０は、一実施形態によって、第２映像の他の一部ピクセルに係わるラスタ化に続いて、第２映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、ＧＰＵ４１０は、メモリ４２０に保存済みの第２映像のカラーバッファ４２６を読み取ることができ、ＧＰＵ４１０は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第２映像のカラーバッファ４２６を修正することができる。すなわち、ＧＰＵ４１０は、第２映像のカラーバッファ４２６で決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【００８１】
従って、ＧＰＵ４１０は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス４００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【００８２】
図７は、一実施形態によって、ＧＰＵ４１０が第２映像のカラーバッファを修正する実施形態を示している。
【００８３】
一実施形態によって、シェーダ４１２は、第１映像のピクセルと対応する第２映像の一部ピクセル７１２を決定することができる。次に、シェーダ４１２は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセル７１２それぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定することができ、第２映像の他の一部ピクセル７１４それぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファ７１０を生成することができる。図７の第２映像のカラーバッファ７１０において、一部ピクセル７１２それぞれのカラー値は、Ｒに決定され、他の一部ピクセル７１４それぞれのカラー値は、任意の値である＃に決定されたが、カラー値は、Ｒまたは＃に限定されるものではない。また、説明の便宜上、一部ピクセル７１２それぞれのカラー値がＲと表示されたが、一部ピクセル７１２それぞれのカラー値は、互いに異なる値を有することができる。
【００８４】
一実施形態によって、ラスタライザ４１４は、オクルージョンマップ４２８に基づいて、第２映像の他の一部ピクセル７２２を選択してラスタ化を行うことができる。図７では、第２映像のカラーバッファ７１０で示される第２映像の他の一部ピクセル７１４と、第２映像の他の一部ピクセル７２２は、互いに同一位置のピクセルである。
【００８５】
一実施形態によって、ＧＰＵ４１０は、第２映像の他の一部ピクセル７２２に対するラスタ化に続いて、他の一部ピクセル７２２に対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、他の一部ピクセル７２２それぞれのカラー値を計算することができる。図７の第２映像の他の一部ピクセル７２２それぞれのカラー値がＣに計算されたが、カラー値は、Ｃに限定されるものではない。また、説明の便宜上、他の一部ピクセル７２２それぞれのカラー値がＣに表示されたが、他の一部ピクセル７２２それぞれのカラー値は、互いに異なる値を有することができる。
【００８６】
従って、ＧＰＵ４１０は、第２映像のカラーバッファ７１０で任意の値＃に決定された他の一部ピクセル７１４それぞれのカラー値を、レンダリングを介して計算された他の一部ピクセル７２２それぞれのカラー値であるＣに決定し、完成された第２映像のカラーバッファ７２０を生成することができる。
【００８７】
一実施形態によって、図４のシェーダ４１２は、第２映像の他の一部ピクセルを含む第１ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成することができる。すなわち、シェーダ４１２は、オクルージョンマップ４２８において、第２映像の他の一部ピクセルが有する値を第２映像の他の一部ピクセルを含む第１ピクセルグループが有するように設定し、拡張されたオクルージョンマップを生成することができる。従って、第１ピクセルグループは、第２映像の他の一部ピクセル、及び第１ピクセルグループのうち、第２映像の他の一部ピクセルではない第２ピクセルグループによって構成される。
【００８８】
図８は、シェーダ４１２が、オクルージョンマップを拡張する実施形態を示している。
【００８９】
シェーダ４１２は、オクルージョンマップ８１０だけではなく、拡張されたオクルージョンマップ８２０を生成することができる。すなわち、シェーダ４１２は、第２映像５３０の他の一部ピクセル５３４と同一位置のピクセル８１２に１の値を付与し、オクルージョンマップ８１０を生成することができ、またシェーダ４１２は、第２映像５３０の他の一部ピクセル５３４より広い範囲のピクセルである第１ピクセルグループ８２２に１の値を付与し、拡張されたオクルージョンマップ８２０を生成することができる。第１ピクセルグループ８２２には、第２映像の他の一部ピクセル８２４、及び第１ピクセルグループ８２２において、他の一部ピクセル８２４ではない第２ピクセルグループ８２６を含んでもよい。例えば、シェーダ４１２は、第２映像５３０の他の一部ピクセル５３４と同一位置のピクセル８１２を基準に、３×３ピクセル８３０の範囲において１の値を付与し、拡張されたオクルージョンマップ８２０を生成することができる。
【００９０】
図４のＧＰＵ４１０は、一実施形態によって、拡張されたオクルージョンマップに基づいて、第２映像の他の一部ピクセルより広い範囲のピクセルである第１ピクセルグループを選択してレンダリングを行うことができる。すなわち、ラスタライザ４１４は、拡張されたオクルージョンマップに基づいて、第２映像の第１ピクセルグループを選択してラスタ化を行うことができる。ラスタ化に続いて、ＧＰＵ４１０は、第２映像の第１ピクセルグループに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第２映像の第１ピクセルグループを構成するピクセルそれぞれのカラー値を計算することができる。第２映像の第１ピクセルグループには、第２映像の他の一部ピクセルを含むので、ＧＰＵ４１０は、メモリ４２０に保存済みの第２映像のカラーバッファ４２６で決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。また、ＧＰＵ４１０は、レンダリング結果として計算された第２ピクセルグループを構成するピクセルそれぞれのカラー値と、カラーバッファ４２６で決定された第２ピクセルグループに該当するカラー値とに基づいて、カラーバッファ４２６で決定された第２ピクセルグループに該当するカラー値を修正することができる。例えば、ＧＰＵ４１０は、レンダリング結果として計算された第２ピクセルグループのピクセルそれぞれのカラー値、及びカラーバッファ４２６で決定された第２ピクセルグループに該当するカラー値の平均値を計算し、計算された平均値に、カラーバッファ４２６で決定された第２ピクセルグループに該当するカラー値を修正することができる。さらに具体的な実施形態は、以下、図９で説明する。
【００９１】
図９は、ＧＰＵ４１０が、拡張されたオクルージョンマップに基づいて第２映像のカラーバッファを修正する実施形態を示している。
【００９２】
一実施形態によって、シェーダ４１２は、第１映像のピクセルと対応する第２映像の一部ピクセル９１２を決定することができる。次に、シェーダ４１２は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセル９１２それぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定することができ、第２映像の他の一部ピクセル９１４それぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファ９１０を生成することができる。図９の第２映像のカラーバッファ９１０において、一部ピクセル９１２それぞれのカラー値は、Ｒに決定され、他の一部ピクセル９１４それぞれのカラー値は、任意の値である＃に決定されたが、カラー値は、Ｒまたは＃に限定されるものではない。また、説明の便宜上、一部ピクセル９１２それぞれのカラー値がＲと表示されたが、一部ピクセル９１２それぞれのカラー値は、互いに異なる値を有することができる。
【００９３】
一実施形態によって、ラスタライザ４１４は、拡張されたオクルージョンマップ８２０に基づいて、第２映像の第１ピクセルグループ９２２を選択してラスタ化を行うことができる。
【００９４】
一実施形態によって、ＧＰＵ４１０は、第１ピクセルグループ９２２に対するラスタ化に続いて、第１ピクセルグループ９２２に対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第１ピクセルグループ９２２それぞれのカラー値を計算することができる。図９の第２映像の第１ピクセルグループ９２２それぞれのカラー値がＣに計算されたが、カラー値は、Ｃに限定されるものではない。また、説明の便宜上、第１ピクセルグループ９２２それぞれのカラー値がＣに表示されたが、第１ピクセルグループ９２２それぞれのカラー値は、互いに異なる値を有することができる。
【００９５】
従って、ＧＰＵ４１０は、第２映像のカラーバッファ９１０において、任意の値＃に決定された他の一部ピクセル９１４それぞれのカラー値を、レンダリングを介して計算されたカラー値であるＣに修正することができる。また、レンダリング結果として計算された第２ピクセルグループ９２４のピクセルそれぞれのカラー値であるＣと、第２ピクセルグループ９２４と同一位置のピクセルであるカラーバッファ９１０のピクセルグループ９１６のカラー値であるＲとを利用して、ピクセルグループ９１６のカラー値ＲをＡに修正することができ、結果として、完成された第２映像のカラーバッファ９３０を完成することができる。例えば、ＧＰＵ４１０は、カラー値Ｒとカラー値Ｃとの平均値を計算し、計算された平均値Ａを、ピクセルグループ９１６のカラー値に修正することができる。また、説明の便宜上、修正されたカラー値がＡと表示されたが、カラー値は、互いに異なる値を有することができる。
【００９６】
図１０は、一実施形態による、デバイス４００が両眼視差を有する第１映像及び第２映像に対するレンダリングを行うフローチャートを示している。
【００９７】
図１０に図示された方法は、図４のデバイス４００によって遂行され、重複説明については省略する。
【００９８】
段階Ｓ１０１０において、デバイス４００は、一実施形態によって、第１映像に対するレンダリングを行うことができる。デバイス４００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度バッファを生成することができる。また、デバイス４００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラーバッファを生成することができる。デバイス４００は、生成された第１映像の深度バッファ、及び第１映像のカラーバッファを内部メモリに保存することができる。
【００９９】
段階Ｓ１０２０において、デバイス４００は、第１映像の深度バッファに基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、オクルージョンマップを生成することができる。すなわち、デバイス４００は、第１映像の深度バッファに基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができ、デバイス４００は、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。一実施形態によるデバイス４００は、第２映像の一部ピクセルについては、０の値を設定し、第２映像の他の一部ピクセルについては、１の値を設定し、オクルージョンマップを生成することができる。ただし、０または１の値は、ただの例示であり、オクルージョンマップは、０または１以外の値を含んでもよい。
【０１００】
また、一実施形態によるデバイス４００は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。次に、デバイス４００は、第２映像のカラーバッファに基づいて、任意の値に決定された第２映像の他の一部ピクセルを確認することにより、第２映像の一部ピクセルと、第２映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
【０１０１】
一実施形態によるデバイス４００は、生成されたオクルージョンマップ、または第２映像のカラーバッファを内部メモリに保存することができる。
【０１０２】
段階Ｓ１０３０において、デバイス４００は、オクルージョンマップに基づいて、第２映像内の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、デバイス４００は、オクルージョンマップに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、オクルージョンマップにおいて、第１映像のピクセルと対応する第２映像の一部ピクセル、及び第１映像のピクセルと対応しない第２映像の他の一部ピクセルが区分されているために、デバイス４００は、オクルージョンマップによって、第２映像の一部ピクセルについては、ラスタ化を行わず、第２映像の他の一部ピクセルについては、ラスタ化を行うことができる。
【０１０３】
デバイス４００は、一実施形態によって、第２映像の他の一部ピクセルに係わるラスタ化に続いて、第２映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス４００は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第２映像のカラーバッファを修正することができる。すなわち、デバイス４００は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【０１０４】
従って、デバイス４００は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス４００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【０１０５】
図１１は、一実施形態によるデバイス１１００に係わるブロック図を示している。
【０１０６】
デバイス１１００は、一実施形態によって、ＧＰＵ１１１０、メモリ１１２０及びバス１１３０を含んでもよい。図１１に図示されたデバイス１１００は、本実施形態に係わる構成要素だけが図示されている。従って、図１１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１０７】
ＧＰＵ１１１０は、一実施形態によって、第１映像に対するレンダリングを行うことができる。ＧＰＵ１１１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度バッファ１１２２を生成することができる。第１映像の深度バッファ１１２２は、第１映像のピクセルそれぞれの深度値を含んでもよい。また、ＧＰＵ１１１０は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラーバッファ１１２４を生成することができる。第１映像のカラーバッファ１１２４は、第１映像の各ピクセルのカラー値を含んでもよい。
【０１０８】
メモリ１１２０は、一実施形態によって、第１映像に対するレンダリング結果として生成される第１映像の深度バッファ１１２２を保存することができる。また、一実施形態によって、メモリ１１２０は、第１映像に対するレンダリング結果として生成される第１映像のカラーバッファ１１２４を保存することができる。
【０１０９】
ＧＰＵ１１１０は、一実施形態によって、シェーダ１１１２及びＺ−テスト部１１１４を含んでもよい。図１１に図示されたＧＰＵ１１１０は、本実施形態に係わる構成要素だけが図示されている。従って、図１１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１１０】
一実施形態によって、シェーダ１１１２は、メモリ１１２０に保存された第１映像の深度バッファ１１２２に基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定することができる。また、一実施形態によって、シェーダ１１１２は、第１映像の深度バッファ１１２２に基づいて、第２映像の一部ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第２映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファ１１２６を生成することができる。所定の値は、ユーザによって既設定の初期値でもある。
【０１１１】
同様に、シェーダ１１１２は、第１映像のカラーバッファ１１２４に基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファ１１２８を生成することができる。任意の値は、ユーザによって既設定の値でもある。
【０１１２】
図１２は、シェーダ１１１２が、第２映像の深度バッファを生成する一実施形態を示している。
【０１１３】
図１２の領域１２１０は、第１視点１２１２及び第２視点１２１４から、スクリーン１２１６を介して客体１２１８を眺めるところを示している。従って、ＧＰＵ１１１０は、第１視点１２１２及び第２視点１２１４それぞれを基準に、両眼視差映像に対するレンダリングを行うことができる。
【０１１４】
ＧＰＵ１１１０は、一実施形態によって、第１視点１２１２を基準に、第１映像１２２０に対するレンダリングを行うことができる。従って、ＧＰＵ１１１０は、第１映像１２２０に対するレンダリングを行い、客体１２１８を示す第１映像１２２０の深度バッファまたはカラーバッファを生成することができる。すなわち、ＧＰＵ１１１０は、客体１２１８を示すピクセル１２２２それぞれの深度値及びカラー値を計算することができる。
【０１１５】
シェーダ１１１２は、第１映像１２２０の深度バッファに基づいて、再投影を行うことができる。すなわち、シェーダ１１１２は、ピクセル１２２２の深度値に基づいて、ピクセル１２２２と対応する第２映像１２３０の一部ピクセル１２３２を決定することができる。従って、シェーダ１１１２は、第２映像１２３０の一部ピクセル１２３２と同一位置のピクセル１２４２については、第１映像１２２０のピクセル１２２２それぞれの深度値ｚに設定し、第２映像１２３０の他の一部ピクセル１２３４と同一位置のピクセル１２４４については、所定値０に設定し、第２映像１２３０の深度バッファ１２４０を生成することができる。また、説明の便宜上、ピクセル１２４２それぞれの深度値がｚと表示されたが、ピクセル１２４２それぞれの深度値は、互いに異なる値を有することができる。また、シェーダ１１１２は、第１映像１２２０のカラーバッファに基づいて、第２映像の一部ピクセル１２３２それぞれのカラー値は、第１映像１２２０のピクセル１２２２それぞれのカラー値であるように決定し、第２映像１２３０の他の一部ピクセル１２３４それぞれのカラー値は、任意の値であるように決定し、第２映像１２３０のカラーバッファを生成することができる。
【０１１６】
図１１のメモリ１１２０は、一実施形態によって、シェーダ１１１２によって生成された第２映像の深度バッファ１１２６、及び第２映像のカラーバッファ１１２８を保存することができる。
【０１１７】
ＧＰＵ１１１０は、一実施形態によって、メモリ１１２０に保存された第２映像の深度バッファ１１２６、または第２映像のカラーバッファ１１２８に基づいて、第２映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、ＧＰＵ１１１０は、メモリ１１２０に保存された第２映像の深度バッファ１１２６に基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、Ｚ−テスト部１１１４は、一実施形態によって、メモリ１１２０に保存された第２映像の深度バッファ１１２６を利用して、第１映像のピクセルと対応する第２映像の一部ピクセル、及び第１映像のピクセルと対応しない第２映像の他の一部ピクセルに係わる深度テスト（Ｚ−test）を行うことができる。メモリ１１２０に保存された第２映像の深度バッファ１１２６において、第２映像の一部ピクセルは、第１映像のピクセルの深度値を有するために、第２映像の一部ピクセルは、深度テストを通過することができず、結果として、ＧＰＵ１１１０は、深度テスト以後の過程において、第２映像の一部ピクセルに係わる演算を行わない。また、メモリ１１２０に保存された第２映像の深度バッファ１１２６において、第２映像の他の一部ピクセルは、初期値のような所定値を有するために、第２映像の他の一部ピクセルは、深度テストを通過し、ＧＰＵ１１１０は、深度テスト以後の過程において、第２映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によって、ＧＰＵ１１１０は、深度テストを通過した第２映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、ＧＰＵ１１１０は、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、ＧＰＵ１１１０は、メモリ１１２０に保存済みの第２映像のカラーバッファ１１２８を読み取ることができ、ＧＰＵ１１１０は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第２映像のカラーバッファ１１２８を修正することができる。すなわち、ＧＰＵ１１１０は、第２映像のカラーバッファ１１２８で決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【０１１８】
従って、ＧＰＵ１１１０は、第２映像の他の一部ピクセルを選択してレンダリングを行うことができ、メモリ１１２０に保存済みの第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。すなわち、ＧＰＵ１１１０は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【０１１９】
図１３は、ＧＰＵ１１１０が、第２映像のカラーバッファを修正する実施形態を示している。
【０１２０】
一実施形態によって、シェーダ１１１２は、第１映像のピクセルと対応する第２映像の一部ピクセル１３１２を決定することができる。次に、シェーダ１１１２は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセル１３１２それぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定することができ、第２映像の他の一部ピクセル１３１４それぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファ１３１０を生成することができる。図１３の第２映像のカラーバッファ１３１０において、一部ピクセル１３１２それぞれのカラー値は、Ｒに決定され、他の一部ピクセル１３１４それぞれのカラー値は、任意の値である＃に決定されたが、カラー値は、Ｒまたは＃に限定されるものではない。また、説明の便宜上、一部ピクセル１３１２それぞれのカラー値がＲと表示されたが、一部ピクセル１３１２それぞれのカラー値は、互いに異なる値を有することができる。
【０１２１】
一実施形態によって、Ｚ−テスト部１１１４は、第２映像の深度バッファに基づいて、第２映像の一部ピクセル１３２２、及び第２映像の他の一部ピクセル１３２４に対する深度テスト（Ｚ−test）を行うことができる。図１３では、第２映像の他の一部ピクセル１３１２と、第２映像の他の一部ピクセル１３２４は、互いに同一位置のピクセルである。次に、ＧＰＵ１１１０は、深度テストを通過した第２映像の他の一部ピクセル１３２４に対して、ピクセルシェーディングのようなさらなる演算を続けて行うことができ、結果として、ＧＰＵ１１１０は、他の一部ピクセル１３２４それぞれのカラー値を計算することができる。図１３において、第２映像の他の一部ピクセル１３２４それぞれのカラー値がＣと計算されたが、カラー値は、Ｃに限定されるものではない。また、説明の便宜上、他の一部ピクセル１３２４それぞれのカラー値がＣと表示されたが、他の一部ピクセル１３２４それぞれのカラー値は、互いに異なる値を有することができる。
【０１２２】
従って、ＧＰＵ１１１０は、第２映像のカラーバッファ１３１０において、任意の値＃に決定された他の一部ピクセル１３１４それぞれのカラー値を、レンダリングを介して計算された他の一部ピクセル１３２４それぞれのカラー値であるＣに決定し、完成された第２映像のカラーバッファ１３２０を生成することができる。
【０１２３】
図１４は、一実施形態による、デバイス１１００が両眼視差を有する第１映像及び第２映像に対するレンダリングを行うフローチャートを示している。
【０１２４】
図１４に図示された方法は、図１１のデバイス１１００によって遂行され、重複説明については省略する。
【０１２５】
段階Ｓ１４１０において、デバイス１１００は、一実施形態によって、第１映像に対するレンダリングを行うことができる。デバイス１１００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像の深度バッファを生成することができる。また、デバイス１１００は、一実施形態によって、第１映像に対するレンダリングを行い、第１映像のカラーバッファを生成することができる。デバイス１１００は、生成された第１映像の深度バッファ、及び第１映像のカラーバッファを内部メモリに保存することができる。
【０１２６】
段階Ｓ１４２０において、デバイス１１００は、一実施形態によって、第１映像の深度バッファに基づいて、第１映像のピクセルと対応する第２映像の一部ピクセルを決定し、第２映像の深度バッファを生成することができる。すなわち、デバイス１１００は、第１映像の深度バッファに基づいて、第２映像の一部ピクセルそれぞれの深度値は、第１映像のピクセルそれぞれの深度値であるように決定し、第２映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第２映像の深度バッファを生成することができる。所定の値は、ユーザによって既設定の初期値でもある。
【０１２７】
また、デバイス１１００は、第１映像のカラーバッファに基づいて、第２映像の一部ピクセルそれぞれのカラー値は、第１映像のピクセルそれぞれのカラー値であるように決定し、第２映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。任意の値は、ユーザによって既設定の値でもある。デバイス１１００は、生成された第２映像の深度バッファ、及び第２映像のカラーバッファを内部メモリに保存することができる。
【０１２８】
段階Ｓ１４３０において、デバイス１１００は、第２映像の深度バッファに基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス１１００は、一実施形態によって、第２映像の深度バッファを利用して、第１映像のピクセルと対応する第２映像の一部ピクセル、及び第１映像のピクセルと対応しない第２映像の他の一部ピクセルに係わる深度テスト（Ｚ−test）を行うことができる。第２映像の深度バッファにおいて、第２映像の一部ピクセルは、第１映像のピクセルの深度値を有するために、第２映像の一部ピクセルは、深度テストを通過することができず、結果として、デバイス１１００は、深度テスト以後の過程において、第２映像の一部ピクセルに係わる演算を行わない。また、第２映像の深度バッファにおいて、第２映像の他の一部ピクセルは、初期値のような所定値を有するために、第２映像の他の一部ピクセルは、深度テストを通過し、デバイス１１００は、深度テスト以後の過程において、第２映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によるデバイス１１００は、深度テストを通過した第２映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、デバイス１１００は、第２映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス１１００は、第２映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第２映像のカラーバッファを修正することができる。すなわち、デバイス１１００は、第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。
【０１２９】
従って、デバイス１１００は、第２映像の他の一部ピクセルを選択してレンダリングを行うことができ、生成済みの第２映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第２映像の他の一部ピクセルのカラー値に修正することができる。すなわち、デバイス１１００は、第２映像の全てのピクセルに係わるレンダリングを行うのではなく、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことにより、第２映像のカラーバッファを完成することができる。一実施形態によるデバイス１１００は、完成された第２映像のカラーバッファを介して、第２映像を出力することができる。
【０１３０】
図１５は、一実施形態によるデバイス１５００に係わるブロック図を示している。
【０１３１】
デバイス１５００は、アプリケーション１５１０、デバイスドライバ１５２０、ＧＰＵ１５３０及びメモリ１５４０を含んでもよい。図１５に図示されたデバイス１５００は、本実施形態に係わる構成要素だけが図示されている。従って、図１５に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１３２】
アプリケーション１５１０は、一実施形態によって、ＡＰＩ（application program interface）を介して、両眼視差映像（binocular  disparity  image）に対するレンダリングまたはタイル基盤レンダリング（tile  based  rendering）に係わる情報をデバイスドライバ１５２０に提供することができる。このとき、アプリケーション１５１０は、OpenＧＬ、OpenＧＬ ＥＳまたはDirect３のようなＡＰＩ標準を介して、両眼視差映像に対するレンダリングまたはタイル基盤レンダリングに係わる情報をデバイスドライバ１５２０に提供することができる。すなわち、アプリケーション１５１０は、両眼視差映像を示すために、両眼視差を有する第１映像及び第２映像それぞれに対するレンダリングまたはタイル基盤レンダリングに係わる情報を、ＡＰＩを介して、デバイスドライバ１５２０に提供することができる。また、一実施形態によって、アプリケーション１５１０は、第１映像及び第２映像それぞれに対するレンダリングまたはタイル基盤レンダリングに係わる情報を、ＡＰＩの拡張などを介して、デバイスドライバ１５２０に明示的に提供することができる。
【０１３３】
デバイスドライバ１５２０は、一実施形態によって、アプリケーション１５１０から受信されたＡＰＩを分析し、ＧＰＵ１５３０で処理可能なコマンド（command）に変換し、ＧＰＵ１５３０にコマンドを伝送することができる。一実施形態によるデバイスドライバ１５２０は、第１映像及び第２映像に対する少なくとも１つのドローコマンド（draw command）をＧＰＵ１５３０に伝送することができる。ドローコマンドは、所定の映像、または所定のフレームにいかなるオブジェクトをレンダリングするかということを示す命令語であり、一実施形態によって、ドローコマンドは、ドローコール（drawcall）として表現することができる。例えば、ドローコマンドは、映像またはフレームに、所定の個数の四角形または三角形を描くためのコマンドでもある。
【０１３４】
一実施形態によるデバイスドライバ１５２０は、ドローコマンドと共に、ドローコマンドと関連した状態情報（state  information）をＧＰＵ１５３０に伝送することができる。状態情報は、ドローコマンドにバインディング（binding）された状態を示すが、状態情報は、所定のオブジェクトをレンダリングするために必要な情報を意味する。例えば、状態情報は、所定のオブジェクトに係わる座標情報のようなソースデータ（source data）、テクスチャタイプ（texture type）、カメラ視点情報を含み、状態情報は、ステート（state）として表現される。一実施形態によるデバイスドライバ１５２０は、１つのドローコマンドと、第１映像及び第２映像それぞれに係わる状態情報とをＧＰＵ１５３０に伝送することができる。第１映像及び第２映像それぞれは、同一オブジェクトに対して、互いに異なる視角から眺めた映像であるために、第１映像及び第２映像に係わる状態情報は、カメラ視点に係わる情報だけが、第１映像及び第２映像ごとにそれぞれ異なるように表現され、残りの情報は、第１映像及び第２映像ごとにそれぞれ同一に表現される。すなわち、デバイスドライバ１５２０は、１つのドローコマンドと共に、第１映像及び第２映像に係わる１対の状態情報をＧＰＵ１５３０に伝送することができる。
【０１３５】
ＧＰＵ１５３０は、一実施形態によるデバイスドライバ１５２０から受信した両眼視差映像に係わるドローコマンド及び状態情報に基づいて、両眼視差を有する第１映像及び第２映像に対するレンダリングを行うことができる。また、ＧＰＵ１５３０は、一実施形態によるデバイスドライバ１５２０から受信した両眼視差映像に係わるドローコマンド及び状態情報に基づいて、第１映像及び第２映像に対するタイル基盤レンダリング（tile  based  rendering）を遂行することができる。
【０１３６】
ＧＰＵ１５３０及びメモリ１５４０は、図１のＧＰＵ１１０及びメモリ１２０で説明した内容、図４のＧＰＵ４１０及びメモリ４２０で説明した内容、または図１１のＧＰＵ１１１０及びメモリ１１２０で説明した内容を含むが、重複説明は省略する。
【０１３７】
図１６は、一実施形態によるデバイス１６００に係わるブロック図を示している。
【０１３８】
デバイス１６００は、アプリケーション１６１０、デバイスドライバ１６２０、ＧＰＵ１６３０及びメモリ１６４０を含んでもよい。図１６に図示されたデバイス１６００は、本実施形態に係わる構成要素だけが図示されている。従って、図１６に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１３９】
アプリケーション１６１０及びデバイスドライバ１６２０は、図１５のアプリケーション１５１０及びデバイスドライバ１５２０の内容を含んでもよいが、重複内容については、説明を省略する。また、ＧＰＵ１６３０及びメモリ１６４０は、図１５のＧＰＵ１５３０及びメモリ１５４０の内容を含んでもよいが、重複内容については、説明を省略する。
【０１４０】
また、ＧＰＵ１６３０は、タイル基盤レンダリング（tile-based  rendering）を行うことができる。タイル基盤という用語は、映像の各フレームを複数のタイルに区分した（divideまたはpartitioning）後、タイル単位でレンダリングを行うことを意味する。タイル基盤のアーキテクチャは、ピクセル単位でフレームを処理するときより演算量が少なくなるために、スマートフォン、タブレットデバイスのように、比較的処理性能が低いモバイルデバイス（または、エンベデッドデバイス）で使用するグラフィックスレンダリング方法でもある。以下では、説明の便宜性のために、ＧＰＵ１６３０がレンダリングを行うという表現は、ＧＰＵ１６３０がタイル基盤レンダリングを行うという意味を含むものとする。
【０１４１】
ＧＰＵ１６３０は、一実施形態によって、スケジューラ１６３２、グラフィックスパイプライン（graphics pipeline）１６３４及びタイルバッファ１６３６を含んでもよい。図１６に図示されたＧＰＵ１６３０は、本実施形態に係わる構成要素だけが図示されている。従って、図１６に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１４２】
スケジューラ１６３２は、一実施形態によるデバイスドライバ１６２０から、両眼視差を有する第１映像及び第２映像に対する少なくとも１つのドローコマンド及び状態情報を受信することができる。
【０１４３】
スケジューラ１６３２は、一実施形態によって、少なくとも１つのドローコマンドを所定の単位を有するバッチに分割することができ、バッチをグラフィックスパイプライン１６３４に順次に割り当てることができる。例えば、スケジューラ１６３２は、１００個のプリミティブ（primitive）に対するドローコマンドを、２０個のプリミティブに対するドローコマンドの単位を有するバッチに分割し、ドローコマンドを５個のバッチとして、グラフィックスパイプライン１６３４に順次に割り当てることができる。また、一実施形態によって、スケジューラ１６３２が、バッチをグラフィックスパイプライン１６３４に割り当てる場合、スケジューラ１６３２は、１つのバッチを、第１映像及び第２映像それぞれのために、グラフィックスパイプライン１６３４に２回ずつ割り当てることができる。すなわち、スケジューラ１６３２は、バッチのうち第１バッチをグラフィックスパイプライン１６３４に割り当てる場合、第１映像のために、第１バッチをグラフィックスパイプライン１６３４に割り当てることができ、次に、第２映像のために、第１バッチをグラフィックスパイプライン１６３４に割り当てることができる。
【０１４４】
グラフィックスパイプライン１６３４は、一実施形態によって、割り当てられたバッチによって、第１映像及び第２映像それぞれに係わるタイルビニング（tile  binning）を行うことができる。タイルビニングは、第１映像及び第２映像を、所定の個数のタイルに分割し、第１映像及び第２映像の各タイル上で、少なくとも１つのドローコマンドが遂行されるか否かということを示すビニング情報を生成するプロセスでもある。さらに具体的には、タイルビニングは、第１映像を具現化するための第１フレーム、及び第２映像を具現化するための第２フレームそれぞれを、所定の個数のタイルに分割するのである。例えば、１００×１００ピクセルの第１フレームを、４個のタイルに分割すれば、１個のタイルの大きさは、２５×２５ピクセルになる。従って、以下では、第１映像を所定の個数のタイルに分割する内容は、第１映像を具現化するための第１フレームを所定の個数のタイルに分割する内容と同等であると見て、第１映像のタイルという表現は、第１映像を具現化するための第１フレームに含まれたタイルという表現と同等であると見る。また、タイルビニングは、二次元または三次元の客体を構成するバーテックス（vertices）、プリミティブ（primitives）またはパッチ（patches）が、第１映像及び第２映像のいずれのタイルに含まれるかということを示すタイルリストを生成するプロセスでもある。また、タイルビニングは、第１映像及び第２映像の各タイルに含まれたバーテックスまたはプリミティブに係わる情報を獲得するプロセスでもある。バーテックスまたはプリミティブに係わる情報の例としては、バーテックスまたはプリミティブの識別子、位置、色相及び質感に係わる情報にもなる。
【０１４５】
一実施形態によって、グラフィックスパイプライン１６３４は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報によって、第１映像及び第２映像それぞれに係わるタイルビニングを行うことができる。一実施形態によって、グラフィックスパイプライン１６３４は、割り当てられたバッチのうち第１バッチ、及び第１バッチと関連した状態情報を受信することができる。第１バッチと関連した状態情報は、第１映像及び第２映像それぞれのカメラ視点情報を含むので、グラフィックスパイプライン１６３４は、第１バッチを１回だけ割り当てられても、第１バッチ、及び第１バッチと関連した状態情報によって、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。また、一実施形態によって、グラフィックスパイプライン１６３４は、第１バッチ、及び第１バッチと関連した状態情報を第１映像及び第２映像それぞれに対して２回割り当てられ、グラフィックスパイプライン１６３４は、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。
【０１４６】
グラフィックスパイプライン１６３４は、タイルビニングを行い、少なくとも１つのドローコマンドが、第１映像及び第２映像のいずれのタイル上で遂行されるかということを示すビニング情報（binning information）を生成することができる。一実施形態によって、グラフィックスパイプライン１６３４は、タイルビニングの遂行結果として生成されたビニング情報を、タイルバッファ１６３６またはメモリ１６４０に保存することができる。
【０１４７】
グラフィックスパイプライン１６３４は、生成されたビニング情報に基づいて、第１映像のタイルそれぞれに対するレンダリングを行うことができる。
【０１４８】
一実施形態によって、グラフィックスパイプライン１６３４は、第１映像のタイルである第１タイルないし第ｎタイルに対するレンダリングを順次に行い、第１タイルないし第ｎタイルそれぞれの深度バッファまたはカラーバッファを生成することができる。また、タイルバッファ１６３６は、順次に生成された少なくとも１つのタイルの深度バッファまたはカラーバッファを、許容可能な容量の範囲まで臨時に保存することができる。次に、flush命令語によって、一時的に保存された少なくとも１つの深度バッファまたはカラーバッファは、メモリ１６４０に保存される。従って、第１映像のタイルである第１タイルないし第ｎタイルそれぞれの深度バッファは、第１映像の深度バッファとしてメモリ１６４０に保存される。また、第１映像のタイルである第１タイルないし第ｎタイルそれぞれのカラーバッファは、第１映像のカラーバッファとしてメモリ１６４０に保存される。
【０１４９】
次に、グラフィックスパイプライン１６３４は、メモリ１６４０に保存された第１映像の深度バッファ及びカラーバッファを基に再投影を行い、第２映像の深度バッファ及びカラーバッファを生成することができる。また、グラフィックスパイプライン１６３４は、メモリ１６４０に保存された第１映像の深度バッファ及びカラーバッファを基に再投影を行い、オクルージョンマップ、及び第２映像のカラーバッファを生成することができる。
【０１５０】
他の実施形態によって、グラフィックスパイプライン１６３４は、第１映像のタイルのうち第１タイルに対するレンダリングを行い、第１タイルの深度バッファ及びカラーバッファを生成することができる。タイルバッファ１６３６は、生成された第１タイルの深度バッファ及びカラーバッファを保存することができる。次に、グラフィックスパイプライン１６３４は、タイルバッファ１６３６に保存された第１タイルの深度バッファに基づいて、第１タイルのピクセルと対応する第２映像の第１ピクセルを決定することができる。次に、グラフィックスパイプライン１６３４は、第１映像のタイルのうち第２タイルに対するレンダリングを行い、第２タイルの深度バッファ及びカラーバッファを生成することができる。タイルバッファ１６３６は、生成された第２タイルの深度バッファ及びカラーバッファを保存することができる。次に、グラフィックスパイプライン１６３４は、タイルバッファ１６３６に保存された第２タイルの深度バッファに基づいて、第２タイルのピクセルと対応する第２映像の第２ピクセルを決定することができる。同様に、グラフィックスパイプライン１６３４は、第１映像のタイルのうち第ｎタイルに対するレンダリングを行い、第ｎタイルの深度バッファに基づいて、第ｎタイルのピクセルと対応する第２映像の第ｎピクセルを決定することができる。従って、グラフィックスパイプライン１６３４は、第２映像の第１ピクセルないし第ｎピクセルと、第２映像の残りピクセルとを区分するオクルージョンマップを生成することができ、生成されたオクルージョンマップを、メモリ１６４０に保存することができる。また、グラフィックスパイプライン１６３４は、第１タイルないし第ｎタイルのカラーバッファに基づいて、第２映像の第１ピクセルないし第ｎピクセルそれぞれのカラー値を、第１タイルないし第ｎタイルのピクセルそれぞれのカラー値であるように決定し、第２映像の残りピクセルは、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。同様に、グラフィックスパイプライン１６３４は、第１タイルないし第ｎタイルの深度バッファに基づいて、第２映像の第１ピクセルないし第ｎピクセルそれぞれの深度値を、第１タイルないし第ｎタイルのピクセルそれぞれの深度値であるように決定し、第２映像の残りピクセルは、所定値であるように決定し、第２映像の深度バッファを生成することができる。また、グラフィックスパイプライン１６３４は、生成された第２映像のカラーバッファ及び深度バッファをメモリ１６４０に保存することができる。
【０１５１】
グラフィックスパイプライン１６３４は、一実施形態によって、メモリ１６４０に保存された第２映像の深度バッファ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によって、グラフィックスパイプライン１６３４は、第２映像の深度バッファ及びカラーバッファに含まれた第２映像の第１タイルないし第ｎタイルそれぞれの深度バッファ及びカラーバッファをメモリ１６４０から順次に読み取り、タイルレンダリングを行うことができる。すなわち、グラフィックスパイプライン１６３４は、第２映像の第ｎタイルの深度バッファ及びカラーバッファをメモリ１６４０から読み取り、タイルバッファ１６３６に保存することができる。次に、グラフィックスパイプライン１６３４は、タイルバッファ１６３６に保存された第ｎタイルの深度バッファ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の第ｎタイルのピクセルを選択してレンダリングを行うことができる。レンダリング遂行結果として決定された第ｎタイルのピクセルのカラー値は、第ｎタイルのカラーバッファに保存され、第ｎタイルのカラーバッファは、メモリ１６４０に保存される。また、グラフィックスパイプライン１６３４は、一実施形態によって、メモリ１６４０に保存されたオクルージョンマップ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によって、グラフィックスパイプライン１６３４は、オクルージョンマップに基づいて、第２映像のカラーバッファに含まれた第２映像の第１タイルないし第ｎタイルそれぞれのカラーバッファをメモリ１６４０から順次に読み取り、タイルレンダリングを行うことができる。
【０１５２】
また、一実施形態によって、スケジューラ１６３２は、第２映像の第１タイルないし第ｎタイルそれぞれに対するスケジューリングを行い、スケジューリングによって、グラフィックスパイプライン１６３４は、第２映像の第１タイルないし第ｎタイルに対するタイルレンダリングを行うことができる。
【０１５３】
スケジューラ１６３２は、一実施形態によって、オクルージョンマップに基づいて、第２映像の第１タイルないし第ｎタイルそれぞれに対するスケジューリングを行うか否かということを決定することができる。次に、グラフィックスパイプライン１６３４は、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うことができる。すなわち、スケジューラ１６３２は、オクルージョンマップに基づいて決定された第２映像の所定のタイルについては、スケジューリングを省略することができ、結果として、グラフィックスパイプライン１６３４は、所定のタイルに対するレンダリングを省略することができる。一実施形態によって、スケジューラ１６３２は、オクルージョンマップに基づいて、第２映像の第１タイルのピクセルのうち第１映像のピクセルと対応するピクセルがあるか否かということを確認することができ、第１映像のピクセルと対応するピクセルが第１タイルになければ、スケジューラ１６３２は、第１タイルに対するスケジューリングを省略することができる。従って、グラフィックスパイプライン１６３４は、第２映像の第１タイルに対するレンダリングを省略することができる。また、一実施形態によって、グラフィックスパイプライン１６３４は、オクルージョンマップを生成するとき、第２映像の各タイルごとに、第１ピクセルと対応するピクセルの個数を、オクルージョンマップのヘッダ（header）情報として生成することができる。従って、スケジューラ１６３２は、オクルージョンマップのヘッダ情報を確認し、第２映像の各タイルごとにスケジューリングを行うか否かということを決定することができる。
【０１５４】
図１７は、一実施形態によるデバイス１７００に係わるブロック図を示している。
【０１５５】
デバイス１７００は、アプリケーション１７１０、デバイスドライバ１７２０、ＧＰＵ１７３０及びメモリ１７４０を含んでもよい。図１７に図示されたデバイス１７００は、本実施形態に係わる構成要素だけが図示されている。従って、図１７に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１５６】
アプリケーション１７１０、デバイスドライバ１７２０、ＧＰＵ１７３０及びメモリ１７４０は、図１６のアプリケーション１６１０、デバイスドライバ１６２０、ＧＰＵ１６３０及びメモリ１６４０の内容を含んでもよいが、重複内容については、説明を省略する。
【０１５７】
ＧＰＵ１７３０は、一実施形態によって、スケジューラ１７３２、複数のグラフィックスパイプライン１７３４及びタイルバッファ１７３６を含んでもよい。図１７に図示されたＧＰＵ１７３０は、本実施形態に係わる構成要素だけが図示されている。従って、図１７に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
【０１５８】
また、スケジューラ１７３２及びタイルバッファ１７３６は、図１６のスケジューラ１６３２及びタイルバッファ１６３６の内容を含んでもよいが、重複内容については、説明を省略する。また、複数のグラフィックスパイプライン１７３４それぞれは、図１６のグラフィックスパイプライン１６３４の内容を含んでもよいが、重複内容については、説明を省略する。
【０１５９】
スケジューラ１７３２は、一実施形態によって、少なくとも１つのドローコマンドを所定の単位を有するバッチに分割することができ、バッチを複数のグラフィックスパイプライン１７３４ごとにそれぞれ割り当てることができる。また、一実施形態によって、スケジューラ１７３２がバッチを複数のグラフィックスパイプライン１７３４それぞれに割り当てる場合、スケジューラ１７３２は、１つのバッチを、第１映像及び第２映像それぞれのために、１つのグラフィックスプロセッサに２回ずつ割り当てることができる。すなわち、スケジューラ１７３２は、バッチのうち第１バッチを複数のグラフィックスパイプライン１７３４のうち第１グラフィックスプロセッサに割り当てる場合、第１映像のために、第１バッチを第１グラフィックスプロセッサに割り当てることができ、第２映像のために、第１バッチを第１グラフィックスプロセッサに割り当てることができる。
【０１６０】
複数のグラフィックスパイプライン１７３４は、一実施形態によって、割り当てられたバッチによって、第１映像及び第２映像それぞれに係わるタイルビニングを行うことができる。
【０１６１】
一実施形態によって、複数のグラフィックスパイプライン１７３４は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報によって、第１映像及び第２映像それぞれに係わるタイルビニングを行うことができる。一実施形態によって、複数のグラフィックスパイプライン１７３４のうち第１グラフィックスプロセッサは、割り当てられたバッチのうち第１バッチ、及び第１バッチと関連した状態情報を受信することができる。第１バッチと関連した状態情報は、第１映像及び第２映像それぞれのカメラ視点情報を含むので、第１グラフィックスプロセッサは、第１バッチを１回だけ割り当てられても、第１バッチ、及び第１バッチと関連した状態情報によって、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。また、一実施形態によって、第１グラフィックスプロセッサは、第１バッチ、及び第１バッチと関連した状態情報を、第１映像及び第２映像それぞれに対して２回割り当てられ、第１グラフィックスプロセッサは、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。
【０１６２】
図１８は、ＧＰＵ１７３０がタイルビニングを行う実施形態を示している。
【０１６３】
スケジューラ１７３２は、一実施形態によって、ドローコマンド１８１０を、複数のバッチ１８２０に分割することができる。また、スケジューラ１７３２は、複数のバッチ１８２０を、第１映像に係わる複数のバッチ１８３０として、複数のグラフィックスパイプライン１７３４に割り当てることができ、複数のバッチ１８２０を、第２映像に係わる複数のバッチ１８４０として複数のグラフィックスパイプライン１７３４に割り当てることができる。すなわち、スケジューラ１７３２は、複数のバッチ１８２０を２回ずつ複数のグラフィックスパイプライン１７３４に割り当てることができる。
【０１６４】
複数のグラフィックスパイプライン１７３４は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報に基づいて、第１映像及び第２映像それぞれに係わるタイルビニングを行うことができる。
【０１６５】
また、図１８において、点線矢印で図示されているように、スケジューラ１７３２は、複数のバッチ１８２０を１回ずつだけ複数のグラフィックスパイプライン１７３４に割り当てることができる。また、スケジューラ１７３２は、複数のバッチ１８２０と関連した状態情報を、タイルバッファ１７３６に保存することができる。従って、複数のグラフィックスパイプライン１７３４それぞれは、タイルバッファ１７３６に保存された状態情報、及び複数のバッチ１８２０によって、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。
【０１６６】
従って、グラフィックスパイプラインに割り当てられたバッチは、同一プリミティブを対象にするために、割り当てられたバッチに基づいて、グラフィックスパイプラインが、第１映像及び第２映像それぞれに対して、同一プリミティブを対象にタイルビニングを行うことができ、そのことは、プリミティブに係わる情報が保存されている内部メモリへのアクセスを最小化させることができる。
【０１６７】
複数のグラフィックスパイプライン１７３４は、タイルビニングを行い、少なくとも１つのドローコマンドが、第１映像及び第２映像のいずれのタイル上で遂行されるかということを示すビニング情報を生成することができる。一実施形態によって、複数のグラフィックスパイプライン１７３４は、タイルビニングの遂行結果として生成されたビニング情報を、タイルバッファ１７３６またはメモリ１７４０に保存することができる。
【０１６８】
図１９は、一実施形態によるデバイス１５００、１６００、１７００が、両眼視差を有する第１映像及び第２映像に対するタイル基盤レンダリングを行うフローチャートを示している。
【０１６９】
図１９に図示された方法は、図１５、図１６、図１７のデバイス１５００、１６００、１７００によって遂行され、重複説明については省略する。
【０１７０】
段階Ｓ１９１０において、デバイス１５００、１６００、１７００は、少なくとも１つのドローコマンドに基づいて、両眼視差を有する第１映像及び第２映像それぞれに対してタイルビニングを行うことができる。さらに具体的には、デバイス１５００、１６００、１７００は、少なくとも１つのドローコマンド、及び少なくとも１つのドローコマンドと関連した状態情報に基づいて、タイルビニングを行うことができる。タイルビニングを行うさらに具体的な実施形態を、以下、図２０で説明する。
【０１７１】
図２０は、一実施形態によって、図１９のＳ１９１０についてさらに詳細に説明するためのフローチャートである。
【０１７２】
段階２０１０において、デバイス１７００は、一実施形態によって、少なくとも１つのドローコマンドを、所定の単位を有するバッチに分割することができ、分割されたバッチを、デバイス１７００内の複数のグラフィックスパイプラインごとにそれぞれ割り当てることができる。また、一実施形態によるデバイス１７００は、バッチそれぞれを、第１映像及び第２映像それぞれのために、複数のグラフィックスパイプラインそれぞれに２回ずつ割り当てることができる。すなわち、デバイス１７００は、バッチのうち第１バッチを、複数のグラフィックスパイプラインのうち第１グラフィックスプロセッサに割り当てる場合、第１映像のために、第１バッチを、第１グラフィックスパイプラインに割り当てることができ、第２映像のために、第１バッチを、第１グラフィックスパイプラインに割り当てることができる。
【０１７３】
段階Ｓ２０２０において、デバイス１７００は、一実施形態によって、割り当てられたバッチ、及びバッチと対応する状態情報に基づいて、第１映像及び第２映像それぞれに係わるタイルビニングを行うことができる。さらに具体的には、デバイス１７００内の複数のグラフィックスパイプラインは、バッチ、及びバッチと関連した状態情報を２回割り当てられ、それによって、複数のグラフィックスパイプラインは、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。また、複数のグラフィックスパイプラインはバッチと関連した状態情報が、第１映像及び第２映像それぞれのカメラ視点情報を含むために、バッチ及び状態情報を１回だけ割り当てられても、第１映像に係わるタイルビニング、及び第２映像に係わるタイルビニングをそれぞれ行うことができる。
【０１７４】
図１９の段階Ｓ１９２０において、デバイス１５００、１６００、１７００は、第１映像のタイルに対するレンダリングを行うことができる。すなわち、デバイス１５００、１６００、１７００は、第１映像のタイルである第１タイルないし第ｎタイルに対するレンダリングを順次に行い、第１タイルないし第ｎタイルそれぞれの深度バッファまたはカラーバッファを生成することができる。また、一実施形態によるデバイス１５００、１６００、１７００は、順次に生成された少なくとも１つのタイルの深度バッファまたはカラーバッファを、許容可能な容量の範囲まで一時的に内部バッファに保存することができる。次に、flush命令語によって、内部バッファに一時的に保存された少なくとも１つの深度バッファまたはカラーバッファは、デバイス１５００、１６００、１７００の内部メモリに保存される。従って、第１映像のタイルである第１タイルないし第ｎタイルそれぞれの深度バッファは、第１映像の深度バッファとして、デバイス１５００、１６００、１７００の内部メモリに保存される。また、第１映像のタイルである第１タイルないし第ｎタイルそれぞれのカラーバッファは、第１映像のカラーバッファとして、デバイス１５００、１６００、１７００の内部メモリに保存される。
【０１７５】
段階Ｓ１９３０において、デバイス１５００、１６００、１７００は、第１映像のタイルそれぞれの深度バッファを基に、第１映像のタイルのピクセルと対応する第２映像の一部ピクセルを決定し、再投影を行うことができる。さらに具体的には、デバイス１５００、１６００、１７００は、第１映像のタイルのうち第１タイルの深度バッファに基づいて、第１タイルのピクセルと対応する第２映像の第１ピクセルを決定することができる。次に、デバイス１５００、１６００、１７００は、第１映像のタイルのうち第２タイルの深度バッファに基づいて、第２タイルのピクセルと対応する第２映像の第２ピクセルを決定することができる。同様に、デバイス１５００、１６００、１７００は、第１映像のタイルのうち第ｎタイルの深度バッファに基づいて、第ｎタイルのピクセルと対応する第２映像の第ｎピクセルを決定することができる。従って、デバイス１５００、１６００、１７００は、第２映像の第１ピクセルないし第ｎピクセルと、第２映像の残りピクセルとを区分するオクルージョンマップを生成することができ、生成されたオクルージョンマップを内部メモリに保存することができる。また、デバイス１５００、１６００、１７００は、第１タイルないし第ｎタイルのカラーバッファに基づいて、第２映像の第１ピクセルないし第ｎピクセルそれぞれのカラー値を、第１タイルないし第ｎタイルのピクセルそれぞれのカラー値であるように決定し、第２映像の残りピクセルは、任意の値であるように決定し、第２映像のカラーバッファを生成することができる。同様に、デバイス１５００、１６００、１７００は、第１タイルないし第ｎタイルの深度バッファに基づいて、第２映像の第１ピクセルないし第ｎピクセルそれぞれの深度値を、第１タイルないし第ｎタイルのピクセルそれぞれの深度値であるように決定し、第２映像の残りピクセルは、所定値であるように決定し、第２映像の深度バッファを生成することができる。また、デバイス１５００、１６００、１７００は、生成された第２映像のカラーバッファ及び深度バッファを内部メモリに保存することができる。
【０１７６】
段階Ｓ１９４０において、デバイス１５００、１６００、１７００は、再投影に基づいて、第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス１５００、１６００、１７００は、一実施形態によって、保存済みの第２映像の深度バッファ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によるデバイス１５００、１６００、１７００は、第２映像の深度バッファ及びカラーバッファに含まれた第２映像の第１タイルないし第ｎタイルそれぞれの深度バッファ及びカラーバッファを内部メモリから順次に読み取り、タイルレンダリングを行うことができる。すなわち、デバイス１５００、１６００、１７００は、第２映像の第ｎタイルの深度バッファ及びカラーバッファを内部メモリから読み取り、内部バッファに保存することができる。次に、デバイス１５００、１６００、１７００は、内部バッファに保存された第ｎタイルの深度バッファ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の第ｎタイルのピクセルを選択してレンダリングを行うことができる。レンダリング遂行結果として決定された第ｎタイルのピクセルのカラー値は、第ｎタイルのカラーバッファに保存され、第ｎタイルのカラーバッファは、内部メモリに保存される。また、デバイス１５００、１６００、１７００は、他の実施形態によって、保存済みのオクルージョンマップ及びカラーバッファに基づいて、第１映像のピクセルと対応しない第２映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によるデバイス１５００、１６００、１７００は、オクルージョンマップに基づいて、第２映像のカラーバッファに含まれた第２映像の第１タイルないし第ｎタイルそれぞれのカラーバッファを内部メモリから順次に読み取り、タイルレンダリングを行うことができる。
【０１７７】
また、一実施形態によるデバイス１５００、１６００、１７００は、第２映像の第１タイルないし第ｎタイルに対するスケジューリングを行うことができ、スケジューリングによってデバイス１５００、１６００、１７００は、第２映像の第１タイルないし第ｎタイルに対するタイルレンダリングを行うことができる。
【０１７８】
デバイス１５００、１６００、１７００は、一実施形態によって、オクルージョンマップに基づいて、第２映像の第１タイルないし第ｎタイルそれぞれに対するスケジューリングを行うか否かということを決定することができる。次に、デバイス１５００、１６００、１７００は、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うことができる。すなわち、デバイス１５００、１６００、１７００は、オクルージョンマップによって決定された第２映像の所定のタイルについては、スケジューリングを省略することができ、結果として、デバイス１５００、１６００、１７００は、所定のタイルに対するレンダリングを省略することができる。一実施形態によるデバイス１５００、１６００、１７００は、オクルージョンマップに基づいて、第２映像の第１タイルのピクセルのうち第１映像のピクセルと対応するピクセルがあるか否かということを確認することができ、第１映像のピクセルと対応するピクセルが第１タイルになければ、デバイス１５００、１６００、１７００は、第１タイルに対するスケジューリングを省略することができる。従って、デバイス１５００、１６００、１７００は、第２映像の第１タイルに対するレンダリングを省略することができる。また、一実施形態によるデバイス１５００、１６００、１７００は、オクルージョンマップを生成するとき、第２映像の各タイルごとに、第１ピクセルと対応するピクセルの個数をオクルージョンマップのヘッダ情報として生成することができる。従って、デバイス１５００、１６００、１７００は、オクルージョンマップのヘッダ情報を確認し、第２映像の各タイルごとに、スケジューリングを省略するか否かということを決定することができる。
【０１７９】
図２１は、一実施形態によるデバイス２１００のブロック図を示している。
【０１８０】
一実施形態によるデバイス２１００は、ＧＰＵ２１５０、ＣＰＵ２１４０、メモリ２１６０、バス２１７０、ディスプレイ部２１１０、入力部２１２０及び通信部２１３０を含む。図２１に図示されたデバイス２１００には、実施形態に係わる構成要素だけが図示されている。従って、図２１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当該技術分野の当業者であるならば、理解することができるであろう。
【０１８１】
ＧＰＵ２１５０及びメモリ２１６０は、図１のＧＰＵ１１０及びメモリ１２０で説明した内容、図４のＧＰＵ４１０及びメモリ４２０で説明した内容、図１１のＧＰＵ１１１０及びメモリ１１２０で説明した内容、図１５のＧＰＵ１５３０及びメモリ１５４０、図１６のＧＰＵ１６３０及びメモリ１６４０、または図１７のＧＰＵ１７３０及びメモリ１７４０で説明した内容を含んでもよいが、重複説明は省略する。
【０１８２】
ＣＰＵ２１４０は、デバイス２１００の全般的な動作及び機能を制御するハードウェアである。例えば、ＣＰＵ２１４０は、運用体制（ＯＳ：operating  system）を駆動し、ＧＰＵ２１５０のためのグラフィックスＡＰＩ（application  program  interface）を呼び出し、ＧＰＵ２１５０のドライバを実行させることができる。また、ＣＰＵ２１４０は、メモリ２１６０に保存された多様なアプリケーション、例えば、ウェブブラウジングアプリケーション、ゲームアプリケーション、ビデオアプリケーションなどを実行することができる。
【０１８３】
ディスプレイ部２１１０は、デバイス２１００で処理されていたり、あるいは処理される情報などの各種情報をユーザに表示するための表示インターフェーシング手段である。ディスプレイ部２１１０は、デバイス２１００で処理される情報をユーザに視覚的であって直観的に提供するためのＧＵＩ（graphic  user  interface）をディスプレイすることもできる。例えば、ディスプレイ部２１１０は、ＧＰＵ２１５０によって処理されたグラフィックデータをディスプレイすることができる。ディスプレイ部２１１０は、ＬＣＤ（liquid  crystal  display）、ＬＥＤ（light  emitting  diode）、ＰＤＰ（plasma display panel）などの多様なディスプレイパネルによって具現化される。
【０１８４】
入力部２１２０は、ユーザから情報を入力されるための、入力インターフェーシング手段である。入力部２１２０は、タッチパッド、トラックボール、マウス、キーボード、ゲーム用コントローラのような形態によって具現化される。ディスプレイ部２１１０と入力部２１２０は、一体化されたタッチスクリーンのハードウェアによっても具現化される。
【０１８５】
通信部２１３０は、移動通信のための移動通信モジュール、有線／無線ＬＡＮ（local  area  network）モジュール、近距離無線通信のためのＷｉ−Ｆｉ（wireless  fidelity）モジュール、Bluetooth（登録商標）モジュール、ＮＦＣ（near  field  communication）モジュールなどを含んでもよい。
【０１８６】
上述の本実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部（permanent  storage）；外部装置と通信する通信ポート；タッチパネル、キー（key）、ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムよってに具現化される方法は、前記プロセッサ上で実行可能なコンピュータで読み取り可能なコードまたはプログラム命令として、コンピュータで読み取り可能な記録媒体上に保存される。ここで、コンピュータで読み取り可能な記録媒体として、磁気記録媒体（例えば、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、フロッピー（登録商標）ディスク、ハードディスクなど）及び光学的判読媒体（例えば、ＣＤ（compact  disc）−ＲＯＭ、ＤＶＤ（digital  versatile  disc））などがある。コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式で、コンピュータが判読可能なコードが保存されて実行される。該媒体は、コンピュータによって判読可能であり、メモリに保存され、プロセッサで実行される。
【０１８７】
本実施形態は、機能的なブロック構成及び多様な処理段階において示される。そうした機能ブロックは、特定機能を実行する多様な個数のハードウェア構成及び／またはソフトウェア構成によって具現化される。例えば、該実施形態は、１以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック（logic）、ルックアップテーブル（look-up  table）のような直接回路構成を採用することができる。構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されるところと類似して、本実施形態は、データ構造、プロセス、ルーチンまたは他のプログラミング構成の組み合わせによって具現化される多様なアルゴリズムを含み、Ｃ、Ｃ＋＋、ジャバ（登録商標（Java））、アセンブラ（assembler）のようなプログラミング言語またはスクリプティング言語によって具現化される。機能的な側面は、１以上のプロセッサで実行されるアルゴリズムによって具現化される。また、本実施形態は、電子的な環境設定、信号処理及び／またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、広く使用され、機械的であって物理的な構成として限定されるものではない。前記用語は、プロセッサなどと連繋し、ソフトウェアの一連の処理（routines）の意味を含んでもよい。
【０１８８】
本実施形態で説明する特定の実施例は、例示であり、いかなる方法によっても技術的範囲を限定するものではない。明細書の簡潔化のために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の連結または連結部材は、機能的な連結及び／または物理的または回路的な連結を例示的に示したものであり、実際の装置では、代替可能であったり追加されたりする多様な機能的な連結、物理的な連結または回路の連結として示される。
【０１８９】
本明細書（特に、特許請求の範囲で）において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれもに該当する。また、範囲（range）を記載した場合、前記範囲に属する個別的な値を含むものであり（それに反する記載がなければ）、詳細な説明において、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載するか、あるいはそれに反する記載がなければ、前記段階は、適切な順序で遂行される。必ずしも前記段階の記載順序に限定されるものではない。全ての例または例示的な用語（例えば、など）の使用は、単に技術的思想について詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲またはその均等物の範疇内で、設計条件及びファクタによって構成されるということが分かるであろう。
【産業上の利用可能性】
【０１９０】
本発明の両眼視差映像に対するレンダリング方法及びその装置は、例えば、グラフィック関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１９１】
１００、４００、１１００、１５００、１６００、１７００、２１００    デバイス
１１０、４１０、１１１０、１５３０、１６３０、１７３０、２１５０    ＧＰＵ
１２０、４２０、１１２０、１５４０、１６４０、１７４０、２１６０    メモリ
１３０、３０、１１３０、２１７０    バス
１５１０、１６１０、１７１０    アプリケーション
１５２０、１６２０、１７２０    デバイスドライバ
２１１０    ディスプレイ部
２１２０    入力部
２１３０    通信部
２１４０    ＣＰＵ
【図１】
0006530728.tif 000003
【図２Ａ】
0006530728.tif 000004
【図２Ｂ】
0006530728.tif 000005
【図３】
0006530728.tif 000006
【図４】
0006530728.tif 000007
【図５】
0006530728.tif 000008
【図６】
0006530728.tif 000009
【図７】
0006530728.tif 000010
【図８】
0006530728.tif 000011
【図９】
0006530728.tif 000012
【図１０】
0006530728.tif 000013
【図１１】
0006530728.tif 000014
【図１２】
0006530728.tif 000015
【図１３】
0006530728.tif 000016
【図１４】
0006530728.tif 000017
【図１５】
0006530728.tif 000018
【図１６】
0006530728.tif 000019
【図１７】
0006530728.tif 000020
【図１８】
0006530728.tif 000021
【図１９】
0006530728.tif 000022
【図２０】
0006530728.tif 000023
【図２１】
0006530728.tif 000024