JP4987890B2 - 立体画像描画装置、立体画像描画方法、立体画像描画プログラム - Google Patents
立体画像描画装置、立体画像描画方法、立体画像描画プログラム Download PDFInfo
- Publication number
- JP4987890B2 JP4987890B2 JP2009024989A JP2009024989A JP4987890B2 JP 4987890 B2 JP4987890 B2 JP 4987890B2 JP 2009024989 A JP2009024989 A JP 2009024989A JP 2009024989 A JP2009024989 A JP 2009024989A JP 4987890 B2 JP4987890 B2 JP 4987890B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- perspective
- projection
- coordinate
- stereoscopic image
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/286—Image signal generators having separate monoscopic and stereoscopic modes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Description
この発明は、立体画像を描画する立体画像描画装置、立体画像描画方法および立体画像描画プログラムに関する。
従来の立体画像描画方法には、視差を有する複数枚の画像(多視点画像)の各画素を1つの画像(以下、合成画像と称する)に離散的に配置し、この合成画像を構成する各画素からの光線の軌道をレンチキュラーレンズなどにより制御して、観察者に立体画像を知覚させるインテグラルイメージング(以下、IIと称する)方式と呼ばれるものがある(このII方式は、インテグラルフォトグラフィ(IP)方式とも呼ばれる)。このII方式は、現実に近い光線を再生できる理想的な立体画像の描画方式として知られている。
しかし、II方式では、1枚の合成画像に複数枚の画像の各画素を離散的に配置しているため画像の精細度が低くなる。
このため、合成画像の水平方向だけに視差をつけることにより精細度の低下を防ぐ1次元II方式が提案されている。この1次元II方式では、3次元のCGモデルを構成する描画対象物の各頂点の座標(x、y、z)に透視投影行列を乗算した後、y座標とz座標の値を1−z/d(dは投影中心)の値で除算する。これにより、水平方向(x座標軸)を平行投影、垂直方向(y座標軸)を透視投影している。
しかし、II方式では、1枚の合成画像に複数枚の画像の各画素を離散的に配置しているため画像の精細度が低くなる。
このため、合成画像の水平方向だけに視差をつけることにより精細度の低下を防ぐ1次元II方式が提案されている。この1次元II方式では、3次元のCGモデルを構成する描画対象物の各頂点の座標(x、y、z)に透視投影行列を乗算した後、y座標とz座標の値を1−z/d(dは投影中心)の値で除算する。これにより、水平方向(x座標軸)を平行投影、垂直方向(y座標軸)を透視投影している。
特許文献1に記載の方法では、水平方向を平行投影、垂直方向を透視投影する方法(以下、第1の立体画像描画方法と称する)は開示されている。しかしながら、水平方向を透視投影し、垂直方向を平行投影する方法(以下、第2の立体画像描画方法と称する)については開示されていない。このため、これら第1、第2の立体画像描画方法を切り替えて描画することができない。
上記に鑑み、本発明は、水平方向に視差を有する立体画像と垂直方向に視差を有する立体画像とを切り替えて描画できる立体画像描画装置、立体画像描画方法および立体画像描画プログラムを提供することを目的とする。
上記に鑑み、本発明は、水平方向に視差を有する立体画像と垂直方向に視差を有する立体画像とを切り替えて描画できる立体画像描画装置、立体画像描画方法および立体画像描画プログラムを提供することを目的とする。
本発明の一態様に係る立体画像描画装置は、互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの座標成分を記憶する記憶部と、第1または第2のいずれかの方向に視差を有するオブジェクトの立体画像を表示する表示部と、表示部が第1または第2のいずれの方向に視差を有するかを検出する検出部と、検出部での検出結果が第1の方向である場合、オブジェクトを第1の方向に平行投影し、検出部での検出結果が第2の方向である場合、オブジェクトを第2の方向に平行投影する投影演算部と、を具備する。
本発明の一態様に係る立体画像描画方法は、記憶部に記憶された互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの立体画像を表示するステップと、オブジェクトの立体画像が第1または第2のいずれの方向に視差を有するかを検出するステップと、検出部での検出結果が第1の方向である場合、オブジェクトを第1の方向に平行投影し、検出部での検出結果が第2の方向である場合、オブジェクトを第2の方向に平行投影するステップと、を具備する。
本発明の一態様に係る立体画像描画プログラムは、コンピュータを、互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの座標成分を記憶する記憶部と、第1または第2のいずれかの方向に視差を有するオブジェクトの立体画像を表示する表示部と、表示部が第1または第2のいずれの方向に視差を有するかを検出する検出部と、検出部での検出結果が第1の方向である場合、オブジェクトを第1の方向に平行投影し、検出部での検出結果が第2の方向である場合、オブジェクトを第2の方向に平行投影する投影演算部と、して動作させる。
本発明によれば、水平方向に視差を有する立体画像と垂直方向に視差を有する立体画像とを切り替えて描画できる立体画像描画装置、立体画像描画方法および立体画像描画プログラムを提供することができる。
以下、図面を参照して、本発明の実施形態を詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態に係る立体画像描画装置1のハードウェア構成の一例を示した図である。図2は、第1の実施形態に係る立体画像描画装置1の機能構成の一例を示した図である。図3は、透視投影を説明するための図である。図4は、平行投影を説明するための図である。図5Aは、図4に示すパラメータθを説明するための図である。図5Bは、図4に示すパラメータφを説明するための図である。
(第1の実施形態)
図1は、第1の実施形態に係る立体画像描画装置1のハードウェア構成の一例を示した図である。図2は、第1の実施形態に係る立体画像描画装置1の機能構成の一例を示した図である。図3は、透視投影を説明するための図である。図4は、平行投影を説明するための図である。図5Aは、図4に示すパラメータθを説明するための図である。図5Bは、図4に示すパラメータφを説明するための図である。
なお、通常のカメラで、水平方向を透視投影、垂直方向を平行投影または水平方向を平行投影、垂直方向を透視投影することは困難である。このため、この第1の実施形態では、CGにより仮想3次元空間上に描画された対象物(オブジェクト)を、水平方向または垂直方向に視差を有する立体画像を切り替えて描画する形態について説明する。ここで、水平方向に視差を有するとは、水平方向に画像を立体的に視認させることである。また、垂直方向に視差を有するとは、垂直方向に画像を立体的に視認させることである。
図1に示すように、立体画像描画装置1は、GPU(Graphic Processing Unit)11、VRAM12、CPU13、RAM14、I/F15、HDD16、マウスやキーボードなどで構成される入力部17および表示部18、変換部19などを具備する。
入力部17やハードディスク16からデータが入力されると、CPU13とRAM14によりグラフィックス処理のための入力データがGPU11に送られる。GPU11は、入力データに基づいて視差を有する複数枚の画像データ(多視点画像データ)を生成し、該画像データをVRAM12に書き込む。変換部19は、GPU11で生成された多視点画像の各画素を1つの画像に離散的に配置して合成画像に変換する。表示部18には、VRAM12に書き込まれた画像データを変換部19が変換した画像が表示される。なお変換部19は、GPU11やCPU13を用いて変換することにより、省略する事もできる。
また、図2に示すように、第1の実施形態に係る立体画像描画装置1は、記憶部101、モデルビュー行列乗算部102、投影行列乗算部103、透視除算部104、ビューポート変換部105、ラスタライズ部106、ピクセル処理部107、表示部18、変換部19、透視除算制御部109を具備する。
モデルビュー行列乗算部102および投影行列乗算部103は頂点シェーダ21に含まれる。透視除算部104、ビューポート変換部105、ラスタライズ部106および透視除算制御部109はラスタライザ22に含まれる。ピクセル処理部107は、ピクセルシェーダ23に含まれる。
また、投影行列乗算部103、透視除算部104および透視除算制御部109は、投影演算部に含まれる。また、透視除算部104および透視除算制御部109は、第1の透視演算部に含まれる。
なお、近年のグラフィックスプロセッサでは、頂点シェーダ21およびピクセルシェーダ23の動作をユーザ(利用者)がプログラムで制御できるように構成されていることが多い。このため、頂点シェーダ21およびピクセルシェーダ23の機能はソフトウェアにより変更できる。また、ラスタライザ22の機能は固定されている。このため、ラスタライザ22の機能の変更にはハードウェア回路の変更が必要となる。
以下、第1の実施形態に係る立体画像描画装置1の詳細について説明する。
(記憶部101)
記憶部101には、CGにより、仮想3次元空間上に描画されるオブジェクトの各頂点の座標(以下、オブジェクト座標と称する)などのデータが記憶されている。オブジェクトの各頂点の座標は、4次元(x、y、z、w)で表わされる。
(記憶部101)
記憶部101には、CGにより、仮想3次元空間上に描画されるオブジェクトの各頂点の座標(以下、オブジェクト座標と称する)などのデータが記憶されている。オブジェクトの各頂点の座標は、4次元(x、y、z、w)で表わされる。
x軸、y軸、z軸は互いに直行しており、3次元直行座標を形成する。x軸は、表示部18の画面に対して水平方向(第1の方向)、y軸は垂直方向(第2の方向)、z軸は奥行方向(第3の方向)として定義される。ここで、オブジェクトの各頂点の座標が4次元(x、y、z、w)で表わされているのは、OpenGLなどのAPI(Application Programming Interface)で使用される変換行列が4行4列の4次元座標であることに対応している。変換行列として4次元座標を用いることで、回転と平行移動の座標変換を1つの行列で記載できる。なお、w座標は、通常「1」に設定される。
また、記憶部101には、モデルビュー行列乗算部102で使用されるモデルビュー行列および投影行列乗算部103で使用される投影行列が記憶されている。さらに、記憶部101には、頂点シェーダ処理およびピクセルシェーダ処理の手順を記述したプログラムに関するデータなどが記憶されている。なお、記憶部101に記憶されているデータの形式は、様々な形式が適用できる。そして、記憶部101には、所望のCGを描画するために必要なデータが記憶されている。
ここで、投影について説明する。
一般に、CGで使用される投影には透視投影(Perspective Projection)と平行投影(Orthographic Projection)の2種類がある。
一般に、CGで使用される投影には透視投影(Perspective Projection)と平行投影(Orthographic Projection)の2種類がある。
(透視投影)
透視投影とは、オブジェクトから出る光線軸をある一点(視点)に収束させる投影方法である。透視投影では、視点から近いオブジェクトが、視点から遠いオブジェクトよりも大きく表現される。
透視投影とは、オブジェクトから出る光線軸をある一点(視点)に収束させる投影方法である。透視投影では、視点から近いオブジェクトが、視点から遠いオブジェクトよりも大きく表現される。
図3に示すように、透視投影では視体積O1の形状は、四角錐台となる。視体積O1とは、視点Pに対して相対的に配置されたシーン内のボリュームである。この視体積O1内に配置されたオブジェクトが描画対象となり、表示部18に表示される。
ここで、図3に示したn1は、視点Pから近クリップ面S1までの長さである。f1は、視点Pから遠クリップ面S2までの長さである。r1は、近クリップ面S1の右辺の長さである。l1は、近クリップ面S1の左辺の長さである。t1は、近クリップ面S1の上辺の長さである。b1は、近クリップ面S1の下辺の長さである。
(平行投影)
平行投影とは、オブジェクトから出る光線軸を任意の軸(投影軸)に対して平行する投影方法である。平行投影には、正投影と斜投影がある。
平行投影とは、オブジェクトから出る光線軸を任意の軸(投影軸)に対して平行する投影方法である。平行投影には、正投影と斜投影がある。
正投影とは、例えば、視点を中心とした視点座標において、投影軸が奥行き方向(Z軸方向)に対して平行である場合の平行投影である。すなわち、投影面と投影線との角度が垂直となる。
一方、斜投影とは、投影軸が奥行き方向(Z軸方向)に対して平行でない場合の平行投影である。すなわち、投影面と投影線との角度が垂直とならない。II方式を用いた立体画像描画装置1による立体画像の描画には、後者の斜投影が用いられる。以降、平行投影と記述した場合、この斜投影のことを示すものとする。図4に示すように、平行投影では視体積O2の形状は、直方体となる。
ここで、図4に示したn2は、視点Pから近クリップ面S3までの長さである。f2は、視点Pから遠クリップ面S4までの長さである。r2は、近クリップ面S3の右辺の長さである。l2は、近クリップ面S3の左辺の長さである。t2は、近クリップ面S3の上辺の長さである。b2は、近クリップ面S3の下辺の長さである。また、図5A、5Bに示すように、θは、投影軸をxz平面に射影したベクトルとz軸との角度である。φは、投影軸をyz平面に射影したベクトルとz軸との角度である。
(1次元II用の投影行列)
この第1の実施形態に係る立体画像描画装置1は、水平方向または垂直方向にのみ視差を有する画像を表示部18に表示する。水平方向に視差を有する画像を表示する場合、オブジェクトの各頂点のx座標を平行投影、y座標を透視投影する必要がある。また、垂直方向に視差を有する画像を表示する場合、各頂点のx座標を透視投影、y座標を平行投影する必要がある。
この第1の実施形態に係る立体画像描画装置1は、水平方向または垂直方向にのみ視差を有する画像を表示部18に表示する。水平方向に視差を有する画像を表示する場合、オブジェクトの各頂点のx座標を平行投影、y座標を透視投影する必要がある。また、垂直方向に視差を有する画像を表示する場合、各頂点のx座標を透視投影、y座標を平行投影する必要がある。
このような特殊な投影を実現するために、記憶部101には、水平方向に視差を有する画像を表示する場合に使用する投影行列(以下、第1の投影行列と称する)および垂直方向に視差を有する画像を表示する場合に使用する投影行列(以下、第2の投影行列と称する)が記憶されている。
この第1の投影行列は、x座標の算出に関係する箇所(1行目)に平行投影行列の対応する要素が設定され、y座標、z座標、w座標の算出に関係する箇所(2行目から4行目)に透視投影行列の対応する要素が設定されている。
この第2の投影行列は、x座標、z座標、w座標の算出に関係する箇所(1行目、3行目および4行目)に透視投影行列の対応する要素が設定され、y座標に関係する箇所(2行目)に平行投影行列の対応する要素が設定されている。
(モデルビュー行列乗算部)
モデルビュー行列乗算部102は、記憶部101に記憶されているモデルビュー行列およびオブジェクト座標を読み出す。そして、読み出したモデルビュー行列とオブジェクト座標を乗算してオブジェクト座標を視点座標に変換する。
モデルビュー行列乗算部102は、記憶部101に記憶されているモデルビュー行列およびオブジェクト座標を読み出す。そして、読み出したモデルビュー行列とオブジェクト座標を乗算してオブジェクト座標を視点座標に変換する。
この変換は、モデルビュー変換と呼ばれる。モデルビュー変換では、ローカル座標系で表わされたオブジェクト座標を視点座標に変換する。なお、視点座標は、オブジェクトを観察するカメラ(ユーザ)の視点を中心とした座標である。
(投影行列乗算部)
投影行列乗算部103は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。投影行列乗算部103は、検出部での検出結果に応じて記憶部101に記憶されている投影行列を読み出す。すなわち、表示部18が水平方向に視差を有する画像を表示する場合、第1の投影行列を読み出す。また、表示部18が垂直方向に視差を有する画像を表示する場合、第2の投影行列を読み出す。投影行列乗算部103は、読み出した投影行列とモデルビュー行列乗算部102で算出された視点座標とを乗算してオブジェクトの各頂点のクリップ座標を算出する。
投影行列乗算部103は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。投影行列乗算部103は、検出部での検出結果に応じて記憶部101に記憶されている投影行列を読み出す。すなわち、表示部18が水平方向に視差を有する画像を表示する場合、第1の投影行列を読み出す。また、表示部18が垂直方向に視差を有する画像を表示する場合、第2の投影行列を読み出す。投影行列乗算部103は、読み出した投影行列とモデルビュー行列乗算部102で算出された視点座標とを乗算してオブジェクトの各頂点のクリップ座標を算出する。
(透視除算制御部)
透視除算制御部109は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。また、図6A、6Bに示すテーブルデータが記憶されている記憶部(図示せず)を具備する。
透視除算制御部109は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。また、図6A、6Bに示すテーブルデータが記憶されている記憶部(図示せず)を具備する。
表示部18が水平方向に視差を有する画像を表示する場合、投影行列を乗算した後の頂点座標のx座標については除算せず、その他の座標成分についてはw座標で除算する必要がある。
一方、表示部18が垂直方向に視差を有する画像を表示する場合、投影行列を乗算した後の頂点座標のy座標については除算せず、その他の座標成分についてはw座標で除算する必要がある。
透視除算制御部109は、特定の座標成分を選択して透視除算する処理を透視除算部104で実現するために、透視除算制御部109は、表示部18の種別に応じて透視除算部104を制御する。具体的には、表示部18が水平方向または垂直方向のどちらに視差を有するかに応じて座標成分ごとに除算を有効にするか、あるいは無効にするかを指定する制御信号を生成し、該制御信号を透視除算部104へ入力する。
透視除算制御部109は、検出部での検出結果に応じて記憶部に記憶されているテーブルデータを使用する。透視除算制御部109は、表示部18が水平方向に視差を有する場合、図6Aのテーブルデータを使用する。この場合、透視除算制御部109は、座標成分xについては、透視除算を無効にし、座標成分y、z、wについては、透視除算を有効とする制御信号を透視除算部104へ入力する。
また、透視除算制御部109は、表示部18が垂直方向に視差を有する場合、図6Bのテーブルデータを使用する。この場合、透視除算制御部109は、座標成分yについては、透視除算を無効にし、座標成分x、z、wについては、透視除算を有効とする制御信号を透視除算部104へ入力する。なお、図6A、6Bに示したテーブルデータを記憶部101に記憶しておき、透視除算制御部109が検出結果に応じて記憶部101から読みだすように構成してもよい。
(透視除算部)
透視除算部104は、透視除算制御部109から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の座標成分x、y、z、wをw座標で除算する。
透視除算部104は、透視除算制御部109から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の座標成分x、y、z、wをw座標で除算する。
透視除算部104は、透視除算制御部109から入力される制御信号から透視除算を有効とする座標成分を判別する。そして、透視除算部104は、透視除算が有効であると判別された座標成分について、下記の式(5)ないし(8)を実行する。
x’=x/w…(5)
y’=y/w…(6)
z’=z/w…(7)
w’=w/w…(8)
x’=x/w…(5)
y’=y/w…(6)
z’=z/w…(7)
w’=w/w…(8)
これにより、各頂点の正規化デバイス座標が算出される。
表示部18が垂直方向に視差を有する画像を表示する場合の各頂点の正規化デバイス座標は(x、y’、z’、w’)となる。また、表示部18が水平方向に視差を有する画像を表示する場合の各頂点の正規化デバイス座標は(x’、y、z’、w’)となる。
表示部18が垂直方向に視差を有する画像を表示する場合の各頂点の正規化デバイス座標は(x、y’、z’、w’)となる。また、表示部18が水平方向に視差を有する画像を表示する場合の各頂点の正規化デバイス座標は(x’、y、z’、w’)となる。
(ビューポート変換部)
ビューポート変換部105は、記憶部101から読み出した描画領域(ビューポート)の大きさに応じて透視除算部104で算出されたオブジェクトの各頂点の正規化デバイス座標のx座標およびy座標を拡大あるいは縮小し、オブジェクトの各頂点のウィンドウ座標を算出する。
ビューポート変換部105は、記憶部101から読み出した描画領域(ビューポート)の大きさに応じて透視除算部104で算出されたオブジェクトの各頂点の正規化デバイス座標のx座標およびy座標を拡大あるいは縮小し、オブジェクトの各頂点のウィンドウ座標を算出する。
(ラスタライズ部)
ラスタライズ部106は、コンピュータが扱う文字や画像をディスプレイに描画、またはプリンタで印刷したりできるように、ビューポート変換部105で算出されたウィンドウ座標をもつ各頂点によって定義される多角形(ポリゴン)領域の内部をピクセル(画素)の集合に分解する。
ラスタライズ部106は、コンピュータが扱う文字や画像をディスプレイに描画、またはプリンタで印刷したりできるように、ビューポート変換部105で算出されたウィンドウ座標をもつ各頂点によって定義される多角形(ポリゴン)領域の内部をピクセル(画素)の集合に分解する。
ビューポート変換部105で算出される多角形は、頂点のウィンドウ座標とそれらの連結情報によって画像を表現している。こうした表現方法をベクタ形式という。一方、ディスプレイは、画像をピクセルの集合として扱う。このため、ベクタ形式の情報をそのまま印刷、または描画することはできない。そこで、ラスタライズ部106は、ベクタ形式の情報を展開してピクセルの集まりに分解する。
(ピクセル処理部)
ピクセル処理部107は、ラスタライズ部106から出力された各ピクセルの描画色を算出し、記憶部101の画像メモリ内に記憶する。
ピクセル処理部107は、ラスタライズ部106から出力された各ピクセルの描画色を算出し、記憶部101の画像メモリ内に記憶する。
変換部19は、ピクセル処理部107により記憶部101へ書き込まれた画像の各画素を1つの画像に離散的に配置して合成画像に変換し、該合成画像を記憶部101へ書き込む。
(表示部18)
表示部18は、表示部18の種別を保持する種別保持部18aを具備する。また、表示部18は、変換部19により記憶部101の画像メモリに記憶された合成画像を表示する。表示部18は、立体表示すべき画像の要素画素が表示されるディスプレイと、このディスプレイからの光線を制御するレンチキュラーレンズ(アレイレンズ)またはピンホール板などを具備する。ここで前記ディスプレイは、画素がマトリクス状に固定的に配置されて表示されるタイプであれば、直視型或いは投影型の液晶表示装置、プラズマ表示装置、電界放出型表示装置、又は、有機EL表示装置等であってもよい。
表示部18は、表示部18の種別を保持する種別保持部18aを具備する。また、表示部18は、変換部19により記憶部101の画像メモリに記憶された合成画像を表示する。表示部18は、立体表示すべき画像の要素画素が表示されるディスプレイと、このディスプレイからの光線を制御するレンチキュラーレンズ(アレイレンズ)またはピンホール板などを具備する。ここで前記ディスプレイは、画素がマトリクス状に固定的に配置されて表示されるタイプであれば、直視型或いは投影型の液晶表示装置、プラズマ表示装置、電界放出型表示装置、又は、有機EL表示装置等であってもよい。
次に、第1の実施形態に係る立体画像描画装置1の動作について説明する。
図7は、立体画像描画装置1の動作を示したフローチャートである。
モデルビュー行列乗算部102は、モデルビュー行列とオブジェクト座標を乗算してオブジェクト座標を視点座標に変換する(ステップS101)。
図7は、立体画像描画装置1の動作を示したフローチャートである。
モデルビュー行列乗算部102は、モデルビュー行列とオブジェクト座標を乗算してオブジェクト座標を視点座標に変換する(ステップS101)。
投影行列乗算部103は、表示部18の種別保持部18aから表示部18の種別を検出する。投影行列乗算部103は、検出した表示部18の種別に基づき表示部18が水平方向または垂直方向のどちらに視差を有する画像を表示するかを判定する(ステップS102)。
表示部18が水平方向に視差を有する画像を表示する場合、投影行列乗算部103は、第1の投影行列を記憶部101から読み出す(ステップS103)。また、表示部18が垂直方向に視差を有する画像を表示する場合、投影行列乗算部103は、第2の投影行列を記憶部101から読み出す(ステップS104)。投影行列乗算部103は、読み出した投影行列とモデルビュー行列乗算部102で算出された視点座標とを乗算してオブジェクトの各頂点のクリップ座標を算出する(ステップS105)。
透視除算制御部109は、表示部18の種別保持部18aから表示部18の種別を検出する。透視除算制御部109は、検出した表示部18の種別に基づき表示部18が水平方向または垂直方向のどちらに視差を有する画像を表示するかを判定する(ステップS106)。
表示部18が水平方向に視差を有する画像を表示する場合、透視除算制御部109は、座標成分xについては、透視除算を無効にし、座標成分y、z、wについては、透視除算を有効とする制御信号を透視除算部104へ入力する(ステップS107)。
また、表示部18が垂直方向に視差を有する画像を表示する場合、透視除算制御部109は、座標成分yについては、透視除算を無効にし、座標成分x、z、wについては、透視除算を有効とする制御信号を透視除算部104へ入力する(ステップS108)。
透視除算部104は、透視除算制御部109から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の座標成分をw座標で除算する(ステップS109)。
ビューポート変換部105は、オブジェクトの各頂点のウィンドウ座標を算出する(ステップS110)。ラスタライズ部106は、ビューポート変換部105で算出されたウィンドウ座標をもつ各頂点によって定義される多角形(ポリゴン)領域の内部をピクセルの集合に分解する(ステップS111)。
ピクセル処理部107は、ラスタライズ部106から出力された各ピクセルの描画色を算出し、記憶部101の画像メモリ内に記憶する(ステップS112)。変換部19は、ピクセル処理部107により記憶部101へ書き込まれた多視点画像を合成画像に変換し、該合成画像を記憶部101へ書き込む(ステップS113)。表示部18は、変換部19により記憶部101の画像メモリに記憶された合成画像を表示する(ステップS114)。
以上のように、第1の実施形態に係る立体画像描画装置1によれば、投影行列を乗算した後の頂点座標から特定の座標成分を選択して除算できる。その結果、GPU11を用いて1次元II方式の立体画像を高速に描画できる。また、表示部18の種別に応じて、水平方向に視差を有する1次元II方式の立体画像と垂直方向に視差を有する1次元II方式の立体画像とを切り替えて描画できる。
なお、表示部18の種別をユーザが入力部17から入力するように構成してもよい。この場合、投影行列乗算部103は、入力部17から入力された表示部18の種別に応じて記憶部101に記憶されている投影行列を読み出す。また、透視除算制御部109は、入力部17から入力された表示部18の種別に応じて図6Aまたは図6Bのテーブルデータを使用する。
このように構成すれば、表示部18の種別が種別保持部18aに記憶されていない場合でも、ユーザが表示部18の種別をユーザが入力して、表示部18の種別に適した立体画像を描画できる。
(第2の実施形態)
第1の実施形態では、ラスタライザ22に含まれる透視除算部104の動作を制御することにより、頂点座標の特定の座標成分を選択して透視除算する処理を実現する実施形態について説明した。しかしながらグラフィックスプロセッサに固定機能として組み込まれているラスタライザ22の動作を制御するためにはハードウェア回路が透視除算制御部を含む必要がある。
第1の実施形態では、ラスタライザ22に含まれる透視除算部104の動作を制御することにより、頂点座標の特定の座標成分を選択して透視除算する処理を実現する実施形態について説明した。しかしながらグラフィックスプロセッサに固定機能として組み込まれているラスタライザ22の動作を制御するためにはハードウェア回路が透視除算制御部を含む必要がある。
この第2の実施形態では、ユーザがプログラムで制御できる頂点シェーダで必要な処理を行うことで頂点座標の特定の座標成分を選択的に透視除算する実施形態について説明する。この第2の実施形態に係る立体画像描画装置2では、頂点シェーダにおいて、頂点座標の特定の座標成分に対して選択的に透視除算の逆演算である透視乗算を行う。その後、頂点座標の全ての座標成分を透視除算部で除算することにより、透視除算部での透視除算の効果を打ち消している。このため、ハードウェア回路が透視除算制御部を含む必要がなく頂点座標の特定の座標成分を選択的に透視除算できる。
図8は、第2の実施形態に係る立体画像描画装置2の機能構成の一例を示した図である。この第2の実施形態に係る立体画像描画装置2は、記憶部101、モデルビュー行列乗算部102、投影行列乗算部103、透視除算部104A、ビューポート変換部105、ラスタライズ部106、ピクセル処理部107、表示部18、変換部19、透視乗算部111、透視乗算制御部112を具備する。なお、第1の実施形態と同様に、変換部19は、GPU11やCPU13を用いて変換することにより、省略する事もできる。
モデルビュー行列乗算部102、投影行列乗算部103、透視乗算部111および透視乗算制御部112は頂点シェーダ21Aに含まれる。透視除算部104A、ビューポート変換部105およびラスタライズ部106はラスタライザ22Aに含まれる。ピクセル処理部107は、ピクセルシェーダ23Aに含まれる。
また、投影行列乗算部103、透視除算部104A、透視乗算部111および透視乗算制御部112は、投影演算部に含まれる。また、透視除算部104A、透視乗算部111および透視乗算制御部112は、第2の透視演算部に含まれる。
なお、ハードウェア構成については、第1の実施形態に係る立体画像描画装置1と同様であるため図示およびその説明を省略する。また、図2で説明した構成要素と同様の構成要素については、同一の符号を付して重複した説明を省略する。
以下、第2の実施形態に係る立体画像描画装置2の詳細について説明する。
(透視乗算制御部)
透視乗算制御部112は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。また、図9A、9Bに示すテーブルデータが記憶されている記憶部(図示せず)を具備する。
(透視乗算制御部)
透視乗算制御部112は、種別保持部18aに保持されている表示部18の種別を検出する検出部(図示せず)を具備する。また、図9A、9Bに示すテーブルデータが記憶されている記憶部(図示せず)を具備する。
透視乗算制御部112は、表示部18の種別に応じて透視乗算部111を制御する。具体的には、透視乗算制御部112は、特定の座標成分を選択して透視乗算する処理を透視乗算部111で実現するために、表示部18が水平方向または垂直方向のどちらに視差を有するかに応じて座標成分ごとに乗算を有効にするか、あるいは無効にするかを指定する制御信号を生成し、該制御信号を透視乗算部111へ入力する。
透視乗算制御部112の検出部は、種別保持部18aに保持されている表示部18の種別を検出する。透視乗算制御部112は、表示部18が水平方向に視差を有する画像を表示する場合、図9Aのテーブルデータを使用する。この場合、透視乗算制御部112は、座標成分xについては、透視乗算を有効にし、座標成分y、z、wについては、透視乗算を無効とする制御信号を透視乗算部111へ入力する。
また、透視乗算制御部112は、表示部18が垂直方向に視差を有する画像を表示する場合、図9Bのテーブルデータを使用する。この場合、透視乗算制御部112は、座標成分yについては、透視乗算を有効にし、座標成分x、z、wについては、透視除算を無効とする制御信号を透視乗算部111へ入力する。なお、図9A、9Bに示したテーブルデータを記憶部101に記憶しておき、透視乗算制御部112が表示部18の種別に応じて読みだすように構成してもよい。
(透視乗算部)
透視乗算部111は、透視乗算制御部112から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の各座標成分x、y、z、wをw座標で乗算(透視除算の逆演算)する。
透視乗算部111は、透視乗算制御部112から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の各座標成分x、y、z、wをw座標で乗算(透視除算の逆演算)する。
透視乗算部111は、透視乗算制御部112から入力される制御信号から透視乗算を有効とする座標成分を判別する。そして、透視乗算部111は、透視乗算が有効であると判別された座標成分について、下記の式(9)ないし(12)を実行する。
x’’=x×w…(9)
y’’=y×w…(10)
z’’=z×w…(11)
w’’=w×w…(12)
x’’=x×w…(9)
y’’=y×w…(10)
z’’=z×w…(11)
w’’=w×w…(12)
(透視除算部)
透視除算部104Aは、透視乗算部111から入力される各頂点のクリップ座標のすべての座標成分をw座標で除算し、各頂点の正規化デバイス座標を算出する。
透視除算部104Aは、透視乗算部111から入力される各頂点のクリップ座標のすべての座標成分をw座標で除算し、各頂点の正規化デバイス座標を算出する。
表示部18が水平方向に視差を有する画像を表示する場合、前段の透視乗算部111によって頂点座標のx座標にw座標が乗算される。そして、透視除算部104Aでx座標がw座標で除算される。その結果、乗算と除算の効果が打ち消されて頂点座標のx座標は、投影行列乗算部103から出力された座標成分に戻る。
一方、表示部18が垂直方向に視差を有する画像を表示する場合、前段の透視乗算部111によって頂点座標のy座標にw座標が乗算される。そして、透視除算部104Aでy座標がw座標で除算される。その結果、乗算と除算の効果が打ち消されて頂点座標のy座標は、投影行列乗算部103から出力された座標成分に戻る。
すなわち、表示部18の種別が垂直方向に視差を有する1次元II方式の描画装置である場合の各頂点の正規化デバイス座標は、(x、y’、z’、w’)となり、第1の実施形態と同じ結果が得られる。また、表示部18の種別が水平方向に視差を有する1次元II方式の描画装置である場合の各頂点の正規化デバイス座標は、(x’、y、z’、w’)となり、同様に第1の実施形態と同じ結果が得られる。
次に、第2の実施形態に係る立体画像描画装置2の動作について説明する。
図10は、立体画像描画装置1の動作を示したフローチャートである。
立体画像描画装置2は、図7で説明したS101からS105の処理(第1の処理)を実施する(ステップS201)。
図10は、立体画像描画装置1の動作を示したフローチャートである。
立体画像描画装置2は、図7で説明したS101からS105の処理(第1の処理)を実施する(ステップS201)。
透視乗算制御部112は、表示部18の種別保持部18aから表示部18の種別を検出する。透視乗算制御部112は、検出した種別保持部18aに基づき表示部18が水平方向または垂直方向のどちらに視差を有する画像を表示するかを判定する(ステップS202)。
表示部18が水平方向に視差を有する画像を表示する場合、透視乗算制御部112は、座標成分xについては、透視乗算を有効にし、座標成分y、z、wについては、透視乗算を無効とする制御信号を透視乗算部111へ入力する(ステップS203)。
また、表示部18が垂直方向に視差を有する画像を表示する場合、透視乗算制御部112は、座標成分yについては、透視乗算を有効にし、座標成分x、z、wについては、透視乗算を無効とする制御信号を透視乗算部111へ入力する(ステップS204)。
透視乗算部111は、透視乗算制御部112から入力される制御信号に基づいて投影行列乗算部103から入力される各頂点のクリップ座標の座標成分x、y、z、wをw座標で乗算する(ステップS205)。
透視除算部104Aは、透視乗算部111から入力される各頂点のクリップ座標のすべての座標成分をw座標で除算し、各頂点の正規化デバイス座標を算出する(ステップS206)。立体画像描画装置2は、図7で説明したS110からS114の処理(第2の処理)を実施する(ステップS207)。
以上のように、第2の実施形態に係る立体画像描画装置2によれば、投影行列を乗算した後の頂点座標において特定の座標成分を選択して乗算することにより、透視除算の効果を打ち消すことができるようになる。その結果、グラフィックスプロセッサに固定機能として組み込まれている一般的な透視除算機能を用いる事ができる。このため、既存のグラフィックスプロセッサを利用して1次元II方式の立体画像を描画する処理を高速化できる。その他の効果は、第1の実施形態に係る立体画像描画装置1と同様である。
(その他の実施形態)
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1,2…立体画像描画装置、11…GPU、12…VRAM、13…CPU、14…RAM、15…I/F、16…HDD、17…入力部、18…表示部、19…変換部、21…頂点シェーダ、22…ラスタライザ、23…ピクセルシェーダ、101…記憶部、102…モデルビュー行列乗算部、103…投影行列乗算部、104…透視除算部、105…ビューポート変換部、106…ラスタライズ部、107…ピクセル処理部、109…透視除算制御部、111…透視乗算部、112…透視乗算制御部。
Claims (6)
- 互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの座標成分を記憶する記憶部と、
前記第1または前記第2のいずれかの方向に視差を有するオブジェクトの立体画像を表示する表示部と、
前記表示部が前記第1または前記第2のいずれの方向に視差を有するかを検出する検出部と、
前記検出部での検出結果が前記第1の方向である場合、前記オブジェクトを前記第1の方向に平行投影し、前記検出部での検出結果が前記第2の方向である場合、前記オブジェクトを前記第2の方向に平行投影する投影演算部と、
を具備することを特徴する立体画像描画装置。 - 前記投影演算部は、
前記検出部での検出結果が前記第1の方向である場合、前記投影行列を乗算後の前記オブジェクトの座標成分のうち前記第1の方向に対応する座標成分を逆透視演算した後、前記オブジェクトの各座標成分を透視除算し、
前記検出部での検出結果が前記第2の方向である場合、前記投影行列を乗算後の前記オブジェクトの座標成分のうち、前記第2の方向に対応する座標成分を逆透視演算した後、前記オブジェクトの各座標成分を透視除算する第2の透視演算部をさらに具備することを特徴とする請求項1に記載の立体画像描画装置。 - 前記投影演算部は、
前記検出部での検出結果が前記第1の方向である場合、前記オブジェクトを前記第1の方向に平行投影し、前記第2、第3の方向に透視投影する第1の投影行列を前記オブジェクトの各座標成分に乗算し、
前記検出部での検出結果が前記第2の方向である場合、前記オブジェクトを前記第2の方向に平行投影し、前記第1、第3の方向に透視投影する第2の投影行列を前記オブジェクトの各座標成分に乗算する投影行列乗算部を具備することを特徴とする請求項1に記載の立体画像描画装置。 - 前記投影演算部は、
前記検出部での検出結果が前記第1の方向である場合、前記投影行列を乗算後の前記オブジェクトの座標成分のうち、前記第2、第3の方向に対応する座標成分を透視演算し、
前記検出部での検出結果が前記第2の方向である場合、前記投影行列を乗算後の前記オブジェクトの座標成分のうち、前記第1、第3の方向に対応する座標成分を透視演算する第1の透視演算部をさらに具備することを特徴とする請求項3に記載の立体画像描画装置。 - 記憶部に記憶された互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの立体画像を表示するステップと、
前記オブジェクトの立体画像が前記第1または前記第2のいずれの方向に視差を有するかを検出するステップと、
前記検出部での検出結果が前記第1の方向である場合、前記オブジェクトを前記第1の方向に平行投影し、前記検出部での検出結果が前記第2の方向である場合、前記オブジェクトを前記第2の方向に平行投影するステップと、
を具備することを特徴する立体画像描画方法。 - コンピュータを、
互いに異なる第1ないし第3の方向で表わされる座標空間に配置されたオブジェクトの座標成分を記憶する記憶部と、
前記第1または前記第2のいずれかの方向に視差を有するオブジェクトの立体画像を表示する表示部と、
前記表示部が前記第1または前記第2のいずれの方向に視差を有するかを検出する検出部と、
前記検出部での検出結果が前記第1の方向である場合、前記オブジェクトを前記第1の方向に平行投影し、前記検出部での検出結果が前記第2の方向である場合、前記オブジェクトを前記第2の方向に平行投影する投影演算部と、
して動作させることを特徴する立体画像描画プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009024989A JP4987890B2 (ja) | 2009-02-05 | 2009-02-05 | 立体画像描画装置、立体画像描画方法、立体画像描画プログラム |
US12/700,495 US8441523B2 (en) | 2009-02-05 | 2010-02-04 | Apparatus and method for drawing a stereoscopic image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009024989A JP4987890B2 (ja) | 2009-02-05 | 2009-02-05 | 立体画像描画装置、立体画像描画方法、立体画像描画プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010182094A JP2010182094A (ja) | 2010-08-19 |
JP4987890B2 true JP4987890B2 (ja) | 2012-07-25 |
Family
ID=42397348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009024989A Expired - Fee Related JP4987890B2 (ja) | 2009-02-05 | 2009-02-05 | 立体画像描画装置、立体画像描画方法、立体画像描画プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8441523B2 (ja) |
JP (1) | JP4987890B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5450330B2 (ja) * | 2010-09-16 | 2014-03-26 | 株式会社ジャパンディスプレイ | 画像処理装置および方法、ならびに立体画像表示装置 |
JP6066066B2 (ja) * | 2013-02-20 | 2017-01-25 | 株式会社ジオ技術研究所 | 立体視画像出力システム |
US9877016B2 (en) | 2015-05-27 | 2018-01-23 | Google Llc | Omnistereo capture and render of panoramic virtual reality content |
EP3304897A1 (en) * | 2015-05-27 | 2018-04-11 | Google LLC | Capture and render of panoramic virtual reality content |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1437898A1 (en) * | 2002-12-30 | 2004-07-14 | Koninklijke Philips Electronics N.V. | Video filtering for stereo images |
JP4259884B2 (ja) * | 2003-01-20 | 2009-04-30 | シャープ株式会社 | 画像データ作成装置およびそのデータを再生する画像データ再生装置 |
JP4048977B2 (ja) * | 2003-02-26 | 2008-02-20 | 文化シヤッター株式会社 | シャッター |
JP4119409B2 (ja) | 2003-09-04 | 2008-07-16 | 株式会社東芝 | 三次元映像表示装置及び三次元映像表示方法並びに三次元表示用映像データ生成方法 |
CN100459719C (zh) * | 2003-09-04 | 2009-02-04 | 株式会社东芝 | 三维影像显示装置和方法及三维显示用影像数据生成方法 |
-
2009
- 2009-02-05 JP JP2009024989A patent/JP4987890B2/ja not_active Expired - Fee Related
-
2010
- 2010-02-04 US US12/700,495 patent/US8441523B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010182094A (ja) | 2010-08-19 |
US8441523B2 (en) | 2013-05-14 |
US20100194864A1 (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748840B2 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
CN112513712B (zh) | 具有虚拟内容翘曲的混合现实***和使用该***生成虚拟内容的方法 | |
JP6749151B2 (ja) | グラフィックスパイプラインを遂行する方法及びその装置 | |
TWI578266B (zh) | 藉由近似頂點至彎曲視埠上的投影在圖形處理中隨螢幕位置變化有效解析度 | |
KR101922482B1 (ko) | 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능 | |
CN106204712B (zh) | 分段线性不规则光栅化 | |
KR102410351B1 (ko) | 단일 패스 유연 스크린/스케일 래스터화 | |
JP6530728B2 (ja) | 両眼視差映像に対するレンダリング方法及びその装置 | |
US9177414B2 (en) | Apparatus and method for rendering point cloud using voxel grid | |
JP2018537755A (ja) | 中心窩ジオメトリテッセレーション | |
KR20130012504A (ko) | 다시점 렌더링 장치 및 방법 | |
JP2006503365A (ja) | 2次元表示装置を用いて擬似3次元表示を生成する方法及びシステム | |
WO2019163129A1 (ja) | 仮想物体表示制御装置、仮想物体表示システム、仮想物体表示制御方法、及び仮想物体表示制御プログラム | |
CN108230435A (zh) | 采用立方图纹理的图形处理 | |
US9001157B2 (en) | Techniques for displaying a selection marquee in stereographic content | |
JP4987890B2 (ja) | 立体画像描画装置、立体画像描画方法、立体画像描画プログラム | |
US9401044B1 (en) | Method for conformal visualization | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
CN109949396A (zh) | 一种渲染方法、装置、设备和介质 | |
KR101227183B1 (ko) | 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법 | |
CN110335335A (zh) | 用于球面投影的均匀密度立方体贴图渲染 | |
JP2007047417A (ja) | 画像生成装置 | |
JP2007025861A (ja) | バーチャルリアリティシステム及び方法、並びに、補間画像生成装置及び方法 | |
CN110235447B (zh) | 图像传送装置 | |
JP2005092752A (ja) | 画像処理装置、画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110325 |
|
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: 20120403 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120425 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150511 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |