JP4726347B2 - Image display device, image display method, information storage medium, and image display program - Google Patents

Image display device, image display method, information storage medium, and image display program Download PDF

Info

Publication number
JP4726347B2
JP4726347B2 JP2001219501A JP2001219501A JP4726347B2 JP 4726347 B2 JP4726347 B2 JP 4726347B2 JP 2001219501 A JP2001219501 A JP 2001219501A JP 2001219501 A JP2001219501 A JP 2001219501A JP 4726347 B2 JP4726347 B2 JP 4726347B2
Authority
JP
Japan
Prior art keywords
frame buffer
polygon
image information
image
intermediate point
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
Application number
JP2001219501A
Other languages
Japanese (ja)
Other versions
JP2002236935A (en
Inventor
徹 大勝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2001219501A priority Critical patent/JP4726347B2/en
Publication of JP2002236935A publication Critical patent/JP2002236935A/en
Application granted granted Critical
Publication of JP4726347B2 publication Critical patent/JP4726347B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、広角レンズを通して曲面スクリーンに画像を投影する画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラムに関する。
【0002】
【従来の技術】
従来から、非平面スクリーン上に画像を投影する画像表示装置が知られている。例えば、特開平9−81785号公報や特開平3−82493号公報には、非平面スクリーンに画像を投影するとともに、投影した画像の歪みを補正する各種の画像表示装置が開示されている。平面スクリーンに投影するために作成した画像を、そのまま非平面スクリーンに投影すると歪んだ画像が表示される。このため、上述した画像表示装置では、表示の際に歪むことを考慮して、歪んだ結果正常な表示内容となるようにあらかじめ反対方向に歪んだ画像を生成することにより、非平面スクリーン上の表示の歪みを補正している。
【0003】
【発明が解決しようとする課題】
ところで、上述した従来の画像表示装置では、非平面スクリーンに投影することにより凸形状に歪む場合には、あらかじめ凹形状に歪んだ画像を生成しておいて、結果的に非平面スクリーン上の歪みを補正している。ところが、この方法では、三次元空間内に配置された三次元オブジェクトを非平面スクリーンに表示するような場合は、十分に歪みを補正することができなかった。例えば、画像の投影位置と視点位置が異なる場合には、三次元オブジェクトの遠近の程度によって、生成画像に与える歪みの程度が異なるため、生成画像を単純に歪ませただけでは、投影後の画像の歪みを取り除くことはできない。
【0004】
特に、二次元画像の歪み補正と三次元画像の歪み補正とでは本質的に相違すると考えられるが、上述した公報に開示された画像表示装置では、単に二次元画像の歪み補正の手法について開示しているだけであり、これらの手法を用いただけでは、複数のオブジェクトによって構成した三次元オブジェクトをスクリーン上に投影した場合に生じる各ポリゴン形状の歪みを充分に除去することができないという問題があった。
【0005】
本発明は、このような点に鑑みて創作されたものであり、その目的は、ポリゴンによって構成した三次元オブジェクトの画像を曲面スクリーンに表示する際に各ポリゴン形状の歪みを少なくすることができる画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラムを提供することにある。
【0006】
【課題を解決するための手段】
上述した課題を解決するために、本発明の画像表示装置は、仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するために、フレームバッファ、投影装置、輪郭線算出手段、画像情報格納手段、座標計算手段を備えている。フレームバッファは、曲面スクリーン上に投影すべき位置と画像情報の格納位置とが対応している。投影装置は、フレームバッファに格納された画像情報に対応する画像を前記広角レンズに向けて照射する。輪郭線算出手段は、三次元オブジェクトを構成するポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を曲線で近似する。画像情報格納手段は、輪郭線算出手段によって近似された輪郭線で囲まれたフレームバッファの格納位置に、対応する三次元オブジェクトの画像情報を格納する。座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算する。また、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置とに基づいて格納位置を計算する。さらに、視点位置と投影位置を異ならせている。三次元オブジェクトをポリゴンによって構成した場合に、各ポリゴンの輪郭線を直線形状としてフレームバッファ上に描画処理を行った場合には、曲面スクリーン上の画像が歪むため、三次元オブジェクトを構成する各ポリゴンの輪郭線が歪んで非直線形状になってしまう。本発明では、フレームバッファ上のポリゴンの輪郭線を直線形状ではなく曲線形状で近似することにより、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【0007】
また、本発明の画像表示装置は、中間点算出手段をさらに備えていることが望ましい。中間点算出手段は、ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する仮想的な三次元空間内の中間点の座標を算出する。また、上述した座標計算手段は、仮想的な三次元空間内における2つの頂点および中間点のそれぞれに対応するフレームバッファの格納位置を計算する。そして、上述した輪郭線算出手段は、2つの頂点および中間点のそれぞれに対応するフレームバッファ上の各点を通る曲線の形状を決定する。このようにして、曲線近似を行うことにより、実際に投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、直線上に配置された複数の点を通る形状、すなわち歪みの少ない直線に近づけることができる。
【0008】
また、上述した曲線の形状を決定するためにN個の点を指定する必要がある場合に、中間点算出手段は、少なくとも(N−2)個の中間点の座標を算出することが望ましい。このようにして、2つの頂点と(N−2)個の中間点が特定されるため、ポリゴンの輪郭線に対する正確な曲線形状を求めることができる。
【0009】
特に、上述した曲線は円弧であり、中間点算出手段によって、1個の中間点の座標を算出することが望ましい。曲線近似を円弧を用いて行う場合には、1個の中間点を追加するだけでよいため、曲線近似を行うために必要な演算量および中間点を算出するために必要な演算量を低減することができる。
【0010】
また、上述した中間点算出手段は、広角レンズの位置に対応する投影位置と2つの頂点のそれぞれとを結ぶ2つの線分のなす角を、投影位置と中間点とを結ぶ線分によって2等分するように中間点を設定することが望ましい。このような中間点を用いることにより、曲線近似に用いられる中間点に対応するフレームバッファ上の中間点の位置が、各頂点に対応するフレームバッファ上の各頂点とほぼ等距離に位置するため、曲線近似の精度を上げることができる。
【0011】
また、上述した広角レンズは魚眼レンズであることが望ましい。魚眼レンズを用いることにより、ほぼ180°の投影角度を実現することができるため、このようにして投影される画像を曲面スクリーンに表示することにより、歪みのない臨場感のある画像を投影することができる。
【0012】
また、上述したように、座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算している。三次元オブジェクトを視点位置から見た場合に実際に曲面スクリーン上のどの位置に対応するかが計算され、この位置に画像を投影するために必要なフレームバッファの格納位置が計算されるため、理論上歪みのない正確な画像を投影することができる。
【0013】
また、上述したように、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置に基づいてフレームバッファの格納位置を計算している。三次元オブジェクトの立体的な形状や表示位置は、三次元オブジェクトの仮想的な三次元空間内の位置情報や視点位置、投影位置との相対的な関係によってその歪みの状態が決まる。このため、これらの位置情報に基づいてフレームバッファの格納位置を計算することにより、ほとんど歪みのない画像を投影することができる。
【0014】
また、上述したように、視点位置と投影位置を異ならせている。実際に、投影位置から曲面スクリーン上の画像を見ることはできない。したがって、視点位置と投影位置が異なることを前提にして歪み補正を行うことにより、現実に即した条件で歪みのない画像を投影することができる。
【0015】
また、投影位置が曲面スクリーンの中心位置からずらして設定されている場合に、上述した画像情報格納手段は、投影位置と曲面スクリーン上に投影すべき位置との距離を考慮して、フレームバッファに格納する画像情報について明るさ補正を行うことが望ましい。投影位置が中心位置からずれていると、明るさが均一な画像を投影した場合であっても、投影された画像の明るさに偏りが生じる。したがって、距離を考慮して明るさ補正を行うことにより、明るさの偏りをなくしてほぼ均一な明るさの画像を得ることができる。
【0016】
また、上述した画像情報格納手段は、ポリゴンに対応するテクスチャデータに含まれる画像情報を特定してフレームバッファに格納するテクスチャマッピング処理を行っており、フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する仮想的な三次元空間におけるポリゴン内の座標を求め、この座標に対応するテクスチャ座標を決定することが望ましい。フレームバッファ上でのポリゴンの輪郭線が曲線形状になると、ポリゴン内部の任意の位置とテクスチャ座標との対応がとれなくなるが、仮想的な三次元空間において多角形形状を有するポリゴン内の対応位置を算出することにより、この対応を取ることが容易になり、必要な画像情報を読み出すことが可能になる。
【0017】
また、所定の間隔毎に仮想的な三次元空間内におけるポリゴンの頂点の座標を計算するオブジェクト計算手段をさらに備えるとともに、フレームバッファに対する画像情報の格納処理をこの所定の間隔で繰り返すことが望ましい。仮想的な三次元空間内を三次元オブジェクトが動いたり、透視投影変換の基準となる視点が移動した場合に、所定の間隔で三次元オブジェクトの座標が計算され、その都度歪みのない画像が生成されるため、三次元オブジェクトを用いたゲームやプレゼンテーション等において歪みのない動画像を曲面スクリーンに投影することができる。
【0018】
また、本発明の画像表示方法は、三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第1のステップと、この取得した位置情報に基づいてポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第2のステップと、この近似された輪郭線で囲まれたフレームバッファの格納位置に画像情報を画像情報格納手段によって格納する第3のステップと、フレームバッファに格納された画像情報を読み出して広角レンズを通して曲面スクリーン上に投影装置によって投影する第4のステップとを有している。また、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を座標計算手段によって計算するとともに、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置および広角レンズの位置に対応する投影位置とに基づいて格納位置を計算し、視点位置と投影位置を異ならせている。
【0019】
また、本発明の情報記憶媒体は、これら第1のステップ〜第4のステップを実行するプログラムを含んでいる。
また、本発明の画像表示プログラムは、仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するためにコンピュータに、これら第1のステップ〜第4のステップを実行させるためのものである。
【0020】
本発明の画像表示方法を実施することにより、あるいは本発明の情報記憶媒体に格納されたプログラムや、本発明の画像表示プログラムを実行することにより、フレームバッファ上のポリゴンの輪郭線が直線形状ではなく曲線形状で近似されるので、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【0021】
また、ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第5のステップと、仮想的な三次元空間内における2つの頂点および中間点のそれぞれに対応するフレームバッファの格納位置を座標計算手段によって計算する第6のステップとを上述した第2のステップの前に挿入するとともに、第2のステップにおいて、2つの頂点および中間点のそれぞれに対応するフレームバッファ上の各点を通る曲線の形状を決定することが望ましい。このようにして、曲線近似を行うことにより、実際に投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、直線上に配置された複数の点を通る形状、すなわち歪みの少ない直線に近づけることができる。
【0022】
また、上述した第2のステップにおける近似処理に用いられる曲線は円弧であり、1個の中間点の座標を用いてこの近似処理が行われることが望ましい。曲線近似を円弧を用いて行う場合には、1個の中間点を追加するだけでよいため、曲線近似を行うために必要な演算量および中間点を算出するために必要な演算量を低減することができる。
【0023】
また、上述したように、座標計算手段は、三次元オブジェクトを所定の視点位置から見た場合の曲面スクリーン上の位置に対応させて、フレームバッファの格納位置を計算している。三次元オブジェクトを視点位置から見た場合に実際に曲面スクリーン上のどの位置に対応するかが計算され、この位置に画像を投影するために必要なフレームバッファの格納位置が計算されるため、理論上歪みのない正確な画像を投影することができる。
【0024】
また、上述したように、座標計算手段は、三次元オブジェクトの仮想的な三次元空間内の位置情報と、視点位置あるいは広角レンズの位置に対応する投影位置の少なくとも一方に基づいてフレームバッファの格納位置を計算している。三次元オブジェクトの立体的な形状や表示位置は、三次元オブジェクトの仮想的な三次元空間内の位置情報や視点位置、投影位置との相対的な関係によってその歪みの状態が決まる。このため、これらの位置情報に基づいてフレームバッファの格納位置を計算することにより、ほとんど歪みのない画像を投影することができる。
【0025】
また、投影位置が曲面スクリーンの中心位置からずらして設定されている場合に、投影位置と曲面スクリーン上に投影すべき位置との距離を考慮して、フレームバッファに格納する画像情報について明るさ補正を画像情報格納手段によって行う第7のステップを、第4のステップの前に挿入することが望ましい。距離を考慮して明るさ補正を行うことにより、明るさの偏りをなくしてほぼ均一な明るさの画像を得ることができる。
【0026】
また、上述した第4のステップにおいて、ポリゴンに対応するテクスチャデータに含まれる画像情報を特定してフレームバッファに格納するテクスチャマッピング処理を行っており、フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する仮想的な三次元空間におけるポリゴン内の座標を求め、この座標に対応するテクスチャ座標を決定することが望ましい。フレームバッファ上でのポリゴンの輪郭線が曲線形状になると、ポリゴン内部の任意の位置とテクスチャ座標との対応がとれなくなるが、仮想的な三次元空間において多角形形状を有するポリゴン内の対応位置を算出することにより、この対応を取ることが容易になり、必要な画像情報を読み出すことが可能になる。
【0027】
【発明の実施の形態】
以下、本発明を適用した一実施形態のゲームシステムについて、図面を参照しながら説明する。
図1は、本実施形態のゲームシステムの構成を示す図である。同図に示すゲームシステムは、ゲーム装置1、プロジェクタ2、レンズ3、球面スクリーン4を含んで構成されている。
【0028】
ゲーム装置1は、プレーヤによる操作に対応して各種のゲーム演算を行うとともに、ゲーム進行に応じたゲーム画像を表示するための画像情報を生成する。プロジェクタ2は、ゲーム装置1によって生成された画像情報に基づいて、球面スクリーン4にゲーム画像を照射する。レンズ3は、プロジェクタ2から照射されたゲーム画像を球面スクリーン4に投影する。本実施形態では、このレンズ3として広角レンズ、さらに具体的には投影角がほぼ180°の魚眼レンズが用いられている。球面スクリーン4は、曲面スクリーンの一種であり、半球状の投影面を有しており、プロジェクタ2から照射されてレンズ3を通したゲーム画像が内側に投影される。
【0029】
次に、ゲーム装置1の詳細構成について説明する。図1に示すゲーム装置1は、入力装置10、ゲーム演算部20、情報記憶媒体30、画像処理部40、円形フレームバッファ50を含んで構成されている。
入力装置10は、プレーヤがゲーム装置1に対して各種の指示を入力するためのものであり、ゲーム装置1において行われるゲームの種類に応じた各種操作キー、操作レバー等を含んで構成されている。例えば、ドライブゲームを行うために設けられた入力装置10には、ハンドル、アクセル、ブレーキ、変速レバー等が備わっている。
【0030】
ゲーム演算部20は、ゲームの進行に必要な所定のゲーム演算を行うものである。このゲーム演算部20は、入力判定部22、イベント処理部24、ゲーム空間演算部26を含んで構成されている。このゲーム演算部20は、CPUやROM、RAM等の半導体メモリを用いて所定のゲームプログラムを実行することにより実現される。
【0031】
入力判定部22は、入力装置10に備わったハンドル、アクセル、ブレーキ等の操作状態を判定し、操作状態に応じた信号をイベント処理部24に出力する。イベント処理部24は、各種イベントの発生や、ゲームの進行状況に対応した分岐判断等、ゲーム進行に必要な処理を行う。ゲーム空間演算部26は、仮想的な三次元空間であるゲーム空間内に存在する各種の三次元オブジェクトの位置情報の計算を行う。本実施形態における三次元オブジェクトのそれぞれは複数のポリゴンによって構成されており、ゲーム空間演算部26は、三次元オブジェクトを構成する各ポリゴンの頂点座標を計算する。
【0032】
情報記憶媒体30は、コンピュータとしての機能を有するゲーム装置1を動作させるためのプログラムやデータを格納するためのものである。具体的には、情報記憶媒体30は、ゲーム演算部20によって実行されるゲームプログラムやゲーム画像の表示に必要なデータ(テクスチャマッピング用のテクスチャデータ等)や画像表示プログラムを格納する。この情報記憶媒体30は、CD−ROM、DVD−ROM、ハードディスク装置、半導体メモリ等によって実現される。
【0033】
画像処理部40は、ゲーム演算部20内のゲーム空間演算部26によって計算された各ポリゴンの頂点座標が入力されており、球面スクリーン4上に画像を表示するために、円形フレームバッファ50に画像情報を格納する処理を行う。この画像処理部40は、中間点算出部41、座標変換処理部42、輪郭線算出部43、テクスチャマッピング処理部44、シェーディング処理部45を含んで構成されている。なお、通常は、この画像処理部40は、専用のグラフィック用LSIやDSP等を用いて実現されるが、ゲーム演算部20を実現するCPUの性能が高い場合であって処理能力に余裕がある場合には、このCPUに画像処理部40の処理を行わせてもよい。
【0034】
中間点算出部41は、ゲーム空間演算部26によって計算された各ポリゴンの頂点座標が入力されており、隣接する2つの頂点を結ぶ直線上の中間点の座標を算出する。
座標変換処理部42は、三次元オブジェクトを視点位置から見た場合に実際に球面スクリーン4上のどの位置に三次元オブジェクトが対応するかを計算し、この球面スクリーン4上に画像を投影するために必要な円形フレームバッファ50上の格納位置を計算する。具体的には、座標変換処理部42は、ゲーム空間演算部26によって計算されたポリゴンの頂点座標と、中間点算出部41によって計算された中間点の座標とが入力されている。座標変換処理部42は、これらの頂点および中間点のそれぞれに対応する球面スクリーン4上の座標を計算し、さらにこの計算結果を用いて円形フレームバッファ50の格納位置を計算する。
【0035】
輪郭線算出部43は、座標変換処理部42の計算結果に基づいて、各ポリゴンの輪郭線(多角形形状を有するポリゴンの各辺)に対応する円形フレームバッファ50上のポリゴンの輪郭線の形状を算出する。一般に、ゲーム空間内に存在する各ポリゴンは、各辺が直線となる多角形形状(例えば三角形形状)を有している。しかし、曲面スクリーン4上に投影されると各辺の形状が歪むため、円形フレームバッファ50上における各辺の形状は、直線ではなく曲線となる。したがって、一般的な三次元画像処理において行われるように、ポリゴンの各頂点についてフレームバッファ上の格納位置を計算した後に、単純にテクスチャマッピング処理を実施するだけでは、ポリゴンの各辺の形状が実際の形状からずれることになる。このような理由から、本実施形態では、円形フレームバッファ50上における各ポリゴンの輪郭線の形状を曲線で近似することにより、所定の視点位置から球面スクリーン4上に表示された各ポリゴンの各辺の形状を見た場合にほぼ直線になるような工夫がなされている。具体的には、輪郭線算出部43は、各ポリゴンにおいて隣接する2つの頂点の座標と、ゲーム空間内においてこれら2つの頂点を両端とする直線上に存在する中間点とに基づいて、これら3点を通る円弧形状を算出する。以下では、ゲーム空間内における各ポリゴン形状を三角形として説明を行う。
【0036】
テクスチャマッピング処理部44は、円形フレームバッファ50上での各ポリゴンの輪郭線形状が輪郭線算出部43によって計算された後に、これらの輪郭線によって区画されるポリゴン内部にテクスチャデータを貼り付ける処理(テクスチャマッピング処理)を行う。また、シェーディング処理部45は、テクスチャマッピング処理の結果に対してシェーディング補正処理を行う。このようにして各ポリゴンを構成する複数個(例えば3個)の頂点座標によって囲まれた領域(円形フレームバッファ50上の対応領域)に含まれる各画素の画像情報が得られる。例えば、画像情報として、RGBデータによって表された色情報が用いられている。
【0037】
円形フレームバッファ50は、画像処理部40によって得られた画像情報を格納する。円形フレームバッファ50の各格納位置は、球面スクリーン4上に投影すべきそれぞれの位置に対応しており、円形フレームバッファ50の所定位置に画像情報を格納することにより、この画像情報によって特定される色の画像が球面スクリーン4上の対応位置に投影される。
【0038】
上述したプロジェクタ2が投影装置に、中間点算出部41が中間点算出手段に、座標変換処理部42が座標計算手段に、輪郭線算出部43が輪郭線算出手段に、テクスチャマッピング処理部44、シェーディング処理部45が画像情報格納手段に、ゲーム空間演算部26がオブジェクト計算手段にそれぞれ対応している。
【0039】
本実施形態のゲームシステムはこのような構成を有しており、次にその動作について説明する。
図2は、本実施形態のゲームシステムの動作手順の概要を示す流れ図であり、ゲーム全体の流れが示されている。なお、図2に示す一連の処理は、所定の表示間隔に対応した周期(例えば、1/60秒)で繰り返して行われる。
【0040】
入力装置10が操作されてプレーヤによってゲームの開始指示がなされると、ゲーム演算部20は、情報記憶媒体30から読み出したゲームプログラムに基づいて所定のゲーム演算を開始する。具体的には、ゲーム演算部20内の入力判定部22は、入力装置10から出力される信号に基づいて、プレーヤによって行われた操作の内容に応じた信号を出力する所定の入力判定処理を行う(ステップ100)。
【0041】
次に、イベント処理部24は、入力判定部22から出力される信号に対応して、ゲーム進行に必要な各種のイベントを発生する処理(イベント発生処理)を行う(ステップ101)。また、ゲーム空間演算部26は、イベント処理部24によって行われるイベント発生処理に対応して、ゲーム空間内に存在する各種の三次元オブジェクトの座標計算を行う(ステップ102)。この座標計算によって、三次元オブジェクトを構成する複数のポリゴンの各頂点座標が計算される。
【0042】
このようにしてゲーム空間演算部26によって各三次元オブジェクトの座標計算が行われて三次元オブジェクトの位置情報が取得されると、画像処理部40内の中間点算出部41は、各ポリゴン内で隣接する2つの頂点に対応する中間点の座標を計算する(ステップ103)。また、座標変換処理部42は、ポリゴンの頂点座標と中間点の座標を、円形フレームバッファ50上の座標に変換する所定の座標変換処理を行う(ステップ104)。また、輪郭線算出部43は、座標変換処理部42の計算結果に基づいて、円形フレームバッファ50上における各ポリゴンの輪郭線形状を計算する(ステップ105)。
【0043】
次に、テクスチャマッピング処理部44およびシェーディング処理部45は、円形フレームバッファ50に格納する画像情報(色情報)を求め、この画像情報を円形フレームバッファ50の対応位置に書き込む(ステップ106)。具体的には、テクスチャマッピング処理部44により所定のテクスチャマッピング処理が行われ、その後、シェーディング処理部45により所定のシェーディング処理が行われることにより、各ポリゴンに対応する円形フレームバッファ50上の領域に画像情報が書き込まれる。
【0044】
円形フレームバッファ50に対して書き込まれた画像情報が所定の走査順に読み出されてプロジェクタ2に送出される。プロジェクタ2は、この画像情報に基づいて画像を形成し、レンズ3を通して球面スクリーン4に投影する(ステップ107)。
【0045】
このようにして所定の繰り返し周期で新しい内容のゲーム画像が生成されて球面スクリーン4上に投影される。なお、上述した動作説明では、表示間隔に対応した周期で図2に示した一連の処理を行って描画処理を行うようにしたが、必ずしも表示間隔と描画処理の繰り返し間隔は一致させなくてもよい。また、それ以外にも、描画処理が表示タイミングに間に合えば毎回の表示タイミングに同期して描画処理を行い、間に合わなければ同じ内容の画面表示を行うようにした場合には、表示タイミングと描画タイミングが一致しないこともある。
【0046】
次に、上述したステップ103における中間点算出処理、ステップ104における座標変換処理、ステップ105における輪郭線算出処理、ステップ106におけるテクスチャマッピング処理の詳細について説明する。
(1)中間点算出処理
図3および図4は、中間点算出部41において行われる中間点算出処理の概要を示す図である。これらの図において、点P0、P1は、ゲーム空間内に配置された一のポリゴンに含まれる2つの頂点を示している。
【0047】
最も簡単な計算を行う場合には、図3に示すように、中間点算出部41は、2つの頂点P0、P1のゲーム空間内での中間点P′の座標を計算する。この場合の中間点P′の座標は、単純に2つの頂点P0、P1の各座標値の相加平均を求めることにより得られる。
【0048】
また、上述した中間点P′に対応する円形フレームバッファ50上の位置は、各頂点P0、P1に対応する円形フレームバッファ50上の各頂点と等距離にはならない。したがって、図4に示すように、投影位置Pr(例えば球心に一致するものとする)と2つの頂点P0、P1とのなす投影角を二等分する中間点P″の座標を計算することが望ましい。このような中間点P″を用いることにより、2つの頂点P0、P1に対応する円形フレームバッファ50上の各頂点のそれぞれから、この中間点P″に対応する円形フレームバッファ50上の中間点までの距離をほぼ等しく設定することができるため、ステップ105において補間処理によって輪郭線を求める際の誤差を少なくすることができる。
【0049】
具体的には、頂点P0、P1から中間点P″までの距離をそれぞれL1、L2とし、球心から頂点P0、P1までの距離をそれぞれL3、L4とすると、三角形の2等分線の性質から、L1:L2=L3:L4の関係を満たす。球心および2つの頂点P0、P1の座標は既知であるため、中間点P″の座標は簡単な計算を行うことにより求めることができる。
【0050】
(2)座標変換処理
図5は、円形フレームバッファ50の描画範囲を示す図である。本実施形態のプロジェクタ2は、画像の投影範囲が横長(例えば縦横比が3:4)の長方形を有しており、その中の一部の領域が球面スクリーン4に投影する画像に対応した描画領域として使用される。なお、この図は後述する図6の投影面Sをz軸の正の方向(図6では上側)から原点に向かって見た場合に対応している。
図5において、矩形領域200がプロジェクタ2の投影範囲に対応している。また、円形領域210がレンズ3を通して球面スクリーン4に実際に投影される範囲に対応している。したがって、本実施形態では、円形フレームバッファ50の座標の中で円形領域210の内部に含まれる範囲についてのみ画像情報の書き込みが行われる。
【0051】
図5に示すように、水平方向にX軸、垂直方向にY軸をとる。円形領域210の中心(円心)を原点O、円形領域210の半径をRとする。円形フレームバッファ50内の任意の点F(X,Y)に格納された画像情報は、球面スクリーン4上における点Pdに投影される。
【0052】
(2−1)視点位置、投影位置をともに球面スクリーン4の球心位置に設定する場合
図6は、座標変換処理の概要を示す図である。同図に示すように、球面スクリーン4に対応する半球状の投影面をSとし、この投影面Sの球心を原点oに設定する。また、この原点oから投影面Sの面心に向かってz軸を定義し、このz軸に垂直にx軸とy軸を定義する。さらに、この例では、プレーヤの視点位置Peと投影位置(レンズ3の位置)Prが原点oに一致しているものとする。
【0053】
三次元空間であるゲーム空間内の任意の点Pp(xp,yp,zp)を円形フレームバッファ50上の点F(X,Y)へ写像することを考える。図6において、ゲーム空間内の点Pp(xp,yp,zp)を原点oから見たときに、この点Pp と原点oとを結ぶ直線と投影面Sとの交点をPd(xd,yd,zd)とする。投影面Sに対応する半球の半径をrとすると、xd、yd、zdは、それぞれ以下の式により表される。
【0054】
【数1】

Figure 0004726347
【0055】
また、図6において、原点oと点Pdを結ぶ直線とz軸とのなす角度をθとすると、この角度θは、次式により表される。
【0056】
【数2】
Figure 0004726347
【0057】
本実施形態で使用したレンズ3は、図5に示す点F(X,Y)を投影面Sに投影する場合に、原点Oから点Fまでの距離Lが、図6に示す角度θに比例する特性を有している。したがって、θ=0の時にL=0、θ=π/2の時にL=Rになり、その間の任意の角度θに対応する距離Lは次式で表すことができる。
【0058】
L=θ/(π/2)×R
また、図5において、円形フレームバッファ50上の原点Oと点F(X,Y)とを結ぶ直線とX軸とのなす角度をΦとする。図6において、点Pd(xd,yd,zd) のxy平面への写像点Pd′(xd,yd,0) と原点oを結ぶ直線とx軸とのなす角度をφとする。この角度Φと角度φは等しい。ここで、cosφ、sinφは、以下の式で表すことができる。
【0059】
【数3】
Figure 0004726347
【0060】
点F(X,Y)は、投影面S上の点Pd(xd,yd,zd)の各軸の座標値を用いて次式のように表すことができる。
【0061】
【数4】
Figure 0004726347
【0062】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Pp(xp,yp,zp)がわかっているときに、対応する円形フレームバッファ50の格納位置を計算するために、座標変換処理部42は、まず、頂点Pp(xp,yp,zp)の座標値を上述した(1)〜(3)式に代入することにより、投影面S上の点Pd(xd,yd,zd)の座標を計算する。その後、座標変換処理部42は、この計算によって得られた点Pd(xd,yd,zd)の座標値を上述した(4)式および(5)式に代入して、円形フレームバッファ50上の点F(X,Y)を計算する。また、図3および図4に示した中間点P′あるいはP″についても同様の手順により、円形フレームバッファ50の格納位置が計算される。
【0063】
このようにして三次元オブジェクトの各ポリゴンの頂点と中間点のそれぞれに対応する円形フレームバッファ50の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン4上に投影するために必要な円形フレームバッファ50の格納位置を得ることができる。
【0064】
図7は、円形フレームバッファ50に格納されたポリゴンの頂点と中間点との対応関係を示す図である。例えば、三角形形状のポリゴンが用いられているものとし、3つの頂点のそれぞれに対応する円形フレームバッファ50上の頂点をFa、Fb、Fcとする。また、隣接する2つの頂点に挟まれた3つの中間点のそれぞれに対応する円形フレームバッファ50上の中間点をF1、F2、F3とする。図7に示すように、隣接する2つの頂点とこれらに挟まれた中間点に着目した場合に、これら3点は一直線上には配置されない。
【0065】
(2−2)投影位置のみを球面スクリーン4の球心からずらした場合
ところで、上述した説明では、視点位置Peと投影位置Prを球面スクリーン4の球心に一致させた場合を考えたが、実際には、このような位置関係を実現することは難しい。実用的な幾何学的配置を考えた場合に、球面スクリーン4を用いることによる臨場感の高いゲーム画像をプレーヤに見せようとすると、プレーヤの視点位置を球面スクリーン4の球心近傍に設定することが望ましい。したがって、この場合には投影位置Prを球面スクリーン4の球心からずらして設定する必要がある。
【0066】
図8は、投影位置を球面スクリーン4の球心位置からずらした場合の座標変換処理の概要を示す図である。同図に示す座標軸は、上述した図6に示したものと同じである。投影位置Pr(xr,yr,zr)は、球面スクリーン4の球心以外の所定位置(例えば、プレーヤの頭上等)に設定されている。また、円形フレームバッファ50については、その原点が投影位置Prに対応付けられるため、上述した(2−1)の場合における座標軸の表示(図5参照)と区別するために、原点をO′とし、水平方向に沿った軸をX′軸、垂直方向に沿った軸をY′軸と表すことにする。
【0067】
上述した(2−1)で説明したように、球面スクリーン4の球心に対応する原点oの位置に視点位置Peを一致させた場合には、ゲーム空間内の点Pp(xp,yp,zp)は、投影面S上における点Pd(xd,yd,zd)として見えることになる。すなわち、任意の投影位置Prから球面スクリーン4上の点Pd(xd,yd,zd)に投影してやれば、その点は、視点位置Peからはゲーム空間内の点Pp(xp,yp,zp)として認識されることになる。
【0068】
したがって、任意の投影位置Prに対応して、上述した(2−1)に示した手順と同様な座標変換処理を点Pdに対して行えば、投影位置Prから点Pdに投影する場合に必要な円形フレームバッファ50上の点F′(X′,Y′)を求めることができる。ただし、投影位置Prを原点oからずらした場合のx′軸、y′軸、z′軸は、元のx軸、y軸、z軸を平行移動したものであり、軸回りの回転はないものとする。また、xr 2+yr 2+zr 2<r2 を満たす範囲(原点oから半径r以下)で投影位置Prが設定されているものとする。
【0069】
図8において、投影位置Prと点Pdを結ぶ直線とz′軸とのなす角度をθ′とすると、角度θ′は、次式により表される。
【0070】
【数5】
Figure 0004726347
【0071】
また、円形フレームバッファ50上の原点O′と点F′(X′,Y′)を結ぶ直線とX′軸とのなす角度をΦ′とし、図8において、点Pd(xd,yd,zd)のx′y′平面への写像点Pd″(xd−xr,yd−yr,0) と点Prを結ぶ直線とx′軸とのなす角度をφ′とすると、これらの角度Φ′およびφ′は等しくなる。ここで、cosφ′、sinφ′は、以下の式で表すことができる。
【0072】
【数6】
Figure 0004726347
【0073】
また、投影面S上の点Pd(xd,yd,zd)の座標値は、上述した(1)〜(3)式に基づいて求められる。
点F′(X′,Y′)は、投影面S上の点Pd(xd,yd,zd)および投影位置Pr(xr,yr,zr)の各座標値を用いて次式のように表すことができる。
【0074】
【数7】
Figure 0004726347
【0075】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Pp(xp,yp,zp)がわかっているときに、対応する円形フレームバッファ50上の格納位置を計算するために、座標変換処理部42は、まず、頂点Pp(xp,yp,zp)の座標値を上述した(1)〜(3)式に代入することにより、投影面S上の点Pd(xd,yd,zd)の座標を計算する。その後、座標変換処理部42は、この計算によって得られた点Pd(xd,yd,zd)の座標値を上述した(7)式および(8)式に代入して、円形フレームバッファ50上の点F′(X′,Y′)の座標を計算する。また、図3および図4に示した中間点P′あるいはP″についても同様の手順により、円形フレームバッファ50の格納位置が計算される。
【0076】
このようにして三次元オブジェクトの各ポリゴンの頂点や中間点のそれぞれに対応する円形フレームバッファ50上の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、投影位置を任意の位置へ移動した場合においても、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン4上に投影するために必要な円形フレームバッファ50の格納位置を得ることができる。
【0077】
なお、上述した図8では、説明の都合上、投影位置Prはzr≧0の領域に描かれていたが、実際には、レンズ3の投影角が180度であるため、球面スクリーン4の全体にゲーム画像を表示するために、投影位置Prは、zr≦0の範囲で設定することが望ましい。
【0078】
また、本実施形態のレンズ3として用いている魚眼レンズは、一般的には、焦点深度が深いため、フォーカスが合っている範囲が広いという特徴がある。このため、投影位置をずらした場合においても、球面スクリーン4に表示されるゲーム画像は、全体がほぼフォーカスが合っている状態になる。
【0079】
(2−3)視点位置、投影位置の両方を球面スクリーン4の球心からずらした場合
ところで、上述した(2−2)における説明では、投影位置Prが球面スクリーン4の球心位置からずれた位置に設定される場合について説明していたが、実際には、プレーヤの視点位置Peも、球面スクリーン4の球心位置からずらしたい場合がある。以下では、視点位置および投影位置の両方を球面スクリーン4の球心位置からずらして設定した場合について説明する。
【0080】
図9は、視点位置および投影位置を球面スクリーン4の球心位置からずらした場合の座標変換処理の概要を示す図である。同図に示す座標軸は、上述した図6等に示したものと同じである。視点位置Pe、投影位置Prの両者が球面スクリーン4の球心以外の所定位置に設定されている。また、円形フレームバッファ50については、その原点が投影位置Prに対応付けられるため、上述した(2−1)の場合における座標軸の表示(図5参照)と区別するために、上述した(2−2)の場合と同様に、原点をO′とし、水平方向に沿った軸をX′軸、垂直方向に沿った軸をY′軸と表すことにする。
【0081】
図9において、ゲーム空間内の点Pp(xp,yp,zp)と視点位置Pe(xe,ye,ze)を結ぶ直線は、以下の式で表される。
【0082】
【数8】
Figure 0004726347
【0083】
また、投影面Sに対応する半球は、以下に示す球の方程式で表される(ただし、z≧0)。
2 +y2 +z2 =r2 …(10)
視点位置Peからゲーム空間内の点Pp(xp,yp,zp)を見たときに、この点Pp に対応する投影面S上の点Pd(xd,yd,zd)の座標は、上述した(9)式に示す直線と(10)式に示す半球との交点の座標を計算することにより求めることができる。
【0084】
具体的には、(9)式を変形することにより、以下の各式が導かれる。
【0085】
【数9】
Figure 0004726347
【0086】
(11)式および(12)式を(10)式に代入すると、次式が得られる。
((xp−xe)2+(yp−ye)2+(zp−ze)2)×x2
−2×((yp−ye)×(xe×yp−ye×xp)+(zp−ze)
×(xe×zp−ze×xp))×x
+((xe×yp−ye×xp)2+(xe×zp−ze×xp)2
−r2×(xp−xe)2) =0 …(13)
ここで、
a=(xp−xe)2+(yp−ye)2+(zp−ze)2
b=(yp−ye)×(xe×yp−ye×xp)+(zp−ze)×(xe×zp−ze×xp)
c=(xe×yp−ye×xp)2+(xe×zp−ze×xp)2−r2×(xp−xe)2
とおくと、上述した(13)式の解は、次式のように表される。
【0087】
【数10】
Figure 0004726347
【0088】
したがって、ゲーム空間内の点Pp(xp,yp,zp)と視点位置Pe(xe,ye,ze)の各座標値を用いて(14)式を計算することにより、投影面S上の点Pdのx座標値(xd)が求められる。また、(14)式を上述した(11)式および(12)式に代入することにより、点Pdのy座標値(yd)、z座標値(zd)が求められる。
【0089】
実際に(14)式を用いてx座標値を計算すると、2つの解x1、x2が得られる。これらの2つの解のうち、一方の解x1を(11)式および(12)式にそれぞれ代入することにより、対応するy座標値(y1)およびz座標値(z1)が得られる。この結果、点Pdの座標値は(x1,y1,z1)となる。また、他方の解x2を(11)式および(12)式にそれぞれ代入することにより、対応するy座標値(y2)およびz座標値(z2)が得られる。この結果、点Pdの座標値は(x2,y2,z2)となる。これら2つの座標値のうちで、必要な解としては、点Peから各座標値(x1,y1,z1)および(x2,y2,z2)の点へ向かう2本のベクトルのうちで、視点位置Peから点Pp へ向かうベクトルと同じ向きを有するベクトルに対応する座標値が選択される。
【0090】
このようにして、点Pd(xd,yd,zd)の座標値を求めることができる。その後、この座標値を上述した(7)式および(8)式に代入することにより、投影位置Prから投影面S上の点Pdに画像を投影する際に必要な円形フレームバッファ50上の点F′(X′,Y′)の座標を求めることができる。
【0091】
したがって、ゲーム空間内に配置された三次元オブジェクトを構成する各ポリゴンの頂点Pp(xp,yp,zp)がわかっているときに、対応する円形フレームバッファ50上の格納位置を計算するために、座標変換処理部42は、まず、頂点Pp(xp,yp,zp)の座標値と視点位置Pe(xe,ye,ze)の座標値を用いて上述した(14)式等を計算することにより、投影面S上の点Pd(xd,yd,zd)の座標を計算する。その後、座標変換処理部42は、この計算によって得られた点Pd(xd,yd,zd)の座標値を上述した(7)式および(8)式に代入して、円形フレームバッファ50上の点F′(X′,Y′)の座標を計算する。また、図3および図4に示した中間点P′あるいはP″についても同様の手順により、円形フレームバッファ50の格納位置が計算される。
【0092】
このようにして三次元オブジェクトの各ポリゴンの頂点や中間点のそれぞれに対応する円形フレームバッファ50上の格納位置が計算される。特に、このようにして行われる座標変換処理は、三次元オブジェクトのゲーム空間内における位置や視点位置および投影位置を用いて正確に行われているため、視点位置や投影位置を任意の位置へ移動した場合においても、視点位置から見たときに理論上歪みのない正確なゲーム画像を球面スクリーン4上に投影するために必要な円形フレームバッファ50の格納位置を得ることができる。
【0093】
なお、上述した図9においても、説明の都合上、投影位置Prはzr≧0の領域に描かれていたが、上述した(2−2)の場合と同様の理由により、実際の投影位置Prは、zr≦0の範囲で設定することが望ましい。
(3)輪郭線算出処理
図10は、輪郭線算出部43によってポリゴンの輪郭線算出処理の概要を示す図である。図10において、ポリゴンに含まれる2つの頂点の円形フレームバッファ50上の写像をFa(Xa,Ya)、Fb(Xb,Yb)とし、これらに挟まれた中間点をF1(X1,Y1)とする。また、これら3点Fa、F1、Fbを通る円の中心をE(X0,Y0)、この円の半径をR1とする。
【0094】
円の中心をE(X0,Y0)とする円の方程式は、
(X−X02 +(Y−Y02 =R12 …(15)
となる。この円の方程式に、3点Fa、F1、Fbの座標値を代入することにより、以下の連立方程式が得られる。
【0095】
(Xa−X02 +(Ya−Y02 =R1 2
(Xb−X02 +(Yb−Y02 =R1 2
(X1−X02 +(Y1−Y02 =R1 2
この連立方程式を解くことにより、
0=(i×j−g×h)/(2×(Ya×g−Y1×g−Y1×i+Yb×i))
0=(h+2×Ya×Y0−2×Y1×Y0)/i
1=√((Xa−X02 +(Ya−Y02
が得られる。ここで、
g=−2×X1+2×Xb
h=−Xa 2 +X1 2 −Ya 2 +Y1 2
i=−2×Xa+2×X1
j=−X1 2 +Xb 2 −Y1 2 +Yb 2
とする。
【0096】
このようにして、輪郭線算出部43は、円の方程式を決定することにより、3点Fa、F1、Fbを通る輪郭線の形状(円弧形状)を決定する。
(4)テクスチャマッピング処理
図11は、テクスチャマッピング処理の概要を示す図である。図11に示すように、本実施形態では、ポリゴンの3つの頂点のそれぞれに対応した頂点Fa、Fb、Fcのそれぞれをつなぐ各輪郭線は、円弧によって近似されており、これらの内部が、1つのポリゴンに対応して画像情報を書き込む描画領域となる。
【0097】
テクスチャマッピング処理部44は、この描画領域の上端(Ymax)から下端(Ymin)まで順番にX方向のスキャンを行い、円弧形状で近似された輪郭線に挟まれた領域に含まれる各画素の画像情報を生成する。
この画像情報の生成は、一般的なテクスチャマッピングの手法を用いて行われる。すなわち、別に用意されたテクスチャデータ(ポリゴンに対応させるテクスチャの画像情報)の中から、ポリゴン内の描画位置に対応するものを取得することにより行われる。
【0098】
ところで、従来のテクスチャマッピング処理では、フレームバッファ上のポリゴン形状も多角形形状を有していたため、ポリゴン内の任意の描画位置に対応するテクスチャ座標を求める際に、単純な直線補間演算を行うだけでよかった。しかし、本実施形態では、円形フレームバッファ50上のポリゴン形状は、輪郭線が円弧形状で近似されているため、任意の描画位置に対応するテクスチャ座標を単純な直線補間演算によって求めることができない。
【0099】
図12は、テクスチャマッピング処理部44によって円形フレームバッファ50上の任意の描画位置に対応するテクスチャ座標を求める処理手順の概要を示す図である。
まず、テクスチャマッピング処理部44は、画像情報を生成しようとする円形フレームバッファ50上の描画点F′の座標を決定した後に、ゲーム空間に配置されたポリゴン内の対応位置Pp′ を計算する。次に、テクスチャマッピング処理部44は、このポリゴン内の対応位置Pp′ に基づいてテクスチャ座標Tを計算する。ゲーム空間内のポリゴンは、3つの頂点を直線で囲んだ三角形形状を有しているため、このポリゴン内の特定位置Pp′ に対応するテクスチャ座標Tは、単純な直線補間演算により求めることができる。
【0100】
このように、本実施形態のゲームシステムでは、複数のポリゴンによって構成された三次元オブジェクトの画像情報を円形フレームバッファ50に書き込む際に、多角形で表されたポリゴンの輪郭線形状を円弧で近似している。したがって、ゲーム空間内の三次元オブジェクトの形状を正確に再現することができ、球面スクリーン4に投影される画像の歪みを低減することができる。
【0101】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では、(2−1)視点位置、投影位置の両者を球面スクリーン4の球心位置に一致させる場合、(2−2)投影位置のみをずらして設定する場合、(2−3)視点位置、投影位置の両者をずらして設定する場合のそれぞれについて、座標変換処理の方法を説明したが、これらを応用することにより、視点位置のみを球面スクリーン4の球心からずらして設定した場合においても、歪みの少ないゲーム画像を表示するための画像情報を生成することができる。
【0102】
具体的には、上述した(2−3)に示した視点位置、投影位置の両者をずらして設定する場合において説明したように、ゲーム空間内に配置された各三次元オブジェクトを構成する各ポリゴンの頂点座標を点Pp(xp,yp,zp)として、これらの座標値と視点位置Pe(xe,ye,ze)の座標値を用いて、上述した(14)式等を計算することにより、投影面S上の点Pd(xd,yd,zd)の座標値を求める。その後、これらの座標値に基づいて、上述した(4)式および(5)式を計算することにより、円形フレームバッファ50上の格納位置を求めればよい。
【0103】
また、投影位置Prを球面スクリーン4の球心位置からずらして設定する場合(上述した(2−2)および(2−3)の場合など)には、投影位置Prから球面スクリーン4上の位置Pdまでの距離を考慮して、円形フレームバッファ50に格納する画像情報に対して明るさ補正を行うようにしてもよい。
【0104】
図13は、明るさ補正を行う変形例について説明する図であり、球面スクリーン4の断面を簡略化した様子が示されている。投影位置Prが球面スクリーン4の球心位置Qからずれている場合には、投影位置Prから球面スクリーン4上の任意の位置までの距離は等距離ではなくなる。例えば、図13に示すように、投影位置Prから球面スクリーン4上のある点Pd1までの距離D1 と別の点Pd2までの距離D2 とは大きく異なることになる。投影位置Prから照射された光(ゲーム画像を構成する各画素に対応する光)の強度、すなわち明るさは、距離の2乗に反比例するため、球面スクリーン4上に表示されるゲーム画像の明るさには偏りが生じることとなる。
【0105】
したがって、例えば、投影位置Prから球面スクリーン4上の位置までの距離の2乗に反比例する所定の係数を設定し、これを円形フレームバッファ50に格納される画像情報に対して乗算すれば、画像情報の明るさの補正を行うことができる。これにより、ゲーム画像の明るさの偏りを軽減し、より質の高いゲーム画像を投影することができるようになる。
【0106】
また、より簡便な方法としては、例えば、投影位置Prから球面スクリーン4上の位置までの距離に反比例する所定の係数を設定し、これを円形フレームバッファ50に格納される画像情報に対して乗算するようにしてもよい。この場合には、ゲーム画像の明るさの偏りをある程度軽減することができるとともに、明るさ補正に要する計算量を低減することができる。また、投影角度も投影位置から球面スクリーン4上に投影された位置までの距離と所定の相関を有するため、距離の代わりに投影角度を用いて明るさ補正を行うようにしてもよい。なお、上述したような明るさ補正処理は、画像処理部40内のシェーディング処理部45によって行うことができる。
【0107】
また、上述した実施形態では、曲面スクリーンの一種である球面スクリーンに画像を投影する場合を説明したが、ゲーム空間内に配置された三次元オブジェクトを視点位置から見たときに、曲面スクリーン上に投影された位置が計算によって得られる場合には、球面以外の曲面スクリーンに画像を表示する場合に本発明を適用することができる。例えば、楕円を回転させた回転体を半分に切断した投影面を有する曲面スクリーンに画像を投影するようにしてもよい。このような曲面スクリーンを用いた場合であっても、ゲーム空間内に配置された三次元オブジェクトの位置情報に基づいてこの曲面スクリーン上に投影された位置を算出し、さらに、この算出位置に画像を投影するために必要な円形フレームバッファ50上の格納位置を計算することにより、ほぼ歪みのない画像表示を行うことができる。
【0108】
また、上述した実施形態では、ポリゴンの輪郭線を円の方程式を用いて近似するようにしたが、それ以外の曲線を用いて近似するようにしてもよい。例えば、スプライン曲線やその他の関数を用いて近似する場合が考えられる。これらの場合には、例えば、N個の点を特定することにより近似関数の各係数を決定することができるものとすると、2つの頂点を除く(N−2)個の中間点をゲーム空間内で計算すればよい。これらの中間点に対応する円形フレームバッファ50の格納位置を求めることにより、上述した実施形態と同様の手順で近似関数を求めることができる。
【0109】
また、上述した実施形態では、本発明をゲームシステムに適用した場合の例について説明してきたが、三次元オブジェクトを用いた三次元画像を曲面スクリーンに投影する各種の装置に本発明を適用することができる。例えば、三次元オブジェクトを用いてプレゼンテーションを行う装置や、フライトシミュレータ等の各種のシミュレータ装置などに本発明を適用することができる。
【0110】
【発明の効果】
上述したように、本発明によれば、フレームバッファ上のポリゴンの輪郭線を直線形状ではなく曲線形状で近似することにより、曲面スクリーンに投影された三次元オブジェクトを構成する各ポリゴンの輪郭線を、歪みの少ないほぼ直線形状にすることができる。
【図面の簡単な説明】
【図1】一実施形態のゲームシステムの構成を示す図である。
【図2】ゲームシステムの動作手順の概要を示す流れ図である。
【図3】中間点算出処理の概要を示す図である。
【図4】中間点算出処理の概要を示す図である。
【図5】円形フレームバッファの描画範囲を示す図である。
【図6】座標変換処理の概要を示す図である。
【図7】円形フレームバッファ上のポリゴンの頂点と中間点との対応関係を示す図である。
【図8】投影位置のみを球面スクリーンの球心からずらした場合の座標変換処理の概要を示す図である。
【図9】視点位置および投影位置を球面スクリーンの球心からずらした場合の座標変換処理の概要を示す図である。
【図10】ポリゴンの輪郭線算出処理の概要を示す図である。
【図11】テクスチャマッピング処理の概要を示す図である。
【図12】円形フレームバッファ上の任意の描画位置に対応するテクスチャ座標を求める処理手順の概要を示す図である。
【図13】明るさ補正を行う変形例について説明する図である。
【符号の説明】
1 ゲーム装置
2 プロジェクタ
3 レンズ
4 球面スクリーン
10 入力装置
20 ゲーム演算部
22 入力判定部
24 イベント処理部
26 ゲーム空間演算部
30 情報記憶媒体
40 画像処理部
41 中間点算出部
42 座標変換処理部
43 輪郭線算出部
44 テクスチャマッピング処理部
45 シェーディング処理部
50 円形フレームバッファ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image display device, an image display method, an information storage medium, and an image display program that project an image onto a curved screen through a wide-angle lens.
[0002]
[Prior art]
Conventionally, an image display apparatus that projects an image on a non-planar screen is known. For example, Japanese Patent Application Laid-Open Nos. 9-81785 and 3-82493 disclose various image display devices that project an image on a non-planar screen and correct distortion of the projected image. When an image created for projection on a flat screen is projected on a non-planar screen as it is, a distorted image is displayed. For this reason, in the above-described image display device, in consideration of distortion at the time of display, by generating an image distorted in the opposite direction in advance so as to obtain normal display contents as a result of distortion, Display distortion is corrected.
[0003]
[Problems to be solved by the invention]
By the way, in the conventional image display apparatus described above, when the image is distorted into a convex shape by projecting onto a non-planar screen, an image distorted into a concave shape is generated in advance, and as a result, the distortion on the non-planar screen is generated. Is corrected. However, with this method, distortion cannot be corrected sufficiently when a three-dimensional object arranged in a three-dimensional space is displayed on a non-planar screen. For example, if the projected position of the image is different from the viewpoint position, the degree of distortion applied to the generated image differs depending on the perspective of the three-dimensional object. Therefore, simply distorting the generated image results in a projected image. The distortion cannot be removed.
[0004]
In particular, although it is considered that the distortion correction of the two-dimensional image and the distortion correction of the three-dimensional image are essentially different, the image display device disclosed in the above-mentioned publication simply discloses a technique for correcting the distortion of the two-dimensional image. However, there is a problem that the distortion of each polygon shape that occurs when a three-dimensional object composed of a plurality of objects is projected onto the screen cannot be removed sufficiently only by using these methods. .
[0005]
The present invention was created in view of the above points, and an object of the present invention is to reduce distortion of each polygon shape when displaying an image of a three-dimensional object composed of polygons on a curved screen. An object is to provide an image display device, an image display method, an information storage medium, and an image display program.
[0006]
[Means for Solving the Problems]
  In order to solve the above-described problem, an image display device of the present invention includes a frame buffer, a projection device, and a projection device for projecting an image of a three-dimensional object arranged in a virtual three-dimensional space onto a curved screen through a wide-angle lens. Outline calculating means, image information storing meansCoordinate calculation meansIt has. In the frame buffer, the position to be projected on the curved screen corresponds to the storage position of the image information. The projection device irradiates an image corresponding to the image information stored in the frame buffer toward the wide-angle lens. The contour calculation means approximates the shape of the polygon outline on the frame buffer corresponding to the polygon outline constituting the three-dimensional object with a curve. The image information storage means stores the image information of the corresponding three-dimensional object in the storage position of the frame buffer surrounded by the outline approximated by the outline calculation means.The coordinate calculation means calculates the storage position of the frame buffer in correspondence with the position on the curved screen when the three-dimensional object is viewed from a predetermined viewpoint position. The coordinate calculation means calculates the storage position based on the position information of the three-dimensional object in the virtual three-dimensional space and the projection position corresponding to the viewpoint position and the position of the wide-angle lens. Further, the viewpoint position and the projection position are made different.When a 3D object is composed of polygons and the drawing process is performed on the frame buffer with the outline of each polygon as a straight line, the image on the curved screen is distorted. Will be distorted and become non-linear. In the present invention, by approximating the polygon outline on the frame buffer with a curved shape instead of a linear shape, the outline of each polygon constituting the three-dimensional object projected on the curved screen is substantially linear with little distortion. Can be.
[0007]
  Moreover, the image display device of the present invention includes:Midpoint calculation meansIt is desirable to have more. The midpoint calculation means connects two adjacent vertices that are included in the polygon.On a straight lineThe coordinates of the intermediate point in the virtual three-dimensional space located at is calculated.Also mentioned aboveThe coordinate calculation means calculates the storage position of the frame buffer corresponding to each of the two vertices and intermediate points in the virtual three-dimensional space. Then, the above-described contour line calculation means determines the shape of a curve passing through each point on the frame buffer corresponding to each of the two vertices and the intermediate point. In this way, by performing curve approximation, the outline of each polygon constituting the actually projected three-dimensional object is brought close to a shape passing through a plurality of points arranged on the straight line, that is, a straight line with less distortion. be able to.
[0008]
Further, when it is necessary to designate N points in order to determine the shape of the curve described above, it is desirable that the midpoint calculation means calculates at least (N−2) midpoint coordinates. In this way, since two vertices and (N−2) intermediate points are specified, an accurate curve shape with respect to the polygon outline can be obtained.
[0009]
In particular, the curve described above is a circular arc, and it is desirable to calculate the coordinates of one intermediate point by the intermediate point calculating means. When curve approximation is performed using arcs, it is only necessary to add one intermediate point, so the amount of calculation necessary to perform curve approximation and the amount of calculation necessary to calculate the intermediate point are reduced. be able to.
[0010]
In addition, the above-described intermediate point calculation means calculates the angle formed by two line segments connecting the projection position corresponding to the position of the wide-angle lens and each of the two vertices to 2 etc. by the line segment connecting the projection position and the intermediate point. It is desirable to set an intermediate point so that it can be divided. By using such an intermediate point, the position of the intermediate point on the frame buffer corresponding to the intermediate point used for curve approximation is located at approximately the same distance from each vertex on the frame buffer corresponding to each vertex. The accuracy of curve approximation can be increased.
[0011]
Moreover, it is desirable that the wide-angle lens described above is a fish-eye lens. By using a fisheye lens, a projection angle of approximately 180 ° can be realized. Therefore, by displaying an image projected in this way on a curved screen, it is possible to project a realistic image without distortion. it can.
[0012]
  Also,As mentioned above,The coordinate calculation means associates the storage position of the frame buffer with the position on the curved screen when the three-dimensional object is viewed from a predetermined viewpoint position.I'm calculating.When viewing a 3D object from the viewpoint position, the position on the curved screen that corresponds to the actual position is calculated, and the storage position of the frame buffer required to project the image at this position is calculated. An accurate image without distortion can be projected.
[0013]
  Also,As mentioned above,The coordinate calculation means calculates the position information of the three-dimensional object in the virtual three-dimensional space and the viewpoint position.andProjection position corresponding to the position of the wide-angle lensWhenBased on the frame buffer storage locationI'm calculating.The three-dimensional shape and the display position of the three-dimensional object are determined by the relative state of the three-dimensional object in the virtual three-dimensional space with positional information, the viewpoint position, and the projection position. For this reason, an image with almost no distortion can be projected by calculating the storage position of the frame buffer based on the position information.
[0014]
  Also,As mentioned above,Viewpoint position and projection positionIt is different.Actually, the image on the curved screen cannot be seen from the projection position. Therefore, by performing distortion correction on the assumption that the viewpoint position and the projection position are different, it is possible to project an image without distortion under conditions that are realistic.
[0015]
In addition, when the projection position is set to be shifted from the center position of the curved screen, the above-described image information storage means considers the distance between the projection position and the position to be projected on the curved screen, and stores it in the frame buffer. It is desirable to perform brightness correction on the stored image information. If the projection position is deviated from the center position, even if an image with uniform brightness is projected, the brightness of the projected image is biased. Therefore, by performing the brightness correction in consideration of the distance, it is possible to obtain an image with almost uniform brightness without the brightness bias.
[0016]
Further, the image information storage means described above performs texture mapping processing for specifying image information included in the texture data corresponding to the polygon and storing it in the frame buffer, and the texture coordinates corresponding to the storage position on the frame buffer are obtained. In order to obtain the coordinates, it is desirable to obtain the coordinates in the polygon in the virtual three-dimensional space corresponding to the storage position and determine the texture coordinates corresponding to the coordinates. If the outline of the polygon in the frame buffer becomes a curved shape, the correspondence between the arbitrary position inside the polygon and the texture coordinates cannot be obtained, but the corresponding position in the polygon having the polygon shape in the virtual three-dimensional space By calculating, it becomes easy to take this correspondence, and necessary image information can be read out.
[0017]
In addition, it is desirable to further include object calculation means for calculating the coordinates of the vertices of the polygons in the virtual three-dimensional space at predetermined intervals, and to repeat the storage processing of the image information in the frame buffer at the predetermined intervals. When a three-dimensional object moves in a virtual three-dimensional space or the viewpoint that is the basis for perspective projection transformation moves, the coordinates of the three-dimensional object are calculated at predetermined intervals, and an image without distortion is generated each time. Therefore, it is possible to project a distortion-free moving image on a curved screen in a game or presentation using a three-dimensional object.
[0018]
  In addition, the image display method of the present invention uses the positional information in the virtual three-dimensional space of each vertex included in the polygon constituting the three-dimensional object.By calculation by game space calculation meansBased on the acquired first step and the acquired position information, the shape of the polygon outline on the frame buffer corresponding to the polygon outline is determined.By contour calculation meansThe second step of approximating with a curve and the image information at the storage position of the frame buffer surrounded by the approximated outlineBy image information storage meansThe third step of storing and reading out the image information stored in the frame buffer and passing it through the wide-angle lens onto the curved screenBy projection deviceAnd a fourth step of projecting.In addition, the coordinate calculation means calculates the storage position of the frame buffer in correspondence with the position on the curved screen when the three-dimensional object is viewed from a predetermined viewpoint position. The storage position is calculated based on the position information in the three-dimensional space and the projection position corresponding to the viewpoint position and the position of the wide-angle lens, and the viewpoint position and the projection position are made different.
[0019]
The information storage medium of the present invention includes a program for executing these first step to fourth step.
In addition, the image display program of the present invention performs these first to fourth steps on a computer to project an image of a three-dimensional object arranged in a virtual three-dimensional space onto a curved screen through a wide-angle lens. It is for execution.
[0020]
By executing the image display method of the present invention, or by executing the program stored in the information storage medium of the present invention or the image display program of the present invention, the outline of the polygon on the frame buffer is not linear. Since it is approximated by a curved shape, the outline of each polygon constituting the three-dimensional object projected on the curved screen can be made into a substantially straight shape with little distortion.
[0021]
  Also, two adjacent vertices that are included in the polygon are connected.On a straight lineThe coordinates of the intermediate point in the virtual three-dimensional space located atBy way of midpoint calculation meansThe fifth step of calculating, and the storage position of the frame buffer corresponding to each of the two vertices and intermediate points in the virtual three-dimensional spaceBy coordinate calculation meansA sixth step to calculate is inserted before the second step described above, and in the second step, the shape of the curve passing through each point on the frame buffer corresponding to each of the two vertices and intermediate points is It is desirable to decide. In this way, by performing curve approximation, the outline of each polygon constituting the actually projected three-dimensional object is brought close to a shape passing through a plurality of points arranged on the straight line, that is, a straight line with less distortion. be able to.
[0022]
Further, the curve used for the approximation process in the second step described above is an arc, and it is desirable that this approximation process is performed using the coordinates of one intermediate point. When curve approximation is performed using arcs, it is only necessary to add one intermediate point, so the amount of calculation necessary to perform curve approximation and the amount of calculation necessary to calculate the intermediate point are reduced. be able to.
[0023]
  Also,As described above, the coordinate calculation means isCorresponding to the position on the curved screen when viewing the 3D object from the specified viewpoint position, the storage position of the frame buffer isI'm calculating.When viewing a 3D object from the viewpoint position, the position on the curved screen that corresponds to the actual position is calculated, and the storage position of the frame buffer required to project the image at this position is calculated. An accurate image without distortion can be projected.
[0024]
  Also,As described above, the coordinate calculation means isBased on the position information of the 3D object in the virtual 3D space and the projection position corresponding to the viewpoint position or the position of the wide-angle lens, the storage position of the frame buffer is determined.I'm calculating.The three-dimensional shape and the display position of the three-dimensional object are determined by the relative state of the three-dimensional object in the virtual three-dimensional space with positional information, the viewpoint position, and the projection position. For this reason, an image with almost no distortion can be projected by calculating the storage position of the frame buffer based on the position information.
[0025]
  In addition, when the projection position is set to be shifted from the center position of the curved screen, the brightness correction is performed on the image information stored in the frame buffer in consideration of the distance between the projection position and the position to be projected on the curved screen. TheBy image information storage meansIt is desirable to insert the seventh step to be performed before the fourth step. By performing the brightness correction in consideration of the distance, it is possible to obtain an image with almost uniform brightness by eliminating the unevenness of brightness.
[0026]
Further, in the fourth step described above, the texture mapping process is performed in which the image information included in the texture data corresponding to the polygon is specified and stored in the frame buffer, and the texture coordinates corresponding to the storage position on the frame buffer are determined. In order to obtain the coordinates, it is desirable to obtain the coordinates in the polygon in the virtual three-dimensional space corresponding to the storage position and determine the texture coordinates corresponding to the coordinates. If the outline of the polygon in the frame buffer becomes a curved shape, the correspondence between the arbitrary position inside the polygon and the texture coordinates cannot be obtained, but the corresponding position in the polygon having the polygon shape in the virtual three-dimensional space By calculating, it becomes easy to take this correspondence, and necessary image information can be read out.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a game system according to an embodiment to which the present invention is applied will be described with reference to the drawings.
FIG. 1 is a diagram showing a configuration of the game system of the present embodiment. The game system shown in the figure includes a game apparatus 1, a projector 2, a lens 3, and a spherical screen 4.
[0028]
The game apparatus 1 performs various game calculations in response to operations by the player and generates image information for displaying a game image corresponding to the progress of the game. The projector 2 irradiates the spherical screen 4 with a game image based on the image information generated by the game apparatus 1. The lens 3 projects the game image emitted from the projector 2 onto the spherical screen 4. In this embodiment, a wide-angle lens, more specifically, a fish-eye lens with a projection angle of approximately 180 ° is used as the lens 3. The spherical screen 4 is a kind of curved screen and has a hemispherical projection surface, and a game image irradiated from the projector 2 and passed through the lens 3 is projected inside.
[0029]
Next, a detailed configuration of the game apparatus 1 will be described. The game device 1 shown in FIG. 1 includes an input device 10, a game calculation unit 20, an information storage medium 30, an image processing unit 40, and a circular frame buffer 50.
The input device 10 is for a player to input various instructions to the game apparatus 1 and includes various operation keys, operation levers, and the like corresponding to the type of game performed in the game apparatus 1. Yes. For example, the input device 10 provided for playing a drive game includes a handle, an accelerator, a brake, a shift lever, and the like.
[0030]
The game calculation unit 20 performs predetermined game calculations necessary for the progress of the game. The game calculation unit 20 includes an input determination unit 22, an event processing unit 24, and a game space calculation unit 26. The game calculation unit 20 is realized by executing a predetermined game program using a semiconductor memory such as a CPU, ROM, or RAM.
[0031]
The input determination unit 22 determines an operation state of a handle, an accelerator, a brake, or the like provided in the input device 10 and outputs a signal corresponding to the operation state to the event processing unit 24. The event processing unit 24 performs processes necessary for the progress of the game, such as occurrence of various events and branch determination corresponding to the progress of the game. The game space calculation unit 26 calculates position information of various three-dimensional objects existing in the game space that is a virtual three-dimensional space. Each of the three-dimensional objects in this embodiment is composed of a plurality of polygons, and the game space calculation unit 26 calculates the vertex coordinates of each polygon constituting the three-dimensional object.
[0032]
The information storage medium 30 is for storing a program and data for operating the game apparatus 1 having a function as a computer. Specifically, the information storage medium 30 stores a game program executed by the game calculation unit 20, data necessary for displaying a game image (texture data for texture mapping, etc.), and an image display program. The information storage medium 30 is realized by a CD-ROM, DVD-ROM, hard disk device, semiconductor memory, or the like.
[0033]
The image processing unit 40 receives the vertex coordinates of each polygon calculated by the game space calculation unit 26 in the game calculation unit 20, and displays an image on the circular frame buffer 50 in order to display an image on the spherical screen 4. Process to store information. The image processing unit 40 includes an intermediate point calculation unit 41, a coordinate conversion processing unit 42, an outline calculation unit 43, a texture mapping processing unit 44, and a shading processing unit 45. Normally, the image processing unit 40 is realized by using a dedicated graphic LSI, DSP, or the like. However, the CPU that realizes the game calculation unit 20 has high performance and has a sufficient processing capacity. In this case, the CPU may cause the image processing unit 40 to perform processing.
[0034]
The intermediate point calculation unit 41 receives the vertex coordinates of each polygon calculated by the game space calculation unit 26, and calculates the coordinates of the intermediate point on a straight line connecting two adjacent vertices.
The coordinate conversion processing unit 42 calculates which position on the spherical screen 4 the three-dimensional object actually corresponds to when viewing the three-dimensional object from the viewpoint position, and projects an image on the spherical screen 4. The storage position on the circular frame buffer 50 necessary for the calculation is calculated. Specifically, the coordinate conversion processing unit 42 receives the vertex coordinates of the polygon calculated by the game space calculation unit 26 and the coordinates of the intermediate point calculated by the intermediate point calculation unit 41. The coordinate conversion processing unit 42 calculates coordinates on the spherical screen 4 corresponding to each of these vertices and intermediate points, and further calculates the storage position of the circular frame buffer 50 using this calculation result.
[0035]
The contour calculation unit 43, based on the calculation result of the coordinate conversion processing unit 42, the shape of the polygonal contour on the circular frame buffer 50 corresponding to the contour of each polygon (each side of the polygon having a polygonal shape). Is calculated. In general, each polygon existing in the game space has a polygonal shape (for example, a triangular shape) in which each side is a straight line. However, since the shape of each side is distorted when projected onto the curved screen 4, the shape of each side on the circular frame buffer 50 is not a straight line but a curved line. Therefore, as in general 3D image processing, after calculating the storage position on the frame buffer for each vertex of the polygon, the shape of each side of the polygon is actually obtained by simply performing the texture mapping process. Will deviate from the shape. For this reason, in the present embodiment, each side of each polygon displayed on the spherical screen 4 from a predetermined viewpoint position is approximated by approximating the contour shape of each polygon on the circular frame buffer 50 with a curve. The device has been devised so as to be almost straight when looking at the shape. Specifically, the contour calculation unit 43 calculates the 3 based on the coordinates of the two adjacent vertices in each polygon and the midpoint existing on the straight line having the two vertices at both ends in the game space. The arc shape passing through the point is calculated. Hereinafter, each polygon shape in the game space will be described as a triangle.
[0036]
After the contour shape of each polygon on the circular frame buffer 50 is calculated by the contour line calculation unit 43, the texture mapping processing unit 44 pastes texture data inside the polygon defined by these contour lines ( Texture mapping process). Further, the shading processing unit 45 performs a shading correction process on the result of the texture mapping process. In this way, image information of each pixel included in a region (corresponding region on the circular frame buffer 50) surrounded by a plurality of (for example, three) vertex coordinates constituting each polygon is obtained. For example, color information represented by RGB data is used as image information.
[0037]
The circular frame buffer 50 stores the image information obtained by the image processing unit 40. Each storage position of the circular frame buffer 50 corresponds to each position to be projected on the spherical screen 4, and is specified by this image information by storing the image information at a predetermined position of the circular frame buffer 50. A color image is projected onto a corresponding position on the spherical screen 4.
[0038]
The projector 2 described above is a projection device, the intermediate point calculation unit 41 is an intermediate point calculation unit, the coordinate conversion processing unit 42 is a coordinate calculation unit, the contour calculation unit 43 is an outline calculation unit, a texture mapping processing unit 44, The shading processing unit 45 corresponds to the image information storage unit, and the game space calculation unit 26 corresponds to the object calculation unit.
[0039]
The game system of the present embodiment has such a configuration, and the operation thereof will be described next.
FIG. 2 is a flowchart showing an outline of the operation procedure of the game system of the present embodiment, and shows the flow of the entire game. Note that the series of processing shown in FIG. 2 is repeatedly performed at a period (for example, 1/60 second) corresponding to a predetermined display interval.
[0040]
When the input device 10 is operated and a game start instruction is given by the player, the game calculation unit 20 starts a predetermined game calculation based on the game program read from the information storage medium 30. Specifically, the input determination unit 22 in the game calculation unit 20 performs a predetermined input determination process for outputting a signal corresponding to the content of the operation performed by the player based on the signal output from the input device 10. Perform (step 100).
[0041]
Next, in response to the signal output from the input determination unit 22, the event processing unit 24 performs processing (event generation processing) for generating various events necessary for the game progress (step 101). In addition, the game space calculation unit 26 performs coordinate calculation of various three-dimensional objects existing in the game space in response to the event generation process performed by the event processing unit 24 (step 102). By this coordinate calculation, the vertex coordinates of a plurality of polygons constituting the three-dimensional object are calculated.
[0042]
When the coordinate calculation of each three-dimensional object is performed by the game space calculation unit 26 in this way and the position information of the three-dimensional object is acquired, the intermediate point calculation unit 41 in the image processing unit 40 is within each polygon. The coordinates of the intermediate point corresponding to the two adjacent vertices are calculated (step 103). In addition, the coordinate conversion processing unit 42 performs a predetermined coordinate conversion process for converting the vertex coordinates and intermediate point coordinates of the polygon into coordinates on the circular frame buffer 50 (step 104). In addition, the contour calculation unit 43 calculates the contour shape of each polygon on the circular frame buffer 50 based on the calculation result of the coordinate conversion processing unit 42 (step 105).
[0043]
Next, the texture mapping processing unit 44 and the shading processing unit 45 obtain image information (color information) to be stored in the circular frame buffer 50, and write this image information in the corresponding position of the circular frame buffer 50 (step 106). Specifically, a predetermined texture mapping process is performed by the texture mapping processing unit 44, and then a predetermined shading process is performed by the shading processing unit 45, whereby an area on the circular frame buffer 50 corresponding to each polygon is obtained. Image information is written.
[0044]
The image information written in the circular frame buffer 50 is read out in a predetermined scanning order and sent to the projector 2. The projector 2 forms an image based on this image information, and projects it on the spherical screen 4 through the lens 3 (step 107).
[0045]
In this way, a new game image is generated at a predetermined repetition period and projected onto the spherical screen 4. In the above description of the operation, the drawing process is performed by performing the series of processes shown in FIG. 2 at a cycle corresponding to the display interval. However, the display interval and the repetition interval of the drawing process do not necessarily match. Good. In addition, when the drawing process is in time for the display timing, the drawing process is performed in synchronization with each display timing, and when the drawing process is not in time, the same screen display is performed. May not match.
[0046]
Next, details of the intermediate point calculation process in step 103, the coordinate conversion process in step 104, the contour calculation process in step 105, and the texture mapping process in step 106 will be described.
(1) Intermediate point calculation processing
3 and 4 are diagrams showing an outline of the midpoint calculation process performed in the midpoint calculation unit 41. FIG. In these figures, the point P0, P1Indicates two vertices included in one polygon arranged in the game space.
[0047]
In the case of performing the simplest calculation, as shown in FIG.0, P1The coordinates of the intermediate point P ′ in the game space are calculated. In this case, the coordinates of the intermediate point P ′ are simply two vertices P0, P1It is obtained by calculating the arithmetic mean of each coordinate value.
[0048]
In addition, the position on the circular frame buffer 50 corresponding to the above-described intermediate point P ′ is the vertex P.0, P1Are not equidistant from each vertex on the circular frame buffer 50 corresponding to. Therefore, as shown in FIG.r(For example, coincident with the ball center) and two vertices P0, P1It is desirable to calculate the coordinates of an intermediate point P ″ that bisects the projection angle formed by the two vertexes P ″ by using such an intermediate point P ″.0, P1Since the distance from each of the vertices on the circular frame buffer 50 corresponding to to the intermediate point on the circular frame buffer 50 corresponding to the intermediate point P ″ can be set to be approximately equal, an interpolation process is performed in step 105. It is possible to reduce an error when obtaining the contour line.
[0049]
Specifically, vertex P0, P1The distance from the center point P ″ to the intermediate point P ″ is L1 and L2, respectively.0, P1L3 and L4 satisfy the relationship of L1: L2 = L3: L4 because of the property of the bisector of the triangle. Sphere and two vertices P0, P1The coordinates of the intermediate point P ″ can be obtained by performing a simple calculation.
[0050]
(2) Coordinate conversion process
FIG. 5 is a diagram showing a drawing range of the circular frame buffer 50. The projector 2 according to the present embodiment has a rectangular image whose image projection range is horizontally long (for example, the aspect ratio is 3: 4), and a portion of the image is drawn corresponding to an image projected onto the spherical screen 4. Used as a region. This figure corresponds to a case where a projection plane S of FIG. 6 described later is viewed from the positive direction of the z axis (upper side in FIG. 6) toward the origin.
In FIG. 5, the rectangular area 200 corresponds to the projection range of the projector 2. Further, the circular area 210 corresponds to the range actually projected onto the spherical screen 4 through the lens 3. Therefore, in the present embodiment, image information is written only for the range included in the circular area 210 in the coordinates of the circular frame buffer 50.
[0051]
As shown in FIG. 5, the horizontal axis is the X axis and the vertical direction is the Y axis. The center (circular center) of the circular area 210 is the origin O, and the radius of the circular area 210 is R. The image information stored at an arbitrary point F (X, Y) in the circular frame buffer 50 is the point P on the spherical screen 4.dProjected on.
[0052]
(2-1) When both the viewpoint position and the projection position are set to the spherical center position of the spherical screen 4
FIG. 6 is a diagram showing an outline of the coordinate conversion process. As shown in the figure, the hemispherical projection surface corresponding to the spherical screen 4 is set as S, and the spherical center of the projection surface S is set as the origin o. Further, the z axis is defined from the origin o toward the center of the projection surface S, and the x axis and the y axis are defined perpendicular to the z axis. Furthermore, in this example, the viewpoint position P of the playereAnd projection position (position of lens 3) PrIs coincident with the origin o.
[0053]
Arbitrary point P in the game space which is a three-dimensional spacep(Xp, Yp, Zp) To a point F (X, Y) on the circular frame buffer 50. In FIG. 6, a point P in the game spacep(Xp, Yp, Zp) From the origin o, this point Pp And the intersection of the projection plane S and the straight line connecting the origin od(Xd, Yd, Zd). If the radius of the hemisphere corresponding to the projection plane S is r, xd, Yd, ZdAre represented by the following equations, respectively.
[0054]
[Expression 1]
Figure 0004726347
[0055]
In FIG. 6, the origin o and the point PdAssuming that the angle between the straight line connecting the z axis and the z axis is θ, this angle θ is expressed by the following equation.
[0056]
[Expression 2]
Figure 0004726347
[0057]
In the lens 3 used in the present embodiment, when the point F (X, Y) shown in FIG. 5 is projected onto the projection surface S, the distance L from the origin O to the point F is proportional to the angle θ shown in FIG. It has the characteristic to do. Therefore, L = 0 when θ = 0, and L = R when θ = π / 2, and the distance L corresponding to an arbitrary angle θ between them can be expressed by the following equation.
[0058]
L = θ / (π / 2) × R
In FIG. 5, the angle formed by the straight line connecting the origin O and the point F (X, Y) on the circular frame buffer 50 and the X axis is Φ. In FIG. 6, the point Pd(Xd, Yd, Zd) Mapping point P to xy planed′ (Xd, Yd, 0) and the angle between the straight line connecting the origin o and the x-axis is φ. The angle Φ is equal to the angle φ. Here, cosφ and sinφ can be expressed by the following equations.
[0059]
[Equation 3]
Figure 0004726347
[0060]
The point F (X, Y) is a point P on the projection plane S.d(Xd, Yd, Zd) Can be expressed as follows using the coordinate values of each axis.
[0061]
[Expression 4]
Figure 0004726347
[0062]
Therefore, the vertex P of each polygon constituting the three-dimensional object arranged in the game spacep(Xp, Yp, Zp) Is known, in order to calculate the storage position of the corresponding circular frame buffer 50, the coordinate conversion processing unit 42 first calculates the vertex Pp(Xp, Yp, Zp) To the point P on the projection plane S by substituting the coordinate value of () into the above-described equations (1) to (3).d(Xd, Yd, Zd). Thereafter, the coordinate transformation processing unit 42 obtains the point P obtained by this calculation.d(Xd, Yd, Zd) Is substituted into the above-described equations (4) and (5), and a point F (X, Y) on the circular frame buffer 50 is calculated. Further, the storage position of the circular frame buffer 50 is calculated for the intermediate point P ′ or P ″ shown in FIGS. 3 and 4 by the same procedure.
[0063]
In this way, the storage position of the circular frame buffer 50 corresponding to each vertex and intermediate point of each polygon of the three-dimensional object is calculated. In particular, the coordinate transformation process performed in this way is performed accurately using the position, viewpoint position, and projection position of the three-dimensional object in the game space. It is possible to obtain the storage position of the circular frame buffer 50 necessary for projecting a non-accurate game image on the spherical screen 4.
[0064]
FIG. 7 is a diagram showing a correspondence relationship between the vertexes of the polygons stored in the circular frame buffer 50 and the intermediate points. For example, assuming that a triangular polygon is used, the vertexes on the circular frame buffer 50 corresponding to each of the three vertices are represented by F.a, Fb, FcAnd Further, the intermediate points on the circular frame buffer 50 corresponding to the three intermediate points sandwiched between two adjacent vertices are denoted by F.1, F2, FThreeAnd As shown in FIG. 7, when attention is paid to two adjacent vertices and an intermediate point sandwiched between them, these three points are not arranged on a straight line.
[0065]
(2-2) When only the projection position is shifted from the spherical center of the spherical screen 4
In the above description, the viewpoint position PeAnd projection position PrHas been considered to coincide with the spherical center of the spherical screen 4, but in reality, it is difficult to realize such a positional relationship. When a practical geometric arrangement is considered, if the player tries to show a highly realistic game image using the spherical screen 4, the player's viewpoint position is set near the spherical center of the spherical screen 4. Is desirable. Therefore, in this case, the projection position PrNeeds to be shifted from the spherical center of the spherical screen 4.
[0066]
FIG. 8 is a diagram showing an outline of the coordinate conversion processing when the projection position is shifted from the spherical center position of the spherical screen 4. The coordinate axes shown in the figure are the same as those shown in FIG. Projection position Pr(Xr, Yr, Zr) Is set at a predetermined position other than the spherical center of the spherical screen 4 (for example, above the player's head). The origin of the circular frame buffer 50 is the projection position P.rIn order to distinguish from the display of coordinate axes in the case of (2-1) described above (see FIG. 5), the origin is O ′, the horizontal axis is the X ′ axis, and the vertical direction is the vertical direction. The axis along the axis is represented as Y ′ axis.
[0067]
As described in (2-1) above, the viewpoint position P is set at the position of the origin o corresponding to the spherical center of the spherical screen 4.eAre matched, the point P in the game spacep(Xp, Yp, Zp) Is a point P on the projection plane Sd(Xd, Yd, Zd). That is, an arbitrary projection position PrTo point P on the spherical screen 4d(Xd, Yd, Zd) Is projected onto the viewpoint position P.eFrom point P in the game spacep(Xp, Yp, Zp) Will be recognized.
[0068]
Therefore, an arbitrary projection position PrCorresponding to the point P, a coordinate conversion process similar to the procedure described in (2-1) above is performeddTo the projection position PrTo point PdThe point F ′ (X ′, Y ′) on the circular frame buffer 50 required for projection onto the frame can be obtained. However, the projection position PrWhen x is shifted from the origin o, the x ′, y ′, and z ′ axes are translations of the original x, y, and z axes, and there is no rotation around the axes. Xr 2+ Yr 2+ Zr 2<R2Projection position P within a range satisfying (radius r from origin o)rIs set.
[0069]
In FIG. 8, the projection position PrAnd point PdIf the angle between the straight line connecting the z ′ axis and the z ′ axis is θ ′, the angle θ ′ is expressed by the following equation.
[0070]
[Equation 5]
Figure 0004726347
[0071]
In addition, an angle formed by a straight line connecting the origin O ′ and the point F ′ (X ′, Y ′) on the circular frame buffer 50 and the X ′ axis is Φ ′, and in FIG.d(Xd, Yd, Zd) To the x′y ′ planed″ (Xd-Xr, Yd-Yr, 0) and point PrIf the angle between the straight line connecting x and the x ′ axis is φ ′, these angles Φ ′ and φ ′ are equal. Here, cos φ ′ and sin φ ′ can be expressed by the following equations.
[0072]
[Formula 6]
Figure 0004726347
[0073]
Further, the point P on the projection plane Sd(Xd, Yd, Zd) Is obtained based on the above-described equations (1) to (3).
A point F ′ (X ′, Y ′) is a point P on the projection plane S.d(Xd, Yd, Zd) And projection position Pr(Xr, Yr, Zr) Can be expressed as follows using each coordinate value.
[0074]
[Expression 7]
Figure 0004726347
[0075]
Therefore, the vertex P of each polygon constituting the three-dimensional object arranged in the game spacep(Xp, Yp, Zp) Is known, in order to calculate the storage position on the corresponding circular frame buffer 50, the coordinate conversion processing unit 42 first starts the vertex Pp(Xp, Yp, Zp) To the point P on the projection plane S by substituting the coordinate value of () into the above-described equations (1) to (3).d(Xd, Yd, Zd). Thereafter, the coordinate transformation processing unit 42 obtains the point P obtained by this calculation.d(Xd, Yd, Zd) Is substituted into the above-described equations (7) and (8), and the coordinates of the point F ′ (X ′, Y ′) on the circular frame buffer 50 are calculated. Further, the storage position of the circular frame buffer 50 is calculated for the intermediate point P ′ or P ″ shown in FIGS. 3 and 4 by the same procedure.
[0076]
In this way, the storage position on the circular frame buffer 50 corresponding to each vertex and intermediate point of each polygon of the three-dimensional object is calculated. In particular, the coordinate conversion processing performed in this way is accurately performed using the position, viewpoint position, and projection position of the three-dimensional object in the game space, and therefore when the projection position is moved to an arbitrary position. However, it is possible to obtain the storage position of the circular frame buffer 50 necessary for projecting an accurate game image, which is theoretically free of distortion when viewed from the viewpoint position, onto the spherical screen 4.
[0077]
In FIG. 8 described above, the projection position P is shown for convenience of explanation.rIs zrAlthough drawn in the region of ≧ 0, in reality, since the projection angle of the lens 3 is 180 degrees, in order to display the game image on the entire spherical screen 4, the projection position PrIs zrIt is desirable to set in the range of ≦ 0.
[0078]
In addition, the fisheye lens used as the lens 3 of the present embodiment is generally characterized by a wide range of focus because the depth of focus is deep. For this reason, even when the projection position is shifted, the entire game image displayed on the spherical screen 4 is almost in focus.
[0079]
(2-3) When both the viewpoint position and the projection position are shifted from the spherical center of the spherical screen 4
By the way, in the description in (2-2) above, the projection position PrIs set at a position deviated from the spherical center position of the spherical screen 4, but in reality, the viewpoint position P of the player iseHowever, there is a case where it is desired to shift from the spherical center position of the spherical screen 4. Hereinafter, a case where both the viewpoint position and the projection position are set so as to be shifted from the spherical center position of the spherical screen 4 will be described.
[0080]
FIG. 9 is a diagram showing an outline of the coordinate conversion process when the viewpoint position and the projection position are shifted from the spherical center position of the spherical screen 4. The coordinate axes shown in the figure are the same as those shown in FIG. Viewpoint position Pe, Projection position PrBoth are set at predetermined positions other than the spherical center of the spherical screen 4. The origin of the circular frame buffer 50 is the projection position P.rTherefore, in order to distinguish from the display of the coordinate axes in the case of (2-1) described above (see FIG. 5), the origin is set to O ′ and the horizontal as in the case of (2-2) described above. The axis along the direction is represented as the X ′ axis, and the axis along the vertical direction is represented as the Y ′ axis.
[0081]
In FIG. 9, a point P in the game spacep(Xp, Yp, Zp) And viewpoint position Pe(Xe, Ye, Ze) Is represented by the following formula.
[0082]
[Equation 8]
Figure 0004726347
[0083]
Further, the hemisphere corresponding to the projection plane S is represented by the following sphere equation (where z ≧ 0).
x2+ Y2+ Z2= R2                                      …(Ten)
Viewpoint position PeTo point P in the game spacep(Xp, Yp, Zp), This point Pp Point P on the projection plane S corresponding tod(Xd, Yd, Zd) Can be obtained by calculating the coordinates of the intersection point of the straight line shown in equation (9) and the hemisphere shown in equation (10).
[0084]
Specifically, the following equations are derived by modifying equation (9).
[0085]
[Equation 9]
Figure 0004726347
[0086]
Substituting equations (11) and (12) into equation (10) yields the following equation:
((xp-Xe)2+ (Yp-Ye)2+ (Zp-Ze)2) × x2
-2 × ((yp-Ye) × (xeXyp-YeXp) + (Zp-Ze)
× (xeXzp-ZeXp)) × x
+ ((XeXyp-YeXp)2+ (XeXzp-ZeXp)2
-R2× (xp-Xe)2) = 0 (13)
here,
a = (xp-Xe)2+ (Yp-Ye)2+ (Zp-Ze)2
b = (yp-Ye) × (xeXyp-YeXp) + (Zp-Ze) × (xeXzp-ZeXp)
c = (xeXyp-YeXp)2+ (XeXzp-ZeXp)2-R2× (xp-Xe)2
In other words, the solution of the above equation (13) is expressed as the following equation.
[0087]
[Expression 10]
Figure 0004726347
[0088]
Therefore, the point P in the game spacep(Xp, Yp, Zp) And viewpoint position Pe(Xe, Ye, Ze) To calculate the point (14) on the projection plane S by calculating the equation (14).dX coordinate value (xd) Is required. Further, by substituting the equation (14) into the above equations (11) and (12), the point PdY coordinate value (yd), Z-coordinate value (zd) Is required.
[0089]
When the x coordinate value is actually calculated using equation (14), two solutions x1, X2Is obtained. One of these two solutions x1By substituting (11) and (12) respectively for the corresponding y coordinate value (y1) And z-coordinate values (z1) Is obtained. As a result, point PdThe coordinate value of is (x1, Y1, Z1) The other solution x2By substituting (11) and (12) respectively for the corresponding y coordinate value (y2) And z-coordinate values (z2) Is obtained. As a result, point PdThe coordinate value of is (x2, Y2, Z2) Of these two coordinate values, the necessary solution is the point PeTo each coordinate value (x1, Y1, Z1) And (x2, Y2, Z2), The viewpoint position PeTo point Pp Coordinate values corresponding to vectors having the same orientation as the vector going to are selected.
[0090]
In this way, the point Pd(Xd, Yd, Zd) Can be obtained. Thereafter, by substituting this coordinate value into the above-described equations (7) and (8), the projection position PrTo point P on the projection plane SdThe coordinates of the point F ′ (X ′, Y ′) on the circular frame buffer 50 necessary for projecting an image on the frame can be obtained.
[0091]
Therefore, the vertex P of each polygon constituting the three-dimensional object arranged in the game spacep(Xp, Yp, Zp) Is known, in order to calculate the storage position on the corresponding circular frame buffer 50, the coordinate conversion processing unit 42 first starts the vertex Pp(Xp, Yp, Zp) Coordinate value and viewpoint position Pe(Xe, Ye, Ze) To calculate the above-described equation (14) and the like to obtain a point P on the projection plane S.d(Xd, Yd, Zd). Thereafter, the coordinate transformation processing unit 42 obtains the point P obtained by this calculation.d(Xd, Yd, Zd) Is substituted into the above-described equations (7) and (8), and the coordinates of the point F ′ (X ′, Y ′) on the circular frame buffer 50 are calculated. Further, the storage position of the circular frame buffer 50 is calculated for the intermediate point P ′ or P ″ shown in FIGS. 3 and 4 by the same procedure.
[0092]
In this way, the storage position on the circular frame buffer 50 corresponding to each vertex and intermediate point of each polygon of the three-dimensional object is calculated. In particular, the coordinate conversion processing performed in this way is accurately performed using the position, viewpoint position, and projection position of the three-dimensional object in the game space, and thus the viewpoint position and projection position are moved to an arbitrary position. Even in this case, it is possible to obtain the storage position of the circular frame buffer 50 necessary for projecting an accurate game image that is theoretically free of distortion when viewed from the viewpoint position onto the spherical screen 4.
[0093]
In FIG. 9 described above, the projection position P is also shown for convenience of explanation.rIs zrAlthough it was drawn in the region of ≧ 0, for the same reason as in the case of (2-2) described above, the actual projection position PrIs zrIt is desirable to set in the range of ≦ 0.
(3) Outline calculation processing
FIG. 10 is a diagram showing an outline of polygon contour calculation processing by the contour calculator 43. In FIG. 10, the mapping on the circular frame buffer 50 of the two vertices included in the polygon is F.a(Xa, Ya), Fb(Xb, Yb), And the intermediate point between them is F1(X1, Y1). These three points Fa, F1, FbThe center of the circle passing through E (X0, Y0), Let the radius of this circle be R1.
[0094]
E (X0, Y0)
(XX0)2+ (Y-Y0)2= R12                      (15)
It becomes. In this circle equation, 3 points Fa, F1, FbThe following simultaneous equations can be obtained by substituting the coordinate values of.
[0095]
(Xa-X0)2+ (Ya-Y0)2= R1 2
(Xb-X0)2+ (Yb-Y0)2= R1 2
(X1-X0)2+ (Y1-Y0)2= R1 2
By solving these simultaneous equations,
Y0= (I * j-g * h) / (2 * (YaXg-Y1Xg-Y1Xi + YbXi))
X0= (H + 2 × Ya× Y0-2 x Y1× Y0) / I
R1= √ ((Xa-X0)2+ (Ya-Y0)2)
Is obtained. here,
g = -2 × X1+ 2 × Xb
h = −Xa 2+ X1 2-Ya 2+ Y1 2
i = -2 × Xa+ 2 × X1
j = -X1 2+ Xb 2-Y1 2+ Yb 2
And
[0096]
In this manner, the contour calculation unit 43 determines the three points F by determining the equation of the circle.a, F1, FbThe shape of the contour line passing through (arc shape) is determined.
(4) Texture mapping processing
FIG. 11 is a diagram showing an outline of the texture mapping process. As shown in FIG. 11, in the present embodiment, the vertex F corresponding to each of the three vertices of the polygon.a, Fb, FcEach contour line connecting each of the two is approximated by a circular arc, and the inside thereof becomes a drawing area in which image information is written corresponding to one polygon.
[0097]
The texture mapping processing unit 44 uses the upper end (Ymax) To bottom (Ymin) In order, and image information of each pixel included in a region sandwiched between contour lines approximated by an arc shape is generated.
The generation of the image information is performed using a general texture mapping technique. That is, it is performed by obtaining the data corresponding to the drawing position in the polygon from the separately prepared texture data (texture image information corresponding to the polygon).
[0098]
By the way, in the conventional texture mapping processing, the polygon shape on the frame buffer also has a polygon shape, so when obtaining texture coordinates corresponding to an arbitrary drawing position in the polygon, only a simple linear interpolation operation is performed. It was good. However, in the present embodiment, the polygonal shape on the circular frame buffer 50 is such that the contour line is approximated by an arc shape, and thus texture coordinates corresponding to an arbitrary drawing position cannot be obtained by a simple linear interpolation operation.
[0099]
FIG. 12 is a diagram showing an outline of a processing procedure for obtaining texture coordinates corresponding to an arbitrary drawing position on the circular frame buffer 50 by the texture mapping processing unit 44.
First, the texture mapping processing unit 44 determines the coordinates of the drawing point F ′ on the circular frame buffer 50 from which image information is to be generated, and then the corresponding position P in the polygon arranged in the game space.p′ Is calculated. Next, the texture mapping processing unit 44 uses the corresponding position P in the polygon.pBased on ′, the texture coordinate T is calculated. Since the polygon in the game space has a triangular shape with three vertices surrounded by a straight line, the specific position P in this polygon ispThe texture coordinate T corresponding to ′ can be obtained by a simple linear interpolation operation.
[0100]
As described above, in the game system of this embodiment, when writing image information of a three-dimensional object composed of a plurality of polygons into the circular frame buffer 50, the polygonal outline shape represented by the polygon is approximated by an arc. is doing. Therefore, the shape of the three-dimensional object in the game space can be accurately reproduced, and distortion of the image projected on the spherical screen 4 can be reduced.
[0101]
In addition, this invention is not limited to the said embodiment, A various deformation | transformation implementation is possible within the range of the summary of this invention. For example, in the above-described embodiment, (2-1) when both the viewpoint position and the projection position are matched with the spherical center position of the spherical screen 4, (2-2) when only the projection position is shifted and set (2 -3) The coordinate conversion processing method has been described for each of the case where the viewpoint position and the projection position are set to be shifted. However, by applying these, only the viewpoint position is set to be shifted from the spherical center of the spherical screen 4. Even in this case, image information for displaying a game image with less distortion can be generated.
[0102]
Specifically, as described in the case where both the viewpoint position and the projection position shown in (2-3) above are set in a shifted manner, each polygon constituting each three-dimensional object arranged in the game space. The vertex coordinates of the point Pp(Xp, Yp, Zp) As these coordinate values and viewpoint position Pe(Xe, Ye, Ze) By using the coordinate values of (14) and the like to calculate the point P on the projection plane S.d(Xd, Yd, Zd) Is obtained. Thereafter, the storage position on the circular frame buffer 50 may be obtained by calculating the above-described equations (4) and (5) based on these coordinate values.
[0103]
In addition, the projection position PrIs set to be shifted from the spherical center position of the spherical screen 4 (in the case of (2-2) and (2-3) described above), the projection position PrTo position P on the spherical screen 4dBrightness correction may be performed on the image information stored in the circular frame buffer 50.
[0104]
FIG. 13 is a diagram for explaining a modified example in which brightness correction is performed, and shows a state in which the cross section of the spherical screen 4 is simplified. Projection position PrIs shifted from the spherical center position Q of the spherical screen 4, the projection position PrTo an arbitrary position on the spherical screen 4 is not equidistant. For example, as shown in FIG.rTo a certain point P on the spherical screen 4d1Distance D1 and another point Pd2This is greatly different from the distance D2. Projection position PrSince the intensity of the light (light corresponding to each pixel constituting the game image), that is, the brightness is inversely proportional to the square of the distance, the brightness of the game image displayed on the spherical screen 4 is A bias will occur.
[0105]
Thus, for example, the projection position PrBy setting a predetermined coefficient inversely proportional to the square of the distance from the position to the position on the spherical screen 4 and multiplying this by the image information stored in the circular frame buffer 50, the brightness of the image information is corrected. It can be carried out. Thereby, it is possible to reduce the unevenness of the brightness of the game image and project a higher quality game image.
[0106]
As a simpler method, for example, the projection position PrA predetermined coefficient inversely proportional to the distance from the position to the position on the spherical screen 4 may be set, and this may be multiplied with the image information stored in the circular frame buffer 50. In this case, the unevenness of the brightness of the game image can be reduced to some extent, and the calculation amount required for the brightness correction can be reduced. Also, since the projection angle has a predetermined correlation with the distance from the projection position to the position projected on the spherical screen 4, brightness correction may be performed using the projection angle instead of the distance. The brightness correction process as described above can be performed by the shading processing unit 45 in the image processing unit 40.
[0107]
In the above-described embodiment, the case where an image is projected onto a spherical screen, which is a kind of curved screen, has been described. However, when a three-dimensional object placed in the game space is viewed from a viewpoint position, When the projected position is obtained by calculation, the present invention can be applied to the case where an image is displayed on a curved screen other than a spherical surface. For example, the image may be projected onto a curved screen having a projection surface obtained by cutting a rotating body obtained by rotating an ellipse in half. Even when such a curved screen is used, a position projected on the curved screen is calculated based on position information of a three-dimensional object arranged in the game space, and an image is further displayed at the calculated position. By calculating the storage position on the circular frame buffer 50 necessary for projecting the image, it is possible to display an image with almost no distortion.
[0108]
In the above-described embodiment, the polygon outline is approximated using a circle equation, but may be approximated using other curves. For example, the case where it approximates using a spline curve and another function can be considered. In these cases, for example, if each coefficient of the approximate function can be determined by specifying N points, (N−2) intermediate points excluding two vertices are set in the game space. Calculate with By obtaining the storage position of the circular frame buffer 50 corresponding to these intermediate points, the approximate function can be obtained by the same procedure as in the above-described embodiment.
[0109]
In the above-described embodiment, an example in which the present invention is applied to a game system has been described. However, the present invention is applied to various apparatuses that project a three-dimensional image using a three-dimensional object onto a curved screen. Can do. For example, the present invention can be applied to a device that makes a presentation using a three-dimensional object, various simulator devices such as a flight simulator, and the like.
[0110]
【The invention's effect】
As described above, according to the present invention, by approximating the polygon outline on the frame buffer with a curved shape instead of a linear shape, the outline of each polygon constituting the three-dimensional object projected on the curved screen is obtained. It is possible to make a substantially linear shape with little distortion.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of a game system according to an embodiment.
FIG. 2 is a flowchart showing an outline of an operation procedure of the game system.
FIG. 3 is a diagram showing an outline of intermediate point calculation processing;
FIG. 4 is a diagram showing an outline of intermediate point calculation processing;
FIG. 5 is a diagram illustrating a drawing range of a circular frame buffer.
FIG. 6 is a diagram showing an outline of a coordinate conversion process.
FIG. 7 is a diagram illustrating a correspondence relationship between a vertex and a middle point of a polygon on a circular frame buffer.
FIG. 8 is a diagram showing an overview of coordinate conversion processing when only the projection position is shifted from the spherical center of a spherical screen.
FIG. 9 is a diagram showing an outline of coordinate conversion processing when the viewpoint position and the projection position are shifted from the spherical center of the spherical screen.
FIG. 10 is a diagram showing an outline of polygon outline calculation processing;
FIG. 11 is a diagram showing an outline of texture mapping processing;
FIG. 12 is a diagram showing an outline of a processing procedure for obtaining texture coordinates corresponding to an arbitrary drawing position on a circular frame buffer.
FIG. 13 is a diagram illustrating a modified example in which brightness correction is performed.
[Explanation of symbols]
1 Game device
2 Projector
3 Lens
4 Spherical screen
10 Input device
20 Game calculator
22 Input determination unit
24 Event processing section
26 Game Space Calculation Unit
30 Information storage media
40 Image processing unit
41 Midpoint calculation unit
42 Coordinate transformation processing unit
43 Outline calculation unit
44 Texture mapping processor
45 Shading processor
50 circular frame buffer

Claims (24)

仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影する画像表示装置であって、
前記曲面スクリーン上に投影すべき位置と画像情報の格納位置とが対応したフレームバッファと、
前記フレームバッファに格納された前記画像情報に対応する画像を前記広角レンズに向けて照射する投影装置と、
前記三次元オブジェクトを構成するポリゴンの輪郭線に対応する前記フレームバッファ上のポリゴンの輪郭線の形状を曲線で近似する輪郭線算出手段と、
前記輪郭線算出手段によって近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を格納する画像情報格納手段と、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を計算する座標計算手段と、
を備え、前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする画像表示装置。
An image display device that projects an image of a three-dimensional object arranged in a virtual three-dimensional space onto a curved screen through a wide-angle lens,
A frame buffer in which a position to be projected on the curved screen corresponds to a storage position of image information;
A projection device that irradiates an image corresponding to the image information stored in the frame buffer toward the wide-angle lens;
Contour calculating means for approximating the shape of the polygon outline on the frame buffer corresponding to the polygon outline constituting the three-dimensional object by a curve;
Image information storage means for storing image information of the corresponding three-dimensional object in the storage position of the frame buffer surrounded by the outline approximated by the outline calculation means;
Coordinate calculation means for calculating the storage position of the frame buffer in correspondence with the position on the curved screen when the three-dimensional object is viewed from a predetermined viewpoint position;
The coordinate calculation means calculates the storage position based on position information of the three-dimensional object in the virtual three-dimensional space and a projection position corresponding to the viewpoint position and the position of the wide-angle lens. And
An image display device, wherein the viewpoint position and the projection position are different.
請求項1において、
前記ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を算出する中間点算出手段をさらに備え、
前記座標計算手段は、前記仮想的な三次元空間内における前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を計算し、
前記輪郭線算出手段は、前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る曲線の形状を決定することを特徴とする画像表示装置。
In claim 1,
An intermediate point calculating means for calculating coordinates of an intermediate point in the virtual three-dimensional space located on a straight line connecting two adjacent vertices included in the polygon;
The coordinate calculation means calculates a storage position of the frame buffer corresponding to each of the two vertices and the intermediate point in the virtual three-dimensional space,
The image display device, wherein the contour calculation means determines a shape of a curve passing through each point on the frame buffer corresponding to each of the two vertices and the intermediate point.
請求項2において、
前記曲線の形状を決定するためにN個の点を指定する必要がある場合に、前記中間点算出手段は、少なくとも(N−2)個の前記中間点の座標を算出することを特徴とする画像表示装置。
In claim 2,
When it is necessary to designate N points for determining the shape of the curve, the intermediate point calculation means calculates at least (N-2) coordinates of the intermediate points. Image display device.
請求項2または3において、
前記曲線は円弧であり、前記中間点算出手段は、1個の前記中間点の座標を算出することを特徴とする画像表示装置。
In claim 2 or 3,
The curved line is an arc, and the intermediate point calculation means calculates the coordinates of one intermediate point.
請求項2〜4のいずれかにおいて、
前記中間点算出手段は、前記広角レンズの位置に対応する投影位置と前記2つの頂点のそれぞれとを結ぶ2つの線分のなす角を、前記投影位置と前記中間点とを結ぶ線分によって2等分するように前記中間点を設定することを特徴とする画像表示装置。
In any one of Claims 2-4,
The intermediate point calculating means calculates an angle formed by two line segments connecting the projection position corresponding to the position of the wide-angle lens and each of the two vertices by a line segment connecting the projection position and the intermediate point. An image display device, wherein the intermediate point is set so as to be equally divided.
請求項2〜5のいずれかにおいて、
前記広角レンズは魚眼レンズであることを特徴とする画像表示装置。
In any one of Claims 2-5,
The image display device according to claim 1, wherein the wide-angle lens is a fish-eye lens.
請求項1〜6のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、
前記画像情報格納手段は、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を行うことを特徴とする画像表示装置。
In any one of Claims 1-6,
When the projection position is set to be shifted from the center position of the curved screen,
The image information storage means performs brightness correction on the image information stored in the frame buffer in consideration of a distance between the projection position and a position to be projected on the curved screen. apparatus.
請求項1〜7のいずれかにおいて、
前記画像情報格納手段は、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする画像表示装置。
In any one of Claims 1-7,
The image information storage means performs texture mapping processing for specifying image information included in texture data corresponding to the polygon and storing the image information in the frame buffer, and sets the texture coordinates corresponding to the storage position on the frame buffer. In order to obtain, an image display apparatus characterized by obtaining coordinates in the polygon in the virtual three-dimensional space corresponding to the storage position, and determining the texture coordinates corresponding to the coordinates.
請求項1〜8のいずれかにおいて、
所定の間隔毎に前記仮想的な三次元空間内における前記ポリゴンの頂点の座標を計算するオブジェクト計算手段をさらに備え、
前記フレームバッファに対する前記画像情報の格納処理を前記間隔で繰り返すことを特徴とする画像表示装置。
In any one of Claims 1-8,
An object calculating means for calculating coordinates of vertexes of the polygon in the virtual three-dimensional space at predetermined intervals;
An image display device characterized in that the storage processing of the image information in the frame buffer is repeated at the intervals.
三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第1のステップと、
前記第1のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第2のステップと、
前記第2のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第3のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、広角レンズを通して曲面スクリーン上に投影装置によって投影する第4のステップと、
を有し、前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする画像表示方法。
A first step of acquiring position information in a virtual three-dimensional space of each vertex included in a polygon constituting the three-dimensional object by calculation by a game space calculation means;
A second step of approximating the shape of the polygon outline on the frame buffer corresponding to the polygon outline on the basis of the position information acquired in the first step by a contour calculation means;
A third step of storing image information of the corresponding three-dimensional object by the image information storage means in the storage position of the frame buffer surrounded by the outline approximated in the second step;
A fourth step of reading out the image information stored in the frame buffer and projecting the image information onto a curved screen through a wide-angle lens;
And corresponding to the position on the curved screen when the three-dimensional object is viewed from a predetermined viewpoint position, the storage position of the frame buffer is calculated by the coordinate calculation means,
The coordinate calculation means calculates the storage position based on position information of the three-dimensional object in the virtual three-dimensional space, and a projection position corresponding to the viewpoint position and the position of the wide-angle lens,
An image display method, wherein the viewpoint position and the projection position are made different.
請求項10において、
前記ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第5のステップと、
前記仮想的な三次元空間内における前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第6のステップと、
を前記第2のステップの前に挿入し、
前記第2のステップにおいて、前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る曲線の形状を決定することを特徴とする画像表示方法。
In claim 10,
A fifth step of calculating by the intermediate point calculating means the coordinates of the intermediate point in the virtual three-dimensional space located on a straight line connecting two adjacent vertices included in the polygon;
A sixth step of calculating the storage position of the frame buffer corresponding to each of the two vertices and the intermediate point in the virtual three-dimensional space by the coordinate calculation means;
Before the second step,
In the second step, a shape of a curve passing through each point on the frame buffer corresponding to each of the two vertices and the intermediate point is determined.
請求項11において、
前記第2のステップにおける近似処理に用いられる前記曲線は円弧であり、1個の前記中間点の座標を用いてこの近似処理が行われることを特徴とする画像表示方法。
In claim 11,
2. The image display method according to claim 1, wherein the curve used for the approximation process in the second step is a circular arc, and the approximation process is performed using the coordinates of one intermediate point.
請求項10〜12のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第7のステップを、前記第4のステップの前に挿入することを特徴とする画像表示方法。
In any one of Claims 10-12,
The image information stored in the frame buffer in consideration of the distance between the projection position and the position to be projected onto the curved screen when the projection position is set to be shifted from the center position of the curved screen. A seventh step of performing brightness correction on the image information storage means is inserted before the fourth step.
請求項10〜13のいずれかにおいて、
前記第4のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる前記画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする画像表示方法。
In any one of Claims 10-13,
In the fourth step, texture mapping processing is performed in which the image information included in the texture data corresponding to the polygon is specified and stored in the frame buffer, and texture coordinates corresponding to the storage position on the frame buffer are performed. In order to obtain the image, a coordinate in the polygon in the virtual three-dimensional space corresponding to the storage position is obtained, and the texture coordinate corresponding to the coordinate is determined.
三次元オブジェクトを構成するポリゴンに含まれる各頂点の仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第1のステップと、
前記第1のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第2のステップと、
前記第2のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第3のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、広角レンズを通して曲面スクリーン上に投影装置によって投影する第4のステップと、
を実行するプログラムを含む情報記憶媒体であって、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせることを特徴とする情報記憶媒体。
A first step of acquiring position information in a virtual three-dimensional space of each vertex included in a polygon constituting the three-dimensional object by calculation by a game space calculation means;
A second step of approximating the shape of the polygon outline on the frame buffer corresponding to the polygon outline on the basis of the position information acquired in the first step by a contour calculation means;
A third step of storing image information of the corresponding three-dimensional object by the image information storage means in the storage position of the frame buffer surrounded by the outline approximated in the second step;
A fourth step of reading out the image information stored in the frame buffer and projecting the image information onto a curved screen through a wide-angle lens;
An information storage medium including a program for executing
Corresponding to the position on the curved screen when viewing the three-dimensional object from a predetermined viewpoint position, the storage position of the frame buffer is calculated by the coordinate calculation means,
The coordinate calculation means calculates the storage position based on position information of the three-dimensional object in the virtual three-dimensional space, and a projection position corresponding to the viewpoint position and the position of the wide-angle lens,
An information storage medium characterized in that the viewpoint position differs from the projection position.
請求項15において、
前記ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第5のステップと、
前記仮想的な三次元空間内における前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第6のステップと、
を前記第2のステップの前に挿入して実行するプログラムを含んでおり、
前記第2のステップにおいて、前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の各点を通る前記曲線の形状を決定することを特徴とする情報記憶媒体。
In claim 15,
A fifth step of calculating by the intermediate point calculating means the coordinates of the intermediate point in the virtual three-dimensional space located on a straight line connecting two adjacent vertices included in the polygon;
A sixth step of calculating the storage position of the frame buffer corresponding to each of the two vertices and the intermediate point in the virtual three-dimensional space by the coordinate calculation means;
Including a program that is inserted and executed before the second step,
In the second step, the shape of the curve passing through each point on the frame buffer corresponding to each of the two vertices and the intermediate point is determined.
請求項16において、
前記第2のステップにおける近似処理に用いられる前記曲線は円弧であり、1個の前記中間点の座標を用いてこの近似処理が行われることを特徴とする情報記憶媒体。
In claim 16,
The information storage medium characterized in that the curve used for the approximation process in the second step is an arc, and the approximation process is performed using the coordinates of one of the intermediate points.
請求項16または17において、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第7のステップを、前記第4のステップの前に挿入して実行するプログラムを含むことを特徴とする情報記憶媒体。
In claim 16 or 17,
The image information stored in the frame buffer in consideration of the distance between the projection position and the position to be projected onto the curved screen when the projection position is set to be shifted from the center position of the curved screen. An information storage medium comprising: a program for inserting and executing the seventh step of performing the brightness correction by the image information storage unit before the fourth step.
請求項15〜18のいずれかにおいて、
前記第4のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定することを特徴とする情報記憶媒体。
In any one of Claims 15-18,
In the fourth step, texture mapping processing for specifying image information included in texture data corresponding to the polygon and storing the image information in the frame buffer is performed, and texture coordinates corresponding to the storage position on the frame buffer are determined. In order to obtain the information, a coordinate in the polygon in the virtual three-dimensional space corresponding to the storage position is obtained, and the texture coordinate corresponding to the coordinate is determined.
仮想的な三次元空間に配置された三次元オブジェクトの画像を広角レンズを通して曲面スクリーンに投影するためにコンピュータに、
前記三次元オブジェクトを構成するポリゴンに含まれる各頂点の前記仮想的な三次元空間内の位置情報をゲーム空間演算手段による演算により取得する第1のステップと、
前記第1のステップにおいて取得した前記位置情報に基づいて、前記ポリゴンの輪郭線に対応するフレームバッファ上のポリゴンの輪郭線の形状を輪郭線演算手段によって曲線で近似する第2のステップと、
前記第2のステップにおいて近似された前記輪郭線で囲まれた前記フレームバッファの格納位置に、対応する前記三次元オブジェクトの画像情報を画像情報格納手段によって格納する第3のステップと、
前記フレームバッファに格納された前記画像情報を読み出して、前記広角レンズを通して曲面スクリーン上に投影装置によって投影する第4のステップと、
を実行させるための画像表示プログラムであって、
前記三次元オブジェクトを所定の視点位置から見た場合の前記曲面スクリーン上の位置に対応させて、前記フレームバッファの前記格納位置を座標計算手段によって計算するとともに、
前記座標計算手段は、前記三次元オブジェクトの前記仮想的な三次元空間内の位置情報と、前記視点位置および前記広角レンズの位置に対応する投影位置とに基づいて前記格納位置を計算し、
前記視点位置と前記投影位置を異ならせる画像表示プログラム。
To project an image of a 3D object placed in a virtual 3D space onto a curved screen through a wide-angle lens,
A first step of acquiring position information in the virtual three-dimensional space of each vertex included in the polygon constituting the three-dimensional object by calculation by a game space calculation means;
A second step of approximating the shape of the polygon outline on the frame buffer corresponding to the polygon outline on the basis of the position information acquired in the first step by a contour calculation means;
A third step of storing image information of the corresponding three-dimensional object by the image information storage means in the storage position of the frame buffer surrounded by the outline approximated in the second step;
A fourth step of reading out the image information stored in the frame buffer and projecting the image information onto a curved screen through the wide-angle lens;
An image display program for executing
Corresponding to the position on the curved screen when viewing the three-dimensional object from a predetermined viewpoint position, the storage position of the frame buffer is calculated by the coordinate calculation means,
The coordinate calculation means calculates the storage position based on position information of the three-dimensional object in the virtual three-dimensional space, and a projection position corresponding to the viewpoint position and the position of the wide-angle lens,
An image display program for making the viewpoint position different from the projection position.
請求項20において、
前記ポリゴンに含まれていて隣接する2つの頂点を結ぶ直線上に位置する前記仮想的な三次元空間内の中間点の座標を中間点算出手段によって算出する第5のステップと、
前記仮想的な三次元空間内における前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファの格納位置を前記座標計算手段によって計算する第6のステップと、
を前記第2のステップの前に実行させるとともに、
前記第2のステップにおいて、前記2つの頂点および前記中間点のそれぞれに対応する前記フレームバッファ上の前記各点を通る曲線の形状を決定させるための画像表示プログラム。
In claim 20,
A fifth step of calculating by the intermediate point calculating means the coordinates of the intermediate point in the virtual three-dimensional space located on a straight line connecting two adjacent vertices included in the polygon;
A sixth step of calculating the storage position of the frame buffer corresponding to each of the two vertices and the intermediate point in the virtual three-dimensional space by the coordinate calculation means;
Is executed before the second step,
In the second step, an image display program for determining a shape of a curve passing through each point on the frame buffer corresponding to each of the two vertexes and the intermediate point.
請求項21において、
前記第2のステップにおける近似処理に用いられる前記曲線は円弧であり、1個の前記中間点の座標を用いてこの近似処理を行わせるための画像表示プログラム。
In claim 21,
The curve used for the approximation process in the second step is an arc, and an image display program for performing the approximation process using the coordinates of one intermediate point.
請求項20〜22のいずれかにおいて、
前記投影位置が前記曲面スクリーンの中心位置からずらして設定されている場合に、前記投影位置と前記曲面スクリーン上に投影すべき位置との距離を考慮して、前記フレームバッファに格納する前記画像情報について明るさ補正を前記画像情報格納手段によって行う第7のステップを、前記第4のステップの前に実行させるための画像表示プログラム。
In any one of Claims 20-22,
The image information stored in the frame buffer in consideration of the distance between the projection position and the position to be projected onto the curved screen when the projection position is set to be shifted from the center position of the curved screen. An image display program for executing the seventh step of performing the brightness correction by the image information storage unit before the fourth step.
請求項20〜23のいずれかにおいて、
前記第4のステップにおいて、前記ポリゴンに対応するテクスチャデータに含まれる画像情報を特定して前記フレームバッファに格納するテクスチャマッピング処理を行っており、前記フレームバッファ上の格納位置に対応するテクスチャ座標を求めるために、この格納位置に対応する前記仮想的な三次元空間における前記ポリゴン内の座標を求め、この座標に対応する前記テクスチャ座標を決定させるための画像表示プログラム。
In any one of Claims 20-23,
In the fourth step, texture mapping processing for specifying image information included in texture data corresponding to the polygon and storing the image information in the frame buffer is performed, and texture coordinates corresponding to the storage position on the frame buffer are determined. An image display program for obtaining coordinates in the polygon in the virtual three-dimensional space corresponding to the storage position to determine the texture coordinates corresponding to the coordinates.
JP2001219501A 2000-12-07 2001-07-19 Image display device, image display method, information storage medium, and image display program Expired - Fee Related JP4726347B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001219501A JP4726347B2 (en) 2000-12-07 2001-07-19 Image display device, image display method, information storage medium, and image display program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2000372722 2000-12-07
JP2000372722 2000-12-07
JP2000-372722 2000-12-07
JP2001219501A JP4726347B2 (en) 2000-12-07 2001-07-19 Image display device, image display method, information storage medium, and image display program

Publications (2)

Publication Number Publication Date
JP2002236935A JP2002236935A (en) 2002-08-23
JP4726347B2 true JP4726347B2 (en) 2011-07-20

Family

ID=26605413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001219501A Expired - Fee Related JP4726347B2 (en) 2000-12-07 2001-07-19 Image display device, image display method, information storage medium, and image display program

Country Status (1)

Country Link
JP (1) JP4726347B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006030225A (en) * 2004-07-12 2006-02-02 Nishiyama Stainless Chem Kk Computer device having curved surface display section
CN103336678B (en) * 2013-07-17 2015-11-25 天脉聚源(北京)传媒科技有限公司 A kind of resource exhibition method, device and terminal

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0382493A (en) * 1989-08-28 1991-04-08 Sega Enterp Ltd Video game machine
JPH0611687A (en) * 1992-06-26 1994-01-21 Fujitsu General Ltd Screen brightness correction circuit for projection type display device
JPH06282659A (en) * 1993-03-25 1994-10-07 Daikin Ind Ltd Method and device for polygon projection on semisphere, polygon projection area calculation, and form factor calculation
JPH0759945A (en) * 1993-08-23 1995-03-07 Sega Enterp Ltd Electronic game device having dome screen
JPH07282294A (en) * 1994-02-18 1995-10-27 Matsushita Electric Ind Co Ltd Image composition device
JPH09502535A (en) * 1993-06-28 1997-03-11 バックス,アーロン,ジュニアー Mobile image projection system
JPH0981785A (en) * 1995-09-13 1997-03-28 Toshiba Corp Image projection device and equipment controller
JPH11149566A (en) * 1997-11-17 1999-06-02 Hitachi Ltd Three-dimensional cg plotting device for curved surface display
JP2000182075A (en) * 1998-12-16 2000-06-30 Konami Co Ltd Simple fluid picture display method, picture display device and recording medium

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0382493A (en) * 1989-08-28 1991-04-08 Sega Enterp Ltd Video game machine
JPH0611687A (en) * 1992-06-26 1994-01-21 Fujitsu General Ltd Screen brightness correction circuit for projection type display device
JPH06282659A (en) * 1993-03-25 1994-10-07 Daikin Ind Ltd Method and device for polygon projection on semisphere, polygon projection area calculation, and form factor calculation
JPH09502535A (en) * 1993-06-28 1997-03-11 バックス,アーロン,ジュニアー Mobile image projection system
JPH0759945A (en) * 1993-08-23 1995-03-07 Sega Enterp Ltd Electronic game device having dome screen
JPH07282294A (en) * 1994-02-18 1995-10-27 Matsushita Electric Ind Co Ltd Image composition device
JPH0981785A (en) * 1995-09-13 1997-03-28 Toshiba Corp Image projection device and equipment controller
JPH11149566A (en) * 1997-11-17 1999-06-02 Hitachi Ltd Three-dimensional cg plotting device for curved surface display
JP2000182075A (en) * 1998-12-16 2000-06-30 Konami Co Ltd Simple fluid picture display method, picture display device and recording medium

Also Published As

Publication number Publication date
JP2002236935A (en) 2002-08-23

Similar Documents

Publication Publication Date Title
JP3294149B2 (en) Three-dimensional texture mapping processing device and three-dimensional image generation device using the same
JP2003085586A (en) Image display, image displaying method, information storage medium, and image displaying program
US10593096B2 (en) Graphics processing employing cube map texturing
JP3588351B2 (en) System and method for creating real-time shadows of transparent objects
JPH0771936A (en) Device and method for processing image
JPH11149567A (en) Picture processor and method therefor
JP2004005452A (en) Image processor, image processing method, semiconductor device, computer program and record medium
JP2003009039A (en) Image display device, image display method, information storage medium, and image display program
JP4282587B2 (en) Texture mapping device
JP4082937B2 (en) GAME SYSTEM AND GAME PROGRAM
JP3748451B1 (en) Program, information storage medium, and image generation system
JP2002133438A (en) Three-dimensional graphic plotting device, three- dimensional graphic plotting method, and recording medium capable of reading with three-dimensional polygon data recorded computer
KR100489572B1 (en) Image processing method
JP4726347B2 (en) Image display device, image display method, information storage medium, and image display program
JP4726336B2 (en) Image display device, image display method, information storage medium, and image display program
JP4592917B2 (en) Image generating apparatus and game apparatus
JP4754384B2 (en) Program, information recording medium, and image generation system
JPH11185054A (en) Image processor
JPH07282292A (en) Texture mapping method and image processor
KR20190065503A (en) Method and apparatus of playing VR contents on display devices
JP4006243B2 (en) Image generation information, game information, information storage medium, image generation device, and game device
KR100848687B1 (en) 3-dimension graphic processing apparatus and operating method thereof
JP2007512603A (en) Image drawing
JP5146054B2 (en) Generation control program of sound generated from sound source in virtual space
JP2003030677A (en) Image display device, image display method, information storage medium and image display program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110223

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: 20110412

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: 20110412

R150 Certificate of patent or registration of utility model

Ref document number: 4726347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees