(57)【特許請求の範囲】
【請求項１】
仮想空間において背景が透過して見える透過物体を表示する画像処理装置であって、
前記仮想空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、当該視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを計算するベクトル演算手段と、
特定の空間位置に予め設けられたテクスチャ平面と前記微小多角形の各頂点について前記ベクトル演算手段により計算された前記屈折ベクトルとの交点である第２交点を各々特定し、予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング手段と、を備える画像処理装置。
【請求項２】
前記ベクトル演算手段は、前記第１交点を端点とする複数の辺同士の外積に基づいて当該第１交点における法線ベクトルを計算し、当該第１交点についての前記屈折ベクトルを計算すること、を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ベクトル演算手段は、前記第１交点を構成する前記微小多角形に予め設定された法線ベクトルを平均して当該第１交点における法線ベクトルを計算し、当該第１交点についての前記屈折ベクトルを計算すること、を特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記ベクトル演算手段は、前記微小多角形の頂点に予め設定された法線ベクトルに基づいて、前記第１交点についての前記屈折ベクトルを計算すること、を特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記ベクトル演算手段は、前記視線ベクトルをＥ、前記法線ベクトルをＮ、前記透過物体の外側の屈折率をｎ１、前記透過物体の内側の屈折率をｎ２、前記視線ベクトルと前記法線ベクトルとのなす角度θ１、および、前記法線ベクトルと前記屈折ベクトルのなす角度をθ２とした場合に、前記屈折ベクトルＲを、
Ｒ＝（ｎ１／ｎ２）・（Ｅ−Ｎ（ｎ・ｃｏｓθ２−ｃｏｓθ１））
ｎ＝ｎ２／ｎ１
ｃｏｓθ１＝−Ｅ・Ｎ
ｃｏｓθ２＝１−（１−ｃｏｓθ１２）／ｎ２
という演算により求める請求項１に記載の画像処理装置。
【請求項６】
前記レンダリング手段は、前記屈折ベクトルのうち前記テクスチャ平面に平行な成分を参照して、当該テクスチャ平面上の前記第２交点の座標を特定することを特徴とする請求項１乃至請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
前記テクスチャ平面に設定するテクスチャデータは、所定の半球面上に設定された画像を予め所定の平面に投射した画像に基づいて生成されたこと、を特徴とする請求項１乃至請求項６のいずれか一項に記載の画像処理装置。
【請求項８】
前記テクスチャ平面に設定するテクスチャデータは、実空間における周囲の景色を映し込ませた球状体を一点から撮影した画像に基づいて生成されたこと、を特徴とする請求項１乃至請求項６のいずれか一項に記載の画像処理装置。
【請求項９】
前記レンダリング手段は、前記視線ベクトルの方向に対応させて前記テクスチャ平面に設定するテクスチャデータを変更すること、を特徴とする請求項１乃至請求項８のいずれか一項に記載の画像処理装置。
【請求項１０】
請求項１乃至請求項９のいずれか一項に記載の画像処理装置を備え、当該画像処理装置により生成された仮想物体を、ゲームの表示対象とするゲーム装置。
【請求項１１】
仮想的な空間において光が透過する透過物体を表現する画像処理方法であって、
前記空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、 前記視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを生成する屈折ベクトル生成工程と、
特定の空間位置に設けたテクスチャ平面と前記微小多角形の各頂点について前記屈折ベクトル生成工程で生成された前記屈折ベクトルとの交点である第２交点を各々特定する交点特定工程と、
予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング工程と、を備える画像処理方法。
【請求項１２】
仮想的な空間において光が透過する透過物体を表現する画像処理を実行させるプログラムが格納された機械読み取り可能な記録媒体であって、
前記プログラムは、
前記空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、 前記視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを生成する屈折ベクトル生成工程と、
特定の空間位置に設けたテクスチャ平面と前記微小多角形の各頂点について前記屈折ベクトル生成工程で生成された前記屈折ベクトルとの交点である第２交点を各々特定する交点特定工程と、
予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング工程と、を有する処理をコンピュータに実行させるプログラムである機械読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビデオゲーム装置等に適用される画像処理技術に係り、特に、光が透過する透明な物体を質感豊かに表示するための画像処理技術に関する。
【０００２】
【従来の技術】
画像処理技術の発達に伴い、実際に存在しない物体を立体的に表現できるようになった。特に、ビデオゲーム装置の技術分野では、仮想的な三次元空間（以下「仮想空間」という）の画像を高速に表示することが行われている。仮想空間に物体を表示するためには、通常、照明や環境からの光の反射をシミュレーションする。ところで、このゲームの内容によっては、ガラスや水のような光を透過する液体や固体、流動体（以下「透過物体」という）を表示する必要が生ずる。従来の画像処理技術において、透明物体を表示するためには、幾つかの方法が考えられていた。
【０００３】
最も簡単に透過物体を表示方法は、光が透過物体に入射することにより生ずる屈折を無視することである。この場合、画像の表示処理は高速に行えるであろうが、屈折を無視したのでは、実際に透明な物体を透過した場合に観察される背景の画像の歪みが表現できない。
【０００４】
このため、現実的な透明感を十分に表現するための方法としては、レイ・トレーシング・アルゴリズム等のレンダリング（rendering）手法により光の屈折を考慮することが、行われている。空気中から水中に光線が入る場合のように、光がある媒質から他の媒質へ入射するときには屈折が生ずる。この光線が曲げられる量は、一般にスネル（Snell）の法則により関係づけられる。レイ・トレーシング・アルゴリズムでは、画像を表示するための観察者の視点からの視線を逆に辿り、光を反射する物体では光を反射させ、光を透過する透過物体では、前記スネルの法則により屈折方向を求め、視点から観察できる画像を定める。
【０００５】
また、ゲーム制作の現場においては、例えば格闘ゲームにおいて、特殊なキャラクタ(ゲームの表示対象となる人物、ロボット等)を透明感をもって表示し、ゲームの特殊性を一層際立たせるために、上記レンダリング手法を付加しようとする試みがなされていた。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記したレイ・トレーシングによるレンダリングでは、陰影、屈折や反射をすべて正確に再現できる利点があるが、演算量が膨大なものとなるため、ビデオゲーム装置のような高速処理を主要な技術的課題の一つとする装置には、不適当な方法であるといえる。
【０００７】
そこで、本発明は、質感豊かにかつ高速に透明な物体を表示できる画像処理装置、その方法および記録媒体を提供することを第１の課題とする。
【０００８】
また、これらの画像処理技術を用い、特殊な表示形態のキャラクタをより効果的にリアルタイム表現するゲーム装置を提供することを第２の課題とする。
【０００９】
【課題を解決するための手段】
請求項１に記載の発明は、仮想空間において背景が透過して見える透過物体を表示する画像処理装置である。すなわち、前記仮想空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、当該視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを計算するベクトル演算手段を備える。さらに、特定の空間位置に予め設けたテクスチャ平面と前記微小多角形の各頂点について前記ベクトル演算手段により計算された前記屈折ベクトルとの交点である第２交点を各々特定し、予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング手段を備える。
【００１１】
請求項２の発明では、当該第１交点を端点とする複数の辺同士の外積に基づいて当該第１交点における法線ベクトルを計算する。請求項３に記載の発明では、当該第１交点を構成する前記微小多角形に予め設定された法線ベクトルを平均して当該第１交点における法線ベクトルを計算する。請求項４に記載の発明では、当該頂点に予め設定された法線ベクトルに基づいて、当該第１交点についての前記屈折ベクトルを計算する。
【００１３】
前記ベクトルの演算は、請求項５に記載したように、前記視線ベクトルをＥ、前記法線ベクトルをＮ、前記透過物体の外側の屈折率をｎ１、前記透過物体の内側の屈折率をｎ２、前記視線ベクトルと前記法線ベクトルとのなす角度θ１、および、前記法線ベクトルと前記屈折ベクトルのなす角度をθ２とした場合に、前記屈折ベクトルＲを、
Ｒ＝（ｎ１／ｎ２）・（Ｅ−Ｎ（ｎ・ｃｏｓθ２−ｃｏｓθ１））
ｎ＝ｎ２／ｎ１
ｃｏｓθ１＝−Ｅ・Ｎ
ｃｏｓθ２＝１−（１−ｃｏｓθ１２）／ｎ２
という演算により求める請求項１に記載の画像処理装置。
【００１４】
また、請求項６に記載の発明のように、前記屈折ベクトルのうち前記テクスチャ平面に平行な成分を参照して、当該テクスチャ平面上の前記第２交点の座標を特定するのは好ましい。例えば、テクスチャ平面に平行な方向をｕ方向およびｖ方向とする。前記屈折ベクトルを当該テクスチャ平面へ投射した場合のｕ方向およびｖ方向のベクトル成分をそれぞれＲｕおよびＲｖとすると、前記第２交点の座標（ｕ、ｖ）は、ｕ＝（Ｒｕ＋１）／２ｖ＝（Ｒｖ＋１）／２というような演算により求められる。この場合、テクスチャデータは、透過物体の中心を通るような屈折がまったくない場合の視線ベクトルが、このテクスチャ平面の中心点を通過するように、設定しておくことになる。
【００１５】
このテクスチャ平面に設定するテクスチャデータは、請求項７に記載したように、所定の半球面上に設定された画像を予め所定の平面に投射して生成するのが好ましい。また、請求項８に記載したように、実空間における周囲の景色を映し込ませた球状体を一点から撮影して生成するのも好ましい。
【００１６】
さらに、前記レンダリング手段は、請求項９に記載したように、前記視線ベクトルの方向に対応させて前記テクスチャ平面に設定するテクスチャデータを変更するのも好ましい。
【００１７】
請求項１０に記載の発明は、第２の目的を達成するためのものである。すなわち、当該ゲーム装置は、請求項１乃至請求項９に記載の画像処理装置を備え、当該画像処理装置により生成された仮想物体を、ゲームの表示対象とする。
【００１８】
請求項１１に記載の発明は、仮想的な空間において光が透過する透過物体を表現する画像処理方法である。すなわち前記空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、 前記視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを生成する屈折ベクトル生成工程と、特定の空間位置に設けたテクスチャ平面と前記微小多角形の各頂点について前記屈折ベクトル生成工程で生成された前記屈折ベクトルとの交点である第２交点を各々特定する交点特定工程と、予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング工程と、を備える。
【００１９】
請求項１２に記載の発明は、仮想的な空間において光が透過する透過物体を表現する画像処理を実行させるプログラムが格納された機械読み取り可能な記録媒体である。すなわち前記プログラムは、前記空間を透視する視点から前記透過物体への視線を示す視線ベクトルと、 前記視線ベクトルと前記透過物体の表面を形成する複数の微小多角形の各頂点との交点である第１交点における法線ベクトルと、に基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを生成する屈折ベクトル生成工程と、特定の空間位置に設けたテクスチャ平面と前記微小多角形の各頂点について前記屈折ベクトル生成工程で生成された前記屈折ベクトルとの交点である第２交点を各々特定する交点特定工程と、予めメモリに格納された前記テクスチャ平面に設定されたテクスチャデータのうちの各前記第２交点により囲まれる領域の前記テクスチャデータを、当該微小多角形にマッピングするレンダリング工程と、を有する処理をコンピュータに実行させるプログラムである機械読み取り可能な記録媒体である。
【００２０】
なお、記録媒体としては、フロッピーディスク等の磁気ディスク、ＣＤ、ＣＤ―ＲＯＭ、ＣＤ―Ｒ、書き換え可能光ディスク等の光ディスク、あるいは揮発性若しくは不揮発性のＲＡＭ、ＲＯＭ、ＩＣカード等の半導体メモリ等、機械読み取り可能なあらゆる記憶媒体が相当する。さらに、インターネット等の通信回線を介して遠隔地のコンピュータ装置等からプログラムデータが転送される場合も、ここにいう記憶媒体に含まれる。
【００２１】
【発明の実施の形態】
以下、本発明の好適な実施の形態を図面を参照して説明する。本実施の形態は、本発明の画像処理装置を適用したゲーム処理装置に関する。
【００２２】
（I）構成の説明
図１に、本実施の形態におけるゲーム処理装置のブロック図を示す。同図に示すように本ゲーム処理装置１００は、画像処理ブロック１、描画ブロック２、モニタ装置３およびメモリ４をバスライン５で相互に接続して構成される。本発明の画像処理は、画像処理ブロック１において処理される。
【００２３】
画像処理ブロック１は、ＣＰＵ１０１、ＲＯＭ１０２、インターフェース回路１０３、入力装置１０４および補助ブロック１０５により構成される。ＣＰＵ１０１は、補助ブロック１０５に装着されたＣＤ―ＲＯＭ１１０から読み込まれたプログラムデータに基づいて、本発明の画像処理を行う。ＲＯＭ１０２は、電源投入後のＩＰＬプログラム等を格納する。インターフェース回路１０３は、操作者の操作により入力装置１０４から入力された操作信号を、ＣＰＵ１０１に供給する。補助ブロック１０５は、装着されたＣＤ―ＲＯＭ１１０からプログラムデータおよび画像データを読み込み、メモリ４に転送する。なお、プログラムデータを供給する記憶媒体としては、ＣＤ―ＲＯＭ１１０に限らず、他の記憶媒体であってもよい。
【００２４】
描画ブロック２は、描画プロセッサ２０１、フレームバッファ２０２および２０３により構成される。描画プロセッサ２０１は、画像処理ブロック１のＣＰＵ１０１から表示用画像データが転送されると、これをフレームバッファ２０２に格納する。表示用画像データは、表示対象である物体を構成する微小多角形であるポリゴンの頂点座標、当該ポリゴンに適用するテクスチャデータを指定する命令データ、当該ポリゴンのワールド座標系における表示座標を特定するデータ、当該ワールド座標を観察する視点の位置を示すデータ等により構成される。描画プロセッサ２０１は、これらフレームバッファ２０１に格納されたデータに基づいて、ディスプレイに表示する画像である視野座標系における各ポリゴンの二次元座標をマトリクス演算によって求め、テクスチャデータとしてはメモリ４のテクスチャデータメモリ４０２を参照し、その座標に基づいて得られるビットマップデータをフレームバッファ２０３に格納する。そして、フレームバッファ２０３に格納されたビットマップデータに基づいて、モニタ装置３に映像信号を供給し画像表示を行う。
【００２５】
メモリ４は、演算に使用されるＲＡＭ４０１およびテクスチャデータを記憶するテクスチャデータメモリ４０２を備える。ＲＡＭ４０１には、本発明の画像処理に必要なベクトル演算のためのデータを格納される。つまり、上記演算前のベクトルを特定するデータを格納し、さらに演算後のベクトルを特定するデータ等が格納される。テクスチャデータメモリ４０２には、描画ブロック２が表示用ビットマップデータを生成する際に参照されるテクスチャデータが格納される。
【００２６】
図２に、本実施の形態のゲーム処理装置１００を機能面からブロック化した機能ブロック図を示す。上記画像処理ブロック１は、ＣＰＵ１０１がＣＤ―ＲＯＭ１１０から読み取られたプログラムデータに基づいて動作することにより、当該機能ブロックの協働作用を行う。
【００２７】
すなわち、画像処理ブロック１は、ベクトル演算手段として作用するベクトル演算ブロック１０、およびレンダリング手段として作用するレンダリングブロック２０として動作する。ベクトル演算ブロック１０は、視線ベクトル生成部１１、法線ベクトル生成部１２および屈折ベクトル生成部１３を備える。レンダリングブロック２０は、交点特定部２１およびテクスチャ決定部２２を備える。
【００２８】
ベクトル演算ブロック１０は、位置情報（ワールド座標系における三次元座標等）からベクトル成分を特定する数値を計算するブロックである。視線ベクトル生成部１１は、メモリ４のＲＡＭ４０１に格納された、視点の位置情報と、本発明を適用して光を透過させて表示したい透過物体のポリゴンデータとに基づいて、視点からこの透過物体上の各ポリゴンへの視線ベクトルを計算し、再びＲＡＭ４０１に格納する。法線ベクトル生成部１２は、ＲＡＭ４０１に格納されたポリゴンデータに基づいて当該ポリゴンの各頂点における法線ベクトルを計算し、再びＲＡＭ４０１に格納する。屈折ベクトル生成部１３は、ＲＡＭ４０１に格納された、視線ベクトル生成部１１の生成した視線ベクトルと法線ベクトル生成部１２の生成した当該ポリゴンの各頂点における法線ベクトルとを参照し、屈折ベクトルを計算し、再びＲＡＭ４０１に格納する。
【００２９】
レンダリングブロック２０は、ベクトル演算ブロック１０により計算され、ＲＡＭ４０１に格納された屈折ベクトルに基づいて、透過物体に適用するテクスチャデータを決定するブロックである。交点特定部２１は、屈折ベクトル生成部１３の生成した屈折ベクトルのうち、テクスチャ平面に平行な座標成分を計算する。そしてこれに基づいて、屈折ベクトルとテクスチャ平面との交点（第２交点）の座標をポリゴンの頂点に対応させて計算し、ＲＡＭ４０１に格納する。テクスチャ決定部２２は、ポリゴンごとに、前記第２交点におけるテクスチャデータの範囲をそれぞれ特定し、当該ポリゴンに適用するテクスチャデータを示す命令データを描画ブロック２に転送する。
【００３０】
描画ブロック２は、前述したように、視点の位置情報、ポリゴンデータに基づいて、複数のポリゴンにより透過物体等の表示すべき物体を描画する。その際、透過物体について、テクスチャ決定部２２の決定したテクスチャデータを、テクスチャデータメモリ４０２から読み出して、当該ポリゴンの表面にマッピングして表示用のビットマップデータを生成する。
【００３１】
（II）動作の説明
次に、本実施の形態の動作を説明する。処理を行う前提として、メモリ４には、仮想画像を観察する視点の位置情報、透過物体等を構成するポリゴンデータ、テクスチャ平面に設定するテクスチャデータ、テクスチャ平面をワールド座標系で定義する情報等が格納されているものとする。
【００３２】
従来の技術で説明したように、レイ・トレーシング・アルゴリズム等のレンダリング手法により透明物体を表現しようとすれば、その演算量が膨大であるため、実時間処理に不適である。
【００３３】
ここで、実時間処理を行うために、視点からの光線の追跡を一回に限り行うことも考えられる。すなわち、視線からの光線の透過物体の表面における屈折を計算し、屈折した光線の到達する背景画像の画素を特定するのである。この背景画像の画素を透過物体の表面に表示すれば、透過物体が光を透過し、背景画が映り込んでいるように見える。しかし、透過物体の画素ごとに背景画像の画素を特定するものとしても、ビデオゲーム装置等におけるリアルタイム画像処理としては、まだその演算量は膨大であり、実施の製品に適用することが困難である。本発明は、これを克服するため、以下の処理を行う。
【００３４】
本画像処理装置において、視点の位置は、仮想空間を絶対位置を特定するための三次元座標（ワールド座標系）における座標値として与えられる。ポリゴンの頂点の位置は、物体ごとに定義されるボディ座標系の座標値として与えられる。なお、法線ベクトルを計算で求めずポリゴンごとに予め定義しておくこともできる。この場合には、このポリゴンの頂点ごとの法線ベクトルを特定する情報がＣＤ―ＲＯＭ１１０からＲＡＭ４０１に予め転送されることになる。
【００３５】
テクスチャ平面上に設定するテクスチャデータは、例えば、図７に示すように、反射率の高い金属球に周囲の景色を映し込み、映し込んだ景色をカメラで撮影し、画像データ化して作る。すなわち、透過物体が球形であるとすると、視線が透過物体の表面に入射する角度が浅い程（すなわち、透過物体の周囲になる程）光の屈折率が高くなる。したがって、金属球に写る周囲の景色を、透明物体の表面に張り付けるテクスチャデータとして透明物体を構成するポリゴンに張り付ければ、当該透過物体に背景画像が屈折して映っているかのような印象を観察者に与えることができるのである。なお、このような手法によらず、金属体の表面に映り込む画像を、公知のレイ・トレーシングの手法により生成することによって、テクスチャ平面に設定するテクスチャデータを制作してもよい。
【００３６】
図８に、金属球を撮影する等により得られたテクスチャデータの例を示す。座標ｕ、ｖはテクスチャ平面を定義するための座標軸である。この座標軸は、テクスチャ平面に平行なベクトル成分を有する。同図に示すように、テクスチャデータは、テクスチャ平面の中心点Ｃで疎、周辺で密になるよう設定された画像データである。金属球を撮影してテクスチャデータを撮影した場合等には、同心円状にデータが得られるので、その外側は、濃度の高い画素データ等で埋める。
【００３７】
図３に、本形態の動作を説明するフローチャートを示す。画像処理ブロック１は、所定の画像書換えの周期（例えば、ビデオ信号の垂直同期期間）が来ると、モニタ装置３に表示すべき仮想空間の画像を更新する。すなわち、仮想空間内に物体が存在するか否かを判定し（ステップＳ（以下「Ｓ」と表示する）１）、物体が存在する場合（Ｓ１；ＹＥＳ）、その物体が、背景画像等の光を透過させて表示する物体であるか否かを判定する（Ｓ２）。光を透過させない通常の物体(通常のテクスチャデータが適用される物体)であれば（Ｓ２；ＮＯ）、通常のテクスチャマッピング処理を行う。光を透過させる透過物体であれば（Ｓ２；ＹＥＳ）、本発明に係る以下の処理を続行する。
【００３８】
まず、この透過物体を構成するポリゴンのうち一つを特定し（Ｓ３）、さらにその特定したポリゴンの複数の頂点のうち一つを特定する（Ｓ４）。視線ベクトル生成部１１は、メモリ４に格納された視点の座標を参照し、視点からこの頂点へ向かう視線ベクトルＥを生成する（Ｓ５）。
【００３９】
この様子を図４および図５に示す。図４は、視線ベクトル等を透過物体の関係の斜視図であり、図５は、ポリゴンの頂点と視線ベクトル、屈折ベクトルを含む平面で透過物体を見た断面図である。同図で、視線ベクトルをＥ、法線ベクトルをＮ（Ｎ‘）、屈折ベクトルをＲで表わす。また、視点はＰ0、頂点はＰ1、テクスチャ平面ＴＰと屈折ベクトルＲとの交点をＰ2で示す。視線ベクトルＥは、視点Ｐ0の座標とポリゴンの頂点Ｐ1の座標から求められる。
【００４０】
次いで、頂点Ｐ1についての法線ベクトルＮを求める（Ｓ６）。法線ベクトルＮは、予め頂点ごとのベクトル値を計算し、計算値をメモリ４に格納しておいてもよい。本実施形態では、図６に示すように、頂点を囲むポリゴンのポリゴンデータから算出するものとする。図６は、頂点Ｐ1を囲んでＳ12、Ｓ13、Ｓ23の３つのポリゴンが取り囲んでいる様子を示す。ポリゴンデータには各ポリゴンの頂点座標が記録されているので、各頂点の座標を参照すれば各頂点を結ぶ辺ベクトル（Ｌ1、Ｌ2、Ｌ3）が求められる。頂点Ｐ1についての法線ベクトルＮは、各辺ベクトルの外積を各々計算し、計算した外積の合計を計算することで求められる。
【００４１】
すなわち、法線ベクトルＮは、
Ｎ＝Ｌ1×Ｌ2＋Ｌ3×Ｌ１＋Ｌ2×Ｌ3
で求められる。
【００４２】
法線ベクトルＮが求められると、次に屈折ベクトル生成部１３は屈折ベクトルＲを求める（Ｓ７）。屈折ベクトルＲを求めるために、予め屈折率を定義しておく。例えば、図５に示すように、透過物体Ｍの外側の屈折率をｎ1、透過物体Ｍの内側の屈折率をｎ2とする。また、視線ベクトルＥと法線ベクトルＮとのなす角度θ1および法線ベクトルＮ‘と屈折ベクトルＲとのなす角度をθ2とする。この場合、屈折ベクトルＲは、スネルの法則にしたがい、
Ｒ＝（ｎ1／ｎ2）・（Ｅ−Ｎ（ｎ・ｃｏｓθ2−ｃｏｓθ1））
但し、ｎ＝ｎ2／ｎ1、ｃｏｓθ1＝−Ｅ・Ｎ、
ｃｏｓθ2＝１−（１−ｃｏｓθ12）／ｎ2
という演算式により導き出せる。
【００４３】
ステップＳ８において、交点特定部２１は、屈折ベクトルＲとテクスチャ平面ＴＰの交点Ｐ2を求める（図４参照）。テクスチャ平面は、計算を簡単にするために、ワールド座標系におけるｚ軸に垂直な面であることが望ましい。すなわち、視線の方向とｚ軸方向を一致させた視点座標系におけるｘｙ平面に平行なものと仮定する。また、視点Ｐ0と透明物体Ｍの中心点とテクスチャ平面ＴＰの中心点Ｃとがほぼ一直線上に並ぶようテクスチャ平面の中心点の相対位置を設定するのが好ましい。屈折ベクトルＲのうち、テクスチャ平面を定義する座標軸の方向成分（ｕ方向、ｖ方向）と同一方向の成分をＲｕおよびＲｖとする。視点Ｐ0とテクスチャ平面ＴＰとの距離を適当に選ぶことにより、屈折ベクトルＲとテクスチャ平面ＴＰとの交点Ｐ2の座標（ｕ，ｖ）は、
ｕ＝（Ｒｕ＋１）／２
ｖ＝（Ｒｖ＋１）／２
という演算により求められる。もちろん、テクスチャ平面が平面方程式で定義され、演算能力に余力がある場合は、屈折ベクトルの示す空間における一次式に基づいて、正確なテクスチャ平面上の交点を求めてもよい。
【００４４】
なお、仮想平面の背景画像が視線の方向により異なってくるような場合には、テクスチャデータを複数用意しておき、視線の方向に応じて、その背景として透明物体に映し込むテクスチャデータを変更してもよい。
【００４５】
一つのポリゴンの一つの頂点に対応するテクスチャ平面上の一つの交点が上記Ｓ５〜Ｓ８の工程によって求められる。これを残りの頂点がある限り（Ｓ９；ＹＥＳ）、繰り返す。つまり、同一の処理により他の頂点に対応するテクスチャ平面上の交点を求めていく（Ｓ５〜Ｓ８）。一つのポリゴンについてすべての頂点に対応する交点が求められると（Ｓ９；ＮＯ）、このポリゴンの各頂点に対応して求められたテクスチャ平面上の交点で囲まれた領域を特定する（Ｓ１０）。これが、当該ポリゴンに対応するテクスチャデータとなる。テクスチャ決定部２２は、特定された領域のテクスチャデータを公知のレンダリング手法を用いて、透過物体の対応するポリゴンにマッピングする（Ｓ１１）。その際、Ｚバッファ法等の高速処理を用いた隠面処理や各種シェーディング技法を用いてもよい。以上の処理により、一つのポリゴンの処理が完了する。
【００４６】
以上の処理を、当該透明物体を構成する他のポリゴンについても行う。すなわち、当該透過物体に他の未処理のポリゴンが存在すれば（Ｓ１２；ＹＥＳ）、その他のポリゴンについて、上記処理（Ｓ３〜Ｓ１１）を繰り返し、残りのポリゴンがなくなったら（Ｓ１２；ＮＯ）、他の物体の検索に移行する（Ｓ１）。
【００４７】
図９に、本形態における透過物体のテクスチャマッピングの例を示す。同図に示すように、透過物体を通して背後にあるビルの映像を観察する場合、テクスチャデータをこのビルについて作成しておけば、透過物体を通して観察される画像は、光の屈折により得られた現実的な画像となる。
【００４８】
（III）効果の説明
以上のように本形態によれば、ポリゴンの頂点ごとに簡単な演算式により、テクスチャデータを特定していくので、従来、透過物体を表現するために必要とされた光路計算を省略でき、リアルタイムに現実的な透過物体の表現が行える。
【００４９】
（ＩV）その他の形態
本発明は、上記各形態に拘らず種々に変形できる。テクスチャデータの作成の手法は、本形態によらず、実際の屈折率のある物体を近似できるものであれば他の方法を用いてもよい。例えば、実際のガラス球または水晶球のような物体に映りこむ景色の映像を用いてもよい。
【００５０】
また、屈折ベクトルの演算式、交点を求める演算式も、上記形態によらず、屈折の存在を技術的に特定できる方法によるものであれば、他の方法を用いてもよい。例えば、簡単な演算テーブル等を用いる方法が挙げられる。
【００５１】
【発明の効果】
本発明によれば、視線ベクトルと法線ベクトルとに基づいて、前記視線ベクトルに平行な光の前記第１交点における屈折方向を示す屈折ベクトルを計算し、特定の空間位置に予め設けたテクスチャ平面と前記屈折ベクトルとの交点である第２交点を特定し、当該第２交点に設定されているテクスチャデータに基づいて、前記透過物体の前記第１交点付近におけるテクスチャデータを決定するので、簡単なベクトル演算により設定すべきテクスチャデータを決められる。したがって、ビデオゲーム装置等のように、高速処理が必要な画像処理装置においても、従来困難とされた透過物体の質感豊かな表現が可能となる。
【００５２】
特に、テクスチャデータの特定をポリゴンの頂点ごとに行えば、マッピング自体は公知のマッピング技術がそのまま適用できる。
【００５３】
また、視線ベクトルの方向に対応させてテクスチャデータを更新すれば、視線の方向に応じ、透過物体により現実感のあるテクスチャをマッピングすることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるゲーム装置のブロック図である。
【図２】本発明の実施の形態における画像処理ブロックの機能ブロック図である。
【図３】本発明の実施の形態の動作を説明するフローチャートである。
【図４】視点と透過物体とテクスチャ平面の概念を示す斜視図である。
【図５】視線ベクトルと法線ベクトルと屈折ベクトルとの関係を示す図である。
【図６】法線ベクトルの演算方法を説明する図である。
【図７】テクスチャデータの作成方法の説明図である。
【図８】テクスチャデータの例である。
【図９】本形態の実施例の画像である。
【符号の説明】
１…画像処理ブロック、２…描画ブロック、３…モニタ装置、４…メモリ、１０…ベクトル演算ブロック、１１…視線ベクトル演算部、１２…法線ベクトル演算部、１３…屈折ベクトル演算部、２０…レンダリングブロック、２１…交点特定部、２２…テクスチャ決定部
【図１】
0003951362.tif 000002
【図２】
0003951362.tif 000003
【図３】
0003951362.tif 000004
【図４】
0003951362.tif 000005
【図５】
0003951362.tif 000006
【図６】
0003951362.tif 000007
【図７】
0003951362.tif 000008
【図８】
0003951362.tif 000009
【図９】
0003951362.tif 000010