JP6530728B2 - 両眼視差映像に対するレンダリング方法及びその装置 - Google Patents

両眼視差映像に対するレンダリング方法及びその装置 Download PDF

Info

Publication number
JP6530728B2
JP6530728B2 JP2016089073A JP2016089073A JP6530728B2 JP 6530728 B2 JP6530728 B2 JP 6530728B2 JP 2016089073 A JP2016089073 A JP 2016089073A JP 2016089073 A JP2016089073 A JP 2016089073A JP 6530728 B2 JP6530728 B2 JP 6530728B2
Authority
JP
Japan
Prior art keywords
image
pixel
pixels
rendering
tile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016089073A
Other languages
English (en)
Other versions
JP2016212859A (ja
Inventor
昇 熏 陳
昇 熏 陳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2016212859A publication Critical patent/JP2016212859A/ja
Application granted granted Critical
Publication of JP6530728B2 publication Critical patent/JP6530728B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/15Processing image signals for colour aspects of image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Devices (AREA)

Description

本発明は、レンダリング装置が遂行する両眼視差映像に対するレンダリング方法に関する。
GPU(graphics
processing unit)のようなグラフィックプロセッシング装置は、デバイスにおいてグラフィックスデータをレンダリングする役割を行う。一般的に、グラフィックプロセッシング装置は、二次元または三次元の客体に該当するグラフィックスデータを、二次元ピクセル表現に変換し、ディスプレイのためのフレームを生成する。デバイスの種類としては、PC(personal computer)、ノート型パソコン、ビデオゲーム用コンソールだけではなく、スマートフォン、タブレットデバイス、ウェアラブルデバイスのようなエンベデッド(embedded)デバイスも含まれる。スマートフォン、タブレットデバイス、ウェアラブルデバイスのようなエンベデッドデバイスは、比較的低い演算処理能力と、多くの電力消耗との問題によって、十分なメモリ空間とプロセッシングパワーとを確保しているPC、ノート型パソコン、ビデオゲーム用コンソールのようなワークステーションと同一のグラフィックプロセッシング性能を備え難い。しかし、最近、全世界的にスマートフォンまたはタブレットデバイスのような携帯用デバイスが広く普及されるにつれ、ユーザは、スマートフォンまたはタブレットデバイスを介して、ゲームをプレイしたり、映画、ドラマなどのコンテンツを鑑賞したりする頻度が急激に高くなった。それにより、グラフィックプロセッシング装置の製造会社は、ユーザの需要に足並みを合わせ、エンベデッドデバイスにおいても、グラフィックプロセッシング装置の性能及び処理効率を高めるための多くの研究を進めている。
本発明が解決しようとする課題は、両眼視差映像に対するレンダリングを行う装置及びその方法を提供するところにある。本実施形態が扱う技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されるであろう。
一側面によって、両眼視差(binocular disparity)を有する第1映像及び第2映像に対するレンダリング(tile based rendering)を行う方法は、第1映像に対するレンダリングを行い、第1映像の深度情報を生成する段階と、第1映像の深度情報を基に、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、再投影(reprojection)を行う段階と、再投影に基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行う段階と、を含んでもよい。
また、再投影を行う段階は、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップ(occlusion map)を生成する段階を含み、選択してレンダリングを行う段階は、オクルージョンマップに基づいて、第2映像の他の一部ピクセルを選択してラスタ化(rasterization)を行う段階を含んでもよい。
また、再投影を行う段階は、第2映像の一部ピクセルそれぞれには第1値を設定し、第2映像の他の一部ピクセルそれぞれには第2値を設定し、オクルージョンマップ(occlusion map)を生成する段階を含み、選択してレンダリングを行う段階は、第2値が設定された第2映像の他の一部ピクセルを選択してラスタ化を行う段階を含んでもよい。
また、再投影を行う段階は、第2映像の他の一部ピクセルを含む第1ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成する段階を含み、選択してレンダリングを行う段階は、拡張されたオクルージョンマップに基づいて、第1ピクセルグループを選択してラスタ化を行う段階を含んでもよい。
また、再投影を行う段階は、第2映像の一部ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第2映像の他の一部ピクセルそれぞれの深度値は、既設定値であるように決定し、第2映像の深度バッファを生成する段階を含み、選択してレンダリングを行う段階は、第2映像の深度バッファを利用して、第2映像の一部ピクセル、及び他の一部ピクセルに対する深度テスト(Z−test)を行う段階と、深度テストを介して選択された第2映像内の他の一部ピクセルに対するピクセルシェーディング(pixel shading)を遂行する段階と、を含んでもよい。
また、再投影を行う段階は、第1映像に対するレンダリング結果として生成される第1映像のカラー情報を基に、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、既設定値であるように決定し、第2映像のカラーバッファを生成する段階を含み、選択してレンダリングを行う段階は、第2映像の他の一部ピクセルそれぞれのカラー値を計算する段階と、既設定値に決定された第2映像の他の一部ピクセルそれぞれのカラー値を、計算された前記第2映像の他の一部ピクセルそれぞれのカラー値に修正し、第2映像のカラーバッファを修正する段階と、を含んでもよい。
また、第1映像に対するレンダリングを行い、第1映像の深度情報を生成する段階は、第1映像及び第2映像に対するドローコマンド(draw command)を受信する段階と、受信されたドローコマンドに基づいて、第1映像に対するレンダリングを行う段階と、を含んでもよい。
また、ドローコマンドは、前記第1映像及び第2映像それぞれに係わる状態情報(state information)を含んでもよい。
また、本方法は、第1映像及び第2映像に対するレンダリングがタイル基盤レンダリング(tile based rendering)である場合、第1映像のタイルそれぞれに対するレンダリングを行い、タイルそれぞれの深度バッファを生成する段階と、タイルそれぞれの深度バッファを基に、タイルそれぞれのピクセルと対応する第2映像の一部ピクセルを決定し、再投影を行う段階と、再投影に基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行う段階と、を含んでもよい。
また、本方法は、第1映像及び第2映像に対するレンダリングがタイル基盤レンダリングである場合、第1映像及び第2映像に対するドローコマンドに基づいて、第1映像及び第2映像に係わるタイルビニング(tile binning)を行う段階をさらに含んでもよい。
また、タイルビニングを行う段階は、ドローコマンドをバッチに分け、バッチを複数のグラフィックスパイプラインに割り当てる段階と、バッチのうち第1バッチを複数のグラフィックスパイプラインのうち第1グラフィックスパイプラインに割り当てる場合、第1バッチ、及び第1バッチと対応する状態情報に基づいて、第1映像及び第2映像それぞれに係わるタイルビニングを行う段階と、を含んでもよい。
また、本方法は、第1映像及び第2映像に対するレンダリングが、タイル基盤レンダリングである場合、選択してレンダリングを行う段階は、オクルージョンマップに基づいて、第2映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定する段階と、決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行う段階と、を含んでもよい。
他の側面によって、両眼視差(binocular disparity)を有する第1映像及び第2映像に対するレンダリングを行うデバイスにおいて、第1映像に対するレンダリングを行い、第1映像の深度情報を生成するGPUと、第1映像の深度情報を保存するメモリと、を含み、該GPUは、第1映像の深度情報を基に、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、再投影を行い、再投影に基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。
さらに他の側面によって、両眼視差を有する第1映像及び第2映像に対するレンダリングを行う方法を具現化するためのプログラムが記録されたコンピュータで判読可能な記録媒体が提供される。
本発明によれば、両眼視差を有する第1映像及び第2映像において、第1映像のピクセルと対応する第2映像の一部ピクセルについては、再投影を行い、第2映像の他の一部ピクセルについては、選択的レンダリングを行うことにより、第2映像をレンダリングするための演算量を減少させることができる。
一実施形態によるデバイスに係わるブロック図である。 GPUが第1映像のピクセルと対応する第2映像のピクセルを決定する一実施形態を示す図面である。 GPUが第1映像のピクセルと対応する第2映像のピクセルを決定する一実施形態を示す図面である。 一実施形態によるデバイスが両眼視差を有する第1映像及び第2映像に対するレンダリングを行う方法を示す図面である。 一実施形態によるデバイスに係わるブロック図である。 シェーダがオクルージョンマップを生成する一実施形態を示す図面である。 ラスタライザがオクルージョンマップに基づいてラスタ化を行う一実施形態を示す図面である。 GPUが第2映像のカラーバッファを修正する実施形態を示す図面である。 シェーダがオクルージョンマップを拡張する実施形態を示す図面である。 GPUが、拡張されたオクルージョンマップに基づいて、第2映像のカラーバッファを修正する実施形態を示す図面である。 一実施形態による、デバイスが両眼視差を有する第1映像及び第2映像に対するレンダリングを行う方法を示すフローチャートである。 一実施形態によるデバイスに係わるブロック図である。 シェーダが第2映像の深度バッファを生成する一実施形態を示す図面である。 GPUが第2映像のカラーバッファを修正する実施形態を示す図面である。 一実施形態による、デバイスが両眼視差を有する第1映像及び第2映像に対するレンダリングを行う方法を示すフローチャートである。 一実施形態によるデバイスに係わるブロック図である。 一実施形態によるデバイスに係わるブロック図である。 一実施形態によるデバイスに係わるブロック図である。 GPUがタイルビニングを行う実施形態を示す図面である。 一実施形態による、デバイスが両眼視差を有する第1映像及び第2映像に対するタイル基盤レンダリングを行う方法を示すフローチャートである。 一実施形態による、図19のS1910についてさらに詳細に説明するためのフローチャートである。 一実施形態によるデバイスのブロック図である。
以下、添付された図面を参照しながら、例示のためだけの実施形態について詳細に説明する。下記実施形態は、技術的思想を具体化するためだけのものであり、権利範囲を制限したり限定したりするものではないことは言うまでもない。詳細な説明及び実施形態から、当該技術分野に属する当業者であるならば、容易に類推することができるものは、権利範囲に属すると解釈される。
本明細書で使用される「構成される」または「含む」というような用語は、明細書上に記載されたさまざまな構成要素、またはさまざまな段階を必ずしもいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれないこともあり、または追加的な構成要素または段階をさらに含んでもよいと解釈されなければならない。
また、本明細書で使用される「第1」または「第2」のように序数を含む用語は、多様な構成要素についての説明に使用することができるが、かような用語は、1つの構成要素を他の構成要素からの区別であったり、説明の便宜であったりする目的で使用され得る。
また、本明細書で言及されるデバイス100、400、1100、1500、1600、1700、2100は、デスクトップコンピュータ、ノート型パソコン、スマートフォン、PDA(personal digital assistant)、携帯型メディアプレイヤ、ビデオゲーム用コンソール、テレビセットトップボックス、タブレットデバイス、電子書籍リーダ、ウェアラブルデバイスなどを例として挙げることができるが、それらに制限されるものではない。また、デバイス100、400、1100、1500、1600、1700、2100は、仮想現実(virtual reality)を実現するためのデバイスにもなる。一例として、デバイス100、400、1100、1500、1600、1700、2100は、HMD(head mounted display)にもなる。すなわち、デバイス100、400、1100、1500、1600、1700、2100は、コンテンツのディスプレイのためのグラフィックスプロセッシング機能を有する装置であり、デバイス100、400、1100、1500、1600、1700、2100の範疇には、多様な装置が含まれてもよい。
また、本明細書で言及されるGPU(graphics processing unit)110、410、1110、1530、1630、1730、2150は、グラフィック専用プロセッサであり、三次元イメージ上の三次元客体を、ディスプレイ用の二次元イメージにレンダリングするために具現化されたハードウェアでもある。例えば、GPU110、410、1110、1530、1630、1730、2150は、シェーディング、ブレンディング、イルミネーティングのような多様な機能、及びディスプレイされるピクセルに係わるピクセル値を生成するための多様な機能を遂行することもできる。
また、本明細書で言及されるメモリ120、420、1120、1540、1640、1740、2160は、デバイス100、400、1100、1500、1600、1700、2100内で処理される各種データを保存するハードウェアであり、例えば、メモリ120、420、1120、1540、1640、1740、2160は、GPU110、410、1110、1530、1630、1730、2150で処理されたデータ、及び処理されるデータを保存することができる。また、メモリ120、420、1120、1540、1640、1740、2160は、GPU110、410、1110、1530、1630、1730、2150によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ120、420、1120、1540、1640、1740、2160は、DRAM(dynamic random access memory)・SRAM(static random access memory)のようなRAM(random access memory)、ROM(read only memory)、EEPROM(electrically erasable and programmable read only memory)、CD(compact disc)−ROM、ブルーレイ(登録商標(Blu-ray))、他の光学ディスクストレージ、HDD(hard disk drive)、SSD(solid state drive)またはフラッシュメモリを含み、さらにデバイス100、400、1100、1500、1600、1700、2100にアクセスされる外部の他のストレージデバイスを含んでもよい。
また、本明細書で言及されるバス130、430、1130、2170は、デバイス100、400、1100、1500、1600、1700、2100内のハードウェア間でデータを送受信することができるように、ハードウェアを連結させるハードウェアであり、バス130、430、1130、2170は、例えば、PCI(peripheral component interconnect)バス、PCI Expressバスのような多様な種類を含んでもよい。
また、本明細書で言及されるGPU110、410、1110、1530、1630、1730、2150は、両眼視差映像(binocular disparity image)に係わるレンダリングを行うことができる。すなわち、GPU110、410、1110、1530、1630、1730、2150は、両眼視差映像を示すために、両眼視差を有する第1映像及び第2映像それぞれに対するレンダリングを行うことができる。例えば、第1映像は、左目(left eye)に係わる映像、第2映像は、右目(right eye)に係わる映像でもある。以下では、説明の便宜性のために、両眼視差を有する第1映像及び第2映像を、第1映像及び第2映像と縮約して表現する。
以下では、図面を参照し、本発明の実施例について詳細に説明する。
図1は、一実施形態によるデバイス100に係わるブロック図を示している。
デバイス100は、一実施形態によって、GPU110、メモリ120及びバス130を含んでもよい。図1に図示されたデバイス100は、本実施形態に係わる構成要素だけが図示されている。従って、図1に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
GPU110は、一実施形態によって、第1映像に対するレンダリングを行うことができる。GPU110は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度情報を生成することができる。第1映像の深度情報は、第1映像のピクセルそれぞれの深度値を含んでもよい。例えば、第1映像の深度情報は、第1映像の深度バッファ(depth buffer)にもなる。また、GPU110は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラー情報を生成することができる。第1映像のカラー情報は、第1映像の各ピクセルのカラー値を含んでもよい。例えば、第1映像のカラー情報は、第1映像のカラーバッファ(color buffer)にもなる。
メモリ120は、一実施形態によって、第1映像に対するレンダリング結果として生成される第1映像の深度情報を保存することができる。また、一実施形態によって、メモリ120は、第1映像に対するレンダリング結果として生成される第1映像のカラー情報を保存することができる。
GPU110は、一実施形態によって、メモリ120に保存された第1映像の深度情報またはカラー情報に基づいて、再投影(reprojection)を行うことができる。再投影は、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、第2映像の一部ピクセルのピクセル値を、第1映像のピクセルのピクセル値であるように決定することを意味する。ピクセル値の例としては、ピクセルが有する深度値またはカラー値にもなる。一実施形態によって、再投影は、第1映像の深度情報及びカラー情報に基づいて、オクルージョンマップ(occlusion map)、及び第2映像のカラーバッファを生成する内容を含んでもよい。また、再投影は、第1映像の深度情報及びカラー情報に基づいて、第2映像の深度バッファ、及び第2映像のカラーバッファを生成する内容を含んでもよい。
第1映像が第1視点を基準に客体をレンダリングした映像であり、第2映像が第2視点を基準に同一客体をレンダリングした映像である場合、客体の所定部分が第1映像の第1ピクセルで見られ、同一客体の所定部分が第2映像の第2ピクセルで見られるならば、第1映像の第1ピクセルと、第2映像の第2ピクセルは、互いに対応すると見られる。例えば、第1視点が左目であり、第2視点が右目である場合、第1映像の(x,y)座標を有するピクセルと対応する第2映像のピクセルの座標は(x+d,y)にもなる。すなわち、第1映像のピクセルと対応する第2映像のピクセルは、x軸上で変化量dほど差を有することができる。また、第1視点では見える客体が、第2視点では見えないこともあるために、第1映像の全てのピクセルが、第2映像のピクセルと対応するものではない。すなわち、第1映像のピクセルと対応関係を有する第2映像のピクセルは、第2映像の一部ピクセルにもなる。従って、第1映像のピクセルと対応関係を有する第2映像のピクセルが、第2映像の一部ピクセルであるならば、第2映像の他の一部ピクセルは、第1映像のピクセルと対応関係を有さないピクセルにもなる。
一実施形態によって、GPU110は、第1映像の深度情報に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができる。さらに具体的な実施形態は、以下、図2で説明する。
図2A及び図2Bは、GPU110が、第1映像のピクセルと対応する第2映像のピクセルを決定する実施形態を示している。
図2Aは、第1カメラ視点212を基準にレンダリングされた第1映像214を示す。図2Bは、第2カメラ視点222を基準にレンダリングされた第2映像224を示す。例えば、第1カメラ視点212は、左目にもなり、第1映像214は、左目映像にもなる。また、第2カメラ視点222は、右目にもなり、第2映像224は、右目映像にもなる。図2Aによれば、深度値zを有する客体216は、第1映像214のβピクセルで見られるので、第1映像214のβピクセルの座標は、(x’,y,z)と表現される。
次に、GPU110は、第1カメラ視点212及び第2カメラ視点222に係わる情報、及びβピクセルの座標情報に基づいて、βピクセルと対応する第2映像224のαピクセルを決定することができる。すなわち、図2Aの客体216と同一客体218が第2映像224のαピクセルで見られる。一実施形態によって、GPU110は、下記数式(1)を介して、βピクセルと対応する第2映像224のαピクセルを決定することができる。
数式(1)において、b及びfは、第1カメラ視点212及び第2カメラ視点222に係わる情報であり、bは、baselineを意味し、fは、focal lengthを意味する。また、zは、第1映像214のβピクセルの深度値を意味し、dは、βピクセルのx座標の変化量を示す。従って、GPU110は、数式(1)を介してdを計算することができ、第2映像224のαピクセルの座標として、(x,y,z)=(x’−d,y,z)を決定することができる。すなわち、GPU110は、第2映像224に対するレンダリングを行わず、カメラ視点に係わる情報、及び第1映像214のβピクセルの深度値を利用して、βピクセルと対応する第2映像224のαピクセルを決定することができる。従って、GPU110は、第1映像214のβピクセルの深度値またはカラー値を、第2映像224のαピクセルの深度値またはカラー値であるように決定することができる。
また、図1のGPU110は、一実施形態によって、再投影を行い、オクルージョンマップを生成することができる。オクルージョンマップは、第1映像のピクセルと対応する第2映像の一部ピクセルと、第1映像のピクセルと対応しない第2映像の他の一部ピクセルとを区分するためのマップを意味する。従って、GPU110は、第1映像の深度情報に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができ、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
また、一実施形態によって、GPU110は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。任意の値は、ユーザによる既設定値でもある。次に、GPU110は、第2映像のカラーバッファに基づいて、任意の値に決定された第2映像の他の一部ピクセルを確認することにより、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
一実施形態によって、メモリ120は、GPU110によって生成されたオクルージョンマップ、または第2映像のカラーバッファを保存することができる。
GPU110は、一実施形態によって、メモリ120に保存されたオクルージョンマップまたはカラーバッファに基づいて、第2映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、GPU110は、メモリ120に保存されたオクルージョンマップに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。オクルージョンマップでは、第1映像のピクセルと対応する第2映像の一部ピクセル、第1映像のピクセルと対応しない第2映像の他の一部ピクセルが区分されているために、GPU110は、オクルージョンマップによって、第2映像の一部ピクセルについては、ラスタ化(rasterization)を行わず、第2映像の他の一部ピクセルについては、ラスタ化を行うことができる。ラスタ化に続き、GPU110は、第2映像の他の一部ピクセルに対して、ピクセルシェーディング(pixel shading)のようなさらなる演算を行うことができ、結果として、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、GPU110は、メモリ120に保存済みの第2映像のカラーバッファを読み取ることができ、GPU110は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第2映像のカラーバッファを修正することができる。すなわち、GPU110は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、GPU110は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
一実施形態によって、GPU110は、再投影を行い、第1映像のピクセルと対応する第2映像の一部ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第2映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファを生成することができる。すなわち、GPU110は、第1映像のピクセルと対応する第2映像の第1ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第1映像のピクセルと対応しない第2映像の第2ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファを生成することができる。所定の値は、ユーザによって既設定の初期値(clear value)でもある。同様に、GPU110は、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。
メモリ120は、一実施形態によって、GPU110によって生成された第2映像の深度バッファ及びカラーバッファを保存することができる。
GPU110は、一実施形態によって、メモリ120に保存された第2映像の深度バッファ及びカラーバッファに基づいて、第2映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、GPU110は、メモリ120に保存された第2映像の深度バッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。GPU110は、一実施形態によって、メモリ120に保存された第2映像の深度バッファを利用して、第1映像のピクセルと対応する第2映像の一部ピクセル、及び第1映像のピクセルと対応しない第2映像の他の一部ピクセルに係わる深度テスト(Z−test)を行うことができる。メモリ120に保存された第2映像の深度バッファにおいては、第2映像の一部ピクセルが第1映像のピクセルの深度値を有するために、第2映像の一部ピクセルは、深度テストを通過することができず、結果として、GPU110は、深度テスト以後の過程において、第2映像の一部ピクセルに係わる演算を行わない。また、メモリ120に保存された第2映像の深度バッファにおいては、第2映像の他の一部ピクセルが、初期値のような所定値を有するために、第2映像の他の一部ピクセルは、深度テストを通過し、GPU110は、深度テスト以後の過程において、第2映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によって、GPU110は、深度テストを通過した第2映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、GPU110は、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、GPU110は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、メモリ120に保存済みの第2映像のカラーバッファを修正することができる。すなわち、GPU110は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、GPU110は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
従って、デバイス100は、第2映像をレンダリングする場合、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができるが、演算量を減少させ、デバイス100の性能を高めることができる。すなわち、デバイス100は、第1映像のピクセルと対応する第2映像の一部ピクセルについては、再投影を介してピクセル値を獲得することができ、第2映像の他の一部ピクセルについては、選択的レンダリングを行ってピクセル値を獲得することができるので、第2映像の全てのピクセルに対してレンダリングを行う場合より演算量を減少させることができる。
図3は、一実施形態による、デバイス100が両眼視差を有する第1映像及び第2映像に対するレンダリングを行うフローチャートを示している。
図3に図示された方法は、図1のデバイス100によって遂行され、重複説明については省略する。
段階S310において、デバイス100は、一実施形態によって、第1映像に対するレンダリングを行うことができる。デバイス100は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度情報を生成することができる。第1映像の深度情報は、第1映像の深度バッファにもなる。また、デバイス100は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラー情報を生成することができる。第1映像のカラー情報は、第1映像のカラーバッファにもなる。
段階S320において、デバイス100は、一実施形態によって、レンダリング結果として生成される第1映像の深度情報に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、再投影を行うことができる。一実施形態によって、再投影は、第1映像の深度情報及びカラー情報に基づいて、オクルージョンマップ、及び第2映像のカラーバッファを生成する内容を含んでもよい。また、再投影は、第1映像の深度情報及びカラー情報に基づいて、第2映像の深度バッファ、及び第2映像のカラーバッファを生成する内容を含んでもよい。
一実施形態によるデバイス100は、再投影を行い、オクルージョンマップを生成することができる。すなわち、デバイス100は、第1映像の深度情報に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができ、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
また、デバイス100は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。次に、デバイス100は、第2映像のカラーバッファに基づいて、所定値に決定された第2映像の他の一部ピクセルを確認することにより、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
デバイス100は、生成されたオクルージョンマップ、または第2映像のカラーバッファを内部メモリに保存することができる。
他の実施形態によるデバイス100は、再投影を行い、第1映像のピクセルと対応する第2映像の一部ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第2映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファを生成することができる。すなわち、デバイス100は、第1映像のピクセルと対応する第2映像の第1ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第1映像のピクセルと対応しない第2映像の第2ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファを生成することができる。同様に、デバイス100は、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。
デバイス100は、生成された第2映像の深度バッファ、または第2映像のカラーバッファを内部メモリに保存することができる。
段階S330において、一実施形態によるデバイス100は、再投影に基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。
一実施形態によるデバイス100は、オクルージョンマップに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。オクルージョンマップにおいては、第1映像のピクセルと対応する第2映像の一部ピクセル、第1映像のピクセルと対応しない第2映像の他の一部ピクセルが区分されているために、デバイス100は、オクルージョンマップによって、第2映像の一部ピクセルについては、ラスタ化を行わず、第2映像の他の一部ピクセルについては、ラスタ化を行うことができる。ラスタ化に続いて、デバイス100は、第2映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス100は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第2映像のカラーバッファを修正することができる。すなわち、デバイス100は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、デバイス100は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
他の実施形態によるデバイス100は、第2映像の深度バッファに基づいて、第2映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によるデバイス100は、生成済みの第2映像の深度バッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス100は、一実施形態によって、第2映像の深度バッファを利用して、第1映像のピクセルと対応する第2映像の一部ピクセル、及び第1映像のピクセルと対応しない第2映像の他の一部ピクセルに係わる深度テスト(Z−test)を行うことができる。第2映像の深度バッファにおいては、第2映像の一部ピクセルが第1映像のピクセルの深度値を有するために、第2映像の一部ピクセルは、深度テストを通過することができず、結果として、デバイス100は、深度テスト以後の過程において、第2映像の一部ピクセルに係わる演算を行わない。また、第2映像の深度バッファにおいては、第2映像の他の一部ピクセルが、初期値のような所定値を有するために、第2映像の他の一部ピクセルは、深度テストを通過し、デバイス100は、深度テスト以後の過程において、第2映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によるデバイス100は、深度テストを通過した第2映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、デバイス100は、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス100は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第2映像のカラーバッファを修正することができる。すなわち、デバイス100は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、デバイス100は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
図4は、一実施形態によるデバイス400に係わるブロック図を示している。
デバイス400は、一実施形態によって、GPU410、メモリ420及びバス430を含んでもよい。図4に図示されたデバイス400は、本実施形態に係わる構成要素だけが図示されている。従って、図4に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
GPU410は、一実施形態によって、第1映像に対するレンダリングを行うことができる。GPU410は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度バッファ422を生成することができる。第1映像の深度バッファ422は、第1映像のピクセルそれぞれの深度値を含んでもよい。また、GPU410は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラーバッファ424を生成することができる。第1映像のカラーバッファ424は、第1映像の各ピクセルのカラー値を含んでもよい。
メモリ420は、一実施形態によって、第1映像に対するレンダリング結果として生成される第1映像の深度バッファ422を保存することができる。また、一実施形態によって、メモリ420は、第1映像に対するレンダリング結果として生成される第1映像のカラーバッファ424を保存することができる。
GPU410は、一実施形態によって、シェーダ412及びラスタライザ414を含んでもよい。図4に図示されたGPU410は、本実施形態に係わる構成要素だけが図示されている。従って、図4に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
一実施形態によって、シェーダ412は、メモリ420に保存された第1映像の深度バッファ422に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができる。また、シェーダ412は、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップ428を生成することができる。一実施形態によって、シェーダ412は、第2映像の一部ピクセルについては、0の値を設定し、第2映像の他の一部ピクセルについては、1の値を設定し、オクルージョンマップ428を生成することができる。ただし、0または1の値は、ただの例示であり、オクルージョンマップ428は、0または1以外の値を含んでもよい。
また、一実施形態によって、シェーダ412は、第1映像のカラーバッファ422に基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファ426を生成することができる。任意の値は、ユーザによって既設定の値でもある。次に、シェーダ412は、第2映像のカラーバッファ426に基づいて、任意の値に決定された第2映像の他の一部ピクセルを確認することにより、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップ428を生成することができる。
図5は、シェーダ412がオクルージョンマップを生成する一実施形態を示している。
図5の領域510は、第1視点512及び第2視点514から、スクリーン516を介して客体518を眺めるところを示している。従って、GPU410は、第1視点512及び第2視点514それぞれを基準に、両眼視差映像に対するレンダリングを行うことができる。
GPU410は、一実施形態によって、第1視点512を基準に、第1映像520に対するレンダリングを行うことができる。従って、GPU410は、第1映像520に対するレンダリングを行い、客体518を示す第1映像520の深度バッファまたはカラーバッファを生成することができる。すなわち、GPU410は、客体518を示すピクセル522それぞれの深度値及びカラー値を計算することができる。
シェーダ412は、第1映像520の深度バッファに基づいて、再投影を行うことができる。すなわち、シェーダ412は、ピクセル522の深度値に基づいて、ピクセル522と対応する第2映像530の一部ピクセル532を決定することができる。従って、シェーダ412は、ピクセル522と対応する第2映像530の一部ピクセル532と、ピクセル522と対応しない第2映像530の他の一部ピクセル534とを区分するオクルージョンマップ540を生成することができる。一実施形態によって、シェーダ412は、第2映像530の一部ピクセル532と同一位置のピクセル542については、0の値に設定し、第2映像530の他の一部ピクセル534と同一位置のピクセル544については、1の値に設定し、オクルージョンマップ540を生成することができる。
また、他の実施形態によって、シェーダ412は、第1映像520のカラーバッファに基づいて、第2映像の一部ピクセル532それぞれのカラー値は、第1映像520のピクセル522それぞれのカラー値であるように決定し、第2映像530の他の一部ピクセル534それぞれのカラー値は、任意の値であるように決定し、第2映像530のカラーバッファを生成することができる。次に、シェーダ412は、第2映像530のカラーバッファに基づいて、任意の値に決定された第2映像530の他の一部ピクセル534を確認することにより、第2映像530の一部ピクセル532と、第2映像530の他の一部ピクセル534とを区分するオクルージョンマップ540を生成することができる。
図4のメモリ420は、シェーダ412によって生成されたオクルージョンマップ428、及び第2映像のカラーバッファ426を保存することができる。
GPU410は、一実施形態によって、メモリ420に保存されたオクルージョンマップ428、または第2映像のカラーバッファ426に基づいて、第2映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、GPU410は、メモリ420に保存されたオクルージョンマップ428に基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、オクルージョンマップにおいて、第1映像のピクセルと対応する第2映像の一部ピクセル、第1映像のピクセルと対応しない第2映像の他の一部ピクセルが区分されているために、ラスタライザ414は、オクルージョンマップ428によって、第2映像の一部ピクセルについては、ラスタ化を行わず、第2映像の他の一部ピクセルについては、ラスタ化を行うことができる。
図6は、ラスタライザ414が、オクルージョンマップに基づいてラスタ化を行う一実施形態を示している。
一実施形態によって、図5の第1映像のピクセルと対応する第2映像610の一部ピクセル611のうち、第1領域612がラスタライザ414に入力される。ラスタライザ414は、オクルージョンマップ620に基づいて、第1領域612に該当するピクセル615に対して、ラスタ化を省略することができる。すなわち、オクルージョンマップ620においては、第1領域612に該当するピクセル615が0の値に設定されているので、ラスタライザ414は、ピクセル615に対するラスタ化を省略することができる。同様に、ラスタライザ414は、オクルージョンマップ620に基づいて、第2映像610の一部ピクセル611のうち、第2領域613に該当するピクセルに係わるラスタ化を省略することができる。オクルージョンマップ620においては、第1映像のピクセルと対応しない第2映像610の他の一部ピクセル614が1の値に設定されているので、ラスタライザ414は、他の一部ピクセル614に対するラスタ化を行うことができる。
図4のGPU410は、一実施形態によって、第2映像の他の一部ピクセルに係わるラスタ化に続いて、第2映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、GPU410は、メモリ420に保存済みの第2映像のカラーバッファ426を読み取ることができ、GPU410は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第2映像のカラーバッファ426を修正することができる。すなわち、GPU410は、第2映像のカラーバッファ426で決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、GPU410は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス400は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
図7は、一実施形態によって、GPU410が第2映像のカラーバッファを修正する実施形態を示している。
一実施形態によって、シェーダ412は、第1映像のピクセルと対応する第2映像の一部ピクセル712を決定することができる。次に、シェーダ412は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセル712それぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定することができ、第2映像の他の一部ピクセル714それぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファ710を生成することができる。図7の第2映像のカラーバッファ710において、一部ピクセル712それぞれのカラー値は、Rに決定され、他の一部ピクセル714それぞれのカラー値は、任意の値である#に決定されたが、カラー値は、Rまたは#に限定されるものではない。また、説明の便宜上、一部ピクセル712それぞれのカラー値がRと表示されたが、一部ピクセル712それぞれのカラー値は、互いに異なる値を有することができる。
一実施形態によって、ラスタライザ414は、オクルージョンマップ428に基づいて、第2映像の他の一部ピクセル722を選択してラスタ化を行うことができる。図7では、第2映像のカラーバッファ710で示される第2映像の他の一部ピクセル714と、第2映像の他の一部ピクセル722は、互いに同一位置のピクセルである。
一実施形態によって、GPU410は、第2映像の他の一部ピクセル722に対するラスタ化に続いて、他の一部ピクセル722に対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、他の一部ピクセル722それぞれのカラー値を計算することができる。図7の第2映像の他の一部ピクセル722それぞれのカラー値がCに計算されたが、カラー値は、Cに限定されるものではない。また、説明の便宜上、他の一部ピクセル722それぞれのカラー値がCに表示されたが、他の一部ピクセル722それぞれのカラー値は、互いに異なる値を有することができる。
従って、GPU410は、第2映像のカラーバッファ710で任意の値#に決定された他の一部ピクセル714それぞれのカラー値を、レンダリングを介して計算された他の一部ピクセル722それぞれのカラー値であるCに決定し、完成された第2映像のカラーバッファ720を生成することができる。
一実施形態によって、図4のシェーダ412は、第2映像の他の一部ピクセルを含む第1ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成することができる。すなわち、シェーダ412は、オクルージョンマップ428において、第2映像の他の一部ピクセルが有する値を第2映像の他の一部ピクセルを含む第1ピクセルグループが有するように設定し、拡張されたオクルージョンマップを生成することができる。従って、第1ピクセルグループは、第2映像の他の一部ピクセル、及び第1ピクセルグループのうち、第2映像の他の一部ピクセルではない第2ピクセルグループによって構成される。
図8は、シェーダ412が、オクルージョンマップを拡張する実施形態を示している。
シェーダ412は、オクルージョンマップ810だけではなく、拡張されたオクルージョンマップ820を生成することができる。すなわち、シェーダ412は、第2映像530の他の一部ピクセル534と同一位置のピクセル812に1の値を付与し、オクルージョンマップ810を生成することができ、またシェーダ412は、第2映像530の他の一部ピクセル534より広い範囲のピクセルである第1ピクセルグループ822に1の値を付与し、拡張されたオクルージョンマップ820を生成することができる。第1ピクセルグループ822には、第2映像の他の一部ピクセル824、及び第1ピクセルグループ822において、他の一部ピクセル824ではない第2ピクセルグループ826を含んでもよい。例えば、シェーダ412は、第2映像530の他の一部ピクセル534と同一位置のピクセル812を基準に、3×3ピクセル830の範囲において1の値を付与し、拡張されたオクルージョンマップ820を生成することができる。
図4のGPU410は、一実施形態によって、拡張されたオクルージョンマップに基づいて、第2映像の他の一部ピクセルより広い範囲のピクセルである第1ピクセルグループを選択してレンダリングを行うことができる。すなわち、ラスタライザ414は、拡張されたオクルージョンマップに基づいて、第2映像の第1ピクセルグループを選択してラスタ化を行うことができる。ラスタ化に続いて、GPU410は、第2映像の第1ピクセルグループに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第2映像の第1ピクセルグループを構成するピクセルそれぞれのカラー値を計算することができる。第2映像の第1ピクセルグループには、第2映像の他の一部ピクセルを含むので、GPU410は、メモリ420に保存済みの第2映像のカラーバッファ426で決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。また、GPU410は、レンダリング結果として計算された第2ピクセルグループを構成するピクセルそれぞれのカラー値と、カラーバッファ426で決定された第2ピクセルグループに該当するカラー値とに基づいて、カラーバッファ426で決定された第2ピクセルグループに該当するカラー値を修正することができる。例えば、GPU410は、レンダリング結果として計算された第2ピクセルグループのピクセルそれぞれのカラー値、及びカラーバッファ426で決定された第2ピクセルグループに該当するカラー値の平均値を計算し、計算された平均値に、カラーバッファ426で決定された第2ピクセルグループに該当するカラー値を修正することができる。さらに具体的な実施形態は、以下、図9で説明する。
図9は、GPU410が、拡張されたオクルージョンマップに基づいて第2映像のカラーバッファを修正する実施形態を示している。
一実施形態によって、シェーダ412は、第1映像のピクセルと対応する第2映像の一部ピクセル912を決定することができる。次に、シェーダ412は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセル912それぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定することができ、第2映像の他の一部ピクセル914それぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファ910を生成することができる。図9の第2映像のカラーバッファ910において、一部ピクセル912それぞれのカラー値は、Rに決定され、他の一部ピクセル914それぞれのカラー値は、任意の値である#に決定されたが、カラー値は、Rまたは#に限定されるものではない。また、説明の便宜上、一部ピクセル912それぞれのカラー値がRと表示されたが、一部ピクセル912それぞれのカラー値は、互いに異なる値を有することができる。
一実施形態によって、ラスタライザ414は、拡張されたオクルージョンマップ820に基づいて、第2映像の第1ピクセルグループ922を選択してラスタ化を行うことができる。
一実施形態によって、GPU410は、第1ピクセルグループ922に対するラスタ化に続いて、第1ピクセルグループ922に対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第1ピクセルグループ922それぞれのカラー値を計算することができる。図9の第2映像の第1ピクセルグループ922それぞれのカラー値がCに計算されたが、カラー値は、Cに限定されるものではない。また、説明の便宜上、第1ピクセルグループ922それぞれのカラー値がCに表示されたが、第1ピクセルグループ922それぞれのカラー値は、互いに異なる値を有することができる。
従って、GPU410は、第2映像のカラーバッファ910において、任意の値#に決定された他の一部ピクセル914それぞれのカラー値を、レンダリングを介して計算されたカラー値であるCに修正することができる。また、レンダリング結果として計算された第2ピクセルグループ924のピクセルそれぞれのカラー値であるCと、第2ピクセルグループ924と同一位置のピクセルであるカラーバッファ910のピクセルグループ916のカラー値であるRとを利用して、ピクセルグループ916のカラー値RをAに修正することができ、結果として、完成された第2映像のカラーバッファ930を完成することができる。例えば、GPU410は、カラー値Rとカラー値Cとの平均値を計算し、計算された平均値Aを、ピクセルグループ916のカラー値に修正することができる。また、説明の便宜上、修正されたカラー値がAと表示されたが、カラー値は、互いに異なる値を有することができる。
図10は、一実施形態による、デバイス400が両眼視差を有する第1映像及び第2映像に対するレンダリングを行うフローチャートを示している。
図10に図示された方法は、図4のデバイス400によって遂行され、重複説明については省略する。
段階S1010において、デバイス400は、一実施形態によって、第1映像に対するレンダリングを行うことができる。デバイス400は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度バッファを生成することができる。また、デバイス400は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラーバッファを生成することができる。デバイス400は、生成された第1映像の深度バッファ、及び第1映像のカラーバッファを内部メモリに保存することができる。
段階S1020において、デバイス400は、第1映像の深度バッファに基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、オクルージョンマップを生成することができる。すなわち、デバイス400は、第1映像の深度バッファに基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができ、デバイス400は、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。一実施形態によるデバイス400は、第2映像の一部ピクセルについては、0の値を設定し、第2映像の他の一部ピクセルについては、1の値を設定し、オクルージョンマップを生成することができる。ただし、0または1の値は、ただの例示であり、オクルージョンマップは、0または1以外の値を含んでもよい。
また、一実施形態によるデバイス400は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。次に、デバイス400は、第2映像のカラーバッファに基づいて、任意の値に決定された第2映像の他の一部ピクセルを確認することにより、第2映像の一部ピクセルと、第2映像の他の一部ピクセルとを区分するオクルージョンマップを生成することができる。
一実施形態によるデバイス400は、生成されたオクルージョンマップ、または第2映像のカラーバッファを内部メモリに保存することができる。
段階S1030において、デバイス400は、オクルージョンマップに基づいて、第2映像内の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、デバイス400は、オクルージョンマップに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、オクルージョンマップにおいて、第1映像のピクセルと対応する第2映像の一部ピクセル、及び第1映像のピクセルと対応しない第2映像の他の一部ピクセルが区分されているために、デバイス400は、オクルージョンマップによって、第2映像の一部ピクセルについては、ラスタ化を行わず、第2映像の他の一部ピクセルについては、ラスタ化を行うことができる。
デバイス400は、一実施形態によって、第2映像の他の一部ピクセルに係わるラスタ化に続いて、第2映像の他の一部ピクセルに対して、ピクセルシェーディングのようなさらなる演算を行うことができ、結果として、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス400は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第2映像のカラーバッファを修正することができる。すなわち、デバイス400は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、デバイス400は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス400は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
図11は、一実施形態によるデバイス1100に係わるブロック図を示している。
デバイス1100は、一実施形態によって、GPU1110、メモリ1120及びバス1130を含んでもよい。図11に図示されたデバイス1100は、本実施形態に係わる構成要素だけが図示されている。従って、図11に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
GPU1110は、一実施形態によって、第1映像に対するレンダリングを行うことができる。GPU1110は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度バッファ1122を生成することができる。第1映像の深度バッファ1122は、第1映像のピクセルそれぞれの深度値を含んでもよい。また、GPU1110は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラーバッファ1124を生成することができる。第1映像のカラーバッファ1124は、第1映像の各ピクセルのカラー値を含んでもよい。
メモリ1120は、一実施形態によって、第1映像に対するレンダリング結果として生成される第1映像の深度バッファ1122を保存することができる。また、一実施形態によって、メモリ1120は、第1映像に対するレンダリング結果として生成される第1映像のカラーバッファ1124を保存することができる。
GPU1110は、一実施形態によって、シェーダ1112及びZ−テスト部1114を含んでもよい。図11に図示されたGPU1110は、本実施形態に係わる構成要素だけが図示されている。従って、図11に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
一実施形態によって、シェーダ1112は、メモリ1120に保存された第1映像の深度バッファ1122に基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定することができる。また、一実施形態によって、シェーダ1112は、第1映像の深度バッファ1122に基づいて、第2映像の一部ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第2映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファ1126を生成することができる。所定の値は、ユーザによって既設定の初期値でもある。
同様に、シェーダ1112は、第1映像のカラーバッファ1124に基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファ1128を生成することができる。任意の値は、ユーザによって既設定の値でもある。
図12は、シェーダ1112が、第2映像の深度バッファを生成する一実施形態を示している。
図12の領域1210は、第1視点1212及び第2視点1214から、スクリーン1216を介して客体1218を眺めるところを示している。従って、GPU1110は、第1視点1212及び第2視点1214それぞれを基準に、両眼視差映像に対するレンダリングを行うことができる。
GPU1110は、一実施形態によって、第1視点1212を基準に、第1映像1220に対するレンダリングを行うことができる。従って、GPU1110は、第1映像1220に対するレンダリングを行い、客体1218を示す第1映像1220の深度バッファまたはカラーバッファを生成することができる。すなわち、GPU1110は、客体1218を示すピクセル1222それぞれの深度値及びカラー値を計算することができる。
シェーダ1112は、第1映像1220の深度バッファに基づいて、再投影を行うことができる。すなわち、シェーダ1112は、ピクセル1222の深度値に基づいて、ピクセル1222と対応する第2映像1230の一部ピクセル1232を決定することができる。従って、シェーダ1112は、第2映像1230の一部ピクセル1232と同一位置のピクセル1242については、第1映像1220のピクセル1222それぞれの深度値zに設定し、第2映像1230の他の一部ピクセル1234と同一位置のピクセル1244については、所定値0に設定し、第2映像1230の深度バッファ1240を生成することができる。また、説明の便宜上、ピクセル1242それぞれの深度値がzと表示されたが、ピクセル1242それぞれの深度値は、互いに異なる値を有することができる。また、シェーダ1112は、第1映像1220のカラーバッファに基づいて、第2映像の一部ピクセル1232それぞれのカラー値は、第1映像1220のピクセル1222それぞれのカラー値であるように決定し、第2映像1230の他の一部ピクセル1234それぞれのカラー値は、任意の値であるように決定し、第2映像1230のカラーバッファを生成することができる。
図11のメモリ1120は、一実施形態によって、シェーダ1112によって生成された第2映像の深度バッファ1126、及び第2映像のカラーバッファ1128を保存することができる。
GPU1110は、一実施形態によって、メモリ1120に保存された第2映像の深度バッファ1126、または第2映像のカラーバッファ1128に基づいて、第2映像のピクセルに係わる選択的レンダリングを行うことができる。一実施形態によって、GPU1110は、メモリ1120に保存された第2映像の深度バッファ1126に基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。さらに具体的には、Z−テスト部1114は、一実施形態によって、メモリ1120に保存された第2映像の深度バッファ1126を利用して、第1映像のピクセルと対応する第2映像の一部ピクセル、及び第1映像のピクセルと対応しない第2映像の他の一部ピクセルに係わる深度テスト(Z−test)を行うことができる。メモリ1120に保存された第2映像の深度バッファ1126において、第2映像の一部ピクセルは、第1映像のピクセルの深度値を有するために、第2映像の一部ピクセルは、深度テストを通過することができず、結果として、GPU1110は、深度テスト以後の過程において、第2映像の一部ピクセルに係わる演算を行わない。また、メモリ1120に保存された第2映像の深度バッファ1126において、第2映像の他の一部ピクセルは、初期値のような所定値を有するために、第2映像の他の一部ピクセルは、深度テストを通過し、GPU1110は、深度テスト以後の過程において、第2映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によって、GPU1110は、深度テストを通過した第2映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、GPU1110は、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、GPU1110は、メモリ1120に保存済みの第2映像のカラーバッファ1128を読み取ることができ、GPU1110は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、読み出した第2映像のカラーバッファ1128を修正することができる。すなわち、GPU1110は、第2映像のカラーバッファ1128で決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、GPU1110は、第2映像の他の一部ピクセルを選択してレンダリングを行うことができ、メモリ1120に保存済みの第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。すなわち、GPU1110は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス1100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
図13は、GPU1110が、第2映像のカラーバッファを修正する実施形態を示している。
一実施形態によって、シェーダ1112は、第1映像のピクセルと対応する第2映像の一部ピクセル1312を決定することができる。次に、シェーダ1112は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセル1312それぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定することができ、第2映像の他の一部ピクセル1314それぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファ1310を生成することができる。図13の第2映像のカラーバッファ1310において、一部ピクセル1312それぞれのカラー値は、Rに決定され、他の一部ピクセル1314それぞれのカラー値は、任意の値である#に決定されたが、カラー値は、Rまたは#に限定されるものではない。また、説明の便宜上、一部ピクセル1312それぞれのカラー値がRと表示されたが、一部ピクセル1312それぞれのカラー値は、互いに異なる値を有することができる。
一実施形態によって、Z−テスト部1114は、第2映像の深度バッファに基づいて、第2映像の一部ピクセル1322、及び第2映像の他の一部ピクセル1324に対する深度テスト(Z−test)を行うことができる。図13では、第2映像の他の一部ピクセル1312と、第2映像の他の一部ピクセル1324は、互いに同一位置のピクセルである。次に、GPU1110は、深度テストを通過した第2映像の他の一部ピクセル1324に対して、ピクセルシェーディングのようなさらなる演算を続けて行うことができ、結果として、GPU1110は、他の一部ピクセル1324それぞれのカラー値を計算することができる。図13において、第2映像の他の一部ピクセル1324それぞれのカラー値がCと計算されたが、カラー値は、Cに限定されるものではない。また、説明の便宜上、他の一部ピクセル1324それぞれのカラー値がCと表示されたが、他の一部ピクセル1324それぞれのカラー値は、互いに異なる値を有することができる。
従って、GPU1110は、第2映像のカラーバッファ1310において、任意の値#に決定された他の一部ピクセル1314それぞれのカラー値を、レンダリングを介して計算された他の一部ピクセル1324それぞれのカラー値であるCに決定し、完成された第2映像のカラーバッファ1320を生成することができる。
図14は、一実施形態による、デバイス1100が両眼視差を有する第1映像及び第2映像に対するレンダリングを行うフローチャートを示している。
図14に図示された方法は、図11のデバイス1100によって遂行され、重複説明については省略する。
段階S1410において、デバイス1100は、一実施形態によって、第1映像に対するレンダリングを行うことができる。デバイス1100は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像の深度バッファを生成することができる。また、デバイス1100は、一実施形態によって、第1映像に対するレンダリングを行い、第1映像のカラーバッファを生成することができる。デバイス1100は、生成された第1映像の深度バッファ、及び第1映像のカラーバッファを内部メモリに保存することができる。
段階S1420において、デバイス1100は、一実施形態によって、第1映像の深度バッファに基づいて、第1映像のピクセルと対応する第2映像の一部ピクセルを決定し、第2映像の深度バッファを生成することができる。すなわち、デバイス1100は、第1映像の深度バッファに基づいて、第2映像の一部ピクセルそれぞれの深度値は、第1映像のピクセルそれぞれの深度値であるように決定し、第2映像の他の一部ピクセルそれぞれの深度値は、所定値であるように決定し、第2映像の深度バッファを生成することができる。所定の値は、ユーザによって既設定の初期値でもある。
また、デバイス1100は、第1映像のカラーバッファに基づいて、第2映像の一部ピクセルそれぞれのカラー値は、第1映像のピクセルそれぞれのカラー値であるように決定し、第2映像の他の一部ピクセルそれぞれのカラー値は、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。任意の値は、ユーザによって既設定の値でもある。デバイス1100は、生成された第2映像の深度バッファ、及び第2映像のカラーバッファを内部メモリに保存することができる。
段階S1430において、デバイス1100は、第2映像の深度バッファに基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス1100は、一実施形態によって、第2映像の深度バッファを利用して、第1映像のピクセルと対応する第2映像の一部ピクセル、及び第1映像のピクセルと対応しない第2映像の他の一部ピクセルに係わる深度テスト(Z−test)を行うことができる。第2映像の深度バッファにおいて、第2映像の一部ピクセルは、第1映像のピクセルの深度値を有するために、第2映像の一部ピクセルは、深度テストを通過することができず、結果として、デバイス1100は、深度テスト以後の過程において、第2映像の一部ピクセルに係わる演算を行わない。また、第2映像の深度バッファにおいて、第2映像の他の一部ピクセルは、初期値のような所定値を有するために、第2映像の他の一部ピクセルは、深度テストを通過し、デバイス1100は、深度テスト以後の過程において、第2映像の他の一部ピクセルに係わる演算を続けて行うことができる。一実施形態によるデバイス1100は、深度テストを通過した第2映像の他の一部ピクセルに対して、ピクセルシェーディングを行うことができ、結果として、デバイス1100は、第2映像の他の一部ピクセルそれぞれのカラー値を計算することができる。従って、デバイス1100は、第2映像の他の一部ピクセルそれぞれのカラー値を介して、生成済みの第2映像のカラーバッファを修正することができる。すなわち、デバイス1100は、第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。
従って、デバイス1100は、第2映像の他の一部ピクセルを選択してレンダリングを行うことができ、生成済みの第2映像のカラーバッファで決定された任意の値を、レンダリング結果として計算される第2映像の他の一部ピクセルのカラー値に修正することができる。すなわち、デバイス1100は、第2映像の全てのピクセルに係わるレンダリングを行うのではなく、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことにより、第2映像のカラーバッファを完成することができる。一実施形態によるデバイス1100は、完成された第2映像のカラーバッファを介して、第2映像を出力することができる。
図15は、一実施形態によるデバイス1500に係わるブロック図を示している。
デバイス1500は、アプリケーション1510、デバイスドライバ1520、GPU1530及びメモリ1540を含んでもよい。図15に図示されたデバイス1500は、本実施形態に係わる構成要素だけが図示されている。従って、図15に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
アプリケーション1510は、一実施形態によって、API(application program interface)を介して、両眼視差映像(binocular disparity image)に対するレンダリングまたはタイル基盤レンダリング(tile based rendering)に係わる情報をデバイスドライバ1520に提供することができる。このとき、アプリケーション1510は、OpenGL、OpenGL ESまたはDirect3のようなAPI標準を介して、両眼視差映像に対するレンダリングまたはタイル基盤レンダリングに係わる情報をデバイスドライバ1520に提供することができる。すなわち、アプリケーション1510は、両眼視差映像を示すために、両眼視差を有する第1映像及び第2映像それぞれに対するレンダリングまたはタイル基盤レンダリングに係わる情報を、APIを介して、デバイスドライバ1520に提供することができる。また、一実施形態によって、アプリケーション1510は、第1映像及び第2映像それぞれに対するレンダリングまたはタイル基盤レンダリングに係わる情報を、APIの拡張などを介して、デバイスドライバ1520に明示的に提供することができる。
デバイスドライバ1520は、一実施形態によって、アプリケーション1510から受信されたAPIを分析し、GPU1530で処理可能なコマンド(command)に変換し、GPU1530にコマンドを伝送することができる。一実施形態によるデバイスドライバ1520は、第1映像及び第2映像に対する少なくとも1つのドローコマンド(draw command)をGPU1530に伝送することができる。ドローコマンドは、所定の映像、または所定のフレームにいかなるオブジェクトをレンダリングするかということを示す命令語であり、一実施形態によって、ドローコマンドは、ドローコール(drawcall)として表現することができる。例えば、ドローコマンドは、映像またはフレームに、所定の個数の四角形または三角形を描くためのコマンドでもある。
一実施形態によるデバイスドライバ1520は、ドローコマンドと共に、ドローコマンドと関連した状態情報(state information)をGPU1530に伝送することができる。状態情報は、ドローコマンドにバインディング(binding)された状態を示すが、状態情報は、所定のオブジェクトをレンダリングするために必要な情報を意味する。例えば、状態情報は、所定のオブジェクトに係わる座標情報のようなソースデータ(source data)、テクスチャタイプ(texture type)、カメラ視点情報を含み、状態情報は、ステート(state)として表現される。一実施形態によるデバイスドライバ1520は、1つのドローコマンドと、第1映像及び第2映像それぞれに係わる状態情報とをGPU1530に伝送することができる。第1映像及び第2映像それぞれは、同一オブジェクトに対して、互いに異なる視角から眺めた映像であるために、第1映像及び第2映像に係わる状態情報は、カメラ視点に係わる情報だけが、第1映像及び第2映像ごとにそれぞれ異なるように表現され、残りの情報は、第1映像及び第2映像ごとにそれぞれ同一に表現される。すなわち、デバイスドライバ1520は、1つのドローコマンドと共に、第1映像及び第2映像に係わる1対の状態情報をGPU1530に伝送することができる。
GPU1530は、一実施形態によるデバイスドライバ1520から受信した両眼視差映像に係わるドローコマンド及び状態情報に基づいて、両眼視差を有する第1映像及び第2映像に対するレンダリングを行うことができる。また、GPU1530は、一実施形態によるデバイスドライバ1520から受信した両眼視差映像に係わるドローコマンド及び状態情報に基づいて、第1映像及び第2映像に対するタイル基盤レンダリング(tile based rendering)を遂行することができる。
GPU1530及びメモリ1540は、図1のGPU110及びメモリ120で説明した内容、図4のGPU410及びメモリ420で説明した内容、または図11のGPU1110及びメモリ1120で説明した内容を含むが、重複説明は省略する。
図16は、一実施形態によるデバイス1600に係わるブロック図を示している。
デバイス1600は、アプリケーション1610、デバイスドライバ1620、GPU1630及びメモリ1640を含んでもよい。図16に図示されたデバイス1600は、本実施形態に係わる構成要素だけが図示されている。従って、図16に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
アプリケーション1610及びデバイスドライバ1620は、図15のアプリケーション1510及びデバイスドライバ1520の内容を含んでもよいが、重複内容については、説明を省略する。また、GPU1630及びメモリ1640は、図15のGPU1530及びメモリ1540の内容を含んでもよいが、重複内容については、説明を省略する。
また、GPU1630は、タイル基盤レンダリング(tile-based rendering)を行うことができる。タイル基盤という用語は、映像の各フレームを複数のタイルに区分した(divideまたはpartitioning)後、タイル単位でレンダリングを行うことを意味する。タイル基盤のアーキテクチャは、ピクセル単位でフレームを処理するときより演算量が少なくなるために、スマートフォン、タブレットデバイスのように、比較的処理性能が低いモバイルデバイス(または、エンベデッドデバイス)で使用するグラフィックスレンダリング方法でもある。以下では、説明の便宜性のために、GPU1630がレンダリングを行うという表現は、GPU1630がタイル基盤レンダリングを行うという意味を含むものとする。
GPU1630は、一実施形態によって、スケジューラ1632、グラフィックスパイプライン(graphics pipeline)1634及びタイルバッファ1636を含んでもよい。図16に図示されたGPU1630は、本実施形態に係わる構成要素だけが図示されている。従って、図16に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
スケジューラ1632は、一実施形態によるデバイスドライバ1620から、両眼視差を有する第1映像及び第2映像に対する少なくとも1つのドローコマンド及び状態情報を受信することができる。
スケジューラ1632は、一実施形態によって、少なくとも1つのドローコマンドを所定の単位を有するバッチに分割することができ、バッチをグラフィックスパイプライン1634に順次に割り当てることができる。例えば、スケジューラ1632は、100個のプリミティブ(primitive)に対するドローコマンドを、20個のプリミティブに対するドローコマンドの単位を有するバッチに分割し、ドローコマンドを5個のバッチとして、グラフィックスパイプライン1634に順次に割り当てることができる。また、一実施形態によって、スケジューラ1632が、バッチをグラフィックスパイプライン1634に割り当てる場合、スケジューラ1632は、1つのバッチを、第1映像及び第2映像それぞれのために、グラフィックスパイプライン1634に2回ずつ割り当てることができる。すなわち、スケジューラ1632は、バッチのうち第1バッチをグラフィックスパイプライン1634に割り当てる場合、第1映像のために、第1バッチをグラフィックスパイプライン1634に割り当てることができ、次に、第2映像のために、第1バッチをグラフィックスパイプライン1634に割り当てることができる。
グラフィックスパイプライン1634は、一実施形態によって、割り当てられたバッチによって、第1映像及び第2映像それぞれに係わるタイルビニング(tile binning)を行うことができる。タイルビニングは、第1映像及び第2映像を、所定の個数のタイルに分割し、第1映像及び第2映像の各タイル上で、少なくとも1つのドローコマンドが遂行されるか否かということを示すビニング情報を生成するプロセスでもある。さらに具体的には、タイルビニングは、第1映像を具現化するための第1フレーム、及び第2映像を具現化するための第2フレームそれぞれを、所定の個数のタイルに分割するのである。例えば、100×100ピクセルの第1フレームを、4個のタイルに分割すれば、1個のタイルの大きさは、25×25ピクセルになる。従って、以下では、第1映像を所定の個数のタイルに分割する内容は、第1映像を具現化するための第1フレームを所定の個数のタイルに分割する内容と同等であると見て、第1映像のタイルという表現は、第1映像を具現化するための第1フレームに含まれたタイルという表現と同等であると見る。また、タイルビニングは、二次元または三次元の客体を構成するバーテックス(vertices)、プリミティブ(primitives)またはパッチ(patches)が、第1映像及び第2映像のいずれのタイルに含まれるかということを示すタイルリストを生成するプロセスでもある。また、タイルビニングは、第1映像及び第2映像の各タイルに含まれたバーテックスまたはプリミティブに係わる情報を獲得するプロセスでもある。バーテックスまたはプリミティブに係わる情報の例としては、バーテックスまたはプリミティブの識別子、位置、色相及び質感に係わる情報にもなる。
一実施形態によって、グラフィックスパイプライン1634は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報によって、第1映像及び第2映像それぞれに係わるタイルビニングを行うことができる。一実施形態によって、グラフィックスパイプライン1634は、割り当てられたバッチのうち第1バッチ、及び第1バッチと関連した状態情報を受信することができる。第1バッチと関連した状態情報は、第1映像及び第2映像それぞれのカメラ視点情報を含むので、グラフィックスパイプライン1634は、第1バッチを1回だけ割り当てられても、第1バッチ、及び第1バッチと関連した状態情報によって、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。また、一実施形態によって、グラフィックスパイプライン1634は、第1バッチ、及び第1バッチと関連した状態情報を第1映像及び第2映像それぞれに対して2回割り当てられ、グラフィックスパイプライン1634は、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。
グラフィックスパイプライン1634は、タイルビニングを行い、少なくとも1つのドローコマンドが、第1映像及び第2映像のいずれのタイル上で遂行されるかということを示すビニング情報(binning information)を生成することができる。一実施形態によって、グラフィックスパイプライン1634は、タイルビニングの遂行結果として生成されたビニング情報を、タイルバッファ1636またはメモリ1640に保存することができる。
グラフィックスパイプライン1634は、生成されたビニング情報に基づいて、第1映像のタイルそれぞれに対するレンダリングを行うことができる。
一実施形態によって、グラフィックスパイプライン1634は、第1映像のタイルである第1タイルないし第nタイルに対するレンダリングを順次に行い、第1タイルないし第nタイルそれぞれの深度バッファまたはカラーバッファを生成することができる。また、タイルバッファ1636は、順次に生成された少なくとも1つのタイルの深度バッファまたはカラーバッファを、許容可能な容量の範囲まで臨時に保存することができる。次に、flush命令語によって、一時的に保存された少なくとも1つの深度バッファまたはカラーバッファは、メモリ1640に保存される。従って、第1映像のタイルである第1タイルないし第nタイルそれぞれの深度バッファは、第1映像の深度バッファとしてメモリ1640に保存される。また、第1映像のタイルである第1タイルないし第nタイルそれぞれのカラーバッファは、第1映像のカラーバッファとしてメモリ1640に保存される。
次に、グラフィックスパイプライン1634は、メモリ1640に保存された第1映像の深度バッファ及びカラーバッファを基に再投影を行い、第2映像の深度バッファ及びカラーバッファを生成することができる。また、グラフィックスパイプライン1634は、メモリ1640に保存された第1映像の深度バッファ及びカラーバッファを基に再投影を行い、オクルージョンマップ、及び第2映像のカラーバッファを生成することができる。
他の実施形態によって、グラフィックスパイプライン1634は、第1映像のタイルのうち第1タイルに対するレンダリングを行い、第1タイルの深度バッファ及びカラーバッファを生成することができる。タイルバッファ1636は、生成された第1タイルの深度バッファ及びカラーバッファを保存することができる。次に、グラフィックスパイプライン1634は、タイルバッファ1636に保存された第1タイルの深度バッファに基づいて、第1タイルのピクセルと対応する第2映像の第1ピクセルを決定することができる。次に、グラフィックスパイプライン1634は、第1映像のタイルのうち第2タイルに対するレンダリングを行い、第2タイルの深度バッファ及びカラーバッファを生成することができる。タイルバッファ1636は、生成された第2タイルの深度バッファ及びカラーバッファを保存することができる。次に、グラフィックスパイプライン1634は、タイルバッファ1636に保存された第2タイルの深度バッファに基づいて、第2タイルのピクセルと対応する第2映像の第2ピクセルを決定することができる。同様に、グラフィックスパイプライン1634は、第1映像のタイルのうち第nタイルに対するレンダリングを行い、第nタイルの深度バッファに基づいて、第nタイルのピクセルと対応する第2映像の第nピクセルを決定することができる。従って、グラフィックスパイプライン1634は、第2映像の第1ピクセルないし第nピクセルと、第2映像の残りピクセルとを区分するオクルージョンマップを生成することができ、生成されたオクルージョンマップを、メモリ1640に保存することができる。また、グラフィックスパイプライン1634は、第1タイルないし第nタイルのカラーバッファに基づいて、第2映像の第1ピクセルないし第nピクセルそれぞれのカラー値を、第1タイルないし第nタイルのピクセルそれぞれのカラー値であるように決定し、第2映像の残りピクセルは、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。同様に、グラフィックスパイプライン1634は、第1タイルないし第nタイルの深度バッファに基づいて、第2映像の第1ピクセルないし第nピクセルそれぞれの深度値を、第1タイルないし第nタイルのピクセルそれぞれの深度値であるように決定し、第2映像の残りピクセルは、所定値であるように決定し、第2映像の深度バッファを生成することができる。また、グラフィックスパイプライン1634は、生成された第2映像のカラーバッファ及び深度バッファをメモリ1640に保存することができる。
グラフィックスパイプライン1634は、一実施形態によって、メモリ1640に保存された第2映像の深度バッファ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によって、グラフィックスパイプライン1634は、第2映像の深度バッファ及びカラーバッファに含まれた第2映像の第1タイルないし第nタイルそれぞれの深度バッファ及びカラーバッファをメモリ1640から順次に読み取り、タイルレンダリングを行うことができる。すなわち、グラフィックスパイプライン1634は、第2映像の第nタイルの深度バッファ及びカラーバッファをメモリ1640から読み取り、タイルバッファ1636に保存することができる。次に、グラフィックスパイプライン1634は、タイルバッファ1636に保存された第nタイルの深度バッファ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の第nタイルのピクセルを選択してレンダリングを行うことができる。レンダリング遂行結果として決定された第nタイルのピクセルのカラー値は、第nタイルのカラーバッファに保存され、第nタイルのカラーバッファは、メモリ1640に保存される。また、グラフィックスパイプライン1634は、一実施形態によって、メモリ1640に保存されたオクルージョンマップ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によって、グラフィックスパイプライン1634は、オクルージョンマップに基づいて、第2映像のカラーバッファに含まれた第2映像の第1タイルないし第nタイルそれぞれのカラーバッファをメモリ1640から順次に読み取り、タイルレンダリングを行うことができる。
また、一実施形態によって、スケジューラ1632は、第2映像の第1タイルないし第nタイルそれぞれに対するスケジューリングを行い、スケジューリングによって、グラフィックスパイプライン1634は、第2映像の第1タイルないし第nタイルに対するタイルレンダリングを行うことができる。
スケジューラ1632は、一実施形態によって、オクルージョンマップに基づいて、第2映像の第1タイルないし第nタイルそれぞれに対するスケジューリングを行うか否かということを決定することができる。次に、グラフィックスパイプライン1634は、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うことができる。すなわち、スケジューラ1632は、オクルージョンマップに基づいて決定された第2映像の所定のタイルについては、スケジューリングを省略することができ、結果として、グラフィックスパイプライン1634は、所定のタイルに対するレンダリングを省略することができる。一実施形態によって、スケジューラ1632は、オクルージョンマップに基づいて、第2映像の第1タイルのピクセルのうち第1映像のピクセルと対応するピクセルがあるか否かということを確認することができ、第1映像のピクセルと対応するピクセルが第1タイルになければ、スケジューラ1632は、第1タイルに対するスケジューリングを省略することができる。従って、グラフィックスパイプライン1634は、第2映像の第1タイルに対するレンダリングを省略することができる。また、一実施形態によって、グラフィックスパイプライン1634は、オクルージョンマップを生成するとき、第2映像の各タイルごとに、第1ピクセルと対応するピクセルの個数を、オクルージョンマップのヘッダ(header)情報として生成することができる。従って、スケジューラ1632は、オクルージョンマップのヘッダ情報を確認し、第2映像の各タイルごとにスケジューリングを行うか否かということを決定することができる。
図17は、一実施形態によるデバイス1700に係わるブロック図を示している。
デバイス1700は、アプリケーション1710、デバイスドライバ1720、GPU1730及びメモリ1740を含んでもよい。図17に図示されたデバイス1700は、本実施形態に係わる構成要素だけが図示されている。従って、図17に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
アプリケーション1710、デバイスドライバ1720、GPU1730及びメモリ1740は、図16のアプリケーション1610、デバイスドライバ1620、GPU1630及びメモリ1640の内容を含んでもよいが、重複内容については、説明を省略する。
GPU1730は、一実施形態によって、スケジューラ1732、複数のグラフィックスパイプライン1734及びタイルバッファ1736を含んでもよい。図17に図示されたGPU1730は、本実施形態に係わる構成要素だけが図示されている。従って、図17に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、本実施形態に係わる技術分野の当業者であるならば、理解することができるであろう。
また、スケジューラ1732及びタイルバッファ1736は、図16のスケジューラ1632及びタイルバッファ1636の内容を含んでもよいが、重複内容については、説明を省略する。また、複数のグラフィックスパイプライン1734それぞれは、図16のグラフィックスパイプライン1634の内容を含んでもよいが、重複内容については、説明を省略する。
スケジューラ1732は、一実施形態によって、少なくとも1つのドローコマンドを所定の単位を有するバッチに分割することができ、バッチを複数のグラフィックスパイプライン1734ごとにそれぞれ割り当てることができる。また、一実施形態によって、スケジューラ1732がバッチを複数のグラフィックスパイプライン1734それぞれに割り当てる場合、スケジューラ1732は、1つのバッチを、第1映像及び第2映像それぞれのために、1つのグラフィックスプロセッサに2回ずつ割り当てることができる。すなわち、スケジューラ1732は、バッチのうち第1バッチを複数のグラフィックスパイプライン1734のうち第1グラフィックスプロセッサに割り当てる場合、第1映像のために、第1バッチを第1グラフィックスプロセッサに割り当てることができ、第2映像のために、第1バッチを第1グラフィックスプロセッサに割り当てることができる。
複数のグラフィックスパイプライン1734は、一実施形態によって、割り当てられたバッチによって、第1映像及び第2映像それぞれに係わるタイルビニングを行うことができる。
一実施形態によって、複数のグラフィックスパイプライン1734は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報によって、第1映像及び第2映像それぞれに係わるタイルビニングを行うことができる。一実施形態によって、複数のグラフィックスパイプライン1734のうち第1グラフィックスプロセッサは、割り当てられたバッチのうち第1バッチ、及び第1バッチと関連した状態情報を受信することができる。第1バッチと関連した状態情報は、第1映像及び第2映像それぞれのカメラ視点情報を含むので、第1グラフィックスプロセッサは、第1バッチを1回だけ割り当てられても、第1バッチ、及び第1バッチと関連した状態情報によって、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。また、一実施形態によって、第1グラフィックスプロセッサは、第1バッチ、及び第1バッチと関連した状態情報を、第1映像及び第2映像それぞれに対して2回割り当てられ、第1グラフィックスプロセッサは、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。
図18は、GPU1730がタイルビニングを行う実施形態を示している。
スケジューラ1732は、一実施形態によって、ドローコマンド1810を、複数のバッチ1820に分割することができる。また、スケジューラ1732は、複数のバッチ1820を、第1映像に係わる複数のバッチ1830として、複数のグラフィックスパイプライン1734に割り当てることができ、複数のバッチ1820を、第2映像に係わる複数のバッチ1840として複数のグラフィックスパイプライン1734に割り当てることができる。すなわち、スケジューラ1732は、複数のバッチ1820を2回ずつ複数のグラフィックスパイプライン1734に割り当てることができる。
複数のグラフィックスパイプライン1734は、割り当てられたバッチ、及び割り当てられたバッチと関連した状態情報に基づいて、第1映像及び第2映像それぞれに係わるタイルビニングを行うことができる。
また、図18において、点線矢印で図示されているように、スケジューラ1732は、複数のバッチ1820を1回ずつだけ複数のグラフィックスパイプライン1734に割り当てることができる。また、スケジューラ1732は、複数のバッチ1820と関連した状態情報を、タイルバッファ1736に保存することができる。従って、複数のグラフィックスパイプライン1734それぞれは、タイルバッファ1736に保存された状態情報、及び複数のバッチ1820によって、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。
従って、グラフィックスパイプラインに割り当てられたバッチは、同一プリミティブを対象にするために、割り当てられたバッチに基づいて、グラフィックスパイプラインが、第1映像及び第2映像それぞれに対して、同一プリミティブを対象にタイルビニングを行うことができ、そのことは、プリミティブに係わる情報が保存されている内部メモリへのアクセスを最小化させることができる。
複数のグラフィックスパイプライン1734は、タイルビニングを行い、少なくとも1つのドローコマンドが、第1映像及び第2映像のいずれのタイル上で遂行されるかということを示すビニング情報を生成することができる。一実施形態によって、複数のグラフィックスパイプライン1734は、タイルビニングの遂行結果として生成されたビニング情報を、タイルバッファ1736またはメモリ1740に保存することができる。
図19は、一実施形態によるデバイス1500、1600、1700が、両眼視差を有する第1映像及び第2映像に対するタイル基盤レンダリングを行うフローチャートを示している。
図19に図示された方法は、図15、図16、図17のデバイス1500、1600、1700によって遂行され、重複説明については省略する。
段階S1910において、デバイス1500、1600、1700は、少なくとも1つのドローコマンドに基づいて、両眼視差を有する第1映像及び第2映像それぞれに対してタイルビニングを行うことができる。さらに具体的には、デバイス1500、1600、1700は、少なくとも1つのドローコマンド、及び少なくとも1つのドローコマンドと関連した状態情報に基づいて、タイルビニングを行うことができる。タイルビニングを行うさらに具体的な実施形態を、以下、図20で説明する。
図20は、一実施形態によって、図19のS1910についてさらに詳細に説明するためのフローチャートである。
段階2010において、デバイス1700は、一実施形態によって、少なくとも1つのドローコマンドを、所定の単位を有するバッチに分割することができ、分割されたバッチを、デバイス1700内の複数のグラフィックスパイプラインごとにそれぞれ割り当てることができる。また、一実施形態によるデバイス1700は、バッチそれぞれを、第1映像及び第2映像それぞれのために、複数のグラフィックスパイプラインそれぞれに2回ずつ割り当てることができる。すなわち、デバイス1700は、バッチのうち第1バッチを、複数のグラフィックスパイプラインのうち第1グラフィックスプロセッサに割り当てる場合、第1映像のために、第1バッチを、第1グラフィックスパイプラインに割り当てることができ、第2映像のために、第1バッチを、第1グラフィックスパイプラインに割り当てることができる。
段階S2020において、デバイス1700は、一実施形態によって、割り当てられたバッチ、及びバッチと対応する状態情報に基づいて、第1映像及び第2映像それぞれに係わるタイルビニングを行うことができる。さらに具体的には、デバイス1700内の複数のグラフィックスパイプラインは、バッチ、及びバッチと関連した状態情報を2回割り当てられ、それによって、複数のグラフィックスパイプラインは、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。また、複数のグラフィックスパイプラインはバッチと関連した状態情報が、第1映像及び第2映像それぞれのカメラ視点情報を含むために、バッチ及び状態情報を1回だけ割り当てられても、第1映像に係わるタイルビニング、及び第2映像に係わるタイルビニングをそれぞれ行うことができる。
図19の段階S1920において、デバイス1500、1600、1700は、第1映像のタイルに対するレンダリングを行うことができる。すなわち、デバイス1500、1600、1700は、第1映像のタイルである第1タイルないし第nタイルに対するレンダリングを順次に行い、第1タイルないし第nタイルそれぞれの深度バッファまたはカラーバッファを生成することができる。また、一実施形態によるデバイス1500、1600、1700は、順次に生成された少なくとも1つのタイルの深度バッファまたはカラーバッファを、許容可能な容量の範囲まで一時的に内部バッファに保存することができる。次に、flush命令語によって、内部バッファに一時的に保存された少なくとも1つの深度バッファまたはカラーバッファは、デバイス1500、1600、1700の内部メモリに保存される。従って、第1映像のタイルである第1タイルないし第nタイルそれぞれの深度バッファは、第1映像の深度バッファとして、デバイス1500、1600、1700の内部メモリに保存される。また、第1映像のタイルである第1タイルないし第nタイルそれぞれのカラーバッファは、第1映像のカラーバッファとして、デバイス1500、1600、1700の内部メモリに保存される。
段階S1930において、デバイス1500、1600、1700は、第1映像のタイルそれぞれの深度バッファを基に、第1映像のタイルのピクセルと対応する第2映像の一部ピクセルを決定し、再投影を行うことができる。さらに具体的には、デバイス1500、1600、1700は、第1映像のタイルのうち第1タイルの深度バッファに基づいて、第1タイルのピクセルと対応する第2映像の第1ピクセルを決定することができる。次に、デバイス1500、1600、1700は、第1映像のタイルのうち第2タイルの深度バッファに基づいて、第2タイルのピクセルと対応する第2映像の第2ピクセルを決定することができる。同様に、デバイス1500、1600、1700は、第1映像のタイルのうち第nタイルの深度バッファに基づいて、第nタイルのピクセルと対応する第2映像の第nピクセルを決定することができる。従って、デバイス1500、1600、1700は、第2映像の第1ピクセルないし第nピクセルと、第2映像の残りピクセルとを区分するオクルージョンマップを生成することができ、生成されたオクルージョンマップを内部メモリに保存することができる。また、デバイス1500、1600、1700は、第1タイルないし第nタイルのカラーバッファに基づいて、第2映像の第1ピクセルないし第nピクセルそれぞれのカラー値を、第1タイルないし第nタイルのピクセルそれぞれのカラー値であるように決定し、第2映像の残りピクセルは、任意の値であるように決定し、第2映像のカラーバッファを生成することができる。同様に、デバイス1500、1600、1700は、第1タイルないし第nタイルの深度バッファに基づいて、第2映像の第1ピクセルないし第nピクセルそれぞれの深度値を、第1タイルないし第nタイルのピクセルそれぞれの深度値であるように決定し、第2映像の残りピクセルは、所定値であるように決定し、第2映像の深度バッファを生成することができる。また、デバイス1500、1600、1700は、生成された第2映像のカラーバッファ及び深度バッファを内部メモリに保存することができる。
段階S1940において、デバイス1500、1600、1700は、再投影に基づいて、第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。デバイス1500、1600、1700は、一実施形態によって、保存済みの第2映像の深度バッファ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によるデバイス1500、1600、1700は、第2映像の深度バッファ及びカラーバッファに含まれた第2映像の第1タイルないし第nタイルそれぞれの深度バッファ及びカラーバッファを内部メモリから順次に読み取り、タイルレンダリングを行うことができる。すなわち、デバイス1500、1600、1700は、第2映像の第nタイルの深度バッファ及びカラーバッファを内部メモリから読み取り、内部バッファに保存することができる。次に、デバイス1500、1600、1700は、内部バッファに保存された第nタイルの深度バッファ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の第nタイルのピクセルを選択してレンダリングを行うことができる。レンダリング遂行結果として決定された第nタイルのピクセルのカラー値は、第nタイルのカラーバッファに保存され、第nタイルのカラーバッファは、内部メモリに保存される。また、デバイス1500、1600、1700は、他の実施形態によって、保存済みのオクルージョンマップ及びカラーバッファに基づいて、第1映像のピクセルと対応しない第2映像の他の一部ピクセルを選択してレンダリングを行うことができる。すなわち、一実施形態によるデバイス1500、1600、1700は、オクルージョンマップに基づいて、第2映像のカラーバッファに含まれた第2映像の第1タイルないし第nタイルそれぞれのカラーバッファを内部メモリから順次に読み取り、タイルレンダリングを行うことができる。
また、一実施形態によるデバイス1500、1600、1700は、第2映像の第1タイルないし第nタイルに対するスケジューリングを行うことができ、スケジューリングによってデバイス1500、1600、1700は、第2映像の第1タイルないし第nタイルに対するタイルレンダリングを行うことができる。
デバイス1500、1600、1700は、一実施形態によって、オクルージョンマップに基づいて、第2映像の第1タイルないし第nタイルそれぞれに対するスケジューリングを行うか否かということを決定することができる。次に、デバイス1500、1600、1700は、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うことができる。すなわち、デバイス1500、1600、1700は、オクルージョンマップによって決定された第2映像の所定のタイルについては、スケジューリングを省略することができ、結果として、デバイス1500、1600、1700は、所定のタイルに対するレンダリングを省略することができる。一実施形態によるデバイス1500、1600、1700は、オクルージョンマップに基づいて、第2映像の第1タイルのピクセルのうち第1映像のピクセルと対応するピクセルがあるか否かということを確認することができ、第1映像のピクセルと対応するピクセルが第1タイルになければ、デバイス1500、1600、1700は、第1タイルに対するスケジューリングを省略することができる。従って、デバイス1500、1600、1700は、第2映像の第1タイルに対するレンダリングを省略することができる。また、一実施形態によるデバイス1500、1600、1700は、オクルージョンマップを生成するとき、第2映像の各タイルごとに、第1ピクセルと対応するピクセルの個数をオクルージョンマップのヘッダ情報として生成することができる。従って、デバイス1500、1600、1700は、オクルージョンマップのヘッダ情報を確認し、第2映像の各タイルごとに、スケジューリングを省略するか否かということを決定することができる。
図21は、一実施形態によるデバイス2100のブロック図を示している。
一実施形態によるデバイス2100は、GPU2150、CPU2140、メモリ2160、バス2170、ディスプレイ部2110、入力部2120及び通信部2130を含む。図21に図示されたデバイス2100には、実施形態に係わる構成要素だけが図示されている。従って、図21に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当該技術分野の当業者であるならば、理解することができるであろう。
GPU2150及びメモリ2160は、図1のGPU110及びメモリ120で説明した内容、図4のGPU410及びメモリ420で説明した内容、図11のGPU1110及びメモリ1120で説明した内容、図15のGPU1530及びメモリ1540、図16のGPU1630及びメモリ1640、または図17のGPU1730及びメモリ1740で説明した内容を含んでもよいが、重複説明は省略する。
CPU2140は、デバイス2100の全般的な動作及び機能を制御するハードウェアである。例えば、CPU2140は、運用体制(OS:operating system)を駆動し、GPU2150のためのグラフィックスAPI(application program interface)を呼び出し、GPU2150のドライバを実行させることができる。また、CPU2140は、メモリ2160に保存された多様なアプリケーション、例えば、ウェブブラウジングアプリケーション、ゲームアプリケーション、ビデオアプリケーションなどを実行することができる。
ディスプレイ部2110は、デバイス2100で処理されていたり、あるいは処理される情報などの各種情報をユーザに表示するための表示インターフェーシング手段である。ディスプレイ部2110は、デバイス2100で処理される情報をユーザに視覚的であって直観的に提供するためのGUI(graphic user interface)をディスプレイすることもできる。例えば、ディスプレイ部2110は、GPU2150によって処理されたグラフィックデータをディスプレイすることができる。ディスプレイ部2110は、LCD(liquid crystal display)、LED(light emitting diode)、PDP(plasma display panel)などの多様なディスプレイパネルによって具現化される。
入力部2120は、ユーザから情報を入力されるための、入力インターフェーシング手段である。入力部2120は、タッチパッド、トラックボール、マウス、キーボード、ゲーム用コントローラのような形態によって具現化される。ディスプレイ部2110と入力部2120は、一体化されたタッチスクリーンのハードウェアによっても具現化される。
通信部2130は、移動通信のための移動通信モジュール、有線/無線LAN(local area network)モジュール、近距離無線通信のためのWi−Fi(wireless fidelity)モジュール、Bluetooth(登録商標)モジュール、NFC(near field communication)モジュールなどを含んでもよい。
上述の本実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部(permanent storage);外部装置と通信する通信ポート;タッチパネル、キー(key)、ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムよってに具現化される方法は、前記プロセッサ上で実行可能なコンピュータで読み取り可能なコードまたはプログラム命令として、コンピュータで読み取り可能な記録媒体上に保存される。ここで、コンピュータで読み取り可能な記録媒体として、磁気記録媒体(例えば、ROM(read only memory)、RAM(random access memory)、フロッピー(登録商標)ディスク、ハードディスクなど)及び光学的判読媒体(例えば、CD(compact disc)−ROM、DVD(digital versatile disc))などがある。コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式で、コンピュータが判読可能なコードが保存されて実行される。該媒体は、コンピュータによって判読可能であり、メモリに保存され、プロセッサで実行される。
本実施形態は、機能的なブロック構成及び多様な処理段階において示される。そうした機能ブロックは、特定機能を実行する多様な個数のハードウェア構成及び/またはソフトウェア構成によって具現化される。例えば、該実施形態は、1以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック(logic)、ルックアップテーブル(look-up table)のような直接回路構成を採用することができる。構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されるところと類似して、本実施形態は、データ構造、プロセス、ルーチンまたは他のプログラミング構成の組み合わせによって具現化される多様なアルゴリズムを含み、C、C++、ジャバ(登録商標(Java))、アセンブラ(assembler)のようなプログラミング言語またはスクリプティング言語によって具現化される。機能的な側面は、1以上のプロセッサで実行されるアルゴリズムによって具現化される。また、本実施形態は、電子的な環境設定、信号処理及び/またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、広く使用され、機械的であって物理的な構成として限定されるものではない。前記用語は、プロセッサなどと連繋し、ソフトウェアの一連の処理(routines)の意味を含んでもよい。
本実施形態で説明する特定の実施例は、例示であり、いかなる方法によっても技術的範囲を限定するものではない。明細書の簡潔化のために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の連結または連結部材は、機能的な連結及び/または物理的または回路的な連結を例示的に示したものであり、実際の装置では、代替可能であったり追加されたりする多様な機能的な連結、物理的な連結または回路の連結として示される。
本明細書(特に、特許請求の範囲で)において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれもに該当する。また、範囲(range)を記載した場合、前記範囲に属する個別的な値を含むものであり(それに反する記載がなければ)、詳細な説明において、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載するか、あるいはそれに反する記載がなければ、前記段階は、適切な順序で遂行される。必ずしも前記段階の記載順序に限定されるものではない。全ての例または例示的な用語(例えば、など)の使用は、単に技術的思想について詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲またはその均等物の範疇内で、設計条件及びファクタによって構成されるということが分かるであろう。
本発明の両眼視差映像に対するレンダリング方法及びその装置は、例えば、グラフィック関連の技術分野に効果的に適用可能である。
100、400、1100、1500、1600、1700、2100 デバイス
110、410、1110、1530、1630、1730、2150 GPU
120、420、1120、1540、1640、1740、2160 メモリ
130、30、1130、2170 バス
1510、1610、1710 アプリケーション
1520、1620、1720 デバイスドライバ
2110 ディスプレイ部
2120 入力部
2130 通信部
2140 CPU

Claims (25)

  1. 両眼視差を有する第1映像及び第2映像に対するレンダリングを行う方法において、
    前記第1映像に対するレンダリングを行い、前記第1映像のピクセルに関する深度情報を生成する段階と、
    前記第2映像の再投影を行う段階であり、該再投影は、前記第1映像のピクセルに対応する前記第2映像の第1ピクセル、および、前記第1映像のピクセルに対応しない前記第2映像の第2ピクセルを特定する段階を含み、該特定は、前記第1映像のピクセルと関連付けされた前記深度情報に基づいている、段階と、
    前記第2映像のピクセルグループを特定する段階であり、該ピクセルグループは、前記第2ピクセルおよび前記第1ピクセルのうち選択されたピクセルを含んでおり、前記第1ピクセルの選択されたピクセルそれぞれは、前記第2ピクセルにおけるピクセルと隣接している、段階と、
    前記第2映像に対してレンダリングを行う段階であり、該レンダリングは、前記第2映像のピクセルグループにおけるピクセルのラスタ化を行う段階、および、前記レンダリングされた前記第1映像ピクセルの色情報と深度情報を再使用する段階と、
    を含む、方法。
  2. 前記再投影を行う段階は、
    前記第2映像の第1ピクセルと、前記第2映像の第2ピクセルとを区分するオクルージョンマップを生成する段階を含み、
    前記第2映像に対してレンダリングを行う段階は、
    前記オクルージョンマップに基づいて、前記第2映像の第2ピクセルのラスタ化を行う段階を含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記再投影を行う段階は、
    前記第2映像の第1ピクセルそれぞれに第1値を設定し、かつ、前記第2映像の第2ピクセルそれぞれに第2値を設定して、オクルージョンマップを生成する段階を含み、
    前記第2映像に対してレンダリングを行う段階は、
    前記第2値を有する前記オクルージョンマップのピクセルについて前記第2映像のピクセルのラスタ化を行う段階を含む、
    ことを特徴とする請求項1または2に記載の方法。
  4. 前記再投影を行う段階は、
    前記第2映像の第2ピクセルおよび前記第2映像の第1ピクセルのいくつかを含む、第1ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成する段階を含み、
    前記第2映像に対してレンダリングを行う段階は、
    前記拡張されたオクルージョンマップに基づいて、前記第1ピクセルグループのラスタ化を行う段階を含む、
    ことを特徴とする請求項1に記載の方法。
  5. 前記再投影を行う段階は、
    前記第2映像の第2ピクセルそれぞれの深度値が、前記第2映像の深度バッファを生成するための深度テスト(Z−test)を満足する所定値であるように決定する段階を含み、
    前記レンダリングを行う段階は、
    前記第2映像の前記深度バッファを利用して、前記第2映像の第1ピクセル及び第2ピクセルについて前記深度テストを行う段階と、
    前記第2映像に対するレンダリングの最中に、前記深度テストを満足する前記第2映像のピクセルだけにピクセルシェーディングを行う段階と、を含む、
    ことを特徴とする請求項1に記載の方法。
  6. 前記再投影を行う段階は、
    前記第2映像の第1ピクセルそれぞれのカラー値を前記第1映像のピクセルに対応して決定されたカラー値であるように決定し、かつ、
    前記第1映像に対するレンダリング結果として生成される前記第1映像のカラー情報を基に、前記第2映像の第2それぞれのカラー値を所定値であるように決定し、前記第2映像のカラーバッファを生成する段階を含み、
    前記第2映像に対してレンダリングを行う段階は、
    前記第2映像の第2ピクセルそれぞれのカラー値を計算する段階と、
    前記所定値に決定された前記第2映像の第2ピクセルそれぞれのカラー値を、前記第2映像の第2ピクセルそれぞれについて前記計算されたカラー値であるように修正し、前記第2映像のカラーバッファを修正する段階と、を含む、
    ことを特徴とする請求項1に記載の方法。
  7. 前記第1映像に対するレンダリングを行い、第1映像の深度情報を生成する段階は、
    前記第1映像及び前記第2映像に対するドローコマンドを受信する段階と、
    前記受信されたドローコマンドに基づいて、前記第1映像に対するレンダリングを行う段階と、を含む、
    ことを特徴とする請求項1に記載の方法。
  8. 前記ドローコマンドは、前記第1映像及び前記第2映像それぞれに係わる状態情報を含む、
    ことを特徴とする請求項7に記載の方法。
  9. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記第1映像に対するレンダリングを行い、第1映像の深度情報を生成する段階は、
    前記第1映像のタイルそれぞれに対するレンダリングを行い、前記タイルそれぞれの深度バッファを生成する段階を含み、
    前記再投影を行う段階は、
    前記タイルそれぞれの深度バッファを基に、前記タイルそれぞれのピクセルと対応する前記第2映像の第1ピクセルを決定し、再投影を行う段階を含む、
    ことを特徴とする請求項1に記載の方法。
  10. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記第1映像及び前記第2映像に対するドローコマンドに基づいて、前記第1映像及び前記第2映像に係わるタイルビニングを行う段階をさらに含む、
    ことを特徴とする請求項1に記載の方法。
  11. 前記タイルビニングを行う段階は、
    前記ドローコマンドをバッチに分け、前記バッチを複数のグラフィックスパイプラインに割り当てる段階と、
    前記バッチのうち第1バッチを、前記複数のグラフィックスパイプラインのうち第1グラフィックスパイプラインに割り当てる場合、前記第1バッチ、及び前記第1バッチと対応する状態情報に基づいて、前記第1映像及び前記第2映像それぞれに係わるタイルビニングを行う段階と、をさらに含む、
    ことを特徴とする請求項10に記載の方法。
  12. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記選択してレンダリングを行う段階は、
    前記オクルージョンマップに基づいて、第2映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定する段階と、
    前記決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行う段階と、をさらに含む、
    ことを特徴とする請求項2に記載の方法。
  13. 両眼視差を有する第1映像及び第2映像に対するレンダリングを行うデバイスにおいて、
    前記第1映像に対するレンダリングを行い、前記第1映像のピクセルに関する深度情報を生成するGPU(graphics processing unit)と、
    前記第1映像のピクセルに関する深度情報を保存するメモリと、を含み、
    前記GPUは、さらに、
    前記第2映像の再投影を行うように構成されており、該再投影は、
    前記第1映像のピクセルに対応する前記第2映像の第1ピクセル、および、前記第1映像のピクセルに対応しない前記第2映像の第2ピクセルに対応する前記第2映像の第1ピクセルを特定する段階であり、前記特定は、前記第1映像のピクセルと関連付けされた前記深度情報に基づいている、段階と、
    前記第2映像のピクセルグループを特定する段階であり、該ピクセルグループは、前記第2ピクセルおよび前記第1ピクセルのうち選択されたピクセルを含んでおり、前記第1ピクセルの選択されたピクセルそれぞれは、前記第2ピクセルにおけるピクセルと隣接している、段階と、
    前記第2映像に対してレンダリングを行う段階であり、該レンダリングは、前記第2映像のピクセルグループにおけるピクセルのラスタ化を行う段階、および、前記レンダリングされた前記第1映像ピクセルの色情報と深度情報を再使用する段階と、
    を含む、デバイス。
  14. 前記GPUは、
    前記第2映像の第1ピクセルと、前記第2映像の第2ピクセルとを区分するオクルージョンマップを生成するシェーダと、
    前記オクルージョンマップに基づいて、前記第2映像の第2ピクセルのラスタ化を行うラスタライザと、を含む、
    ことを特徴とする請求項13に記載のデバイス。
  15. 前記シェーダは、
    オクルージョンマップを生成するように構成されており、第1値を設定することにより前記オクルージョンマップにおいて前記第2映像の第1ピクセルそれぞれを示し、かつ、第2値を設定することにより前記第2映像の第2ピクセルそれぞれを示し、
    前記ラスタライザは、さらに、
    前記第2値を有する前記オクルージョンマップのピクセルについて前記第2映像のピクセルのレンダリングを行うことによって、前記第2映像のピクセルグループにおけるピクセルのラスタ化を行うように構成されている、
    ことを特徴とする請求項14に記載のデバイス。
  16. 前記シェーダは、
    前記第2映像の第2ピクセルおよび前記第2映像の第1ピクセルのいくつかを含む、第1ピクセルグループに所定値を設定し、拡張されたオクルージョンマップを生成するように構成されており、
    前記ラスタライザは、
    前記拡張されたオクルージョンマップに基づいて、前記第1ピクセルグループのラスタ化を行うように構成されている、
    ことを特徴とする請求項14に記載のデバイス。
  17. 前記GPUは、
    前記第2映像の第1ピクセルそれぞれの深度値が、前記第1映像の対応するピクセルの深度値であるように決定し、かつ、
    前記第2映像の第2ピクセルそれぞれの深度値が、前記第2映像の深度バッファを生成するための深度テストを満足する所定値であるように決定する、
    ように構成されている、シェーダと、
    前記第2映像の深度バッファを利用して、前記第2映像の第1ピクセル及び第2ピクセルに係わる前記深度テストを行う、ように構成されているZ−テスト部と、を含み、
    前記GPUは、
    前記第2映像に対するレンダリングの最中に、前記深度テストを満足する前記第2映像のピクセルだけにピクセルシェーディングを行う、
    ことを特徴とする請求項13に記載のデバイス。
  18. 前記GPUは、
    前記第2映像の第1ピクセルそれぞれのカラー値を前記第1映像のピクセルに対応して決定されたカラー値であるように決定し、かつ、
    前記第1映像に対するレンダリング結果として生成される前記第1映像のカラー情報を基に、前記第2映像の第2ピクセルそれぞれのカラー値を所定値であるように決定し、前記第2映像の他の一部ピクセルそれぞれのカラー値は、既設定値であるように決定し、前記第2映像のカラーバッファを生成するシェーダを含み、
    前記GPUは、
    前記第2映像の第2ピクセルそれぞれのカラー値を計算し、かつ、
    前記所定値に決定された前記第2映像の第2ピクセルそれぞれのカラー値を、前記第2映像の第2ピクセルそれぞれについて前記計算されたカラー値であるように修正し、前記第2映像のカラーバッファを修正する、
    ことを特徴とする請求項13に記載のデバイス。
  19. 前記GPUは、
    前記第1映像及び前記第2映像に対するドローコマンドを受信し、かつ、
    前記受信されたドローコマンドに基づいて、前記第1映像に対するレンダリングを行う、
    ことを特徴とする請求項13に記載のデバイス。
  20. 前記ドローコマンドは、前記第1映像及び前記第2映像それぞれに係わる状態情報を含む、
    ことを特徴とする請求項19に記載のデバイス。
  21. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記GPUは、前記第1映像のタイルそれぞれに対するレンダリングを行い、前記タイルそれぞれの深度バッファを生成し、
    前記メモリは、前記タイルそれぞれの深度バッファを保存し、
    前記GPUは、
    前記タイルそれぞれの深度バッファを基に、前記タイルそれぞれのピクセルと対応する前記第2映像の第1ピクセルを決定し、再投影を行い、前記再投影に基づいて、前記第2映像の第2ピクセルを選択してレンダリングを行う、
    ことを特徴とする請求項13に記載のデバイス。
  22. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記GPUは、前記第1映像及び前記第2映像に対するドローコマンドに基づいて、前記第1映像及び前記第2映像に係わるタイルビニングを行う、
    ことを特徴とする請求項13に記載のデバイス。
  23. 前記GPUは、
    前記ドローコマンドをバッチに分け、前記バッチを複数のグラフィックスパイプラインに割り当て、かつ、
    前記バッチのうち第1バッチを、前記複数のグラフィックスパイプラインのうち第1グラフィックスパイプラインに割り当てる場合、前記第1バッチ、及び前記第1バッチと対応する状態情報に基づいて、前記第1映像及び前記第2映像それぞれに係わるタイルビニングを行う、
    ことを特徴とする請求項22に記載のデバイス。
  24. 前記第1映像及び前記第2映像に対するレンダリングがタイル基盤レンダリングである場合、
    前記GPUは、
    前記オクルージョンマップに基づいて、第2映像のタイルそれぞれに対するスケジューリングを行うか否かということを決定するスケジューラと、
    前記決定に基づいて、スケジューリングを行うと決定されたタイルに対するタイルレンダリングを行うグラフィックスパイプラインと、をさらに含む、
    ことを特徴とする請求項14に記載のデバイス。
  25. 請求項1ないし12のうちいずれか1項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
JP2016089073A 2015-05-04 2016-04-27 両眼視差映像に対するレンダリング方法及びその装置 Active JP6530728B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0062651 2015-05-04
KR1020150062651A KR102341267B1 (ko) 2015-05-04 2015-05-04 양안 시차 영상에 대한 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2016212859A JP2016212859A (ja) 2016-12-15
JP6530728B2 true JP6530728B2 (ja) 2019-06-12

Family

ID=56008482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016089073A Active JP6530728B2 (ja) 2015-05-04 2016-04-27 両眼視差映像に対するレンダリング方法及びその装置

Country Status (5)

Country Link
US (1) US10332307B2 (ja)
EP (1) EP3091739A1 (ja)
JP (1) JP6530728B2 (ja)
KR (1) KR102341267B1 (ja)
CN (1) CN106127848B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
GB2561152B (en) * 2017-03-21 2021-01-13 Advanced Risc Mach Ltd Data processing systems
CN110573929A (zh) * 2017-05-01 2019-12-13 无限增强现实以色列有限公司 增强或混合现实环境的光学引擎时间扭曲
US10269181B2 (en) * 2017-05-31 2019-04-23 Verizon Patent And Licensing Inc. Methods and systems for generating a virtualized projection of a customized view of a real-world scene for inclusion within virtual reality media content
US10403032B2 (en) * 2017-08-22 2019-09-03 Qualcomm Incorporated Rendering an image from computer graphics using two rendering computing devices
GB2570743B (en) * 2018-06-29 2021-06-23 Imagination Tech Ltd Tile assignment to processing cores within a graphics processing unit
WO2020118097A1 (en) * 2018-12-05 2020-06-11 Sony Corporation Room shaders for animated movies
US10853993B2 (en) * 2018-12-18 2020-12-01 Varjo Technologies Oy System and method for producing images for display apparatus
CN112015264B (zh) * 2019-05-30 2023-10-20 深圳市冠旭电子股份有限公司 虚拟现实显示方法、虚拟现实显示装置及虚拟现实设备
US11336887B2 (en) * 2019-09-03 2022-05-17 Facebook Technologies, Llc Adaptive shading and reprojection
CN111105451B (zh) * 2019-10-31 2022-08-05 武汉大学 一种克服遮挡效应的驾驶场景双目深度估计方法
CN113129417A (zh) * 2019-12-27 2021-07-16 华为技术有限公司 一种全景应用中图像渲染的方法及终端设备
CN113490963B (zh) * 2020-01-22 2024-09-24 华为技术有限公司 显示系统、图形处理器gpu、显示控制器以及显示方法
GB2593525B (en) 2020-03-27 2022-06-01 Imagination Tech Ltd Stereoscopic graphics processing
US11570418B2 (en) 2021-06-17 2023-01-31 Creal Sa Techniques for generating light field data by combining multiple synthesized viewpoints

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9706000D0 (en) 1997-03-22 1997-05-07 Philips Electronics Nv Multiple viewpoint image generation
AU1776001A (en) 1999-11-18 2001-05-30 Info Assets, Inc. Rendering image data
US7085409B2 (en) 2000-10-18 2006-08-01 Sarnoff Corporation Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery
US6756993B2 (en) * 2001-01-17 2004-06-29 The University Of North Carolina At Chapel Hill Methods and apparatus for rendering images using 3D warping techniques
US20040238732A1 (en) 2001-10-19 2004-12-02 Andrei State Methods and systems for dynamic virtual convergence and head mountable display
US7982733B2 (en) 2007-01-05 2011-07-19 Qualcomm Incorporated Rendering 3D video images on a stereo-enabled display
US8929645B2 (en) * 2007-04-24 2015-01-06 21 Ct, Inc. Method and system for fast dense stereoscopic ranging
CN101702241A (zh) * 2009-09-07 2010-05-05 无锡景象数字技术有限公司 基于视差图的多视点图像渲染方法
JP2011060216A (ja) * 2009-09-14 2011-03-24 Fujifilm Corp 画像処理装置および画像処理方法
KR101585998B1 (ko) * 2009-11-10 2016-01-15 삼성전자주식회사 영상 처리 장치 및 방법
KR101385514B1 (ko) 2010-06-08 2014-04-16 주식회사 에스칩스 깊이 맵 정보를 이용한 입체 영상 변환 방법 및 장치
US8643700B2 (en) * 2010-11-17 2014-02-04 Dell Products L.P. 3D content adjustment system
US8711163B2 (en) * 2011-01-06 2014-04-29 International Business Machines Corporation Reuse of static image data from prior image frames to reduce rasterization requirements
US20120176386A1 (en) 2011-01-10 2012-07-12 Hutchins Edward A Reducing recurrent computation cost in a data processing pipeline
US8624891B2 (en) 2011-01-17 2014-01-07 Disney Enterprises, Inc. Iterative reprojection of images
TW201249191A (en) 2011-05-19 2012-12-01 Altek Corp Method for processing image
US9401039B2 (en) * 2011-07-01 2016-07-26 Panasonic Intellectual Property Management Co., Ltd. Image processing device, image processing method, program, and integrated circuit
KR101334187B1 (ko) 2011-07-25 2013-12-02 삼성전자주식회사 다시점 렌더링 장치 및 방법
US9621869B2 (en) * 2012-05-24 2017-04-11 Sony Corporation System and method for rendering affected pixels
GB2497154B (en) 2012-08-30 2013-10-16 Imagination Tech Ltd Tile based interleaving and de-interleaving for digital signal processing
KR101386651B1 (ko) * 2012-09-13 2014-04-17 전자부품연구원 다시점 비디오 인코딩 및 디코딩 방법 및 이를 이용한 인코딩 및 디코딩 장치
JP6033625B2 (ja) 2012-09-28 2016-11-30 シャープ株式会社 多視点画像生成装置、画像生成方法、表示装置、プログラム、及び、記録媒体
US9241146B2 (en) 2012-11-02 2016-01-19 Nvidia Corporation Interleaved approach to depth-image-based rendering of stereoscopic images
US9087410B2 (en) 2013-01-17 2015-07-21 Qualcomm Incorporated Rendering graphics data using visibility information
KR102116708B1 (ko) * 2013-05-24 2020-05-29 삼성전자 주식회사 그래픽스 프로세싱 유닛
US9514563B2 (en) * 2013-08-30 2016-12-06 Arm Limited Graphics processing systems
EP2887312A1 (en) * 2013-12-18 2015-06-24 Nokia Corporation Method, apparatus and computer program product for depth estimation of stereo images
CN103679739A (zh) * 2013-12-26 2014-03-26 清华大学 基于遮挡区域检测的虚拟视图生成方法

Also Published As

Publication number Publication date
US20160328879A1 (en) 2016-11-10
CN106127848A (zh) 2016-11-16
EP3091739A1 (en) 2016-11-09
CN106127848B (zh) 2020-10-09
JP2016212859A (ja) 2016-12-15
US10332307B2 (en) 2019-06-25
KR102341267B1 (ko) 2021-12-20
KR20160130629A (ko) 2016-11-14

Similar Documents

Publication Publication Date Title
JP6530728B2 (ja) 両眼視差映像に対するレンダリング方法及びその装置
US11748840B2 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
CN106296565B (zh) 图形管线方法和设备
TWI616846B (zh) 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置
JP6709038B2 (ja) グラフィックス・パイプラインを遂行する方法及びコンピューティング装置
US9449421B2 (en) Method and apparatus for rendering image data
KR102646906B1 (ko) 타일 기반 렌더링 방법 및 장치
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
US20130127858A1 (en) Interception of Graphics API Calls for Optimization of Rendering
US10169839B2 (en) Method and apparatus for executing graphics pipeline
US20180144538A1 (en) Method and apparatus for performing tile-based rendering
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US10607390B2 (en) Techniques for tiling compute work with graphics work
US10078911B2 (en) System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure
JP2016529593A (ja) 立体シーンのインターリーブ方式のタイル型レンダリング
CN107016716B (zh) 确定细节级别的图形处理设备和方法
TW202025080A (zh) 用於圖形處理之方法及裝置
US9406165B2 (en) Method for estimation of occlusion in a virtual environment
US10062138B2 (en) Rendering apparatus and method
JP4987890B2 (ja) 立体画像描画装置、立体画像描画方法、立体画像描画プログラム
KR102085701B1 (ko) 이미지를 렌더링하는 방법
US20160328867A1 (en) Method and apparatus for performing curve rendering

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190517

R150 Certificate of patent or registration of utility model

Ref document number: 6530728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250