従来のコンピュータグラフィックスによる3次元図形描画手法では、三角形や四角形などのポリゴン(多角形)を三次元座標上に配置することによって、表示画面上に人物や物体などが表される。この3次元図形描画手法を用いて、左視野画像と右視野画像で視差を設けた両眼視差方式の立体視画像データを生成して表示画面上に立体視画像を得る場合には、右視野画像および左視野画像用に2系統の画像生成装置が用いられるかまたは、1系統の画像生成装置により右視野画像および左視野画像の各画像データを交互に生成する。この1系統の画像生成装置により右視野画像および左視野画像の各画像を交互に生成する場合を図4に示している。
図4は、コンピュータグラフィックスによる3次元図形描画手法を用いた従来の立体視画像装置の構成例を示すブロック図である。
図4において、従来の立体視画像装置50は、座標変換などが行われてポリゴンリストを得るジオメトリ演算部51と、ジオメトリ演算部51からのポリゴンリストを記憶するポリゴンリストメモリ52と、ポリゴンリストを用いて、ピクセル毎の立体視画像データを生成するピクセル演算部53と、ピクセル演算部53からのピクセル毎の立体視画像データを記憶するピクセルメモリ54と、陰面消去処理に用いる3Dの奥行きを示すデプス値を記憶するデプス値メモリ55とを有している。
ジオメトリ演算部51は、コマンド処理部511と、マトリクス演算部512と、頂点輝度計算部513と、クリッピング判定部514と、クリッピング処理部515と、透視除算部516と、ビューポート変換部517と、ポリゴンリスト出力部518とを有している。
コマンド処理部511は、両視点距離情報およびシーンデータが入力されてコマンド処理が為されて、シーンデータなどから、表示させようとする各シーンにおける視野領域を定義する視野変換行列、投影変換行列、光源情報、物体を構成するポリゴンのモデリング変換行列、ポリゴンの属性、ポリゴンを構成する頂点の物体座標における座標値、法線ベクトルおよび材質属性などの各種情報が決定される。
マトリクス演算部512は、入力投影変換行列をカレント投影変換行列として得、入力視野変換行列をカレントモデリング変換行列として得、入力されたポリゴンのモデリング変換行列を順次乗算した結果をカレント法線行列およびカレントモデリング変換行列として得、視野変換行列とカレントモデリング変換行列の乗算結果をカレントモデリング変換行列として得、カレント投影変換行列およびカレントモデリング変換行列のいずれか一方が更新された場合に、カレント投影変換行列とカレントモデリング変換行列との乗算結果をカレントマトリクスとして保持する。
頂点輝度計算部513は、入力された頂点の法線ベクトルがカレント法線行列により座標変換され、その頂点の材質属性を使用して頂点の光源色を計算する。また、頂点輝度計算部513では、入力された頂点の物体座標を、カレントマトリクスにより投影座標に変換する。
クリッピング判定部514は、この投影座標において、視野領域に対して、ポリゴンを構成する各線分の両端の頂点が外側に存在するか否かが判定され、この判定の結果に応じて、ポリゴンを構成する全ての頂点に関するデータが、破棄されるか、クリッピング処理部515によって処理されるかまたは透視除算部516によって処理される。
クリッピング処理部515は、ポリゴンを構成する全ての頂点が、視野領域の境界面を含んで視野領域の内側に存在するように、ポリゴンを構成する線分毎に、視野領域の外側に存在する部分がある場合には、視野領域の外側に存在する部分が切り取られる。
透視除算部516は、ポリゴンを構成する頂点の透視除算処理が実施される。
ビューポート変換部517は、ポリゴンを構成する頂点のビューポート変換処理が実施される。
ポリゴンリスト出力部518は、ポリゴンを構成する頂点のうち、最大のy座標値および最小のy座標値が算出され、最大y座標値をインデックスとするリストが生成されて、ポリゴンの最小y座標値、ポリゴン属性およびポリゴンを構成する頂点データと共に、ポリゴンリストとしてポリゴンリストメモリ52に出力される。
ピクセル演算部53は、ポリゴンリスト入力部531と、ポリゴンエッジ計算部532と、ピクセル処理部533とを有している。
ポリゴンリスト入力部531は、このポリゴンリストを、ポリゴンリストメモリ52から入手して、表示すべきスキャンライン上に存在するポリゴンを検索する。
ポリゴンエッジ計算部532は、検索されたスキャンラインとポリゴンを構成する左右のエッジの線分との交点の座標および光源色を、その線分の両端に位置する頂点の座標および頂点の光源色から補間により算出する。
ピクセル処理部533は、算出されたスキャンライン上の左右のエッジ間に存在する各ピクセル毎のデプス値および光源色を、左右のエッジのデプス値および光源色から補間により算出する。
上記構成により、まず、コマンド処理部511に両視点距離情報およびシーンデータが入力されてコマンド処理が為される。コマンド処理部511によりシーンデータから、表示させようとする各シーンにおける視野領域を定義する視野変換行列、投影変換行列、光源情報、物体を構成するポリゴンのモデリング変換行列、ポリゴンの属性、ポリゴンを構成する頂点の物体座標における座標値、法線ベクトルおよび材質属性などの各種情報が決定される。
次に、マトリクス演算部512では、入力される投影変換行列をカレント投影変換行列として保持し、入力される視野変換行列をカレントモデリング変換行列として保持し(この「カレント」は現在の新しいことを示している)、以降、順次入力されるポリゴンのモデリング変換行列を順次乗算した結果をカレント法線行列およびカレントモデリング変換行列として保持すると共に、視野変換行列とカレントモデリング変換行列との乗算結果をカレントモデリング変換行列として保持し、カレント投影変換行列およびカレントモデリング変換行列のいずれか一方が更新された場合には、カレント投影変換行列とカレントモデリング変換行列との乗算結果をカレントマトリクスとして保持する。
さらに、入力されたポリゴンの頂点の法線ベクトルをカレント法線行列により座標変換し、頂点輝度計算部513で、その頂点の材質属性を使用してポリゴンの頂点の光源色を計算する。また、入力された頂点の物体座標は、頂点輝度計算部513で、カレントマトリクスにより投影座標に変換する。この投影座標に変換されたポリゴンの頂点情報を、ポリゴン毎にクリッピング判定部514に順次送る。
クリッピング判定部514では、この投影座標において、視野領域における遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で囲まれる視野領域に対して、ポリゴンを構成する各線分の両端の頂点が、この視野領域の外側に存在するか内側に存在するかを判定する。
この判定の結果において、ポリゴンを構成する全ての線分の両端に位置する頂点が、視野領域の外側に存在するとクリッピング判定部514が判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄する。また、ポリゴンを構成する各線分のいずれか一つの両端に位置する頂点が、視野領域の境界面に対して外側と内側とに存在するとクリッピング判定部514が判定した場合には、そのポリゴンを構成する全ての頂点に関するデータがクリッピング処理部515に送られる。さらに、ポリゴンを構成する全ての頂点が視野領域の内側に存在するとクリッピング判定部514が判定した場合には、そのポリゴンを構成する全ての頂点に関するデータは、クリッピング処理部515をバイパスして透視除算部516に送られる。
このクリッピング処理部515に入力された、ポリゴンを構成する頂点に関するデータは、ポリゴンを構成する線分毎に、視野領域の外側に存在する部分がある場合にはその部分を切り取って破棄する。視野領域の外側に存在する頂点は、その線分と視野領域の境界面との交点により置換される。この際に、新しい頂点の光源色は、線分の両端に位置する頂点の光源色から補間により計算される。
このように、クリッピング処理部515において、ポリゴンを構成する全ての線分がクリッピング処理された後、ポリゴンを構成する全ての頂点は、境界面を含んで視野領域の内側に存在することになり、透視除算部516に送られる。
この透視除算部516では、ポリゴンを構成する頂点の透視除算処理が実施され、ビューポート変換部517に送られる。
このビューポート変換部517では、ポリゴンを構成する頂点のビューポート変換処理が実施され、ポリゴンリスト出力部518に送られる。
さらに、ポリゴンリスト出力部518では、ポリゴンを構成する頂点のうち、最大のy座標値および最小のy座標値を算出し、最大y座標値をインデックスとするリストを生成し、ポリゴンの最小y座標値、ポリゴン属性およびポリゴンを構成する頂点データと共に、ポリゴンリストメモリ52に出力して書き込む。
次に、このピクセル演算部53において、このポリゴンリストを、ポリゴンリストメモリ52からポリゴンリスト入力部531に入力して、表示するべきスキャンライン上に存在するポリゴンが検索される。
ポリゴンエッジ計算部532では、検索されたスキャンラインとポリゴンを構成する左右のエッジの線分との交点の座標および光源色が、その線分の両端に位置する頂点の座標および頂点の光源色から補間により算出される。
ピクセル処理部533では、ポリゴンエッジ計算部532で算出されたスキャンライン上の左右のエッジ間に存在する各ピクセル毎のデプス値および光源色が、左右のエッジのデプス値および光源色から補間により算出される。この算出されたピクセルのデプス値が、シーン作成に先立って予め最大値で初期化されたデプス値メモリ55における当該ピクセルのx座標に対応するアドレスの値と比較される。算出されたピクセルのデプス値がデプス値メモリ55のアドレス値よりも小さい場合には、デプス値メモリ55の当該アドレスに算出されたピクセルのデプス値が書き込まれると共に、ピクセルメモリ54の当該ピクセルのx座標に対応するアドレスに算出されたピクセルのカラー値が書き込まれる。
一方、算出されたピクセルのデプス値がデプス値メモリ55のアドレス値と同じであるか当該アドレス値よりも大きい場合には、算出されたピクセルのデータは破棄される。
以上の処理によって、スキャンライン毎にデプス値によって陰面消去処理されたシーンの立体視画像データが生成される。
図5は、図4の立体視画像装置50において、使用される視野座標における視野領域およびこれに描画されるポリゴンの事例を示す模式図である。
図5では、視野座標61の原点を視点62として、mz軸の負の方向に視野領域63が定義されている。各々の物体座標により定義されたポリゴン64,65はそれぞれ、座標変換によって視野座標61に変換される。
図6は、図5の視野座標について、my軸に対する負の方向を見た平面図である。
図6にハッチングで示すように、視野領域63は、左側面66A、右側面66B、遠側面67Aおよび近側面67Bによって設定される。このポリゴン64は、視野領域63の内部と外部にまたがっているため、右側面66Bよりも外側に位置する部分が切り取られて破棄される。また、ポリゴン65は、その全部がこの視野領域63の外側に位置するため、視点62から見えないポリゴンとして破棄される。
この場合の座標変換は、以下のように実行される。
物体座標(x,y,z)において定義されたポリゴンの各頂点の座標は、下記の式1(物体座標から視野座標への変換式)に示す行列演算によって、視野座標(mx,my,mz,mw)に座標変換される。下記の式1による行列演算には、例えば、下記の式1−1(x軸まわりの回転式)、式1−2(y軸まわりの回転式)および式1−3(z軸まわりの回転式)に各々示すx軸、y軸およびz軸を中心とする角度αによる回転、下記の式1−4に示す拡大縮小率(sx,sy,sz)による拡大縮小、並びに下記の式1−5に示す移動量(dx,dy,dz)による平行移動などの各行列演算式が一般的に用いられている。なお、wは視点からの距離を示している。
視野座標に変換された各頂点の座標は、下記の式2(投影座標への変換式)に示す行列変換により、投影座標(px,py,pz,pw)に座標変換される。下記の式2による行列演算には、例えば、左右対称の視野錐台を用いた透視変換の場合、下記の式2−1に示す変換行列式が用いられる。
上記式2−1において、fovxはx方向の画角の1/2、fovyはy方向の画角の
1/2、fは視点から遠側面までの距離、nは視点から近側面までの距離を示している。
投影座標に変換された各頂点の座標は、下記の式3(表示座標への変換式)に示す行列変換により、表示座標(sx,sy,sz,sw)に座標変換される。下記式3による行列演算には、例えば、下記の式3−1に示す変換行列式が用いられる。
以上の座標変換によって、物体座標(x,y,z)において定義されたポリゴンの各頂点が、表示座標(sx,sy,sz,sw)に座標変換される。
表示座標に変換された各ポリゴンの頂点は、下記の式4−1、式4−2および式4−3の各条件式を全て満足するか否かによって、視野領域内に含まれるか否かが判定される。各ポリゴンの頂点の表示座標が式4−1、式4−2および式4−3の各条件式を全て満足する場合には、視野領域内に含まれると判定される。上記判定において、各ポリゴンの頂点の少なくとも一つが式4−1、式4−2および式4−3の各条件式を満足しない場合には、クリッピング処理が実施され、全ての条件式を満足するように新しい頂点が生成される。
その後、上記式4−1、式4−2および式4−3の全ての条件式を満足する各ポリゴンの頂点は、下記の式5の透視除算処理により、正規座標(vx,vy,vz)に変換された後、ビューポート変換処理によりスクリーン座標(vsx,vsy,vsz)に変換される。
スクリーン座標に変換されたポリゴンの各頂点の情報を用いて、ピクセル演算部53によって、ポリゴンのシェーディング処理が実施され、立体視表示用の画像データが生成される。
上記従来の立体視画像装置50を用いて、右視野画像および左視野画像の各画像を交互に生成することによって、両眼視差方式の立体視画像を生成することができる。また、上記従来の立体視画像装置50を、右視野画像および左視野画像用に2系統使用して、両眼視差方式の立体視画像を生成することもできる。これを図7に示している。
図7は、図4の立体視画像装置50を、右視野画像および左視野画像用に2系統使用して、両眼視差方式の立体視画像を生成する従来の立体視画像装置の構成例を示すブロック図である。
図7において、従来の立体視画像装置50Aは、右視野画像データ生成用として、ジオメトリ演算部51Rと、ポリゴンリストメモリ52Rと、ピクセル演算部53Rと、ピクセルメモリ54Rとを有し、左視野画像データ生成用として、ジオメトリ演算部51Lと、ポリゴンリストメモリ52Lと、ピクセル演算部53Lと、ピクセルメモリ54Lとを有している。
右視野画像用シーンデータと左視野画像用シーンデータとしては、透視変換用の視野錐台を左右の視点間の距離だけmx軸に沿って左右に平行移動したものを、右視野画像用および左視野画像用の各視野錐台として用いる。この右視野画像用および左視野画像用の各視野錐台を用いて投影変換を実施することにより、右視野画像用および左視野画像用の頂点の表示座標が生成される。
例えば特許文献1には、装置構成を簡素化し、全体として計算量を低減するために、ジオメトリ演算部およびピクセル演算部が左右の画像用に共通化された立体視画像装置が開示されている。
特開平7−200870号公報
上記従来のコンピュータグラフィックスによる3次元図形描画手法を用いて、両眼視差方式の立体視画像データを生成して表示画面上に立体視画像を表示させることは容易である。
しかしながら、右視野画像生成用の右視野領域に包含される表示対象物体および左視野画像用の左視野領域に包含される表示対象物体は、一般に異なっている。よって、右視野画像生成用の右視野領域または左視野画像用の左視野領域の一方のみに包含される表示対象物体を、各々が包含される視野画像にのみ表示させると、一方の視野領域にのみ表示される表示対象物体は、立体視されにくい。
このため、上記従来の構成では、立体視用に予め想定された表示対象物体を、正面の限られた範囲(視野領域)で動作させたり、視線の動作範囲を限定したりする必要があり、表示させる表示対象物体の表現内容が限定されたり、インタラクティブに視線を動作させることが困難であるという問題があった。
本発明は、上記従来の問題を解決するもので、コンピュータグラフィックスによる3次元図形描画手法により両眼視差方式の立体視画像データを生成する際に、右視野画像データ生成用の右視野領域および左視野画像データ生成用の左視野領域に包含される表示対象物体が異ならないように処理することにより、表示させる物体の表現内容を限定することなく、インタラクティブに視線を動作させることができる立体視画像装置、これを表示部に用いたゲーム装置、これを用いて立体視画像を映写する立体視画像映写装置、この立体視画像装置を用いた立体視画像データ生成方法、この立体視画像データ生成方法の各処理ステップをコンピュータに実行させるための制御プログラムおよびこれを記録したコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
本発明の立体視画像装置は、両視点視差方式の立体視画像データを生成する画像データ生成手段を有する立体視画像装置において、該画像データ生成手段は、一方視点視野画像データ生成用の一方視野領域および他方視点視野画像データ生成用の他方視野領域に共通な共通視野領域内に表示対象物体のデータが包含されているか否かを判定するクリッピング判定部を有し、該一方視野領域に包含される表示対象物体と該他方視野領域に包含される表示対象物体とが異ならないように、該クリッピング判定部の判定結果に基づいて該共通視野領域内の該表示対象物体のみを該表示対象として該立体視画像データを生成し、該共通視野領域は、遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で囲まれた領域であり、そのことにより上記目的が達成される。
また、好ましくは、本発明の立体視画像装置において、前記クリッピング判定部を含み、入力される両視点間の距離情報およびシーンデータを用いて、該クリッピング判定部の判定結果に基づいて前記共通視野領域内の表示対象物体のみを表示対象として、前記一方視野領域用のジオメトリ演算と前記他方視野領域用のジオメトリ演算とを交互または同時に実施することにより、該一方視野領域用のポリゴンリストおよび該他方視野領域用のポリゴンリストを生成するジオメトリ演算手段を前記画像データ生成手段に備えている。
さらに、好ましくは、本発明の立体視画像装置におけるジオメトリ演算手段は、前記表示対象物体の一部のみが前記共通視野領域内に包含されていると前記クリッピング判定部が判定した場合に、該表示対象物体の一部のみを表示対象として切り出すクリッピング処理部を有する。
さらに、好ましくは、本発明の立体視画像装置における画像データ生成手段は、前記立体視画像データとして、前記一方視野領域用のポリゴンリストから一方視野用画像データを生成すると共に、前記他方視野領域用のポリゴンリストから他方視野用画像データを生成するピクセル演算手段を更に備えている。
さらに、好ましくは、本発明の立体視画像装置におけるクリッピング判定部は、前記シーンデータから投影座標に変換された頂点がポリゴン毎に供給されて、前記共通視野領域に対して、該ポリゴンを構成する各線分の両端の頂点が外側に存在するか内側に存在するかを判定する。
さらに、好ましくは、本発明の立体視画像装置におけるクリッピング判定部は、前記ポリゴンを構成する全ての線分の両端に位置する頂点が前記共通視野領域の外側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄し、該ポリゴンを構成する全ての線分の両端に位置する頂点が該共通視野領域の内側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを表示対象とする。
さらに、好ましくは、本発明の立体視画像装置におけるクリッピング処理部は、前記ポリゴンを構成する各線分の両端に位置する頂点が前記共通視野領域の境界面に対して外側と内側とにそれぞれ存在すると前記クリッピング判定部が判定した場合には、表示対象として、そのポリゴンを構成する線分およびその頂点に対して、該共通視野領域の外側に存在する部分のみを切り取って破棄し、該共通視野領域の外側に存在する頂点をその線分と該共通視野領域の境界面との交点により置換する。
本発明のゲーム装置は、本発明の上記立体視画像装置を表示部に用いたものであり、そのことにより上記目的が達成される。
本発明の立体視画像映写装置は、本発明の上記立体視画像装置を用いて立体視画像を映写するものであり、そのことにより上記目的が達成される。
本発明の立体視画像データ生成方法は、画像データ生成手段が両視点視差方式の立体視画像データを生成する画像データ生成ステップを有する立体視画像データ生成方法において、該画像データ生成ステップは、該画像データ生成手段に含まれるクリッピング判定部が一方視点視野画像データ生成用の一方視野領域および他方視点視野画像データ生成用の他方視野領域に共通な共通視野領域内に表示対象物体のデータが包含されているか否かを判定するクリッピング判定ステップを有し、該一方視野領域に包含される表示対象物体と該他方視野領域に包含される表示対象物体とが異ならないように、該画像データ生成手段が該クリッピング判定ステップの判定結果に基づいて該共通視野領域内の該表示対象物体のみを表示対象として該立体視画像データを生成し、該共通視野領域は、遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で囲まれた領域であり、そのことにより上記目的が達成される。
また、好ましくは、本発明の立体視画像データ生成方法において、前記クリッピング判定ステップを含み、ジオメトリ演算手段が、入力される両視点間の距離情報およびシーンデータを用いて、該クリッピング判定ステップで前記クリッピング判定部が判定した判定結果に基づいて前記共通視野領域内の表示対象物体のみを表示対象として、前記一方視野領域用のジオメトリ演算と前記他方視野領域用のジオメトリ演算とを交互または同時に実施することにより、該一方視野領域用のポリゴンリストおよび該他方視野領域用のポリゴンリストを生成するジオメトリ演算ステップを前記画像データ生成ステップに有する。
さらに、好ましくは、本発明の立体視画像データ生成方法におけるジオメトリ演算ステップは、前記ジオメトリ演算手段に含まれるクリッピング処理部が、前記表示対象物体の一部のみが前記共通視野領域内に包含されていると前記クリッピング判定ステップで前記クリッピング判定部が判定した場合に、該表示対象物体の一部のみを表示対象として切り出すクリッピング処理ステップを有する。
さらに、好ましくは、本発明の立体視画像データ生成方法における画像データ生成ステップは、前記画像生成手段に含まれるピクセル演算手段が、前記立体視画像データとして、前記一方視野領域用のポリゴンリストから一方視野用画像データを生成すると共に、前記他方視野領域用のポリゴンリストから他方視野用画像データを生成するピクセル演算ステップをさらに備えている。
さらに、好ましくは、本発明の立体視画像データ生成方法におけるクリッピング判定ステップは、前記クリッピング判定部が、前記シーンデータから投影座標に変換された頂点がポリゴン毎に供給されて、前記共通視野領域に対して、該ポリゴンを構成する各線分の両端の頂点が外側に存在するか内側に存在するかを判定するステップを有する。
さらに、好ましくは、本発明の立体視画像データ生成方法におけるクリッピング判定ステップは、前記クリッピング判定部が、前記ポリゴンを構成する全ての線分の両端に位置する頂点が前記共通視野領域の外側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄し、該ポリゴンを構成する全ての線分の両端に位置する頂点が該共通視野領域の内側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを表示対象とするステップを有する。
さらに、好ましくは、本発明の立体視画像データ生成方法におけるクリッピング処理ステップは、前記クリッピング処理部が、前記ポリゴンを構成する各線分の両端に位置する頂点が前記共通視野領域の境界面に対して外側と内側とにそれぞれ存在すると前記クリッピング判定ステップで判定した場合には、表示対象として、そのポリゴンを構成する線分およびその頂点に対して、該共通視野領域の外側に存在する部分のみを切り取って破棄し、該共通視野領域の外側に存在する頂点をその線分と該共通視野領域の境界面との交点により置換するステップを有する。
本発明の制御プログラムは、本発明の上記立体視画像データ生成方法の各ステップをコンピュータに実行させるためのものであり、そのことにより上記目的が達成される。
本発明の可読記録媒体は、本発明の上記制御プログラムを記録したコンピュータ読み出し可能なものであり、そのことにより上記目的が達成される。
上記構成により、以下に、本発明の作用について説明する。
本発明にあっては、コンピュータグラフィックスによる3次元図形描画手法において、物体座標から一方視点視野画像データ生成用(右視野画像生成用)および他方視点視野画像データ生成用(左視野画像生成用)の表示座標へ座標変換を行って両視点視差方式(左右視点視差方式)の立体視画像データを生成する際に、一方視野領域(右視野領域)および他方視野領域(左視野領域)に共に包含される第3の視野領域として共通視野領域を定義し、この視野領域内に表示させようとする表示対象物体(ポリゴン)が包含されているか否かを判定する。
この判定結果を元に共通視野領域内の表示対象物体のみを表示対象とすることにより、右視野画像生成用の右視野領域および左視野画像生成用の左視野領域に包含される表示対象物体が異ならないように表示処理することが可能となる。これによって、表示させる表示対象物体の表現内容を限定することなく、インタラクティブに視線を動作させることが可能となる。
以上により、本発明によれば、従来のコンピュータグラフィックスによる3次元図形描画手法を用いて、立体視用に予め想定された表示対象物体を、従来のように正面の限られた範囲で動作させたり、視線の動作範囲を限定したりする必要がなく、表示させる物体の表現内容を限定することなく、インタラクティブに視線を動作させることができる。
以下に、本発明の立体視画像装置および立体視画像データ生成方法の実施形態について、図面を参照しながら説明する。
図1は、本発明の実施形態に係る立体視画像装置の要部構成例を示すブロック図である。
図1において、本実施形態の立体視画像装置10は、座標変換などが行われてポリゴンリストを得るジオメトリ演算手段としてのジオメトリ演算手段11と、ジオメトリ演算手段11からのポリゴンリストを記憶する右視野画像用のポリゴンリストメモリ12Rおよび左視野画像用のポリゴンリストメモリ12Lと、ポリゴンリストを用いて、ピクセル毎(画素毎)の画像データを生成するピクセル演算手段としての右視野画像用のピクセル演算手段13Rおよび左視野画像用のピクセル演算手段13Lと、ピクセル演算手段13Rまたは13Lからのピクセル毎の立体視用の画像データを記憶する右視野画像用のピクセルメモリ14Rおよび左視野画像用のピクセルメモリ14Lとを有している。これらのジオメトリ演算手段およびピクセル演算手段により、両視点視差方式の立体視用の画像データを生成する画像データ生成手段が構成されている。
ジオメトリ演算手段11は、コマンド処理部111と、マトリクス演算部112と、頂点輝度計算部113と、共通領域クリッピング判定部114aを有するクリッピング判定部114と、クリッピング処理部115と、透視除算部116と、ビューポート変換部117と、ポリゴンリスト出力部118とを有しており、入力される左右の両視点間の距離情報およびシーンデータを用いて、クリッピング判定部114の判定結果に基づいて共通視野領域内の表示対象物体のみを表示対象として、一方視野領域用(右視野領域用)のジオメトリ演算と他方視野領域用(左視野領域用)のジオメトリ演算とを交互に実施することにより、右視野領域用のポリゴンリストおよび左視野領域用のポリゴンリストを生成する。
コマンド処理部111は、左右の視点間の距離情報およびシーンデータが入力されてコマンド処理が為される。
マトリクス演算部112は、入力投影変換行列をカレント投影変換行列として得、入力視野変換行列をカレントモデリング変換行列として得、入力されたポリゴンのモデリング変換行列を順次乗算した結果をカレント法線行列およびカレントモデリング変換行列として得、視野変換行列とカレントモデリング変換行列の乗算結果をカレントモデリング変換行列として得、カレント投影変換行列およびカレントモデリング変換行列のいずれか一方が更新された場合に、カレント投影変換行列とカレントモデリング変換行列との乗算結果をカレントマトリクスとして保持する。
頂点輝度計算部113は、入力された頂点の法線ベクトルがカレント法線行列により座標変換され、その頂点の材質属性を使用して頂点の光源色を計算する。また、頂点輝度計算部513では、入力された頂点の物体座標を、カレントマトリクスにより投影座標に変換する。
クリッピング判定部114は、投影座標に変換された頂点がポリゴン毎に供給されて、遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で囲まれた共通視野領域、即ち、右視野領域または左視野領域との両領域に共通に包含される第3の領域としての共通視野領域に対して、表示対象物体のデータとして、ポリゴンを構成する各線分の両端の頂点が外側に存在するか内側に存在するかを判定する。クリッピング判定部114は、このポリゴンを構成する全ての線分の両端に位置する頂点が共通視野領域の外側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄し、ポリゴンを構成する全ての線分の両端に位置する頂点が共通視野領域の内側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを表示対象として、クリッピング処理部115をバイパスして透視除算部116に出力するように制御が為される。
クリッピング処理部115は、ポリゴンを構成する全ての頂点が、両領域に共通に包含される第3の領域(共通視野領域)の境界面を含んで第3の領域の内側に存在するように、ポリゴンを構成する線分毎に、この第3の領域の外側に存在する部分がある場合には切り取られて破棄される。即ち、クリッピング処理部115は、表示対象物体の一部のみが第3の領域(共通視野領域)内に包含されているとクリッピング判定部114が判定した場合に、この表示対象物体の一部のみ(共通視野領域内にある表示対象物体)を表示対象として切り出す。この表示対象としての切り出し処理は、ポリゴンを構成する線分およびその頂点に対して、共通視野領域の外側に存在する部分のみを切り取って破棄し、共通視野領域の外側に存在する頂点をその線分と該共通視野領域の境界面との交点により置換することにより行う。
透視除算部116は、ポリゴンを構成する頂点の透視除算処理を実施する。
ビューポート変換部117は、ポリゴンを構成する頂点のビューポート変換処理を実施する。
ポリゴンリスト出力部118は、ポリゴンを構成する頂点のうち、最大のy座標値および最小のy座標値を算出し、最大y座標値をインデックスとするリストを生成し、ポリゴンの最小y座標値、ポリゴン属性およびポリゴンを構成する頂点データと共に、ポリゴンリストメモリ12Rまたはポリゴンリストメモリ12Lに出力して書き込む。
次に、右視野用のピクセル演算手段13Rは、ポリゴンリスト入力部131Rと、ポリゴンエッジ計算部132Rと、ピクセル処理部133Rとを有しており、立体視用の画像データとして、右視野領域用のポリゴンリストから右視野用画像データを生成する。また、左視野用のピクセル演算手段13Lは、ポリゴンリスト入力部131Lと、ポリゴンエッジ計算部132Lと、ピクセル処理部133Lとを有しており、立体視用の画像データとして、左視野領域用のポリゴンリストから左視野用画像データを生成する。
ポリゴンリスト入力部131Rおよび131Lはそれぞれ、この右視野用または左視野用のポリゴンリストを、ポリゴンリストメモリ12Rまたは12Lから入手して、表示すべきスキャンライン上に存在するポリゴンを検索する。
ポリゴンエッジ計算部132Rおよび132Lはそれぞれ、検索されたスキャンラインとポリゴンを構成する左右のエッジの線分との交点の座標および光源色を、その線分の両端に位置する頂点の座標および頂点の光源色から補間により算出する。
ピクセル処理部133Rおよび133Lはそれぞれ、算出されたスキャンライン上の左右のエッジ間に存在する各ピクセル毎のデプス値(値が大きいほど遠くにある3Dの奥行きを示す値)および光源色を、左右のエッジのデプス値および光源色から補間により算出する。
上記構成により、ジオメトリ演算手段11では、コマンド処理部111に、左右の視点間の距離情報およびシーンデータが入力されて、右視野用のジオメトリ演算と左視野用のジオメトリ演算とが交互に実施される。コマンド処理部111では、シーンデータなどから、表示させようとするシーンにおける視野領域を定義する視野変換行列と、入力される投影変換行列、光源情報と、物体を構成するポリゴンのモデリング変換行列と、ポリゴンの属性と、ポリゴンを構成する頂点の物体座標における座標値と、頂点の法線ベクトルと、頂点の材質属性などの各種情報が決定される。この視野領域には、右視野領域または左視野領域と、これらの両領域に共通に包含される共通視野領域である第3の領域とが含まれている。
まず、マトリクス演算部112では、入力される投影変換行列がカレント投影変換行列として保持され(この「カレント」は現在の新しいという意味である)、入力される視野変換行列がカレントモデリング変換行列として保持され、以降、順次入力されるポリゴンのモデリング変換行列を順次乗算した結果がカレント法線行列およびカレントモデリング変換行列として保持されると共に、視野変換行列とカレントモデリング変換行列との乗算結果をカレントモデリング変換行列として保持し、カレント投影変換行列およびカレントモデリング変換行列のいずれか一方が更新された場合には、カレント投影変換行列とカレントモデリング変換行列との乗算結果をカレントマトリクスとして保持する。
さらに、入力されたポリゴンの頂点の法線ベクトルをカレント法線行列により座標変換し、頂点輝度計算部113で、その頂点の材質属性を使用してポリゴンの頂点の光源色を計算する。また、入力された頂点の物体座標は、頂点輝度計算部113で、カレントマトリクスにより投影座標に変換する。この投影座標に変換されたポリゴンの頂点情報を、ポリゴン毎に次のクリッピング判定部114に順次送る。
ここまでの各処理は、従来の立体視画像装置の場合と同様であるが、本実施形態では、次のクリッピング判定部114による処理以降が異なっている。
クリッピング判定部114では、遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で囲まれた右視野領域(または左視野領域)に対して、ポリゴンを構成する各線分の両端の頂点が、外側に存在するかまたは内側に存在するかを判定する。このとき、これに加えて、共通領域クリッピング判定部114aでは、右視野領域および左視野領域に共通に包含される共通視野領域である第3の領域に対して、ポリゴンを構成する各線分の両端の頂点が、外側に存在するかまたは内側に存在するかを判定する。なお、クリッピング判定部114の判定機能としては、共通領域クリッピング判定部114aによる判定処理(ポリゴンの共通視野領域に対する判定処理)だけを行ってもよいが、ここでは、その動作説明として、ポリゴンの右視野領域(または左視野領域)に対する既存の判定処理と、ポリゴンの共通視野領域に対する判定処理との両方を行った場合について説明する。いずれも結果は同様である。
この判定の結果として、例えば、ポリゴンを構成する全ての線分の両端の頂点が、右視野領域(または左視野領域)の外側に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄する。
また、ポリゴンを構成する各線分の両端に位置する頂点が、右視野領域(または左視野領域)の境界面に対して外側と内側との両方に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータがクリッピング処理部115に送る。ただし、共通領域クリッピング判定部114aによる判定の結果、ポリゴンを構成する全ての線分の両端の頂点が、第3の領域の外側に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄する。
さらに、ポリゴンを構成する全ての頂点が右視野領域(または左視野領域)の内側に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータは、クリッピング処理部115をバイパスして、次の透視除算部116に送る。ただし、共通領域クリッピング判定部114aによる判定の結果、ポリゴンを構成する全ての線分の両端の頂点が、第3の領域の外側に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄する。また、共通領域クリッピング判定部114aによる判定の結果、ポリゴンを構成する各線分の両端に位置する頂点が、第3の領域の境界面に対して外側と内側とにそれぞれ存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータをクリッピング処理部115に送る。
クリッピング処理部115に入力された、ポリゴンを構成する頂点に関するデータは、ポリゴンを構成する線分毎に、右視野領域(または左視野領域)の外側に存在する部分がある場合には切り取られて破棄される。このとき、右視野領域(または左視野領域)の外側に存在する頂点は、その線分と視野領域の境界面との交点により置換される。さらに、ポリゴンを構成する頂点に関するデータは、ポリゴンを構成する線分毎に、右視野領域および左視野領域に共通に包含される第3の領域の外側に存在する部分がある場合にも切り取られて破棄される。このときにも、この第3の領域の外側に存在する頂点は、その線分と第3の領域の境界面との交点により置換される。この際に、新しい頂点の光源色は、線分の両端に位置する頂点の光源色から補間により計算される。
クリッピング処理部115において、ポリゴンを構成する全ての線分がクリッピング処理された後、ポリゴンを構成する全ての頂点は、境界面を含んで右視野領域(または左視野領域)の内側に存在することになり、透視除算部116に送られる。このとき、右視野用領域および左視野領域のいずれにおいても、共通に包含される第3の領域では、ポリゴンを構成する全ての頂点として同じものが生成されている。
さらに、透視除算部116では、ポリゴンを構成する頂点の透視除算処理を実施して、ビューポート変換部117に送る。
さらに、ビューポート変換部117では、ポリゴンを構成する頂点のビューポート変換処理を実施して、ポリゴンリスト出力部118に送る。
さらに、ポリゴンリスト出力部118では、ポリゴンを構成する頂点のうち、最大のy座標値および最小のy座標値を算出し、最大y座標値をインデックスとするリストを生成する。ポリゴンの最小y座標値、ポリゴン属性およびポリゴンを構成する頂点データと共に、右視野画像の場合にはポリゴンリストメモリ12Rに出力して書き込み、また、左視野画像の場合にはポリゴンリストメモリ12Lに出力して書き込む。
次に、ピクセル演算手段13Rおよび13Lではそれぞれ、右視野用および左視野用の各ポリゴンリストがそれぞれ、ポリゴンリストメモリ12Rまたはポリゴンリストメモリ12Lから読み込まれて、それぞれ、右視野用および左視野用の画像データを生成する。それぞれの画像データは、右視野用のピクセルメモリ14Rおよび左視野用のピクセルメモリ14Lにそれぞれ出力されて書き込まれる。
以下に、右視野用のピクセル演算手段13Rの処理について説明を行うが、左視野用のピクセル演算手段13Lの処理についても、右視野用ピクセル演算手段13Rの処理の場合と同様であるため、ここではその説明を省略する。
右視野用のピクセル演算部12Rにおいて、右視野用のピクセルメモリ14R内のポリゴンリストは、ポリゴンリスト入力部131Rに入力されて、表示すべきスキャンライン上に存在するポリゴンを検索する。
さらに、ポリゴンエッジ計算部132Rでは、検索されたスキャンラインとポリゴンを構成する左右のエッジの線分との交点の座標および光源色を、線分の両端に位置する頂点の座標および頂点の光源色から補間により算出する。
さらに、ピクセル処理部133Rでは、ポリゴンエッジ計算部132Rで算出されたスキャンライン上の左右のエッジ間に存在する各ピクセル毎のデプス値および光源色を、左右のエッジのデプス値および光源色から補間により算出する。この算出されたピクセルのデプス値が、シーン作成に先立って予め最大値で初期化された図示しないデプス値メモリにおける当該ピクセルのx座標に対応するアドレスの値と比較する。この算出されたピクセルのデプス値がデプス値メモリのアドレス値よりも小さい場合には、デプス値メモリの当該アドレスに算出されたピクセルのデプス値が書き込まれると共に、ピクセルメモリ14Rの当該ピクセルのx座標に対応するアドレスに算出されたピクセルのカラー値を書き込む。一方、算出されたピクセルのデプス値がデプス値メモリのアドレス値と同じであるか当該アドレス値よりも大きい場合には、算出されたピクセルのデータを破棄する。
以上の処理によって、スキャンライン毎にデプス値によって陰面消去処理したシーンの画像データを生成して表示画面上に画像表示する。
図2は、図1の立体視画像装置で使用される視野座標における視野領域および描画されるポリゴンの事例を示す模式図である。
図2において、視野座標21の原点を中心として両側に右視点22Rおよび左視点22Lが配置され、mz軸の負の方向に右視野領域23R、左視野領域23L、およびこれらの両視野領域23Rおよび23Lに共通に包含された第3の領域23が定義されている。各々の物体座標により定義されたポリゴン24およびポリゴン25は、座標変換によって視野座標21に変換される。
図3は、図2の視野座標についてmy軸に対する負の方向を見た図である。
図3において、左右の視点間の距離を2×D、x方向の画角を2×fovx、y方向の画角を2×fovy、視点から遠側面27Aまでの距離をf,視点から近側面27Bまでの距離をnとすると、視野座標21のmx軸上の右視点22R(D,0,0)からmz軸に対する負の方向に、右視野用として、左側面26A、右側面26B、遠側面27Aおよび近側面27Bによって囲まれる右視野領域23Rが形成されている。また、視野座標21のmx軸上の左視点22L(−D,0,0)からmz軸に対する負の方向に、左視野用として、左側面26C、右側面26D、遠側面27Aおよび近側面27Bによって囲まれる左視野領域23Lが形成されている。本実施形態において、クリッピング処理のための投影変換には、右視野用として下記の式6−1、左視野用として下記の式6−2が用いられる。
さらに、図3にハッチングで示すように、右視野領域23Rおよび左視野領域23Lに共通に包含される第3の領域23として、左側面26A、右側面26D、遠側面27A、近側面27Bで囲まれる視野領域が定義される。この第3の領域23に対しては、下記の式6−3の変換式によって透視変換が実行されて、クリッピング処理が実行される。
ここで、従来の立体視画像装置の場合と、本実施形態の立体視画像装置10の場合とを比較して説明する。
従来の立体視画像装置によりクリッピング処理を行う場合には、左視野画像において、図3に示すポリゴン24は、左側面26C、右側面26D、遠側面27Aおよび近側面27Bによって囲まれる左視野領域23Lの外側に位置するため、左視点22Lからは見えないポリゴンとして破棄する。また、ポリゴン25は、視野領域23Lの内部と外部にまたがっているため、右側面26Dよりも外側に位置する部分(ポリゴン25の一部)を切り取って破棄する。一方、右視野画像において、図3に示すポリゴン24は、左側面26A、右側面26B、遠側面27Aおよび近側面27Bによって囲まれる右視野領域23Rの外側に位置するため、右視点22Rからは見えないポリゴンとして破棄する。また、ポリゴン25は、右視野領域23Rの内部に包含されるため、右視点22Rから全てが見えるポリゴンとして残る。
このように、従来の立体視画像装置の場合には、左視野画像と右視野画像とで、画像上に存在するポリゴンが異なっており、そのポリゴンによって構成される物体が立体視されにくくなるという問題があった。
これに対して、本実施形態の立体視画像装置10では、右視野領域と左視野領域に共通に包含される共通視野領域である第3の領域23として、図3に示す左側面26A、右側面26D、遠側面27A、近側面27Bで囲まれる領域が定義されており、この第3の領域23に対してクリッピング処理が実施される。これによって、ポリゴン24は、第3の領域23の外側に位置するため、見えないポリゴンとして破棄する。また、ポリゴン25は、第3の領域23の内部と外部にまたがっているため、右側面26Dよりも外側に位置する部分を切り取って破棄する。
上記共通視野領域である第3の領域23に対してクリッピング処理が実施された後、右視野用の視野座標および左視野用の左視野座標において、透視除算による透視変換処理を実施することによって、左視野画像データと右視野画像データに存在するポリゴンが異なることなく、左右の両視点から見た透視変換画像を生成することができる。
以上により、本実施形態によれば、ジオメトリ演算手段11によって、物体座標から右視野画像用および左視野画像用の表示座標へ座標変換を行う際に、共通領域クリッピング判定部114aによって、右視野領域および左視野領域に共に包含される共通視野領域である第3の領域23を定義し、この第3の領域23に表示させようとする表示対象物体(ポリゴン)が包含されるか否かを判定し、第3の領域23に完全に包含される表示対象物体のみを表示させる。また、この表示対象物体が第3の領域23に一部のみ包含される場合には、包含される部分のみを切り出して表示させる。これによって、コンピュータグラフィックスによる3次元図形描画手法により両眼視差方式の立体視画像データを生成する際に、右視野画像データ生成用の右視野領域および左視野画像データ生成用の左視野領域に包含される表示対象物体が異ならないように処理できて、表示させる表示対象物体の表現内容を限定することなく、インタラクティブに視線を動作させることができる。
なお、本実施形態では、左視野画像と右視野画像とで視差を設けた両眼視差方式の立体視画像データを生成して表示画面上に立体視画像を表示する場合に、ジオメトリ演算手段11では、1系統の画像生成装置により右視野画像および左視野画像の各画像データを交互に生成するようにし、ポリゴンリストメモリ12R,12Lおよびピクセル演算手段13R,13Lでは、右視野画像用および左視野画像用に2系統設けたが、これに限らず、図4のように1系統の画像生成装置により右視野画像および左視野画像の各画像データを交互に生成して表示画面上に表示する構成や、図7のように右視野画像用および左視野画像用に2系統の画像生成装置を設けて、右視野画像および左視野画像の各画像データを同時に生成して表示画面上に表示する構成としてもよい。
また、本実施形態では、特に説明しなかったが、本発明の立体視画像装置10はハードウェアで構成することもできるし、ソフトウェアで構成することもできる。本発明の立体視画像装置10は各種のキャラクタを3Dで表示画面上に立体表示させて、対戦ゲーム、スポーツゲームおよび音楽ゲームなどの各種ゲームを行うゲーム装置の表示部に内蔵することができる。本発明の立体視画像装置10をソフトウェアで構成する場合には、ゲーム装置本体に、全体の制御を行う制御手段(立体画像処理部)としてのCPU(中央演算処理装置)と、この立体視画像データ生成方法の各処理ステップをコンピュータ(CPU)に実行させるための立体視画像データ生成プログラム(制御プログラム)や各種ゲームを実行するためのゲームプログラムが記録されたコンピュータ(CPU)読み出し可能な可読記録媒体(記憶手段)としてのROMと、このROMから本発明の制御プログラムやゲームプログラムが読み出され、ワークメモリとして働く記憶手段としてのRAMと、CPUにより生成された立体視用の各画像データを表示画像処理して所定の表示画面上に3Dの立体画像を表示可能とする液晶表示装置などの表示部とを有している。
この制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体としては、ハードディスク、光ディスク、磁気ディスクおよびICメモリなどで構成することができる。これは、携帯自在な光ディスク、磁気ディスクおよびICメモリなどであってもよい。また、この携帯自在な光ディスク、磁気ディスクおよびICメモリなどから本発明の立体視画像装置10内のハードディスク、光ディスク、磁気ディスクおよびICメモリなどの記憶手段に制御プログラムおよびゲームプログラムがインストールされるように構成してもよいし、インターネットやイントラネット(サーバ装置)を介して、本発明の立体視画像装置10内のハードディスク、光ディスク、磁気ディスクおよびICメモリなどの記憶手段に制御プログラムおよびゲームプログラムがインストールされるように構成してもよい。
この場合、CPU(制御部)は、ゲームなどの表示画面の進行に合わせて(制御プログラムおよびゲームプログラムに基づいて)、入力される左右視点間の距離情報およびシーンデータを用いて、クリッピング判定手段(クリッピング判定ステップ)およびクリッピング処理手段(クリッピング処理ステップ)により表示対象処理をして、右視野領域用のジオメトリ演算と左視野領域用のジオメトリ演算とを交互または同時に実施し、右視野領域用のポリゴンリストおよび右視野領域用のポリゴンリストを生成するジオメトリ演算手段11と、立体視画像データとして、この右視野領域用のポリゴンリストから右視野用画像データを生成すると共に、この左視野領域用のポリゴンリストから左視野用画像データを生成するピクセル演算手段(ピクセル演算ステップ)13R,13Lとの各機能を順次実行することにより表示画面上に立体画像を表示させることができる。このようなゲーム装置の他に、立体視画像をバーチャルリアリティで映写する立体視画像映写装置などの映画装置にも本発明の立体視画像装置を適用することができる。
このクリッピング判定手段(クリッピング判定ステップ)は、立体視画像データを生成する際に、右視点視野画像データ生成用の右視野領域および左視点視野画像データ生成用の左視野領域に共通な共通視野領域(第3の領域23)に表示対象物体が包含されるか否かを判定し、このクリッピング処理手段(クリッピング処理ステップ)は、この共通視野領域(第3の領域23)に包含される表示対象物体のみを表示対象として座標変換処理する。
このジオメトリ演算手段(ジオメトリ演算ステップ)としては、制御プログラムに基づいて、
左右視点間の距離情報が入力されると共にシーンデータが入力されてコマンド処理が為され、このシーンデータなどから、表示させようとするシーンの視野領域を定義する視野変換行列と、投影変換行列と、光源情報と、表示対象物体を構成するポリゴンのモデリング変換行列およびその属性と、ポリゴンを構成する頂点の物体座標における座標値および法線ベクトルと、材質属性データを決定するコマンド処理手段(コマンド処理ステップ)と、
入力される投影変換行列がカレント投影変換行列として保持され、入力される視野変換行列がカレントモデリング変換行列として保持され、以降、順次入力されるポリゴンのモデリング変換行列を順次乗算した結果がカレント法線行列およびカレントモデリング変換行列として保持されると共に、視野変換行列とカレントモデリング変換行列との乗算結果がカレントモデリング変換行列として保持され、カレント投影変換行列およびカレントモデリング変換行列のいずれか一方が更新された場合に、カレント投影変換行列とカレントモデリング変換行列との乗算結果がカレントマトリクスとして保持されるマトリクス演算手段(マトリクス演算ステップ)と、
入力された頂点の法線ベクトルをカレント法線行列により座標変換し、頂点の材質属性を用いて頂点の光源色を計算すると共に、入力された頂点の物体座標をカレントマトリクス情報により投影座標に変換する頂点輝度計算手段(頂点輝度計算ステップ)と、
投影座標に変換された頂点がポリゴン毎に供給されて、遠側面、近側面、右側面、左側面、上側面および下側面の6つの側面で構成される共通視野領域(第3の領域)に対して、ポリゴンを構成する各線分の両端の頂点が外側に存在するか内側に存在するかを判定し、ポリゴンを構成する全ての線分の両端に位置する頂点が視野領域の外側に存在すると判定された場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄するクリッピング判定手段(クリッピング判定ステップ)と、
このクリッピング判定手段によってポリゴンを構成する各線分の両端に位置する頂点が共通視野領域の境界面に対して外側と内側とに存在すると判定された場合に、そのポリゴンを構成する全ての頂点に対して、ポリゴンを構成する線分毎に、共通視野領域の外側に存在する部分を切り取って破棄し、共通視野領域の外側に存在する頂点をその線分とその共通視野領域の境界面との交点により置換するクリッピング処理を施すクリッピング処理手段(クリッピング処理ステップ)と、
このクリッピング判定手段によってポリゴンを構成する全ての頂点が共通視野領域の内側に存在すると判定された場合に、そのポリゴンを構成する全ての頂点に対して透視除算を実施すると共に、クリッピング処理手段によってクリッピング処理が施されたポリゴンに対しても、そのポリゴンを構成する全ての頂点に対して透視除算を実施する透視除算手段(透視除算ステップ)と、
このポリゴンを構成する頂点のビューポート変換を実施するビューポート変換手段(ビューポート変換ステップ)と、
このポリゴンを構成する頂点のうち、最大のy座標値および最小のy座標値を算出し、最大y座標値をインデックスとするリストを生成しながら、ポリゴンの最小y座標値をポリゴン属性および、ポリゴンを構成する頂点データと共に出力するポリゴンリスト出力手段(ポリゴンリスト出力ステップ)との各機能を実行するものであり、
このクリッピング判定手段は、ポリゴンを構成する全ての線分の両端に位置する頂点が共通視野領域(第3の領域23)の外側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータを破棄し、また、ポリゴンを構成する各線分の両端に位置する頂点が共通視野領域(第3の領域23)の境界面に対して外側と内側とに存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータをクリッピング処理手段に送り、さらには、ポリゴンを構成する全ての頂点が視野領域の内側に存在すると判定した場合には、そのポリゴンを構成する全ての頂点に関するデータをクリッピング処理手段をバイパスして透視除算手段に直に送るように制御が為される。
また、ピクセル演算手段(ピクセル演算ステップ)としては、制御プログラムに基づいて、
ポリゴンリストが入力されて、表示すべきスキャンライン上に存在するポリゴンを検索するポリゴンリスト入力手段(ポリゴンリスト入力ステップ)と、
スキャンラインとポリゴンを構成する左右のエッジの線分との交点の座標および光源色を、ポリゴンを構成する線分の両端の頂点の座標および頂点の光源色から補間により算出するポリゴンエッジ計算手段(ポリゴンエッジ計算ステップ)と、
算出されたスキャンライン上の左右のエッジ間の各ピクセルに対して、各ピクセル毎のデプス値および光源色を、左右のエッジのデプス値および光源色から補間により算出し、算出されたピクセルのデプス値によって陰面消去処理を行うピクセル処理手段(ピクセル処理ステップ)との各機能を実行する。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。