(57)【特許請求の範囲】
【請求項１】
仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、
前記第１の物体に前記光源からの光が当たったと判定するステップと、
前記光源と異なる方向に擬似光源を設定するステップと、
該擬似光源に設定された明るさに基づいて、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するステップと、
を有する画像処理をコンピュータに実行させるためのプログラム。
【請求項２】
仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、
前記第１の物体の所定位置から前記光源に向かう第１のベクトルを求める第１のステップと、
前記第１の物体の所定位置から前記視点に向かう第２のベクトルを求める第２のステップと、
前記第１のベクトルと前記第２のベクトルとを内分する第３のベクトルを求める第３のステップと、
前記第３のベクトルと前記第１の物体の表面とが交差する第１の交点を求める第４のステップと、
前記視点と前記第１の交点とを結ぶ第１の直線が前記第２の物体の後方に位置する前記第１の物体の表面とが交差する第２の交点を求める第５のステップと、
前記第１の物体の所定位置から前記第２の交点と交差する第２の直線を求める第６のステップと、
前記第１の直線と前記第２の直線とが交差する交差角度を求める第７のステップと、
前記第２の直線を中心として前記交差角度で前記第１の直線と対称となる方向に延在する第３の直線を求める第８のステップと、
前記第３の直線上に擬似光源を設定する第９のステップと、
前記擬似光源に基づいて、前記第２の交点を中心にスペキュラを表示する第１０のステップと、
を有する画像処理をコンピュータに実行させるためのプログラム。
【請求項３】
仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、
前記第１の物体に前記光源からの光が当たったと判定するステップと、
前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するステップと、
を有する画像処理をコンピュータに実行させるためのプログラム。
【請求項４】
前記請求項１乃至３の何れかに記載のプログラムにおいて、
更に、前記第１の物体に光が当たった位置に表示する第１のスペキュラを生成するステップと、
該第１のスペキュラと前記第２の物体の後方に表示する第２のスペキュラとを、所定の比率の明るさまたは色の濃さまたは半透明度で表示するステップと、
を有する画像処理をコンピュータに実行させるためのプログラム。
【請求項５】
前記請求項１乃至４の何れかに記載のプログラムが記録された、コンピュータで読み取り可能な記録媒体。
【請求項６】
仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とを設定し、
前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示する画像処理装置であって、
前記第１の物体に前記光源からの光が当たったか否かを判定する判定手段と、
該判定手段により前記第１の物体に前記光源からの光が当たったと判定されたとき、
前記光源と異なる方向に擬似光源を設定し、
該擬似光源に設定された明るさに基づいて、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示する制御手段を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半透明または透明な物体の内部に他の物体が入った状態で物体が移動すると共に、設定された光源からの光が物体の外面に反射して見えるように表示されるスペキュラ（反射光パターン）を光源からの角度に応じた位置に表示するためのプログラム及び記録媒体及び画像処理装置に関する。
【０００２】
【従来の技術】
画像処理を行うビデオゲーム装置においては、ＣＤ−ＲＯＭ等の記憶媒体に記録されたゲームソフトウエアを読み取ると共に、プレイヤがコントローラの操作釦などを操作することで、読み取ったゲームソフトウエアの実行に基づいて、例えば、ゲーム中のキャラクタが移動する様子を３次元コンピュータグラフィック（３ＤＣＧ）によって形成された画像を逐次生成し、これをディスプレイ装置に表示するように構成されている。
【０００３】
この種のゲームソフトでは、半透明または透明の物体を表示する場合、半透明または透明の物体の表面に光源からの光が反射して見える反射光パターン（「スペキュラ」と呼ばれる）を表示して物体の表面の現実性（リアリティ）を表現している。
【０００４】
コンピュータグラフィックによって物体の画像を製作する場合、コンピュータの中の仮想空間に定義された物体の位置を計算する処理（「ジオメトリ処理」という）と、この計算結果に基づいて画像を生成する処理（以下「レンダリング処理」という）を行う。このジオメトリ処理とレンダリング処理によってディスプレイの画面に表示される画像が生成される。
【０００５】
コンピュータグラフィックを作成するオペレータ（「ＣＧクリエータ」と呼ばれる）は、パーソナルコンピュータなどのＣＧ作成ツールを操作して画面に表示する物体（キャラクタ）をデザイン（モデリング）し、物体の動きと、物体の表面の色や質感を設定する。
【０００６】
このようにして作られた物体と仮想光源および視点を仮想３次元空間内に配置したとき、物体と視点と仮想光源の位置関係から、物体に仮想光源からの光が当たったときの物体の表面に反射する光の反射光パターン（スペキュラ）の表示位置が決まる。（なお、視点は、仮想３次元空間内で物体を見たときの光景をテレビジョン等の画像を表示する画像表示装置に２次元表示するために設定されるものである。）そして、仮想３次元空間内で物体、視点または光源の少なくともいずれかが移動すると、これらの位置関係が変化するため、視点から見えるスペキュラの位置が物体の表面上で移動することになる。
【０００７】
例えば、図１に示されるような、半透明または透明の球体２と仮想光源３および視点４が設定される場合、球体２の中心から仮想光源３にむかう方向と、球体２の中心から視点４に向かう方向の間を中心位置とするスペキュラ５を球体２の表面上に表示することで、視点４から見た球体２の表面上に映りこむスペキュラ５を正しく表示することができる。
【０００８】
尚、スペキュラ５を球体２の表面に形成する手法としては、▲１▼スペキュラ５のポリゴンを用いて球体２のポリゴンにスペキュラ５のテクスチャを貼り付ける方法、▲２▼スペキュラ５のポリゴンを用いて、球体２のポリゴンの頂点カラーを変更してシェーディング処理を行う方法、▲３▼球体２を構成するポリゴンのテクスチャをスペキュラ５のテクスチャに変更する方法、またはスペキュラ５のテクスチャを球体２を構成するポリゴンのテクスチャに重ねて貼り付ける方法、▲４▼球体２を構成するポリゴンの点カラーを変更してシェーディング処理を行う方法などがある。
【０００９】
【発明が解決しようとする課題】
しかしながら、従来の画像表示方法では、物体に対する光源と視点の相対位置が変化すると、例えば、図１の球体２の内部にキャラクタ２が設定されている場合、半透明または透明の物体の内部にいるキャラクタの手前位置に反射光パターンが重なって表示されることがあり、ゲーム中のキャラクタの表情や動きなどが見えなくなってしまい、ビデオゲームの面白さが半減してしまうという問題があった。
【００１０】
そこで、本発明は上記課題を解決したプログラム及び記録媒体及び画像処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は上記課題を解決するため、以下のような特徴を有する。
【００１２】
上記請求項１記載の発明は、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体に前記光源からの光が当たったと判定するステップと、前記光源と異なる方向に擬似光源を設定するステップと、該擬似光源に設定された明るさに基づいて、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するように制御するステップと、を有する画像処理をコンピュータに実行させるためのプログラムであり、スペキュラが第２の物体と重なって第２の物体を表示できなくなることを防止し、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００１３】
また、請求項２記載の発明は、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体の所定位置から前記光源に向かう第１のベクトルを求める第１のステップと、前記第１の物体の所定位置から前記視点に向かう第２のベクトルを求める第２のステップと、前記第１のベクトルと前記第２のベクトルとを内分する第３のベクトルを求める第３のステップと、前記第３のベクトルと前記第１の物体の表面とが交差する第１の交点を求める第４のステップと、前記視点と前記第１の交点とを結ぶ第１の直線が前記第２の物体の後方に位置する前記第１の物体の表面とが交差する第２の交点を求める第５のステップと、前記第１の物体の所定位置から前記第２の交点と交差する第２の直線を求める第６のステップと、前記第１の直線と前記第２の直線とが交差する交差角度を求める第７のステップと、前記第２の直線を中心として前記交差角度で前記第１の直線と対称となる方向に延在する第３の直線を求める第８のステップと、前記第３の直線上に擬似光源を設定する第９のステップと、前記擬似光源に基づいて、前記第２の交点を中心にスペキュラを表示する第１０のステップと、を有する画像処理をコンピュータに実行させるためのプログラムであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
また、請求項３記載の発明は、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体に前記光源からの光が当たったと判定するステップと、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するステップと、を有する画像処理をコンピュータに実行させるためのプログラムであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００１４】
また、上記請求項４記載の発明は、請求項１乃至３の何れかに記載のプログラムにおいて、更に、前記第１の物体に光が当たった位置に表示する第１のスペキュラを生成するステップと、第１のスペキュラと第２の物体の後方に表示する第２のスペキュラとを、所定の比率の明るさまたは色の濃さで表示するステップと、を有する画像処理をコンピュータに実行させるものであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００１７】
また、請求項５記載の発明は、請求項１乃至４の何れかに記載のプログラムが記録された、コンピュータで読み取り可能な記録媒体であり、コンピュータの演算処理により第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００１８】
また、請求項６記載の発明は、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とを設定し、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示する画像処理装置であって、第１の物体に光源からの光が当たったか否かを判定する判定手段と、判定手段により第１の物体に光源からの光が当たったと判定されたとき、光源と異なる方向に擬似光源を設定し、擬似光源に設定された明るさに基づいて、視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ第２の物体の後方にスペキュラを表示するように制御する制御手段を有するものであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００１９】
【発明の実施の形態】
図２は本発明になるビデオゲーム装置の一実施例を示す正面図である。
【００２０】
図２に示されるように、画像処理装置としてのビデオゲーム装置１０は、ディスプレイ等の画像表示装置１２にケーブル１４を介して接続されるゲーム機本体１６と、プレイヤが操作するコントローラ（ペリフェラル）１８とからなる。コントローラ１８は、ケーブル１９を介してゲーム機本体１６と接続されており、ゲーム機本体１６は装着されたディスク状記憶媒体（ゲームソフトの制御プログラム等が記憶された記憶媒体）から制御データや画像データを読み込むとともに、コントローラ１８からの操作信号に応じて画像表示装置１２の画面にゲーム画像を生成して表示させる。また、コントローラ１８には、携帯用ゲーム機２０が着脱可能に装着されており、携帯用ゲーム機２０に設けられた小型の液晶ディスプレイ２２がプレイヤから見えるようになっている。
【００２１】
尚、画像表示装置１２及びゲーム機本体１６の電源をオンにすると、画像表示装置１２の画面１２ａには、図２に示すようなスタート画面が表示され、携帯用ゲーム機２０の液晶ディスプレイ２２には、何も表示されていない。
【００２２】
図３はコントローラ１８の平面図である。
【００２３】
図３に示されるように、コントローラ１８は、背面中央に携帯用ゲーム機２０が装着される装着部２４が設けられ、上面中央に携帯用ゲーム機２０の液晶ディスプレイ２２に対向する四角形状の開口部２６が設けられている。携帯用ゲーム機２０が装着部２４に装着されているときは、液晶ディスプレイ２２が開口２６と一致しており、プレイヤは、液晶ディスプレイ２２の表示内容を見ることができる。
【００２４】
また、コントローラ１８の上面には、左手で操作されるアナログジョイスティック２８と、デジタル（８方向）の指示をするための十字キー３０と、右手で操作される複数の操作釦３２が配設されている。さらに、コントローラ１８は、内部に振動発生装置３３（図３中、破線で示す）が収容されている。
【００２５】
装着部２４は、コントローラ１８の背面側に開口しており、プレイヤの意思により携帯用ゲーム機２０が任意に着脱される。
【００２６】
図４はゲーム機本体１６の内部構成及び周辺機器を示すブロック図である。
図４に示されるように、ゲーム機本体１６は、ＣＰＵ６１，システムメモリ６２，プログラムデータＲＯＭ６３，ブート（ＢＯＯＴ）ＲＯＭ６４，バスアービタ６５，レンダリングプロセッサ６６，グラフィックメモリ６７，サウンドプロセッサ６８，サウンドメモリ６９を有する。
【００２７】
ＣＰＵ６１は、後述するように、ゲームプログラムの実行や全体システムの制御及び画像表示のための座標計算などの演算を行う中央演算処理部である。
【００２８】
システムメモリ６２は、ＣＰＵ６１が処理を実行するのに必要なプログラムや各種データが後述のプログラムデータＲＯＭ６３から読み込まれた後に格納される記憶媒体である。
【００２９】
プログラムデータＲＯＭ装置６３は、ゲームプログラムや各種データ（映像・音楽データも含む）が記憶された記憶媒体（例えば、ＣＤ−ＲＯＭ）からデータを読み取る装置である。
【００３０】
ブートＲＯＭ６４は、ゲーム機本体１６を起動させるときに必要なプログラムやデータが格納されている記憶媒体である。
【００３１】
バスアービタ６５には、ＣＰＵ６１，プログラムデータＲＯＭ６３，ブートＲＯＭ６４，サウンドプロセッサ６８，レンダリングプロセッサ６６が接続されており、バスを介して相互に接続されるデバイスにバス占有時間を割り振ることによりデータの送受信を制御可能にしている。
【００３２】
レンダリングプロセッサ６６は、プログラム・データ用ＲＯＭから読み出した映像（動画）データを再生したり、遊技者の操作やゲーム進行に応じて制御され、ＣＰＵ６１によって座標計算された物体を画像表示するための画像を生成する装置である。そして、メインディスプレイとしての画像表示装置１２は、レンダリングプロセッサ６６から供給される映像信号に基づいた画像を表示する。
【００３３】
グラフィックメモリ６７は、レンダリングプロセッサ６６が画像生成を行うのに必要なテクスチャや表示フレームなどのグラフィックデータ等を格納している。
【００３４】
サウンドプロセッサ６８は、プログラム・データ用ＲＯＭから読み出した音楽データを再生したり、遊技者の操作やゲーム進行に応じて効果音や音声を生成する。スピーカ７０は、サウンドプロセッサ６８から供給された音声信号に応じた音声を出力する。
【００３５】
サウンドメモリ６６は、効果音や音声を生成するために必要なサウンドデータ等を格納する記憶媒体である。
【００３６】
また、ＣＰＵ６１は、バスアービタ６５及びモデム７１を介して外部コンピュータとデータ通信を行うことができるとともに、バスアービタ６５を介してコントローラ１８及び携帯用ゲーム機２０とデータ通信を行うことができる。
【００３７】
ここで、ＣＰＵ６１が実行する本発明における制御処理について説明する。尚、ＣＰＵ６１は、プログラムデータＲＯＭ装置６３に装着された記録媒体（ＣＤ−ＲＯＭ等）に記録されたプログラムを読み取り、このプログラムを実行してビデオゲームの画像を画像表示装置１２に表示させるための制御を行っている。
【００３８】
図５は本発明の画像処理方法による表示例を示す図である。
図５に示されるように、仮想３次元空間内において、キャラクタ（第２の物体）８０が半透明または透明の球体（第１の物体）８２の内部に入っており、これらの物体に対して視点８４と光源８６が設定されている。
【００３９】
仮想光源８６からの光は、視点８４と球体８２の中心とを結ぶ第１の直線８８に対して斜め上方から角度αで照射されるように設定された場合、球体８２の表面でα／２を中心とする位置に第１のスペキュラ（反射光パターン）９０を設定する。
【００４０】
このように、第１のスペキュラ９０が表示される位置は、仮想光源８６と視点８４との位置関係によって決まるが、球体８２の内部に表示されるキャラクタ８０と重なることがある。その場合、ＣＰＵ６１は、上記制御プログラムを実行して仮想光源８６と異なる方向から光を照射する擬似光源９２を設定すると共に、表示する第１のスペキュラ９０の明るさを弱く設定する。
【００４１】
擬似光源９２の設定によりキャラクタ８０の後方に位置する球体８２の内面には、第２のスペキュラ（反射光パターン）９４が表示される。これにより、視点８４から見るとキャラクタ８０の後方に第２のスペキュラ９４が表示され、且つ球体８２の表側には明るさの弱い第１のスペキュラ９０が表示される。
【００４２】
本実施例では、例えば、第１のスペキュラ９０の明るさＬａと、第２のスペキュラ９４の明るさＬｂとの比率をＬａ：Ｌｂ＝２５：７５に設定している。尚、第１のスペキュラ９０及び第２のスペキュラ９４は、白色で表示しており、白色の濃度を調整することで、任意の明るさで表示される。
【００４３】
尚、第１のスペキュラ９０及び第２のスペキュラ９４は、明るさや色の濃度以外にも半透明度を変えることで表現しても良い。
【００４４】
そのため、キャラクタ８０の位置に第１のスペキュラ９０が表示されてもキャラクタ８０の表情を視点８４から見ることが可能になり、且つキャラクタ８０の後方に第２のスペキュラ９４が表示されるため、球体８２に反射した反射光パターンも表示されて球体８２の画像をリアルに表現することが可能になる。
【００４５】
ここで、上記ＣＰＵ６１が第１のスペキュラ９０と第２のスペキュラ９４を設定する方法について図６及び図７を参照して更に詳細に説明する。尚、図７に示す制御処理は、予め設定された所定時間毎、例えば、ディスプレイ装置の表示タイミング毎に繰り返し実行される。
【００４６】
図６及び図７に示されるように、ステップＳ１１（以下「ステップ」を省略する）において、球体（第１の物体）８２の中心Ｏから仮想光源８６に向かう第１のベクトルＡを求める。続いて、Ｓ１２に進み、球体８２の中心Ｏから視点８４に向かう第２のベクトルＢを求める。
【００４７】
次にＳ１３で第１のベクトルＡと第２のベクトルＢとを内分する第３のベクトルＣを求める。ここで、ベクトルＡとベクトルＢのなす角度をαとし、その内分したベクトルＣは、αを１／２として求めているが、必ずしも１／２である必要はない。また、ベクトルＣは、ベクトルＡとベクトルＢとの間になるような方向とすることでも良い。
【００４８】
さらに、Ｓ１４では、視点８４と球体８２の外周（表側）との交点Ｄが第１のスペキュラ９０の中心となる交点Ｄの位置（座標）を求める。
【００４９】
続いて、Ｓ１５では、第１のスペキュラ９０が表示される位置が、視点８４に対して球体８２の内部に表示されるキャラクタ（第２の物体）８０と重なるかどうかをチェックする（スペキュラ判定手段）。
【００５０】
Ｓ１５において、視点８４からみて第１のスペキュラ９０がキャラクタ８０と重ならない場合には、Ｓ１６に進み、仮想光源８６に設定された明るさに基づき交点Ｄを中心に配置される第１のスペキュラ９０の明るさを求める。
【００５１】
また、Ｓ１５において、視点８４からみて第１のスペキュラ９０がキャラクタ８０と重なる場合には、Ｓ１７に進み、視点８４と交点Ｄとを結んだ直線Ｆがキャラクタ８０の後方に形成された球体８２の内側と交差する交点Ｅを求める。次のＳ１８では、球体８２の中心Ｏと交点Ｅを結ぶ直線Ｇと上記直線Ｆとの角度Ｈを求める。
【００５２】
この後、Ｓ１９に進み、上記直線Ｇに対して直線Ｆと反対側に交点Ｅから角度Ｈの直線Ｉを求める。続いて、Ｓ２０では、球体８２の内側を通った直線Ｉ上に擬似光源９２を設定する。
【００５３】
尚、本実施例では、直線Ｆと直線Ｇとの角度Ｈと、直線Ｇと直線Ｉとの角度Ｈは同じとしているが、必ずしもこれは同じに設定する必要はなく、任意に設定しても良い。
【００５４】
次のＳ２１では、擬似光源９２に設定された明るさに基づき交点Ｅを中心に配置される第２のスペキュラ９４の明るさを求める。そして、Ｓ２２に進み、仮想光源８６に設定された明るさに基づき交点Ｄを中心に配置される第１のスペキュラ９０の明るさを求める。これにより、キャラクタ８０の後方に位置する球体８２の内面には、第２のスペキュラ９４が表示される。
【００５５】
さらに、Ｓ２３に進み、所定の比率で第１のスペキュラ９０の明るさと、第２のスペキュラ９４の明るさとを求める。この比率は、第１のスペキュラ９０より第２のスペキュラ９４の方が明るくなるように設定することが望ましい。これにより、視点８４から見るとキャラクタ８０の後方に背景として第２のスペキュラ９４が表示され、且つ球体８２の表側には弱い明るさの第１のスペキュラ９０が表示される。
【００５６】
図８は上記図７の制御処理により作成された表示例を示す図である。
図８に示されるように、上記図７の制御処理によりキャラクタ８０の後方に位置する球体８２の内面に、第２のスペキュラ９４が表示される。一方、球体８２の外面には、キャラクタ８０の表側の重なる位置に第１のスペキュラ９０が表示される。
【００５７】
また、第１のスペキュラ９０の明るさが２５％に設定され、第２のスペキュラ９４との明るさが７５％に設定される。そのため、図８に示す画像は、半透明または透明の球体８２の内部にキャラクタ８０が入っている状態で明るさの弱い第１のスペキュラ９０をキャラクタ８０と重ねることで、キャラクタ８０の表情が分かるように表示される。これと共に、キャラクタ８０の後方には、第２のスペキュラ９４が表示されるため、明るさの弱い第１のスペキュラ９０の明るさをキャラクタ８０を見えにくくすることなく強化することができ、よりゲームとして実用的でリアリティ（現実性）の高い高品位画像として表示できる。
【００５８】
特に、半透明または透明の球体８２及びその内部に入ったキャラクタ８０が走る（移動する）場合には、画面（視点）及び仮想光源８６に対する物体の位置が変化するため、キャラクタ８０と第１のスペキュラ９０との表示位置が変化する。
【００５９】
そのため、実際のビデオゲーム中の動作を表示する場合には、上記Ｓ１１において、第１のスペキュラ９０の表示位置がキャラクタ８０と重なるかどうかを判定しており、キャラクタ８０が走る方向によってキャラクタ８０の顔に第１のスペキュラ９０が重ならない場合には、第１のスペキュラ９０のみを表示する。
【００６０】
そして、上記のようにキャラクタ８０が走る方向によってキャラクタ８０の顔に第１のスペキュラ９０が重なる場合には、第１のスペキュラ９０の明るさを弱くすると共に、キャラクタ８０の後方にも第２のスペキュラ９４を表示することで、明確にスペキュラを表示しながらキャラクタ８０の表情が分かるように表示することができる。よって、キャラクタ８０の走る方向が頻繁に変化するシーンを表示する場合でも、画面（視点）及び仮想光源８６に対するキャラクタ８０の向きに応じて逐次第１のスペキュラ９０及び第２のスペキュラ９４を表示が自動的に変化する。
【００６１】
尚、上記実施例では、図８に示すような半透明または透明な球体８２の内部にキャラクタ８０が入っている場合を一例として挙げたが、これに限らず、球体以外の形状（例えば、円筒状）のものの内部にキャラクタ８０が入っているように表示すること可能である。
【００６２】
また、半透明または透明な球体８２の内部に表示されるキャラクタ８０としては、各ビデオゲームに登場するキャラクタであれば、どのようなキャラクタでも良い。
【００６３】
また、上記実施例では、家庭用ゲーム機に適用した場合を例に挙げて説明したが、これに限らず、例えば、ゲームセンタあるいはアミューズメントパークなどと呼ばれている遊戯施設に設置される業務用ゲーム機にも適用できるのは勿論である。
【００６４】
更に、第２のスペキュラ９４は、視点８４から見てキャラクタ８０の後方に表示されていれば良いので、本実施例に示すような方法により表示位置を特定することに限らず、他の方法によるものでも良い。
【００６５】
例えば、交点Ｅの位置ではなく直線Ｆ上でキャラクタ８０より後方であればどこでも良いし、球体８２の内面に沿って表示する必要もなく、球体８２の内面外面に関係なく平面状にスペキュラを表示するようにしても良い。
【００６６】
更に、スペキュラそのものの表示方法は、例えば、▲１▼スペキュラ５のポリゴンを用いて球体２のポリゴンにスペキュラ５のテクスチャを貼り付ける方法、▲２▼スペキュラ５のポリゴンを用いて、球体２のポリゴンの頂点カラーを変更してシェーディング処理を行う方法、▲３▼球体２を構成するポリゴンのテクスチャをスペキュラ５のテクスチャに変更する方法、またはスペキュラ５のテクスチャを球体２を構成するポリゴンのテクスチャに重ねて貼り付ける方法、▲４▼球体２を構成するポリゴンの点カラーを変更してシェーディング処理を行う方法などがある。
【００６７】
尚、本実施例では、半透明または透明の物体と、その内部にキャラクタが配置されているものに対してスペキュラの表示を制御するものであったが、これら物体は、このような２つの物体という形態に限らず、例えば、半透明または透明の部分が存在する物体の内部に不透明または半透明の物体が一体的に形成されているものであっても、本発明の目的や課題が達成できることはいうまでもない。
【００６８】
【発明の効果】
上述の如く、請求項１記載の発明によれば、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体に前記光源からの光が当たったと判定するステップと、前記光源と異なる方向に擬似光源を設定するステップと、該擬似光源に設定された明るさに基づいて、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するように制御するステップと、を有する画像処理をコンピュータに実行させるため、スペキュラが第２の物体と重なって第２の物体を表示できなくなることを防止し、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００６９】
また、請求項２記載の発明によれば、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体の所定位置から前記光源に向かう第１のベクトルを求める第１のステップと、前記第１の物体の所定位置から前記視点に向かう第２のベクトルを求める第２のステップと、前記第１のベクトルと前記第２のベクトルとを内分する第３のベクトルを求める第３のステップと、前記第３のベクトルと前記第１の物体の表面とが交差する第１の交点を求める第４のステップと、前記視点と前記第１の交点とを結ぶ第１の直線が前記第２の物体の後方に位置する前記第１の物体の表面とが交差する第２の交点を求める第５のステップと、前記第１の物体の所定位置から前記第２の交点と交差する第２の直線を求める第６のステップと、前記第１の直線と前記第２の直線とが交差する交差角度を求める第７のステップと、前記第２の直線を中心として前記交差角度で前記第１の直線と対称となる方向に延在する第３の直線を求める第８のステップと、前記第３の直線上に擬似光源を設定する第９のステップと、前記擬似光源に基づいて、前記第２の交点を中心にスペキュラを表示する第１０のステップと、を有する画像処理をコンピュータに実行させるためのプログラムであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
また、請求項３記載の発明によれば、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とが設定され、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示するための画像処理をコンピュータに実行させるためのプログラムであって、前記第１の物体に前記光源からの光が当たったと判定するステップと、前記視点と前記光源からの光が当たった面とを結ぶ延長線上で、且つ前記第２の物体の後方にスペキュラを表示するステップと、を有する画像処理をコンピュータに実行させるためのプログラムであり、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００７０】
また、請求項４記載の発明によれば、請求項１乃至３の何れかに記載のプログラムにおいて、更に、前記第１の物体に光が当たった位置に表示する第１のスペキュラを生成するステップと、第１のスペキュラと第２の物体の後方に表示する第２のスペキュラとを、所定の比率の明るさまたは色の濃さで表示するステップと、を有する画像処理をコンピュータに実行させるため、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００７３】
また、請求項５記載の発明によれば、請求項１乃至４の何れかに記載のプログラムが記録された、コンピュータで読み取り可能な記録媒体であるため、コンピュータの演算処理により第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【００７４】
また、請求項６記載の発明によれば、仮想３次元空間内に、視点と光源と少なくとも半透明または透明の部分が存在する第１の物体と該第１の物体の内部に第２の物体とを設定し、前記視点から見たときに、前記第１の物体の表面に前記光源からの光が反射しているように見えるスペキュラを表示する画像処理装置であって、第１の物体に光源からの光が当たったか否かを判定する判定手段と、判定手段により第１の物体に光源からの光が当たったと判定されたとき、光源と異なる方向に擬似光源を設定し、擬似光源に設定された明るさに基づいて、視点と光源からの光が当たった面とを結ぶ延長線上で、且つ第２の物体の後方にスペキュラを表示するように制御する制御手段を有するため、第１の物体のリアリティ（現実性）を高められると共に、第１の物体の内部に入った第２の物体を識別可能に表示できる。
【図面の簡単な説明】
【図１】従来の画像処理方法を説明するための図である。
【図２】本発明になるビデオゲーム装置の一実施例を示す正面図である。
【図３】コントローラ１８の平面図である。
【図４】ゲーム機本体１６の内部構成及び周辺機器を示すブロック図である。
【図５】本発明の画像処理方法による表示例を示す図である。
【図６】ビデオゲーム装置のＣＰＵが実行する画像処理の原理を説明するための原理図である。
【図７】ビデオゲーム装置のＣＰＵが実行する画像処理を説明するためのフローチャートである。
【図８】上記図７の制御処理により作成された表示例を示す図である。
【符号の説明】
１０  ビデオゲーム装置
１２  画像表示装置
１６  ゲーム機本体
１８  コントローラ
６１  ＣＰＵ
６２  システムメモリ
６３  プログラムデータＲＯＭ
６５  バスアービタ
６６  レンダリングプロセッサ
８０  キャラクタ
８２  球体
８４  視点
８６  仮想光源
８８  第１の直線
９０  第１のスペキュラ
９２  擬似光源
９４  第２のスペキュラ
【図１】
0004089291.tif 000002
【図２】
0004089291.tif 000003
【図３】
0004089291.tif 000004
【図４】
0004089291.tif 000005
【図５】
0004089291.tif 000006
【図６】
0004089291.tif 000007
【図７】
0004089291.tif 000008
【図８】
0004089291.tif 000009