(57)【特許請求の範囲】
【請求項１】
仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影する画像表示装置であって、
前記曲面スクリーン上に投影すべき位置と画像情報の格納位置とが対応したフレームバッファと、
前記フレームバッファに格納された前記画像情報に対応する画像を前記広角レンズに向けて照射する投影装置と、
前記三次元オブジェクトを構成するポリゴンの輪郭線に対応する前記フレームバッファ上のポリゴンの輪郭線の形状を曲線で近似する輪郭線算出手段と、
前記輪郭線算出手段によって近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を格納する画像情報格納手段と、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を計算する座標計算手段と、
を備え、前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする画像表示装置。
【請求項２】
請求項１において、
前記ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を算出する中間点算出手段をさらに備え、
前記座標計算手段は、前記仮想的な三次元空間内における前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を計算し、
前記輪郭線算出手段は、前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る曲線の形状を決定することを特徴とする画像表示装置。
【請求項３】
請求項２において、
前記曲線の形状を決定するためにＮ個の点を指定する必要がある場合に、前記中間点算出手段は、少なくとも（Ｎ−２）個の前記中間点の座標を算出することを特徴とする画像表示装置。
【請求項４】
請求項２または３において、
前記曲線は円弧であり、前記中間点算出手段は、１個の前記中間点の座標を算出することを特徴とする画像表示装置。
【請求項５】
請求項２〜４のいずれかにおいて、
前記中間点算出手段は、前記広角レンズの位置に対応する投影位置と前記２つの頂点のそれぞれとを結ぶ２つの線分のなす角を、前記投影位置と前記中間点とを結ぶ線分によって２等分するように前記中間点を設定することを特徴とする画像表示装置。
【請求項６】
請求項２〜５のいずれかにおいて、
前記広角レンズは魚眼レンズであることを特徴とする画像表示装置。
【請求項７】
請求項１〜６のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、
前記画像情報格納手段は、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を行うことを特徴とする画像表示装置。
【請求項８】
請求項１〜７のいずれかにおいて、
前記画像情報格納手段は、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする画像表示装置。
【請求項９】
請求項１〜８のいずれかにおいて、
所定の間隔毎に前記仮想的な三次元空間内における前記ポリゴンの頂点の座標を計算するオブジェクト計算手段をさらに備え、
前記フレームバッファに対する前記画像情報の格納処理を前記間隔で繰り返すことを特徴とする画像表示装置。
【請求項１０】
三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第１のステップと、
前記第１のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第２のステップと、
前記第２のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第３のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、広角レンズを通して曲面スクリーン上に投影装置によって投影する第４のステップと、
を有し、前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする画像表示方法。
【請求項１１】
請求項１０において、
前記ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第５のステップと、
前記仮想的な三次元空間内における前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第６のステップと、
を前記第２のステップの前に挿入し、
前記第２のステップにおいて、前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る曲線の形状を決定することを特徴とする画像表示方法。
【請求項１２】
請求項１１において、
前記第２のステップにおける近似処理に用いられる前記曲線は円弧であり、１個の前記中間点の座標を用いてこの近似処理が行われることを特徴とする画像表示方法。
【請求項１３】
請求項１０〜１２のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第７のステップを、前記第４のステップの前に挿入することを特徴とする画像表示方法。
【請求項１４】
請求項１０〜１３のいずれかにおいて、
前記第４のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる前記画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする画像表示方法。
【請求項１５】
三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第１のステップと、
前記第１のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第２のステップと、
前記第２のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第３のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、広角レンズを通して曲面スクリーン上に投影装置によって投影する第４のステップと、
を実行するプログラムを含む情報記憶媒体であって、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする情報記憶媒体。
【請求項１６】
請求項１５において、
前記ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第５のステップと、
前記仮想的な三次元空間内における前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第６のステップと、
を前記第２のステップの前に挿入して実行するプログラムを含んでおり、
前記第２のステップにおいて、前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る前記曲線の形状を決定することを特徴とする情報記憶媒体。
【請求項１７】
請求項１６において、
前記第２のステップにおける近似処理に用いられる前記曲線は円弧であり、１個の前記中間点の座標を用いてこの近似処理が行われることを特徴とする情報記憶媒体。
【請求項１８】
請求項１６または１７において、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第７のステップを、前記第４のステップの前に挿入して実行するプログラムを含むことを特徴とする情報記憶媒体。
【請求項１９】
請求項１５〜１８のいずれかにおいて、
前記第４のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする情報記憶媒体。
【請求項２０】
仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するためにコンピュータに、
前記三次元オブジェクトを構成するポリゴンに含まれる各頂点の前記仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第１のステップと、
前記第１のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第２のステップと、
前記第２のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第３のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、前記広角レンズを通して曲面スクリーン上に投影装置によって投影する第４のステップと、
を実行させるための画像表示プログラムであって、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせる画像表示プログラム。
【請求項２１】
請求項２０において、
前記ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第５のステップと、
前記仮想的な三次元空間内における前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第６のステップと、
を前記第２のステップの前に実行させるとともに、
前記第２のステップにおいて、前記２つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の前記各点を通る曲線の形状を決定させるための画像表示プログラム。
【請求項２２】
請求項２１において、
前記第２のステップにおける近似処理に用いられる前記曲線は円弧であり、１個の前記中間点の座標を用いてこの近似処理を行わせるための画像表示プログラム。
【請求項２３】
請求項２０〜２２のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第７のステップを、前記第４のステップの前に実行させるための画像表示プログラム。
【請求項２４】
請求項２０〜２３のいずれかにおいて、
前記第４のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定させるための画像表示プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広角レンズを通して曲面スクリーンに画像を投影する画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラムに関する。
【０００２】
【従来の技術】
従来から、非平面スクリーン上に画像を投影する画像表示装置が知られている。例えば、特開平９−８１７８５号公報や特開平３−８２４９３号公報には、非平面スクリーンに画像を投影するとともに、投影した画像の歪みを補正する各種の画像表示装置が開示されている。平面スクリーンに投影するために作成した画像を、そのまま非平面スクリーンに投影すると歪んだ画像が表示される。このため、上述した画像表示装置では、表示の際に歪むことを考慮して、歪んだ結果正常な表示内容となるようにあらかじめ反対方向に歪んだ画像を生成することにより、非平面スクリーン上の表示の歪みを補正している。
【０００３】
【発明が解決しようとする課題】
ところで、上述した従来の画像表示装置では、非平面スクリーンに投影することにより凸形状に歪む場合には、あらかじめ凹形状に歪んだ画像を生成しておいて、結果的に非平面スクリーン上の歪みを補正している。ところが、この方法では、三次元空間内に配置された三次元オブジェクトを非平面スクリーンに表示するような場合は、十分に歪みを補正することができなかった。例えば、画像の投影位置と視点位置が異なる場合には、三次元オブジェクトの遠近の程度によって、生成画像に与える歪みの程度が異なるため、生成画像を単純に歪ませただけでは、投影後の画像の歪みを取り除くことはできない。
【０００４】
特に、二次元画像の歪み補正と三次元画像の歪み補正とでは本質的に相違すると考えられるが、上述した公報に開示された画像表示装置では、単に二次元画像の歪み補正の手法について開示しているだけであり、これらの手法を用いただけでは、複数のオブジェクトによって構成した三次元オブジェクトをスクリーン上に投影した場合に生じる各ポリゴン形状の歪みを充分に除去することができないという問題があった。
【０００５】
本発明は、このような点に鑑みて創作されたものであり、その目的は、ポリゴンによって構成した三次元オブジェクトの画像を曲面スクリーンに表示する際に各ポリゴン形状の歪みを少なくすることができる画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラムを提供することにある。
【０００６】
【課題を解決するための手段】
上述した課題を解決するために、本発明の画像表示装置は、仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するために、フレームバッファ、投影装置、輪郭線算出手段、画像情報格納手段、座標計算手段を備えている。フレームバッファは、曲面スクリーン上に投影すべき位置と画像情報の格納位置とが対応している。投影装置は、フレームバッファに格納された画像情報に対応する画像を前記広角レンズに向けて照射する。輪郭線算出手段は、三次元オブジェクトを構成するポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を曲線で近似する。画像情報格納手段は、輪郭線算出手段によって近似された輪郭線で囲まれたフレームバッファの格納位置に、対応する三次元オブジェクトの画像情報を格納する。座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算する。また、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置とに基づいて格納位置を計算する。さらに、視点位置と投影位置を異ならせている。三次元オブジェクトをポリゴンによって構成した場合に、各ポリゴンの輪郭線を直線形状としてフレームバッファ上に描画処理を行った場合には、曲面スクリーン上の画像が歪むため、三次元オブジェクトを構成する各ポリゴンの輪郭線が歪んで非直線形状になってしまう。本発明では、フレームバッファ上のポリゴンの輪郭線を直線形状ではなく曲線形状で近似することにより、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【０００７】
また、本発明の画像表示装置は、中間点算出手段をさらに備えていることが望ましい。中間点算出手段は、ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する仮想的な三次元空間内の中間点の座標を算出する。また、上述した座標計算手段は、仮想的な三次元空間内における２つの頂点および中間点のそれぞれに対応するフレームバッファの格納位置を計算する。そして、上述した輪郭線算出手段は、２つの頂点および中間点のそれぞれに対応するフレームバッファ上の各点を通る曲線の形状を決定する。このようにして、曲線近似を行うことにより、実際に投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、直線上に配置された複数の点を通る形状、すなわち歪みの少ない直線に近づけることができる。
【０００８】
また、上述した曲線の形状を決定するためにＮ個の点を指定する必要がある場合に、中間点算出手段は、少なくとも（Ｎ−２）個の中間点の座標を算出することが望ましい。このようにして、２つの頂点と（Ｎ−２）個の中間点が特定されるため、ポリゴンの輪郭線に対する正確な曲線形状を求めることができる。
【０００９】
特に、上述した曲線は円弧であり、中間点算出手段によって、１個の中間点の座標を算出することが望ましい。曲線近似を円弧を用いて行う場合には、１個の中間点を追加するだけでよいため、曲線近似を行うために必要な演算量および中間点を算出するために必要な演算量を低減することができる。
【００１０】
また、上述した中間点算出手段は、広角レンズの位置に対応する投影位置と２つの頂点のそれぞれとを結ぶ２つの線分のなす角を、投影位置と中間点とを結ぶ線分によって２等分するように中間点を設定することが望ましい。このような中間点を用いることにより、曲線近似に用いられる中間点に対応するフレームバッファ上の中間点の位置が、各頂点に対応するフレームバッファ上の各頂点とほぼ等距離に位置するため、曲線近似の精度を上げることができる。
【００１１】
また、上述した広角レンズは魚眼レンズであることが望ましい。魚眼レンズを用いることにより、ほぼ１８０°の投影角度を実現することができるため、このようにして投影される画像を曲面スクリーンに表示することにより、歪みのない臨場感のある画像を投影することができる。
【００１２】
また、上述したように、座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算している。三次元オブジェクトを視点位置から見た場合に実際に曲面スクリーン上のどの位置に対応するかが計算され、この位置に画像を投影するために必要なフレームバッファの格納位置が計算されるため、理論上歪みのない正確な画像を投影することができる。
【００１３】
また、上述したように、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置とに基づいてフレームバッファの格納位置を計算している。三次元オブジェクトの立体的な形状や表示位置は、三次元オブジェクトの仮想的な三次元空間内の位置情報や視点位置、投影位置との相対的な関係によってその歪みの状態が決まる。このため、これらの位置情報に基づいてフレームバッファの格納位置を計算することにより、ほとんど歪みのない画像を投影することができる。
【００１４】
また、上述したように、視点位置と投影位置を異ならせている。実際に、投影位置から曲面スクリーン上の画像を見ることはできない。したがって、視点位置と投影位置が異なることを前提にして歪み補正を行うことにより、現実に即した条件で歪みのない画像を投影することができる。
【００１５】
また、投影位置が曲面スクリーンの中心位置からずらして設定されている場合に、上述した画像情報格納手段は、投影位置と曲面スクリーン上に投影すべき位置との距離を考慮して、フレームバッファに格納する画像情報について明るさ補正を行うことが望ましい。投影位置が中心位置からずれていると、明るさが均一な画像を投影した場合であっても、投影された画像の明るさに偏りが生じる。したがって、距離を考慮して明るさ補正を行うことにより、明るさの偏りをなくしてほぼ均一な明るさの画像を得ることができる。
【００１６】
また、上述した画像情報格納手段は、ポリゴンに対応するテクスチャデータに含まれる画像情報を特定してフレームバッファに格納するテクスチャマッピング処理を行っており、フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する仮想的な三次元空間におけるポリゴン内の座標を求め、この座標に対応するテクスチャ座標を決定することが望ましい。フレームバッファ上でのポリゴンの輪郭線が曲線形状になると、ポリゴン内部の任意の位置とテクスチャ座標との対応がとれなくなるが、仮想的な三次元空間において多角形形状を有するポリゴン内の対応位置を算出することにより、この対応を取ることが容易になり、必要な画像情報を読み出すことが可能になる。
【００１７】
また、所定の間隔毎に仮想的な三次元空間内におけるポリゴンの頂点の座標を計算するオブジェクト計算手段をさらに備えるとともに、フレームバッファに対する画像情報の格納処理をこの所定の間隔で繰り返すことが望ましい。仮想的な三次元空間内を三次元オブジェクトが動いたり、透視投影変換の基準となる視点が移動した場合に、所定の間隔で三次元オブジェクトの座標が計算され、その都度歪みのない画像が生成されるため、三次元オブジェクトを用いたゲームやプレゼンテーション等において歪みのない動画像を曲面スクリーンに投影することができる。
【００１８】
また、本発明の画像表示方法は、三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第１のステップと、この取得した位置情報に基づいてポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第２のステップと、この近似された輪郭線で囲まれたフレームバッファの格納位置に画像情報を画像情報格納手段によって格納する第３のステップと、フレームバッファに格納された画像情報を読み出して広角レンズを通して曲面スクリーン上に投影装置によって投影する第４のステップとを有している。また、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を座標計算手段によって計算するとともに、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置とに基づいて格納位置を計算し、視点位置と投影位置を異ならせている。
【００１９】
また、本発明の情報記憶媒体は、これら第１のステップ〜第４のステップを実行するプログラムを含んでいる。
また、本発明の画像表示プログラムは、仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するためにコンピュータに、これら第１のステップ〜第４のステップを実行させるためのものである。
【００２０】
本発明の画像表示方法を実施することにより、あるいは本発明の情報記憶媒体に格納されたプログラムや、本発明の画像表示プログラムを実行することにより、フレームバッファ上のポリゴンの輪郭線が直線形状ではなく曲線形状で近似されるので、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【００２１】
また、ポリゴンに含まれていて隣接する２つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第５のステップと、仮想的な三次元空間内における２つの頂点および中間点のそれぞれに対応するフレームバッファの格納位置を座標計算手段によって計算する第６のステップとを上述した第２のステップの前に挿入するとともに、第２のステップにおいて、２つの頂点および中間点のそれぞれに対応するフレームバッファ上の各点を通る曲線の形状を決定することが望ましい。このようにして、曲線近似を行うことにより、実際に投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、直線上に配置された複数の点を通る形状、すなわち歪みの少ない直線に近づけることができる。
【００２２】
また、上述した第２のステップにおける近似処理に用いられる曲線は円弧であり、１個の中間点の座標を用いてこの近似処理が行われることが望ましい。曲線近似を円弧を用いて行う場合には、１個の中間点を追加するだけでよいため、曲線近似を行うために必要な演算量および中間点を算出するために必要な演算量を低減することができる。
【００２３】
また、上述したように、座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算している。三次元オブジェクトを視点位置から見た場合に実際に曲面スクリーン上のどの位置に対応するかが計算され、この位置に画像を投影するために必要なフレームバッファの格納位置が計算されるため、理論上歪みのない正確な画像を投影することができる。
【００２４】
また、上述したように、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置あるいは広角レンズの位置に対応する投影位置の少なくとも一方に基づいてフレームバッファの格納位置を計算している。三次元オブジェクトの立体的な形状や表示位置は、三次元オブジェクトの仮想的な三次元空間内の位置情報や視点位置、投影位置との相対的な関係によってその歪みの状態が決まる。このため、これらの位置情報に基づいてフレームバッファの格納位置を計算することにより、ほとんど歪みのない画像を投影することができる。
【００２５】
また、投影位置が曲面スクリーンの中心位置からずらして設定されている場合に、投影位置と曲面スクリーン上に投影すべき位置との距離を考慮して、フレームバッファに格納する画像情報について明るさ補正を画像情報格納手段によって行う第７のステップを、第４のステップの前に挿入することが望ましい。距離を考慮して明るさ補正を行うことにより、明るさの偏りをなくしてほぼ均一な明るさの画像を得ることができる。
【００２６】
また、上述した第４のステップにおいて、ポリゴンに対応するテクスチャデータに含まれる画像情報を特定してフレームバッファに格納するテクスチャマッピング処理を行っており、フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する仮想的な三次元空間におけるポリゴン内の座標を求め、この座標に対応するテクスチャ座標を決定することが望ましい。フレームバッファ上でのポリゴンの輪郭線が曲線形状になると、ポリゴン内部の任意の位置とテクスチャ座標との対応がとれなくなるが、仮想的な三次元空間において多角形形状を有するポリゴン内の対応位置を算出することにより、この対応を取ることが容易になり、必要な画像情報を読み出すことが可能になる。
【００２７】
【発明の実施の形態】
以下、本発明を適用した一実施形態のゲームシステムについて、図面を参照しながら説明する。
図１は、本実施形態のゲームシステムの構成を示す図である。同図に示すゲームシステムは、ゲーム装置１、プロジェクタ２、レンズ３、球面スクリーン４を含んで構成されている。
【００２８】
ゲーム装置１は、プレーヤによる操作に対応して各種のゲーム演算を行うとともに、ゲーム進行に応じたゲーム画像を表示するための画像情報を生成する。プロジェクタ２は、ゲーム装置１によって生成された画像情報に基づいて、球面スクリーン４にゲーム画像を照射する。レンズ３は、プロジェクタ２から照射されたゲーム画像を球面スクリーン４に投影する。本実施形態では、このレンズ３として広角レンズ、さらに具体的には投影角がほぼ１８０°の魚眼レンズが用いられている。球面スクリーン４は、曲面スクリーンの一種であり、半球状の投影面を有しており、プロジェクタ２から照射されてレンズ３を通したゲーム画像が内側に投影される。
【００２９】
次に、ゲーム装置１の詳細構成について説明する。図１に示すゲーム装置１は、入力装置１０、ゲーム演算部２０、情報記憶媒体３０、画像処理部４０、円形フレームバッファ５０を含んで構成されている。
入力装置１０は、プレーヤがゲーム装置１に対して各種の指示を入力するためのものであり、ゲーム装置１において行われるゲームの種類に応じた各種操作キー、操作レバー等を含んで構成されている。例えば、ドライブゲームを行うために設けられた入力装置１０には、ハンドル、アクセル、ブレーキ、変速レバー等が備わっている。
【００３０】
ゲーム演算部２０は、ゲームの進行に必要な所定のゲーム演算を行うものである。このゲーム演算部２０は、入力判定部２２、イベント処理部２４、ゲーム空間演算部２６を含んで構成されている。このゲーム演算部２０は、ＣＰＵやＲＯＭ、ＲＡＭ等の半導体メモリを用いて所定のゲームプログラムを実行することにより実現される。
【００３１】
入力判定部２２は、入力装置１０に備わったハンドル、アクセル、ブレーキ等の操作状態を判定し、操作状態に応じた信号をイベント処理部２４に出力する。イベント処理部２４は、各種イベントの発生や、ゲームの進行状況に対応した分岐判断等、ゲーム進行に必要な処理を行う。ゲーム空間演算部２６は、仮想的な三次元空間であるゲーム空間内に存在する各種の三次元オブジェクトの位置情報の計算を行う。本実施形態における三次元オブジェクトのそれぞれは複数のポリゴンによって構成されており、ゲーム空間演算部２６は、三次元オブジェクトを構成する各ポリゴンの頂点座標を計算する。
【００３２】
情報記憶媒体３０は、コンピュータとしての機能を有するゲーム装置１を動作させるためのプログラムやデータを格納するためのものである。具体的には、情報記憶媒体３０は、ゲーム演算部２０によって実行されるゲームプログラムやゲーム画像の表示に必要なデータ（テクスチャマッピング用のテクスチャデータ等）や画像表示プログラムを格納する。この情報記憶媒体３０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク装置、半導体メモリ等によって実現される。
【００３３】
画像処理部４０は、ゲーム演算部２０内のゲーム空間演算部２６によって計算された各ポリゴンの頂点座標が入力されており、球面スクリーン４上に画像を表示するために、円形フレームバッファ５０に画像情報を格納する処理を行う。この画像処理部４０は、中間点算出部４１、座標変換処理部４２、輪郭線算出部４３、テクスチャマッピング処理部４４、シェーディング処理部４５を含んで構成されている。なお、通常は、この画像処理部４０は、専用のグラフィック用ＬＳＩやＤＳＰ等を用いて実現されるが、ゲーム演算部２０を実現するＣＰＵの性能が高い場合であって処理能力に余裕がある場合には、このＣＰＵに画像処理部４０の処理を行わせてもよい。
【００３４】
中間点算出部４１は、ゲーム空間演算部２６によって計算された各ポリゴンの頂点座標が入力されており、隣接する２つの頂点を結ぶ直線上の中間点の座標を算出する。
座標変換処理部４２は、三次元オブジェクトを視点位置から見た場合に実際に球面スクリーン４上のどの位置に三次元オブジェクトが対応するかを計算し、この球面スクリーン４上に画像を投影するために必要な円形フレームバッファ５０上の格納位置を計算する。具体的には、座標変換処理部４２は、ゲーム空間演算部２６によって計算されたポリゴンの頂点座標と、中間点算出部４１によって計算された中間点の座標とが入力されている。座標変換処理部４２は、これらの頂点および中間点のそれぞれに対応する球面スクリーン４上の座標を計算し、さらにこの計算結果を用いて円形フレームバッファ５０の格納位置を計算する。
【００３５】
輪郭線算出部４３は、座標変換処理部４２の計算結果に基づいて、各ポリゴンの輪郭線（多角形形状を有するポリゴンの各辺）に対応する円形フレームバッファ５０上のポリゴンの輪郭線の形状を算出する。一般に、ゲーム空間内に存在する各ポリゴンは、各辺が直線となる多角形形状（例えば三角形形状）を有している。しかし、曲面スクリーン４上に投影されると各辺の形状が歪むため、円形フレームバッファ５０上における各辺の形状は、直線ではなく曲線となる。したがって、一般的な三次元画像処理において行われるように、ポリゴンの各頂点についてフレームバッファ上の格納位置を計算した後に、単純にテクスチャマッピング処理を実施するだけでは、ポリゴンの各辺の形状が実際の形状からずれることになる。このような理由から、本実施形態では、円形フレームバッファ５０上における各ポリゴンの輪郭線の形状を曲線で近似することにより、所定の視点位置から球面スクリーン４上に表示された各ポリゴンの各辺の形状を見た場合にほぼ直線になるような工夫がなされている。具体的には、輪郭線算出部４３は、各ポリゴンにおいて隣接する２つの頂点の座標と、ゲーム空間内においてこれら２つの頂点を両端とする直線上に存在する中間点とに基づいて、これら３点を通る円弧形状を算出する。以下では、ゲーム空間内における各ポリゴン形状を三角形として説明を行う。
【００３６】
テクスチャマッピング処理部４４は、円形フレームバッファ５０上での各ポリゴンの輪郭線形状が輪郭線算出部４３によって計算された後に、これらの輪郭線によって区画されるポリゴン内部にテクスチャデータを貼り付ける処理（テクスチャマッピング処理）を行う。また、シェーディング処理部４５は、テクスチャマッピング処理の結果に対してシェーディング補正処理を行う。このようにして各ポリゴンを構成する複数個（例えば３個）の頂点座標によって囲まれた領域（円形フレームバッファ５０上の対応領域）に含まれる各画素の画像情報が得られる。例えば、画像情報として、ＲＧＢデータによって表された色情報が用いられている。
【００３７】
円形フレームバッファ５０は、画像処理部４０によって得られた画像情報を格納する。円形フレームバッファ５０の各格納位置は、球面スクリーン４上に投影すべきそれぞれの位置に対応しており、円形フレームバッファ５０の所定位置に画像情報を格納することにより、この画像情報によって特定される色の画像が球面スクリーン４上の対応位置に投影される。
【００３８】
上述したプロジェクタ２が投影装置に、中間点算出部４１が中間点算出手段に、座標変換処理部４２が座標計算手段に、輪郭線算出部４３が輪郭線算出手段に、テクスチャマッピング処理部４４、シェーディング処理部４５が画像情報格納手段に、ゲーム空間演算部２６がオブジェクト計算手段にそれぞれ対応している。
【００３９】
本実施形態のゲームシステムはこのような構成を有しており、次にその動作について説明する。
図２は、本実施形態のゲームシステムの動作手順の概要を示す流れ図であり、ゲーム全体の流れが示されている。なお、図２に示す一連の処理は、所定の表示間隔に対応した周期（例えば、１／６０秒）で繰り返して行われる。
【００４０】
入力装置１０が操作されてプレーヤによってゲームの開始指示がなされると、ゲーム演算部２０は、情報記憶媒体３０から読み出したゲームプログラムに基づいて所定のゲーム演算を開始する。具体的には、ゲーム演算部２０内の入力判定部２２は、入力装置１０から出力される信号に基づいて、プレーヤによって行われた操作の内容に応じた信号を出力する所定の入力判定処理を行う（ステップ１００）。
【００４１】
次に、イベント処理部２４は、入力判定部２２から出力される信号に対応して、ゲーム進行に必要な各種のイベントを発生する処理（イベント発生処理）を行う（ステップ１０１）。また、ゲーム空間演算部２６は、イベント処理部２４によって行われるイベント発生処理に対応して、ゲーム空間内に存在する各種の三次元オブジェクトの座標計算を行う（ステップ１０２）。この座標計算によって、三次元オブジェクトを構成する複数のポリゴンの各頂点座標が計算される。
【００４２】
このようにしてゲーム空間演算部２６によって各三次元オブジェクトの座標計算が行われて三次元オブジェクトの位置情報が取得されると、画像処理部４０内の中間点算出部４１は、各ポリゴン内で隣接する２つの頂点に対応する中間点の座標を計算する（ステップ１０３）。また、座標変換処理部４２は、ポリゴンの頂点座標と中間点の座標を、円形フレームバッファ５０上の座標に変換する所定の座標変換処理を行う（ステップ１０４）。また、輪郭線算出部４３は、座標変換処理部４２の計算結果に基づいて、円形フレームバッファ５０上における各ポリゴンの輪郭線形状を計算する（ステップ１０５）。
【００４３】
次に、テクスチャマッピング処理部４４およびシェーディング処理部４５は、円形フレームバッファ５０に格納する画像情報（色情報）を求め、この画像情報を円形フレームバッファ５０の対応位置に書き込む（ステップ１０６）。具体的には、テクスチャマッピング処理部４４により所定のテクスチャマッピング処理が行われ、その後、シェーディング処理部４５により所定のシェーディング処理が行われることにより、各ポリゴンに対応する円形フレームバッファ５０上の領域に画像情報が書き込まれる。
【００４４】
円形フレームバッファ５０に対して書き込まれた画像情報が所定の走査順に読み出されてプロジェクタ２に送出される。プロジェクタ２は、この画像情報に基づいて画像を形成し、レンズ３を通して球面スクリーン４に投影する（ステップ１０７）。
【００４５】
このようにして所定の繰り返し周期で新しい内容のゲーム画像が生成されて球面スクリーン４上に投影される。なお、上述した動作説明では、表示間隔に対応した周期で図２に示した一連の処理を行って描画処理を行うようにしたが、必ずしも表示間隔と描画処理の繰り返し間隔は一致させなくてもよい。また、それ以外にも、描画処理が表示タイミングに間に合えば毎回の表示タイミングに同期して描画処理を行い、間に合わなければ同じ内容の画面表示を行うようにした場合には、表示タイミングと描画タイミングが一致しないこともある。
【００４６】
次に、上述したステップ１０３における中間点算出処理、ステップ１０４における座標変換処理、ステップ１０５における輪郭線算出処理、ステップ１０６におけるテクスチャマッピング処理の詳細について説明する。
（１）中間点算出処理
図３および図４は、中間点算出部４１において行われる中間点算出処理の概要を示す図である。これらの図において、点Ｐ0、Ｐ1は、ゲーム空間内に配置された一のポリゴンに含まれる２つの頂点を示している。
【００４７】
最も簡単な計算を行う場合には、図３に示すように、中間点算出部４１は、２つの頂点Ｐ0、Ｐ1のゲーム空間内での中間点Ｐ′の座標を計算する。この場合の中間点Ｐ′の座標は、単純に２つの頂点Ｐ0、Ｐ1の各座標値の相加平均を求めることにより得られる。
【００４８】
また、上述した中間点Ｐ′に対応する円形フレームバッファ５０上の位置は、各頂点Ｐ0、Ｐ1に対応する円形フレームバッファ５０上の各頂点と等距離にはならない。したがって、図４に示すように、投影位置Ｐr（例えば球心に一致するものとする）と２つの頂点Ｐ0、Ｐ1とのなす投影角を二等分する中間点Ｐ″の座標を計算することが望ましい。このような中間点Ｐ″を用いることにより、２つの頂点Ｐ0、Ｐ1に対応する円形フレームバッファ５０上の各頂点のそれぞれから、この中間点Ｐ″に対応する円形フレームバッファ５０上の中間点までの距離をほぼ等しく設定することができるため、ステップ１０５において補間処理によって輪郭線を求める際の誤差を少なくすることができる。
【００４９】
具体的には、頂点Ｐ0、Ｐ1から中間点Ｐ″までの距離をそれぞれＬ１、Ｌ２とし、球心から頂点Ｐ0、Ｐ1までの距離をそれぞれＬ３、Ｌ４とすると、三角形の２等分線の性質から、Ｌ１：Ｌ２＝Ｌ３：Ｌ４の関係を満たす。球心および２つの頂点Ｐ0、Ｐ1の座標は既知であるため、中間点Ｐ″の座標は簡単な計算を行うことにより求めることができる。
【００５０】
（２）座標変換処理
図５は、円形フレームバッファ５０の描画範囲を示す図である。本実施形態のプロジェクタ２は、画像の投影範囲が横長（例えば縦横比が３：４）の長方形を有しており、その中の一部の領域が球面スクリーン４に投影する画像に対応した描画領域として使用される。なお、この図は後述する図６の投影面Ｓをｚ軸の正の方向（図６では上側）から原点に向かって見た場合に対応している。
図５において、矩形領域２００がプロジェクタ２の投影範囲に対応している。また、円形領域２１０がレンズ３を通して球面スクリーン４に実際に投影される範囲に対応している。したがって、本実施形態では、円形フレームバッファ５０の座標の中で円形領域２１０の内部に含まれる範囲についてのみ画像情報の書き込みが行われる。
【００５１】
図５に示すように、水平方向にＸ軸、垂直方向にＹ軸をとる。円形領域２１０の中心（円心）を原点Ｏ、円形領域２１０の半径をＲとする。円形フレームバッファ５０内の任意の点Ｆ（Ｘ，Ｙ）に格納された画像情報は、球面スクリーン４上における点Ｐdに投影される。
【００５２】
（２−１）視点位置、投影位置をともに球面スクリーン４の球心位置に設定する場合
図６は、座標変換処理の概要を示す図である。同図に示すように、球面スクリーン４に対応する半球状の投影面をＳとし、この投影面Ｓの球心を原点ｏに設定する。また、この原点ｏから投影面Ｓの面心に向かってｚ軸を定義し、このｚ軸に垂直にｘ軸とｙ軸を定義する。さらに、この例では、プレーヤの視点位置Ｐeと投影位置（レンズ３の位置）Ｐrが原点ｏに一致しているものとする。
【００５３】
三次元空間であるゲーム空間内の任意の点Ｐp（ｘp，ｙp，ｚp）を円形フレームバッファ５０上の点Ｆ（Ｘ，Ｙ）へ写像することを考える。図６において、ゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）を原点ｏから見たときに、この点Ｐp と原点ｏとを結ぶ直線と投影面Ｓとの交点をＰd（ｘd，ｙd，ｚd）とする。投影面Ｓに対応する半球の半径をｒとすると、ｘd、ｙd、ｚdは、それぞれ以下の式により表される。
【００５４】
【数１】
0004726347.tif 000002
【００５５】
また、図６において、原点ｏと点Ｐdを結ぶ直線とｚ軸とのなす角度をθとすると、この角度θは、次式により表される。
【００５６】
【数２】
0004726347.tif 000003
【００５７】
本実施形態で使用したレンズ３は、図５に示す点Ｆ（Ｘ，Ｙ）を投影面Ｓに投影する場合に、原点Ｏから点Ｆまでの距離Ｌが、図６に示す角度θに比例する特性を有している。したがって、θ＝０の時にＬ＝０、θ＝π／２の時にＬ＝Ｒになり、その間の任意の角度θに対応する距離Ｌは次式で表すことができる。
【００５８】
Ｌ＝θ／(π／２)×Ｒ
また、図５において、円形フレームバッファ５０上の原点Ｏと点Ｆ（Ｘ，Ｙ）とを結ぶ直線とＸ軸とのなす角度をΦとする。図６において、点Ｐd（ｘd，ｙd，ｚd） のｘｙ平面への写像点Ｐd′（ｘd，ｙd，０） と原点ｏを結ぶ直線とｘ軸とのなす角度をφとする。この角度Φと角度φは等しい。ここで、cosφ、sinφは、以下の式で表すことができる。
【００５９】
【数３】
0004726347.tif 000004
【００６０】
点Ｆ（Ｘ，Ｙ）は、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の各軸の座標値を用いて次式のように表すことができる。
【００６１】
【数４】
0004726347.tif 000005
【００６２】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Ｐp（ｘp，ｙp，ｚp）がわかっているときに、対応する円形フレームバッファ５０の格納位置を計算するために、座標変換処理部４２は、まず、頂点Ｐp（ｘp，ｙp，ｚp）の座標値を上述した（１）〜（３）式に代入することにより、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標を計算する。その後、座標変換処理部４２は、この計算によって得られた点Ｐd（ｘd，ｙd，ｚd）の座標値を上述した（４）式および（５）式に代入して、円形フレームバッファ５０上の点Ｆ（Ｘ，Ｙ）を計算する。また、図３および図４に示した中間点Ｐ′あるいはＰ″についても同様の手順により、円形フレームバッファ５０の格納位置が計算される。
【００６３】
このようにして三次元オブジェクトの各ポリゴンの頂点と中間点のそれぞれに対応する円形フレームバッファ５０の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン４上に投影するために必要な円形フレームバッファ５０の格納位置を得ることができる。
【００６４】
図７は、円形フレームバッファ５０に格納されたポリゴンの頂点と中間点との対応関係を示す図である。例えば、三角形形状のポリゴンが用いられているものとし、３つの頂点のそれぞれに対応する円形フレームバッファ５０上の頂点をＦa、Ｆb、Ｆcとする。また、隣接する２つの頂点に挟まれた３つの中間点のそれぞれに対応する円形フレームバッファ５０上の中間点をＦ1、Ｆ2、Ｆ3とする。図７に示すように、隣接する２つの頂点とこれらに挟まれた中間点に着目した場合に、これら３点は一直線上には配置されない。
【００６５】
（２−２）投影位置のみを球面スクリーン４の球心からずらした場合
ところで、上述した説明では、視点位置Ｐeと投影位置Ｐrを球面スクリーン４の球心に一致させた場合を考えたが、実際には、このような位置関係を実現することは難しい。実用的な幾何学的配置を考えた場合に、球面スクリーン４を用いることによる臨場感の高いゲーム画像をプレーヤに見せようとすると、プレーヤの視点位置を球面スクリーン４の球心近傍に設定することが望ましい。したがって、この場合には投影位置Ｐrを球面スクリーン４の球心からずらして設定する必要がある。
【００６６】
図８は、投影位置を球面スクリーン４の球心位置からずらした場合の座標変換処理の概要を示す図である。同図に示す座標軸は、上述した図６に示したものと同じである。投影位置Ｐr（ｘr，ｙr，ｚr）は、球面スクリーン４の球心以外の所定位置（例えば、プレーヤの頭上等）に設定されている。また、円形フレームバッファ５０については、その原点が投影位置Ｐrに対応付けられるため、上述した（２−１）の場合における座標軸の表示（図５参照）と区別するために、原点をＯ′とし、水平方向に沿った軸をＸ′軸、垂直方向に沿った軸をＹ′軸と表すことにする。
【００６７】
上述した（２−１）で説明したように、球面スクリーン４の球心に対応する原点ｏの位置に視点位置Ｐeを一致させた場合には、ゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）は、投影面Ｓ上における点Ｐd（ｘd，ｙd，ｚd）として見えることになる。すなわち、任意の投影位置Ｐrから球面スクリーン４上の点Ｐd（ｘd，ｙd，ｚd）に投影してやれば、その点は、視点位置Ｐeからはゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）として認識されることになる。
【００６８】
したがって、任意の投影位置Ｐrに対応して、上述した（２−１）に示した手順と同様な座標変換処理を点Ｐdに対して行えば、投影位置Ｐrから点Ｐdに投影する場合に必要な円形フレームバッファ５０上の点Ｆ′（Ｘ′，Ｙ′）を求めることができる。ただし、投影位置Ｐrを原点ｏからずらした場合のｘ′軸、ｙ′軸、ｚ′軸は、元のｘ軸、ｙ軸、ｚ軸を平行移動したものであり、軸回りの回転はないものとする。また、ｘr2＋ｙr2＋ｚr2＜ｒ2 を満たす範囲（原点ｏから半径ｒ以下）で投影位置Ｐrが設定されているものとする。
【００６９】
図８において、投影位置Ｐrと点Ｐdを結ぶ直線とｚ′軸とのなす角度をθ′とすると、角度θ′は、次式により表される。
【００７０】
【数５】
0004726347.tif 000006
【００７１】
また、円形フレームバッファ５０上の原点Ｏ′と点Ｆ′（Ｘ′，Ｙ′）を結ぶ直線とＸ′軸とのなす角度をΦ′とし、図８において、点Ｐd（ｘd，ｙd，ｚd）のｘ′ｙ′平面への写像点Ｐd″（ｘd−ｘr，ｙd−ｙr，０） と点Ｐrを結ぶ直線とｘ′軸とのなす角度をφ′とすると、これらの角度Φ′およびφ′は等しくなる。ここで、cosφ′、sinφ′は、以下の式で表すことができる。
【００７２】
【数６】
0004726347.tif 000007
【００７３】
また、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標値は、上述した（１）〜（３）式に基づいて求められる。
点Ｆ′（Ｘ′，Ｙ′）は、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）および投影位置Ｐr（ｘr，ｙr，ｚr）の各座標値を用いて次式のように表すことができる。
【００７４】
【数７】
0004726347.tif 000008
【００７５】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Ｐp（ｘp，ｙp，ｚp）がわかっているときに、対応する円形フレームバッファ５０上の格納位置を計算するために、座標変換処理部４２は、まず、頂点Ｐp（ｘp，ｙp，ｚp）の座標値を上述した（１）〜（３）式に代入することにより、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標を計算する。その後、座標変換処理部４２は、この計算によって得られた点Ｐd（ｘd，ｙd，ｚd）の座標値を上述した（７）式および（８）式に代入して、円形フレームバッファ５０上の点Ｆ′（Ｘ′，Ｙ′）の座標を計算する。また、図３および図４に示した中間点Ｐ′あるいはＰ″についても同様の手順により、円形フレームバッファ５０の格納位置が計算される。
【００７６】
このようにして三次元オブジェクトの各ポリゴンの頂点や中間点のそれぞれに対応する円形フレームバッファ５０上の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、投影位置を任意の位置へ移動した場合においても、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン４上に投影するために必要な円形フレームバッファ５０の格納位置を得ることができる。
【００７７】
なお、上述した図８では、説明の都合上、投影位置Ｐrはｚr≧０の領域に描かれていたが、実際には、レンズ３の投影角が１８０度であるため、球面スクリーン４の全体にゲーム画像を表示するために、投影位置Ｐrは、ｚr≦０の範囲で設定することが望ましい。
【００７８】
また、本実施形態のレンズ３として用いている魚眼レンズは、一般的には、焦点深度が深いため、フォーカスが合っている範囲が広いという特徴がある。このため、投影位置をずらした場合においても、球面スクリーン４に表示されるゲーム画像は、全体がほぼフォーカスが合っている状態になる。
【００７９】
（２−３）視点位置、投影位置の両方を球面スクリーン４の球心からずらした場合
ところで、上述した（２−２）における説明では、投影位置Ｐrが球面スクリーン４の球心位置からずれた位置に設定される場合について説明していたが、実際には、プレーヤの視点位置Ｐeも、球面スクリーン４の球心位置からずらしたい場合がある。以下では、視点位置および投影位置の両方を球面スクリーン４の球心位置からずらして設定した場合について説明する。
【００８０】
図９は、視点位置および投影位置を球面スクリーン４の球心位置からずらした場合の座標変換処理の概要を示す図である。同図に示す座標軸は、上述した図６等に示したものと同じである。視点位置Ｐe、投影位置Ｐrの両者が球面スクリーン４の球心以外の所定位置に設定されている。また、円形フレームバッファ５０については、その原点が投影位置Ｐrに対応付けられるため、上述した（２−１）の場合における座標軸の表示（図５参照）と区別するために、上述した（２−２）の場合と同様に、原点をＯ′とし、水平方向に沿った軸をＸ′軸、垂直方向に沿った軸をＹ′軸と表すことにする。
【００８１】
図９において、ゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）と視点位置Ｐe（ｘe，ｙe，ｚe）を結ぶ直線は、以下の式で表される。
【００８２】
【数８】
0004726347.tif 000009
【００８３】
また、投影面Ｓに対応する半球は、以下に示す球の方程式で表される（ただし、ｚ≧０）。
ｘ2 ＋ｙ2 ＋ｚ2 ＝ｒ2                                       …（10）
視点位置Ｐeからゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）を見たときに、この点Ｐp に対応する投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標は、上述した（９）式に示す直線と（10）式に示す半球との交点の座標を計算することにより求めることができる。
【００８４】
具体的には、（９）式を変形することにより、以下の各式が導かれる。
【００８５】
【数９】
0004726347.tif 000010
【００８６】
（11）式および（12）式を（10）式に代入すると、次式が得られる。
((ｘp−ｘe)2＋(ｙp−ｙe)2＋(ｚp−ｚe)2)×ｘ2
−２×((ｙp−ｙe)×(ｘe×ｙp−ｙe×ｘp)＋(ｚp−ｚe)
×(ｘe×ｚp−ｚe×ｘp))×ｘ
＋((ｘe×ｙp−ｙe×ｘp)2＋(ｘe×ｚp−ｚe×ｘp)2
−ｒ2×(ｘp−ｘe)2) ＝０                            …（13）
ここで、
ａ＝(ｘp−ｘe)2＋(ｙp−ｙe)2＋(ｚp−ｚe)2
ｂ＝(ｙp−ｙe)×(ｘe×ｙp−ｙe×ｘp)＋(ｚp−ｚe)×(ｘe×ｚp−ｚe×ｘp)
ｃ＝(ｘe×ｙp−ｙe×ｘp)2＋(ｘe×ｚp−ｚe×ｘp)2−ｒ2×(ｘp−ｘe)2
とおくと、上述した（13）式の解は、次式のように表される。
【００８７】
【数１０】
0004726347.tif 000011
【００８８】
したがって、ゲーム空間内の点Ｐp（ｘp，ｙp，ｚp）と視点位置Ｐe（ｘe，ｙe，ｚe）の各座標値を用いて（14）式を計算することにより、投影面Ｓ上の点Ｐdのｘ座標値（ｘd）が求められる。また、（14）式を上述した（11）式および（12）式に代入することにより、点Ｐdのｙ座標値（ｙd）、ｚ座標値（ｚd）が求められる。
【００８９】
実際に（14）式を用いてｘ座標値を計算すると、２つの解ｘ1、ｘ2が得られる。これらの２つの解のうち、一方の解ｘ1を（11）式および（12）式にそれぞれ代入することにより、対応するｙ座標値（ｙ1）およびｚ座標値（ｚ1）が得られる。この結果、点Ｐdの座標値は（ｘ1，ｙ1，ｚ1）となる。また、他方の解ｘ2を（11）式および（12）式にそれぞれ代入することにより、対応するｙ座標値（ｙ2）およびｚ座標値（ｚ2）が得られる。この結果、点Ｐdの座標値は（ｘ2，ｙ2，ｚ2）となる。これら２つの座標値のうちで、必要な解としては、点Ｐeから各座標値（ｘ1，ｙ1，ｚ1）および（ｘ2，ｙ2，ｚ2）の点へ向かう２本のベクトルのうちで、視点位置Ｐeから点Ｐp へ向かうベクトルと同じ向きを有するベクトルに対応する座標値が選択される。
【００９０】
このようにして、点Ｐd（ｘd，ｙd，ｚd）の座標値を求めることができる。その後、この座標値を上述した（７）式および（８）式に代入することにより、投影位置Ｐrから投影面Ｓ上の点Ｐdに画像を投影する際に必要な円形フレームバッファ５０上の点Ｆ′（Ｘ′，Ｙ′）の座標を求めることができる。
【００９１】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Ｐp（ｘp，ｙp，ｚp）がわかっているときに、対応する円形フレームバッファ５０上の格納位置を計算するために、座標変換処理部４２は、まず、頂点Ｐp（ｘp，ｙp，ｚp）の座標値と視点位置Ｐe（ｘe，ｙe，ｚe）の座標値を用いて上述した（14）式等を計算することにより、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標を計算する。その後、座標変換処理部４２は、この計算によって得られた点Ｐd（ｘd，ｙd，ｚd）の座標値を上述した（７）式および（８）式に代入して、円形フレームバッファ５０上の点Ｆ′（Ｘ′，Ｙ′）の座標を計算する。また、図３および図４に示した中間点Ｐ′あるいはＰ″についても同様の手順により、円形フレームバッファ５０の格納位置が計算される。
【００９２】
このようにして三次元オブジェクトの各ポリゴンの頂点や中間点のそれぞれに対応する円形フレームバッファ５０上の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、視点位置や投影位置を任意の位置へ移動した場合においても、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン４上に投影するために必要な円形フレームバッファ５０の格納位置を得ることができる。
【００９３】
なお、上述した図９においても、説明の都合上、投影位置Ｐrはｚr≧０の領域に描かれていたが、上述した（２−２）の場合と同様の理由により、実際の投影位置Ｐrは、ｚr≦０の範囲で設定することが望ましい。
（３）輪郭線算出処理
図１０は、輪郭線算出部４３によってポリゴンの輪郭線算出処理の概要を示す図である。図１０において、ポリゴンに含まれる２つの頂点の円形フレームバッファ５０上の写像をＦa（Ｘa，Ｙa）、Ｆb（Ｘb，Ｙb）とし、これらに挟まれた中間点をＦ1（Ｘ1，Ｙ1）とする。また、これら３点Ｆa、Ｆ1、Ｆbを通る円の中心をＥ（Ｘ0，Ｙ0）、この円の半径をＲ１とする。
【００９４】
円の中心をＥ（Ｘ0，Ｙ0）とする円の方程式は、
（Ｘ−Ｘ0）2 ＋（Ｙ−Ｙ0）2 ＝Ｒ１2                       …（15）
となる。この円の方程式に、３点Ｆa、Ｆ1、Ｆbの座標値を代入することにより、以下の連立方程式が得られる。
【００９５】
（Ｘa−Ｘ0）2 ＋（Ｙa−Ｙ0）2 ＝Ｒ12
（Ｘb−Ｘ0）2 ＋（Ｙb−Ｙ0）2 ＝Ｒ12
（Ｘ1−Ｘ0）2 ＋（Ｙ1−Ｙ0）2 ＝Ｒ12
この連立方程式を解くことにより、
Ｙ0＝（ｉ×ｊ−ｇ×ｈ）／（２×（Ｙa×ｇ−Ｙ1×ｇ−Ｙ1×ｉ＋Ｙb×ｉ））
Ｘ0＝（ｈ＋２×Ｙa×Ｙ0−２×Ｙ1×Ｙ0）／ｉ
Ｒ1＝√（（Ｘa−Ｘ0）2 ＋（Ｙa−Ｙ0）2 ）
が得られる。ここで、
ｇ＝−２×Ｘ1＋２×Ｘb
ｈ＝−Ｘa2 ＋Ｘ12 −Ｙa2 ＋Ｙ12
ｉ＝−２×Ｘa＋２×Ｘ1
ｊ＝−Ｘ12 ＋Ｘb2 −Ｙ12 ＋Ｙb2
とする。
【００９６】
このようにして、輪郭線算出部４３は、円の方程式を決定することにより、３点Ｆa、Ｆ1、Ｆbを通る輪郭線の形状（円弧形状）を決定する。
（４）テクスチャマッピング処理
図１１は、テクスチャマッピング処理の概要を示す図である。図１１に示すように、本実施形態では、ポリゴンの３つの頂点のそれぞれに対応した頂点Ｆa、Ｆb、Ｆcのそれぞれをつなぐ各輪郭線は、円弧によって近似されており、これらの内部が、１つのポリゴンに対応して画像情報を書き込む描画領域となる。
【００９７】
テクスチャマッピング処理部４４は、この描画領域の上端（Ｙmax）から下端（Ｙmin）まで順番にＸ方向のスキャンを行い、円弧形状で近似された輪郭線に挟まれた領域に含まれる各画素の画像情報を生成する。
この画像情報の生成は、一般的なテクスチャマッピングの手法を用いて行われる。すなわち、別に用意されたテクスチャデータ（ポリゴンに対応させるテクスチャの画像情報）の中から、ポリゴン内の描画位置に対応するものを取得することにより行われる。
【００９８】
ところで、従来のテクスチャマッピング処理では、フレームバッファ上のポリゴン形状も多角形形状を有していたため、ポリゴン内の任意の描画位置に対応するテクスチャ座標を求める際に、単純な直線補間演算を行うだけでよかった。しかし、本実施形態では、円形フレームバッファ５０上のポリゴン形状は、輪郭線が円弧形状で近似されているため、任意の描画位置に対応するテクスチャ座標を単純な直線補間演算によって求めることができない。
【００９９】
図１２は、テクスチャマッピング処理部４４によって円形フレームバッファ５０上の任意の描画位置に対応するテクスチャ座標を求める処理手順の概要を示す図である。
まず、テクスチャマッピング処理部４４は、画像情報を生成しようとする円形フレームバッファ５０上の描画点Ｆ′の座標を決定した後に、ゲーム空間に配置されたポリゴン内の対応位置Ｐp′ を計算する。次に、テクスチャマッピング処理部４４は、このポリゴン内の対応位置Ｐp′ に基づいてテクスチャ座標Ｔを計算する。ゲーム空間内のポリゴンは、３つの頂点を直線で囲んだ三角形形状を有しているため、このポリゴン内の特定位置Ｐp′ に対応するテクスチャ座標Ｔは、単純な直線補間演算により求めることができる。
【０１００】
このように、本実施形態のゲームシステムでは、複数のポリゴンによって構成された三次元オブジェクトの画像情報を円形フレームバッファ５０に書き込む際に、多角形で表されたポリゴンの輪郭線形状を円弧で近似している。したがって、ゲーム空間内の三次元オブジェクトの形状を正確に再現することができ、球面スクリーン４に投影される画像の歪みを低減することができる。
【０１０１】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では、（２−１）視点位置、投影位置の両者を球面スクリーン４の球心位置に一致させる場合、（２−２）投影位置のみをずらして設定する場合、（２−３）視点位置、投影位置の両者をずらして設定する場合のそれぞれについて、座標変換処理の方法を説明したが、これらを応用することにより、視点位置のみを球面スクリーン４の球心からずらして設定した場合においても、歪みの少ないゲーム画像を表示するための画像情報を生成することができる。
【０１０２】
具体的には、上述した（２−３）に示した視点位置、投影位置の両者をずらして設定する場合において説明したように、ゲーム空間内に配置された各三次元オブジェクトを構成する各ポリゴンの頂点座標を点Ｐp（ｘp，ｙp，ｚp）として、これらの座標値と視点位置Ｐe（ｘe，ｙe，ｚe）の座標値を用いて、上述した（14）式等を計算することにより、投影面Ｓ上の点Ｐd（ｘd，ｙd，ｚd）の座標値を求める。その後、これらの座標値に基づいて、上述した（４）式および（５）式を計算することにより、円形フレームバッファ５０上の格納位置を求めればよい。
【０１０３】
また、投影位置Ｐrを球面スクリーン４の球心位置からずらして設定する場合（上述した（２−２）および（２−３）の場合など）には、投影位置Ｐrから球面スクリーン４上の位置Ｐdまでの距離を考慮して、円形フレームバッファ５０に格納する画像情報に対して明るさ補正を行うようにしてもよい。
【０１０４】
図１３は、明るさ補正を行う変形例について説明する図であり、球面スクリーン４の断面を簡略化した様子が示されている。投影位置Ｐrが球面スクリーン４の球心位置Ｑからずれている場合には、投影位置Ｐrから球面スクリーン４上の任意の位置までの距離は等距離ではなくなる。例えば、図１３に示すように、投影位置Ｐrから球面スクリーン４上のある点Ｐd1までの距離Ｄ1 と別の点Ｐd2までの距離Ｄ2 とは大きく異なることになる。投影位置Ｐrから照射された光（ゲーム画像を構成する各画素に対応する光）の強度、すなわち明るさは、距離の２乗に反比例するため、球面スクリーン４上に表示されるゲーム画像の明るさには偏りが生じることとなる。
【０１０５】
したがって、例えば、投影位置Ｐrから球面スクリーン４上の位置までの距離の２乗に反比例する所定の係数を設定し、これを円形フレームバッファ５０に格納される画像情報に対して乗算すれば、画像情報の明るさの補正を行うことができる。これにより、ゲーム画像の明るさの偏りを軽減し、より質の高いゲーム画像を投影することができるようになる。
【０１０６】
また、より簡便な方法としては、例えば、投影位置Ｐrから球面スクリーン４上の位置までの距離に反比例する所定の係数を設定し、これを円形フレームバッファ５０に格納される画像情報に対して乗算するようにしてもよい。この場合には、ゲーム画像の明るさの偏りをある程度軽減することができるとともに、明るさ補正に要する計算量を低減することができる。また、投影角度も投影位置から球面スクリーン４上に投影された位置までの距離と所定の相関を有するため、距離の代わりに投影角度を用いて明るさ補正を行うようにしてもよい。なお、上述したような明るさ補正処理は、画像処理部４０内のシェーディング処理部４５によって行うことができる。
【０１０７】
また、上述した実施形態では、曲面スクリーンの一種である球面スクリーンに画像を投影する場合を説明したが、ゲーム空間内に配置された三次元オブジェクトを視点位置から見たときに、曲面スクリーン上に投影された位置が計算によって得られる場合には、球面以外の曲面スクリーンに画像を表示する場合に本発明を適用することができる。例えば、楕円を回転させた回転体を半分に切断した投影面を有する曲面スクリーンに画像を投影するようにしてもよい。このような曲面スクリーンを用いた場合であっても、ゲーム空間内に配置された三次元オブジェクトの位置情報に基づいてこの曲面スクリーン上に投影された位置を算出し、さらに、この算出位置に画像を投影するために必要な円形フレームバッファ５０上の格納位置を計算することにより、ほぼ歪みのない画像表示を行うことができる。
【０１０８】
また、上述した実施形態では、ポリゴンの輪郭線を円の方程式を用いて近似するようにしたが、それ以外の曲線を用いて近似するようにしてもよい。例えば、スプライン曲線やその他の関数を用いて近似する場合が考えられる。これらの場合には、例えば、Ｎ個の点を特定することにより近似関数の各係数を決定することができるものとすると、２つの頂点を除く（Ｎ−２）個の中間点をゲーム空間内で計算すればよい。これらの中間点に対応する円形フレームバッファ５０の格納位置を求めることにより、上述した実施形態と同様の手順で近似関数を求めることができる。
【０１０９】
また、上述した実施形態では、本発明をゲームシステムに適用した場合の例について説明してきたが、三次元オブジェクトを用いた三次元画像を曲面スクリーンに投影する各種の装置に本発明を適用することができる。例えば、三次元オブジェクトを用いてプレゼンテーションを行う装置や、フライトシミュレータ等の各種のシミュレータ装置などに本発明を適用することができる。
【０１１０】
【発明の効果】
上述したように、本発明によれば、フレームバッファ上のポリゴンの輪郭線を直線形状ではなく曲線形状で近似することにより、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【図面の簡単な説明】
【図１】一実施形態のゲームシステムの構成を示す図である。
【図２】ゲームシステムの動作手順の概要を示す流れ図である。
【図３】中間点算出処理の概要を示す図である。
【図４】中間点算出処理の概要を示す図である。
【図５】円形フレームバッファの描画範囲を示す図である。
【図６】座標変換処理の概要を示す図である。
【図７】円形フレームバッファ上のポリゴンの頂点と中間点との対応関係を示す図である。
【図８】投影位置のみを球面スクリーンの球心からずらした場合の座標変換処理の概要を示す図である。
【図９】視点位置および投影位置を球面スクリーンの球心からずらした場合の座標変換処理の概要を示す図である。
【図１０】ポリゴンの輪郭線算出処理の概要を示す図である。
【図１１】テクスチャマッピング処理の概要を示す図である。
【図１２】円形フレームバッファ上の任意の描画位置に対応するテクスチャ座標を求める処理手順の概要を示す図である。
【図１３】明るさ補正を行う変形例について説明する図である。
【符号の説明】
１  ゲーム装置
２  プロジェクタ
３  レンズ
４  球面スクリーン
１０  入力装置
２０  ゲーム演算部
２２  入力判定部
２４  イベント処理部
２６  ゲーム空間演算部
３０  情報記憶媒体
４０  画像処理部
４１  中間点算出部
４２  座標変換処理部
４３  輪郭線算出部
４４  テクスチャマッピング処理部
４５  シェーディング処理部
５０  円形フレームバッファ
【図１】
0004726347.tif 000012
【図２】
0004726347.tif 000013
【図３】
0004726347.tif 000014
【図４】
0004726347.tif 000015
【図５】
0004726347.tif 000016
【図６】
0004726347.tif 000017
【図７】
0004726347.tif 000018
【図８】
0004726347.tif 000019
【図９】
0004726347.tif 000020
【図１０】
0004726347.tif 000021
【図１１】
0004726347.tif 000022
【図１２】
0004726347.tif 000023
【図１３】
0004726347.tif 000024