JP5078712B2 - 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法 - Google Patents

画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法 Download PDF

Info

Publication number
JP5078712B2
JP5078712B2 JP2008095401A JP2008095401A JP5078712B2 JP 5078712 B2 JP5078712 B2 JP 5078712B2 JP 2008095401 A JP2008095401 A JP 2008095401A JP 2008095401 A JP2008095401 A JP 2008095401A JP 5078712 B2 JP5078712 B2 JP 5078712B2
Authority
JP
Japan
Prior art keywords
polygon
distance
image processing
image
virtual
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.)
Active
Application number
JP2008095401A
Other languages
English (en)
Other versions
JP2009251675A (ja
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008095401A priority Critical patent/JP5078712B2/ja
Priority to EP08011124A priority patent/EP2106831A3/en
Priority to US12/213,658 priority patent/US8259107B2/en
Publication of JP2009251675A publication Critical patent/JP2009251675A/ja
Application granted granted Critical
Publication of JP5078712B2 publication Critical patent/JP5078712B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/95Storage media specially adapted for storing game information, e.g. video game cartridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6615Methods for processing data by generating or executing the game program for rendering three dimensional images using models with different levels of detail [LOD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、画像処理プログラム画像処理装置、画像処理システム及び画像処理方法に関し、特に、仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面(例えば、地形を示す曲面)の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理プログラム画像処理装置、画像処理システム及び画像処理方法に関する。
従来、仮想三次元空間内に配置された三次元オブジェクトの仮想カメラから見た画像を描画する場合に、上記三次元オブジェクトを単純にポリゴンからなる画像情報で表現し、これらの三次元オブジェクトを仮想三次元空間内に配置して画像を描画していた。しかし、上記三次元オブジェクトを全て同レベルの精度で表現している(=三次元オブジェクトを、同程度の大きさのポリゴンに分割してポリゴンモデルを構成している)ため、処理すべきデータ量が膨大になるという欠点があった。
上記課題を解消するために、種々の方法、装置等が提案されている。例えば、三次元オブジェクトを表す分割数の異なる複数種類の分割マップ情報が分割マップ情報記憶手段に記憶されており、仮想カメラと三次元オブジェクトとの距離を求め、この距離が遠くなる程、より少ない分割数の分割マップ情報を読み出す三次元ゲーム装置が開示されている(例えば、特許文献1参照)。
特許第3227158号公報
しかしながら、上記三次元ゲーム装置では、分割数の異なる複数種類の分割マップ情報(=ポリゴン情報)を記憶手段に記憶しておく必要があるため、メモリ等の記憶手段に大きな容量を必要とするという課題がある。また、上記三次元ゲーム装置では、分割数の異なる分割マップ情報の種類が多い程、仮想カメラと三次元オブジェクトとの距離に応じて適正な分割マップを選択することができる(=描画の品位を確保するために必要不可欠な分割数の分割マップを選択することができる)が、メモリ等の記憶手段に更に大きな容量を必要とする。
本発明は、上記課題に鑑みてなされたものであって、描画の品位を確保するべく適正なポリゴン情報を生成することが可能な画像処理プログラム画像処理装置、画像処理システム及び画像処理方法を提供することを目的としている。
上記目的を達成するために、本発明は以下のように構成される。なお、括弧内の参照符号及び図番号は、本発明の理解を助けるために図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
本発明の画像処理プログラム(40)は、仮想三次元空間に配置された仮想平面(PL)からの距離によって起伏が規定される曲面(SF:例えば、地形等)の、仮想三次元空間に配置された仮想カメラ(VP)から見た画像を描画する画像処理プログラムである。
第1の発明は、コンピュータ(10,11b)に、平面分割ステップ、第1距離読出ステップ、第1座標算出ステップ、ポリゴン生成ステップ、及び、描画ステップを実行させる画像処理プログラムである。平面分割ステップは、仮想平面(PL)を、多角形からなる複数の領域に、仮想カメラ(VP)からの距離が近い程、各領域の面積を小さくするべく分割するステップ(S301、S311)である。第1距離読出ステップは、複数の領域にそれぞれ対応する多角形を構成する頂点毎に、仮想平面(PL)からの距離を示す距離情報(41)を記憶手段(11e,12)から読み出すステップ(S407)である。第1座標算出ステップは、複数の領域にそれぞれ対応する多角形を構成する各頂点から、第1距離読出ステップにおいて読み出された距離情報が示す距離だけ、仮想平面(PL)に垂直な方向に離間した位置の座標を求めるステップ(S409)である。ポリゴン生成ステップは、第1座標算出ステップにおいて求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、複数の領域毎に略同数のポリゴンを生成するステップ(S413)である。描画ステップは、ポリゴン生成ステップにおいて生成されたポリゴンを仮想カメラ(VP)から見た画像を描画するステップ(S109)である。
第2の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、平面分割ステップは、複数の領域毎の仮想カメラ(VP)から見た画像の大きさを示すサイズ評価値をそれぞれ求めるサイズ評価値算出ステップ(S307)を含み、サイズ評価値算出ステップにおいて求められたサイズ評価値を、予め設定された閾値以下とするべく分割する。そこで、仮想カメラ(VP)から見た画像の品位を確保する上で、必要且つ充分な分割を容易に行うことができる。
第3の発明に係る画像処理プログラムは、上記第2の発明に係る画像処理プログラムであって、サイズ評価値算出ステップは、複数の領域にそれぞれ対応する多角形に内接又は外接する円(ここでは、多角形に外接する円)を大円とする球(BA)の仮想カメラ(VP)から見た画像の面積を、サイズ評価値として求める。そこで、適正なサイズ評価値を容易に求めることができる。
第4の発明に係る画像処理プログラムは、上記第2の発明に係る画像処理プログラムであって、平面分割ステップが、第1分割ステップ、分割要否判定ステップ、及び、第2分割ステップ、を含む。第1分割ステップは、仮想平面(PL)を予め設定された第1所定数の領域に分割するステップ(S301)である。分割要否判定ステップは、第1分割ステップにおいて生成された領域毎に、サイズ評価値算出ステップにおいて求められたサイズ評価値が、それぞれ、閾値以下であるか否かを判定するステップ(S309)である。第2分割ステップは、分割要否判定ステップにおいて閾値以下ではないと判定された領域を、第1所定数の領域に分割するステップ(S311)である。ここで、分割要否判定ステップにおいて、第2分割ステップにおいて新たに生成された各領域について、サイズ評価値算出ステップにおいて求められたサイズ評価値が、それぞれ、閾値以下であるか否かを判定する。また、平面分割ステップは、生成された全ての領域のサイズ評価値が予め設定された閾値以下となるまで、分割要否判定ステップ及び第2分割ステップが繰り返し実行する。そこで、仮想カメラ(VP)から見た画像の品位を確保する上で、必要且つ充分な分割を容易に行うことができる。
第5の発明に係る画像処理プログラムは、上記第4の発明に係る画像処理プログラムであって、第1分割ステップ(S301)は、仮想平面(PL)を、第1所定数の領域に均等に分割し、第2分割ステップ(S311)は、分割要否判定ステップにおいて閾値以下ではないと判定された領域を、第1所定数の領域に均等に分割する。そこで、均等に分割されるため、分割を効率的に行うことができる。
第6の発明に係る画像処理プログラムは、上記第5の発明に係る画像処理プログラムであって、仮想平面(PL)は四角形の平面であり、多角形は四角形であって、第1分割ステップ(S301)は、四角形の仮想平面(PL)の互いに対向する2つの辺の中点を結ぶ2本の直線で、当該四角形の仮想平面(PL)を4等分し、第2分割ステップ(S311)は、分割要否判定ステップ(S309)において閾値以下ではないと判定された四角形の領域の互いに対向する2つの辺の中点を結ぶ2本の直線で、当該四角形の領域を4等分する。そこで、四角形が対向する2つの辺の中点を結ぶ2本の直線で均等に分割されるため、分割を更に効率的に行うことができる。
第7の発明に係る画像処理プログラムは、上記第6の発明に係る画像処理プログラムであって、平面分割ステップ(S301、S311)において生成された複数の領域を、それぞれ、予め設定された第2所定数の四角形の領域である小領域に均等に分割する再分割ステップ(S315)を、コンピュータ(10,11b)に更に実行させ、第1距離読出ステップ(S407)は、再分割ステップ(S315)において生成された四角形の領域を構成する頂点毎に、距離情報(41)を記憶手段(11e,12)から読み出し、第1座標算出ステップ(S409)は、再分割ステップ(S315)において生成された四角形の領域を構成する各頂点から、第1距離読出ステップ(S407)において読み出された距離情報(41)が示す距離だけ、仮想平面(PL)に垂直な方向に離間した位置の座標を求め、ポリゴン生成ステップ(S413)は、第1座標算出ステップ(S409)において求められた座標に対応する点を、ポリゴン頂点とするポリゴンを生成する。そこで、曲面(SF)を表す適正な大きさのポリゴンを効率的に生成することができる。
第8の発明に係る画像処理プログラムは、上記第7の発明に係る画像処理プログラムであって、ポリゴン生成ステップ(S413)は、再分割ステップ(S315)において生成された四角形の小領域毎に、当該四角形の小領域を対角線で分割して得られる2つの三角形の領域にそれぞれ対応する2個の三角形ポリゴンを生成する三角形生成ステップ(S413)、を含む。そこで、曲面(SF)を表す適正な大きさの三角形ポリゴンを効率的に生成することができる。
第9の発明に係る画像処理プログラムは、上記第8の発明に係る画像処理プログラムであって、再分割ステップ(S315)は、平面分割ステップ(S301、S311)において生成された四角形の領域毎に、該四角形の各辺方向にそれぞれ偶数個(ここでは、6個)の小領域に均等に分割し、三角形生成ステップ(S413)は、第2所定数(ここでは、36個)の小領域の内、平面分割ステップ(S301、S311)において生成された各領域に対応する四角形を構成する辺の一部を、小領域に対応する四角形のいずれかの辺として含む小領域である外周小領域を抽出する外周抽出ステップ、及び、外周抽出ステップにおいて抽出された外周小領域の内、該外周小領域が平面分割ステップにおいて生成された領域に対応する四角形を構成する頂点を含む場合には、該外周小領域を構成する四角形をそれぞれ分割する対角線として、該頂点を含む対角線を選択し、該外周小領域が平面分割ステップにおいて生成された領域に対応する四角形を構成する頂点を含まない場合には、該外周小領域を構成する四角形をそれぞれ分割する対角線として、隣接する外周小領域の対角線が互いに略直交するべく対角線を選択する対角線選択ステップ、を含む(図11(b))。そこで、分割回数の相違する(=大きさが相違する)ポリゴンをスムーズに接続することができる(図12)。
第10の発明に係る画像処理プログラムは、上記第6の発明に係る画像処理プログラムであって、ポリゴン生成ステップ(S413)は、平面分割ステップ(S301、S311)において生成された四角形の領域毎に、当該四角形の領域を対角線で分割して得られる2つの三角領域にそれぞれ対応する2個の三角形ポリゴンを生成する三角形生成ステップ(S413)を含む。そこで、曲面(SF)を表す適正な大きさの三角形ポリゴンを生成することができる。
第11の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、画像処理プログラム(40)は、平面分割ステップ(S301、S311)において生成された各領域が、仮想カメラ(VP)から見た画像に全く含まれない領域である視野外領域であるか否かを判定する視野判定ステップ(S303)、及び、視野判定ステップにおいて視野外領域であると判定された領域については、第1距離読出ステップ、第1座標算出ステップ、及び、ポリゴン生成ステップの処理対象から除外する領域除外ステップ(S305)を、コンピュータ(10,11b)に更に実行させる。そこで、不要な処理が排除されるため、効率的にポリゴンを生成することができる。
第12の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、画像処理プログラム(40)は、基準点設定ステップ、外周点設定ステップ、第2距離読出ステップ、第2座標算出ステップ、法線ベクトル算出ステップ、及び、平均算出ステップ、をコンピュータ(10,11b)に更に実行させる。基準点設定ステップは、法線ベクトル情報を生成する対象の点である基準点として、記憶手段(11e,12)に、距離情報(41)が対応付けて格納された仮想平面(PL)上の点を順次設定するステップ(S201)である。外周点設定ステップは、仮想平面(PL)内において、基準点から予め設定された第1方向(ここでは、X軸方向)に予め設定された単位距離dだけ離間した2つの点を設定し、基準点から第1方向と直交する方向である第2方向(ここでは、Z軸方向)に単位距離dだけ離間した2つの点を設定するステップである(S203)。第2距離読出ステップは、基準点設定ステップにおいて設定された基準点及び外周点設定ステップにおいて設定された4つの点に対応する距離情報(41)を記憶手段(11e,12)から読み出すステップ(S205)である。法線ベクトル算出ステップは、基準点及び4つの点から、それぞれ、第2距離読出ステップにおいて読み出された距離情報(41)が示す距離だけ、仮想平面(PL)に垂直な方向に離間した位置の座標を求めるステップ(S207)である。平均算出ステップは、第2座標算出ステップにおいて求められた座標に対応する5つの点(N0〜N4)の内、基準点に対応する点N0と、第1方向(X軸方向)に離間した2つの点N3、N4のいずれか一方に対応する点と、第2方向(Z軸方向)に離間した2つの点N1、N2のいずれか一方に対応する点と、を頂点とする4つの三角形ポリゴンの法線ベクトルV1〜V4をそれぞれ求めるステップ(S207)である。平均算出ステップは、法線ベクトル算出ステップにおいて算出された4つの法線ベクトルV1〜V4の平均値を算出し、記憶手段(11e,12)に、基準点の仮想平面(PL)上の位置を示す情報(ここでは、X座標、Z座標)と対応付けて記録するステップ(S213)である。ここで、ポリゴン生成ステップは、ポリゴン頂点毎に、対応する法線ベクトルを記憶手段(11e,12)から読み出して設定する法線設定ステップ(S411)を含む。そこで、仮想カメラ(VP)の移動等に伴い分割数が変化した場合であっても、ポリゴン頂点の法線ベクトルの変化を少なくすることができるので、違和感のない画像を表示することができる。
第13の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、画像処理プログラム(40)は、第1座標算出ステップにおいて求められた座標に対応する点における、曲面(SF)の傾きを示す法線ベクトル情報(42)を記憶手段(11e,12)から読み出す法線読出ステップ(S411)を、コンピュータ(10,11b)に更に実行させ、ポリゴン生成ステップは、法線読出ステップにおいて読み出された法線ベクトル情報を、それぞれ、対応するポリゴン頂点の法線ベクトル情報として設定する法線設定ステップ(S411)を含む。そこで、法線ベクトル情報(42)を生成する処理が不要となるので、違和感のない画像を効率的に表示することができる。
第14の発明に係る画像処理プログラムは、上記第13の発明に係る画像処理プログラムであって、記憶手段(11e,12)には、画像を構成する各点の位置及び色が、それぞれ、曲面(SF)上の各点の位置及び法線ベクトルに対応するべく構成された画像情報として、法線ベクトル情報(42)が格納されている。そこで、法線ベクトル情報(42)を効率的に格納することができるため、法線ベクトル情報(42)を格納するために必要な容量を削減することができると共に、法線ベクトル情報(42)を効率的に読み出すことができる。
第15の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、記憶手段(11e,12)には、画像を構成する各点の位置及び色が、それぞれ、曲面(SF)上の各点の位置及び仮想平面(PL)からの距離に対応するべく構成された画像情報として、距離情報(41)が格納されている(図16(b))。そこで、距離情報(41)を効率的に格納することができるため、距離情報(41)を格納するために必要な容量を削減することができると共に、距離情報(41)を効率的に読み出すことができる。
第16の発明に係る画像処理プログラムは、上記第1の発明に係る画像処理プログラムであって、曲面(SF)は、仮想三次元空間に配置された地形である。そこで、地形を表すポリゴンを適正に生成することができる。
本発明に係る画像処理装置は、仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面(例えば、地形等)の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理装置(3)であって、仮想平面(PL)を、多角形からなる複数の領域に、仮想カメラ(VP)からの距離が近い程、各領域の面積を小さくするべく分割する平面分割手段(10,11b)、複数の領域にそれぞれ対応する多角形を構成する頂点毎に、仮想平面(PL)からの距離を示す距離情報(41)を記憶手段(11e,12)から読み出す第1距離読出手段(10,11b)、複数の領域にそれぞれ対応する多角形を構成する各頂点から、第1距離読出手段によって読み出された距離情報が示す距離だけ、仮想平面(PL)に垂直な方向に離間した位置の座標を求める第1座標算出手段(10,11b)、第1座標算出手段によって求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、複数の領域毎に略同数のポリゴンを生成するポリゴン生成手段(10,11b)、及び、ポリゴン生成手段によって生成されたポリゴンを仮想カメラ(VP)から見た画像を描画する描画手段(10,11b)、を備える。
本発明に係る画像処理プログラム(40)及び画像処理装置(3)によれば、仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面(SF)の画像の生成において、仮想カメラ(VP)からの距離が近い程、領域の面積を小さくするべく分割され、領域毎に略同数のポリゴンがそれぞれ生成されるため、仮想カメラ(VP)から見た曲面(SF)の画像の品位を確保することが可能であって且つ格納するために必要な容量が小さい(=適正な)曲面(SF)を表すポリゴン情報(44)を生成することができる。
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置及びゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、マーカ部6、及びコントローラ7を含む。本システムは、コントローラ7を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
ゲーム装置3(画像処理装置に相当する)には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6R及び6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
コントローラ7は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ7とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ7とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されても良い。
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、及びAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14及びAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11e又は外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、及び内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データ及び音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、及びメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18及びアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18及びアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22及び無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データ又は途中データ)が記憶されても良い。
また、入出力プロセッサ11aは、コントローラ7から送信される操作データをアンテナ23及び無線コントローラモジュール19を介して受信し、内部メインメモリ11e又は外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
更に、入出力プロセッサ11aには、拡張コネクタ20及びメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、及びイジェクトボタン26が設けられる。電源ボタン24及びリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
図3及び図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
図3及び図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でも構わない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けても構わない。更に、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けても構わない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けても構わない。更に、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けても構わない。また、タッチパッドを、上記十字キー72aの代わりに設けても構わない。
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、及びAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、及びプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72b及び72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から無線通信モジュール18へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702の内、種別に対応するLEDが点灯する。
また、ハウジング71上面には、操作ボタン72b及び操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ6L及び6Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
ここで、以下の説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3及び図4に示すように、互いに直交するXYZ軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をZ軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コントローラ7の上下方向をY軸とし、ハウジング71の下面(操作ボタン72iが設けられた面)方向をY軸正方向とする。更に、コントローラ7の左右方向をX軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をX軸正方向とする。
次に、図5及び図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、及びアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。また、無線モジュール753(図7参照)及びアンテナ754によって、コントローラ7がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子703が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706及びアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置3等が判定することができる。
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、及び画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。更に、基板700の下主面上にサウンドIC707及びマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751及びアンプ708と接続され、ゲーム装置3から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置3から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、及びアンプ708の他に、その内部に通信部75を備えている。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、及び画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
コントローラ7は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、及び前後方向(図3に示すZ軸)で直線加速度を検知する。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、及びアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置3からのデータに応じて、サウンドIC707及びバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置3から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置3から送信された振動データ(例えば、バイブレータ704をON又はOFFする信号)等に応じて、バイブレータ704を作動させる。
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、及びZ軸方向加速度データ)、及び撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、及びZ軸方向加速度データ、処理結果データ)を無線通信モジュール18へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から無線通信モジュール18への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、無線通信モジュール18への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、及びZ軸方向加速度データ、及び撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置3の無線通信モジュール18でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、及びZ軸方向加速度データ、及び処理結果データ)を取得する。そして、ゲーム装置3のCPU10は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
なお、上記のハードウェア構成は単なる一例に過ぎず、本発明は任意のコンピュータシステムに適用可能である。例えば、ゲーム装置3に換えてパーソナルコンピュータを含むコンピュータシステムにも適用可能である。
次に、ゲーム装置3が行う画像処理の概要について説明する。本発明は、仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面(本実施形態では、地形)の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画することを特徴としている。もちろん、本発明を用いて描画できる曲面の種類は、地形に限らない。例えば、曲面が、仮想三次元空間に配置されたオブジェクト(例えば、建築物等)の一方側の面(上方側の面)である形態でも良い。
また、本実施形態では、地形を示すポリゴンモデルが生成されて、生成されたポリゴンモデルを介して図1に示すテレビ2に画像が描画されるが、ポリゴンモデルには、必要に応じて、例えば地面の模様などを示すテクスチャ画像がテクスチャマッピングされる。なお、以下の説明においては、テクスチャマッピング処理については、便宜上、その説明を省略している。
まず、図8〜図12を用いて、平面分割処理(=「平面分割ステップ」において実行される処理に相当し、且つ、「平面分割手段」によって実行される処理に相当する)の内容について説明する。平面分割処理は、仮想三次元空間に配置された仮想平面を、仮想三次元空間に配置された仮想カメラからの距離に基づいて、予め設定された3以上の所定数の頂点を有する多角形からなる複数の領域に分割する処理である。図8は、仮想平面PLを予め設定された第1所定数(ここでは、4個)の領域に分割する処理(=「第1分割ステップ」において実行される処理に相当する)の内容の一例を示す説明図である。図8(a)は、分割前の仮想平面を示す図であり、図8(b)は分割後の仮想平面を示す図である。
図8(a)に示すように、仮想三次元空間には、X軸、Y軸及びZ軸が、それぞれ、図の左右方向、上下方向、及び、前後方向に規定されている。そして、X−Z平面内に、四角形(ここでは、正方形)の仮想平面PLが配置されている。なお、本実施形態においてテレビ2に画像を描画する対象の地形SF(図14(a)参照)は、図8に示す仮想平面PLからの距離(=Y座標に対応する距離)によってその起伏が規定される。また、仮想カメラVPは、例えば、図1に示すコントローラ7からの指示に基づいて、その位置及び向きが設定されるものであって、ここでは、仮想平面PLの略中央部上方(ここでは、Y軸の正方向)に、ほぼZ軸の正方向に設定されている。
更に、仮想カメラVPには、予め所定の大きさ(例えば、110°)の視野角VA(=仮想カメラVPによって仮想的に撮影される範囲を示す角度)が設定されている。図8(b)に示すように、仮想平面PLは、まず、互いに対向する2つの辺の中点を結ぶ2本の直線DL11、DL12で、予め設定された第1所定数(ここでは、4個)の領域PL11〜PL14に均等に分割される。
ここでは、仮想平面PLが、正方形の領域である場合について説明するが、他の形状(例えば、長方形、円等)の領域である形態でも良い。また、仮想平面PLを、4個の領域PL11〜PL14に均等に分割する場合について説明するが、4個に限らず、2以上の予め設定された第1所定数(例えば、16個等)の領域に分割する形態であれば良い。第1所定数が大きい程、分割回数を削減することができる。
図9は、仮想カメラVPの視野外の領域を処理対象の領域から除外する処理(いわゆる、クリッピング処理)(=「視野判定ステップ」及び「領域除外ステップ」において実行される処理に相当する)の一例を示す説明図である。図8(b)に示す領域PL11〜PL14は、図9(a)に示すように、それぞれ、第1所定数(ここでは、4個)の領域に均等に分割される(=合計16個の領域が生成される)。例えば、図8(b)に示す領域PL11は、互いに対向する2つの辺の中点を結ぶ2本の直線DL21、DL22で、4個の領域PL21〜PL24に均等に分割される。生成された4個の領域PL21〜PL24の内、斜線で網掛けを施した3個の領域PL21、PL22、PL24は、仮想カメラVPの視野外の領域(以下、視野外領域という)であるため、以降の処理を行う対象の領域から除外する処理が行われる。
図9(a)に示す16個の領域の内、領域PL21、PL22、PL24等の6個の視野外領域を除く領域(=10個の領域)は、図9(b)に示すように、それぞれ、第1所定数(ここでは、4個)の領域に均等に分割される(=合計40個の領域が生成される)。例えば、図9(a)に示す領域PL23は、互いに対向する2つの辺の中点を結ぶ2本の直線DL31、DL32で、4個の領域PL31〜PL34に均等に分割される。生成された4個の領域PL31〜PL34の内、斜線で網掛けを施した2個の領域PL31、PL34は、仮想カメラVPの視野外領域であるため、以降の処理を行う対象の領域から除外する処理が行われる。このように、互いに対向する2つの辺の中点を結ぶ2本の直線で4個の領域に均等に分割されるため、簡単な処理で効率的に仮想平面PLを分割することができる。また、視野外領域が、以降の処理を行う対象の領域から除外されるため、処理の負荷が軽減される。
ここでは、領域を、順次4個の領域に均等に分割する場合について説明するが、4個に限らず、第1所定数(例えば、16個等)の領域に分割する形態であれば良い。第1所定数が大きい程、分割回数を削減する(=処理時間を削減する)ことができる。逆に、第1所定数が小さい程、均一な画質の画像を形成することが可能なポリゴンモデルを生成することができる。
図10は、領域の分割要否の判定に用いるサイズ評価値の算出処理(=「サイズ評価値算出ステップ」において実行される処理に相当する)の一例を示す説明図である。平面分割処理においては、仮想カメラVPからの距離が近い程、領域の面積を小さくするべく分割される。具体的には、領域毎の仮想カメラVPから見た画像の大きさを示すサイズ評価値がそれぞれ求められ、求められたサイズ評価値を、予め設定された閾値以下とするべく分割される。
図10(a)に示すように、仮想平面PLが分割されている場合に、領域PLAのサイズ評価値は、以下のようにして求められる。まず、領域PLAに対応する正方形に外接する円を大円とする球BAが仮想的に設定される。そして、生成された球BAを、仮想カメラVPから見た画像(=図9(b))の面積(図1にしめすテレビ2の画面上の画素数に対応する)が、領域PLAのサイズ評価値として求められる。
ここでは、サイズ評価値が、分割して生成された領域に対応する正方形に外接する円を大円とする球の仮想カメラVPから見た画像の面積である場合について説明するが、サイズ評価値が、領域に対応する正方形に内接する円を大円とする球の仮想カメラVPから見た画像の面積である形態でも良い。更に、サイズ評価値は、分割して生成された領域の仮想カメラVPから見た画像の大きさに対応する値であれば良い。例えば、サイズ評価値が、分割して生成された領域と仮想カメラVPとの距離である形態でも良い。
図11は、再分割処理(=「再分割ステップ」において実行される処理に相当する)及び三角形生成処理(=「三角形生成ステップ」において実行される処理に相当する)の一例を示す説明図である。平面分割処理においては、全ての領域のサイズ評価値が、予め設定された閾値以下となるまで繰り返し分割された後に、再分割処理が実行される。再分割処理は、生成された領域を、それぞれ、予め設定された第2所定数(ここでは、36個)の正方形の領域である小領域に均等に分割する処理である。図11(a)は、全ての領域のサイズ評価値が、予め設定された閾値以下となるまで繰り返し分割された結果を示す図である。この図に示すように、平面分割処理によって、仮想カメラVPに近い領域PLNは、小さい領域に(=細かく)分割され、仮想カメラVPから遠い領域PLA、PLBは大きい領域に(=粗く)分割されている。再分割処理は、図11(a)に示す領域PLN、PLA、PLB等を含む全ての領域を、それぞれ各辺の方向に6個ずつの小領域に分割することによって、36個の正方形の領域(図11(b)参照)である小領域に均等に分割する処理である。
このように、再分割処理を行うことによって、曲面SFを表す適正な大きさのポリゴンを効率的に生成することができる。すなわち、平面分割処理において、サイズ評価値に基づいて仮想平面PLを適正な大きさの領域に分割しておき、再分割処理において、各領域を第2所定数(ここでは、36個)の小領域に均等に分割することによって、適正な大きさのポリゴンを効率的に生成することができるのである。
ここでは、再分割処理において、36個の小領域に均等に分割する場合について説明したが、領域の各辺方向に、それぞれ、偶数個(例えば、4個、8個等)の小領域に分割する形態であれば良い。領域の各辺方向に奇数個の小領域に分割する場合には、図12に示すようにスムーズにポリゴンを接続することができないからである。
また、三角形生成処理は、再分割ステップにおいて生成された四角形の小領域毎に、当該四角形の小領域を対角線で分割して得られる2つの三角形の領域にそれぞれ対応する2個の三角形ポリゴンを生成する処理である。ただし、図11(a)に示す領域PLA、PLBのように、異なる大きさの領域が隣接している場合には、三角形生成処理において、スムーズにポリゴンを接続することができるように三角形の領域に分割する必要がある。
具体的には、図11(b)に示すように、三角形生成処理において、平面分割処理において生成された各領域に対応する正方形を構成する辺の一部を、小領域に対応する正方形のいずれかの辺として含む小領域である外周小領域(=頂点N11〜N17、N21〜N71、N72〜N77、N27〜N67の少なくともいずれか1の頂点を含む小領域)が抽出される(=「外周抽出ステップ」が実行される)。そして、抽出された外周小領域の内、該外周小領域が平面分割処理において生成された領域に対応する正方形を構成する頂点(ここでは、頂点N11、N17、N71、N77)を含む場合には、該外周小領域を構成する四角形をそれぞれ分割する対角線として、該頂点(ここでは、頂点N11、N17、N71、N77)を含む対角線を選択する。一方、該外周小領域が平面分割処理において生成された領域に対応する正方形を構成する頂点(ここでは、頂点N11、N17、N71、N77)を含まない場合には、該外周小領域を構成する正方形をそれぞれ分割する対角線として、隣接する外周小領域の対角線が互いに略直交するべく(=対角線が連続した折れ線を描くように)対角線を選択する(=「対角線選択ステップ」が実行される)。
なお、本実施形態では、平面分割処理において生成された全ての領域(図11(a)参照)を、それぞれ、図11(b)に示すパターンで72個の三角形領域を生成する場合について説明する。この場合には、上記「外周抽出ステップ」及び「対角線選択ステップ」を含む三角形生成ステップを各領域について実行する必要が無いため、処理が簡略化される。ただし、平面分割処理において生成された各領域について、上記「外周抽出ステップ」及び「対角線選択ステップ」を含む三角形生成ステップを実行して、三角形領域を生成する形態でも良い。
図12は、異なる大きさの領域が隣接している場合のポリゴン接続状態の一例を示す図である。例えば、図11(a)に示す領域PLA、PLBの各領域において、図11(b)に示すように三角形生成処理を行った場合には、図12に示すように、領域PLBの頂点N12、N14、N16を削除する処理を行うことによって、簡単な処理でスムーズにポリゴンを接続することができるのである。
ここでは、三角形生成処理において、図11(b)に示すように各小領域を三角形領域に分割する場合について説明したが、外周小領域以外の小領域については、どのように分割しても良い。図11(b)では、外周小領域以外の小領域を、全て右下がりの対角線で分割しているが、例えば、全て右上がりの対角線で分割しても良い。
また、図11においては、平面分割処理において生成された各領域に対して、それぞれ、外周小領域を抽出して対角線を選択する処理を実行する場合について説明したが、本実施形態では、平面分割処理において生成された各領域を、図11(b)に示す72個の三角形領域に分割することによって、三角形生成処理を実行する形態について説明する。すなわち、本実施形態では、平面分割処理において生成された各領域は、それぞれ、予め設定された72個の三角形領域(図11(b)参照)に分割される。このようにして、予め設定された三角形領域を生成することによって、処理が簡略化される。
次に、図13、図14を用いて、第1距離読出処理、第1座標算出処理、及び、ポリゴン生成処理について説明する。まず、図13を用いて、第1距離読出処理について説明する。第1距離読出処理(=「第1距離読出ステップ」において実行される処理に相当し、且つ、「第1距離読出手段」によって実行される処理に相当する)は、平面分割処理において生成された領域にそれぞれ対応する多角形(ここでは、図11(b)に示す三角形)を構成する頂点(図11(b)に示す頂点N11〜N77等)毎に、仮想平面PLからの距離を示す距離情報を内部メインメモリ11eから読み出す処理である。
図13は、距離画像PMと仮想平面PLとの対応付けの一例を示す図である。図13(a)は、距離画像を構成する各点の位置及び色が、それぞれ、曲面SF(図14(a)参照)上の各点の位置及び仮想平面PLからの距離に対応するべく構成された画像情報である距離画像PMの一例を示す画像図である。図13(a)に示す距離画像PMを構成する各点の位置は、図8(a)に示す仮想平面PL内の位置に対応しており、各点の色(ここでは、画像情報のα値を使用して表された8ビット(=256階調)で表現された明暗)が、距離情報に対応している。ここでは、曲面SFが高い(=仮想平面PLからの距離が大きい)程、白い画像となっている。図13(a)に示す距離画像PMの示す地形SFは、仮想平面PLの略中央部にひょうたん形の山が有り、その山の奥に小さな山が2箇所有る地形を示している(図14(a)参照)。
図13(b)は、図13(a)に示す距離画像PM(ここでは、便宜上、距離画像PMに対して半透明化処理を施した画像を記載している)と、仮想平面PL(図11(a)に示す領域)との対応付けの一例を示す図である。図13(b)に示すように、第1距離読出処理においては、平面分割処理において仮想平面PLを分割して生成された図11(a)に示す領域が、再分割処理されて生成された三角形領域(図11(b)参照:便宜上、図13では図示省略)を構成する頂点(図11(b)に示す頂点N11〜N77等)は、図13(a)に示す距離画像PMと対応付けられることによって、距離画像PMのα値を介して、距離情報が読み出される。
すなわち、第1距離読出処理では、仮想平面PLが分割されて生成された正方形領域(図13(b)参照)が再分割されて生成された図略の三角形領域を構成する各頂点について、X座標及びZ座標が求められ、求められたX座標及びZ座標に対応する距離画像PM(図13(b)参照)のα値が読み出され、読み出されたα値に対応する距離が算出されることによって距離情報が求められる。
このように、内部メインメモリ11eに格納された距離画像PMを構成する各点の位置が、仮想平面PL内の位置に対応しており、各点の色(ここでは、画像情報のα値を使用して表された8ビット(=256階調)で表現された明暗)が、距離情報に対応しているため、曲面SFを示す距離情報を効率的に格納することができるので、距離情報41(図17参照)を格納するために必要な容量を削減することができると共に、距離情報41を効率的に読み出すことができる。
ここでは、距離情報が画像情報のα値として格納されている場合について説明するが、距離情報が、画像を構成する画素に対応付けられたその他の色情報(例えば、RGBのいずれかの色情報)として格納されている形態でも良い。更に、距離情報が画像情報以外の形態で(例えば、距離情報が頂点の位置情報に対応付けられたマトリクスとして)格納されている形態でも良い。また、ここでは、距離画像PMが内部メインメモリ11eに格納されている場合について説明するが、距離画像PMがその他の記憶手段(例えば、フラッシュメモリ17等)に格納されている形態でも良い。
次に、図14を用いて、第1座標算出処理、ポリゴン生成処理について説明する。第1座標算出処理(=「第1座標算出ステップ」において実行される処理に相当し、且つ、「第1座標算出手段」によって実行される処理に相当する)は、平面分割処理において生成された領域にそれぞれ対応する多角形(ここでは、図11(b)に示す三角形)を構成する各頂点(図11(b)に示す頂点N11〜N77等)を、第1距離読出処理において読み出された距離情報が示す距離だけ、仮想平面PLに垂直な方向(ここでは、Y軸方向)に平行移動した位置の座標を求める処理である。
ポリゴン生成処理(=「ポリゴン生成ステップ」において実行される処理に相当し、且つ、「ポリゴン生成手段」によって実行される処理に相当する)は、第1座標算出処理において求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、曲面SFに対応するポリゴンを生成する処理である。
図14は、ポリゴンモデルとして表現された曲面SFの、距離画像PM及び仮想平面PLとの関係の一例を示す図である。図14(a)は、全体図であり、図14(b)は、平面分割処理において生成された1の領域PLCの周辺を拡大した図である。なお、図14では、明記されていないが、平面分割処理によって生成された正方形の各領域(例えば領域PLC)は、72個の三角形領域(図11(b)参照)に分割されている。
図14に示すように、第1座標算出処理では、平面分割処理において生成された三角形領域を構成する各頂点が、図13を用いて説明した第1距離読出処理において読み出された距離情報(=距離画像PMのα値に対応する距離情報)が示す距離だけ、仮想平面PLに垂直な方向(ここでは、Y軸方向)に平行移動した位置の座標が求められる。例えば、領域PLCに含まれる図略の72個の三角形領域を構成する各頂点にそれぞれ対応する距離情報が示す距離だけ、Y軸方向に平行移動した位置(図14(b)の白丸で示す位置)の座標(=曲面SFを表すポリゴンモデルを構成する72個の三角形ポリゴンに含まれる各ポリゴン頂点の座標)が求められる。
そして、図14に示すように、ポリゴン生成処理では、第1座標算出処理において求められた座標に対応する点(図14(b)の白丸で示す点)が、ポリゴンを規定する頂点であるポリゴン頂点として、曲面SFに対応するポリゴンが生成される。例えば、領域PLCに含まれる図略の72個の三角形領域に対応するポリゴンとして、72個の三角形ポリゴンSFCが生成される。
このようにして、平面分割処理において生成された各領域に対して、それぞれ、72個の三角形領域に対応するポリゴンが生成されるため、曲面SFを表す適正な大きさのポリゴンを効率的に生成することができる。すなわち、平面分割処理において、ポリゴンの大きさを規定する領域の大きさが決定され、ポリゴン生成処理において、各領域に対応する72個(=第2所定数(=36個)×2)の三角形ポリゴンがそれぞれ生成されるため、曲面SFを表す適正な大きさのポリゴンを効率的に生成することができるのである。
次に、図15、図16を用いて、法線画像生成処理について説明する。図15は、法線ベクトルとポリゴンとの関係の一例を示す図である。ポリゴン頂点の法線ベクトルは、該ポリゴン頂点が含まれるポリゴンの法線ベクトルの平均値として求められる。また、ポリゴン頂点の法線ベクトルは、ポリゴンによって表現される曲面SF(図14参照)の画像を生成する際に、陰影の画像を生成するために使用される。
一方、図8〜図12を用いて説明したように、本発明においては、仮想カメラVPからの距離に基づいて仮想平面PLが分割されるため、仮想平面PLに形成された領域の内、仮想カメラVPが接近した領域は、平面分割処理において分割される場合がある。そして、ある領域が平面分割処理において分割されると、該領域に含まれる三角形領域も分割され、その結果、該領域に対応する三角形ポリゴンがそれぞれ分割されることになる。
例えば、図15(a)に示すように、曲面SF(図14参照)のポリゴンモデルを構成するポリゴン頂点として、X軸方向に3個のポリゴン頂点NA1、NA3、NA5が配置されている場合に、ポリゴン頂点NA1、NA3、NA5が含まれる領域に仮想カメラVPが接近した結果、平面分割処理において該領域が分割されると、図15(b)に示すように、X軸方向に5個のポリゴン頂点NB1〜NB5が生成される。すなわち、ポリゴン頂点NA1、NA3、NA5が含まれる領域に仮想カメラVPが接近した結果、図15(a)に示す法線ベクトルVA1、VA3、VA5をそれぞれ有するポリゴン頂点NA1、NA3、NA5によって陰影が規定される面が、図15(b)に示す法線ベクトルVB1〜VB5をそれぞれ有するポリゴン頂点NB〜NB5によって陰影が規定される面に変化する。
この場合には、例えば、ポリゴン頂点NA3に対応する法線ベクトルVA3が、ポリゴン頂点NB3に対応する法線ベクトルVB3に大きく変化するため、曲面SF(図14参照)は固定されており、且つ、光源の位置に変化が無いにも拘わらず、ポリゴン頂点NA3(ポリゴン頂点NB3)近傍の陰影が大きく変化することになり、不自然な画像の変化が生じることになる。
この問題を解消するために、本実施形態では、図16を用いて説明する法線画像を用いて図13(a)に示す距離画像PMの各画素に対応する法線ベクトルを生成する。図16は、法線画像生成処理の一例を示す図である。法線画像生成処理(「基準点設定ステップ」、「外周点設定ステップ」、「第2距離読出ステップ」、「第2座標算出ステップ」、及び、「法線ベクトル算出ステップ」において実行される処理に相当する)は、図13(a)に示す(=図16(b)に再掲する)距離画像PMから、図16(c)に示す法線画像VMを生成する処理である。
具体的には、まず、図16(a)に示すように、法線ベクトル情報を生成する対象の点である基準点Q0(後述する点P0と一致するため図示省略)として、内部メインメモリ11eに距離情報が対応付けて格納された距離画像PM上の点(=距離画像PMのピクセルに相当する)が順次設定される。そして、距離画像PM(=仮想平面PL)内において、基準点Q0から予め設定された第1方向(ここでは、Z軸方向)に予め設定された単位距離d(ここでは、「単位距離d」=「距離画像PMのピクセル間隔」)だけ離間した2つの外周点Q1、Q2(後述する点P1、P2と、それぞれ一致するため図示省略)が設定され、基準点Q0から第1方向(ここでは、Z軸方向)と直交する方向である第2方向(ここでは、X軸方向)に単位距離dだけ離間した2つの外周点Q3、Q4(後述する点P3、P4と、それぞれ一致するため図示省略)が設定される。ここでは、単位距離dが、距離画像PMのピクセル間隔である場合について説明するが、単位距離dが、距離画像PMのピクセル間隔の整数倍(例えば、4倍)である形態でも良い。
次に、基準点Q0及び4つの外周点Q1〜Q4にそれぞれ対応する距離情報が内部メインメモリ11e(=図16(b)に示す距離画像PMに対応する情報)から読み出される。次いで、基準点Q0及び4つの外周点Q1〜Q4を、それぞれ、読み出された距離情報が示す距離だけ、仮想平面PL(=距離画像PM)に垂直な方向(Y軸方向)に平行移動した位置の座標が求められる。そして、求められた座標に対応する5つの点P0、P1〜P4の内、基準点Q0に対応する点P0と、基準点Q0から第1方向(ここでは、Z軸方向)に離間した2つの外周点Q1、Q2のいずれか一方に対応する点と、基準点Q0から第2方向(ここでは、X軸方向)に離間した2つの外周点Q3、Q4のいずれか一方に対応する点と、を頂点とする4つの三角形ポリゴン(図16(a)の斜線部)の法線ベクトルV1〜V4がそれぞれ求められる。次に、法線ベクトルV1〜V4の平均値が算出され、内部メインメモリ11eに、基準点Q0の仮想平面PL上の位置を示す情報と対応付けて記録される。
ただし、法線ベクトルV1〜V4の平均値(=基準点Q0に対応する法線ベクトル)は、図13(c)に示す法線画像VMを構成する各点の位置及び色が、それぞれ、曲面SF(図14参照)上の各点の位置及び法線ベクトルに対応するべく構成された画像情報として、内部メインメモリ11eに格納される。すなわち、基準点Q0の位置情報が図13(c)に示す法線画像VMの位置情報として、内部メインメモリ11eに格納され、基準点Q0に対応する法線ベクトルのX成分、Y成分、Z成分が、それぞれ、図13(c)に示す法線画像VMのR(=赤)色、G(=緑)色、B(=青)色情報として、内部メインメモリ11eに格納される。
このようにして、法線ベクトル情報が、法線画像VMとして格納されているため、法線ベクトル情報を効率的に格納することができるので、法線ベクトル情報を格納するために必要な容量を削減することができると共に、法線ベクトル情報を効率的に読み出すことができる。
ここでは、法線ベクトル情報が、画像情報の色情報(RGB色情報)として格納されている場合について説明したが、画像を構成する画素に対応付けられたその他の情報(例えば、透明度を示すα値等)として格納されている形態でも良い。更に、法線画像VMが、内部メインメモリ11eに格納されている場合について説明するが、法線画像VMがその他の記憶手段(例えば、フラッシュメモリ17等)に格納されている形態でも良い。
また、ここでは、ゲーム開始時に、法線画像VMが生成されて内部メインメモリ11eに格納されており、陰影等を描画するために用いるポリゴン頂点に対応する法線ベクトルは、ポリゴン頂点毎に、対応する法線ベクトルを内部メインメモリ11eに格納された法線画像VMの対応する色情報(RGB情報)として読み出して設定する。このようにして、法線画像VMを介して法線ベクトルが設定されるため、仮想カメラVPの移動等に伴い分割数が変化した場合であっても、ポリゴン頂点の法線ベクトルの変化を少なくすることができるので、違和感のない画像を表示することができる。また、法線画像VMが予め内部メインメモリ11eに格納されているため、ポリゴン頂点に対応する法線ベクトルを効率的に求めることができる。
ここでは、ゲーム開始時に、法線画像VMが生成されて内部メインメモリ11eに格納されている場合について説明するが、ゲーム中に、予め設定された複数の曲面SF(図14参照)の中から1の曲面が選択可能に構成されている場合には、1の曲面SFが選択された時点で、選択された曲面SFに対応する距離画像PMから、法線画像VMを生成する形態でも良い。この場合には、法線画像VMを予め格納する必要が無いため、法線画像VMを格納するための容量を削減することができる。
以下、図17〜図21を参照して、ゲーム装置3の動作を説明する。図17は、内部メインメモリ11eのメモリマップの一例である。ただし、本発明にとって重要ではないデータについては図示を省略している。なお、内部メインメモリ11eに換えて外部メインメモリ12、フラッシュメモリ17等を利用しても構わない。内部メインメモリ11eには、画像処理プログラム40、距離データ41、法線ベクトルデータ42、ブロックデータ43、及び、モデルデータ44が格納される。
画像処理プログラム40は、後述する図18〜図21のフローチャートに示す処理をコンピュータ(CPU10又はGPU11b)に実行させるためのコンピュータプログラムであって、本実施形態では、光ディスク4から内部メインメモリ11eにロードされる。ただし、画像処理プログラム40は、光ディスク4に限らず他の任意の外部記録媒体を介して供給されても良いし、有線又は無線の通信回線を介して他のコンピュータシステムより供給されても良いし、ゲーム装置3の内部のフラッシュメモリ17等の不揮発性の記憶装置に予め記録されていても良い。
距離データ41は、図13(a)に示す距離画像PMを構成するデータであって、位置情報に対応付けて距離情報を格納するものである。距離データ41は、典型的には光ディスク4から内部メインメモリ11eにロードされる。
法線ベクトルデータ42は、図16(c)に示す法線画像VMを構成するデータであって、位置情報に対応付けて法線ベクトル情報を格納するものである。法線ベクトルデータ42は、距離データ41に基づいてCPU10(又はGPU11b)によって生成され、内部メインメモリ11eに格納される。
なお、上述のように、距離情報をα値情報として格納し、法線ベクトル情報をRGB情報として格納する場合には、距離データ41と法線ベクトルデータ42とを1のデータとして格納することが好ましい。すなわち、図8に示す仮想平面PL上の画素(=等間隔に配列された格子点)の位置を示す位置情報と対応付けて、α値情報として距離情報を格納し、RGB情報として法線ベクトル情報を格納すれば、容量を削減することができるからである。
ブロックデータ43は、図8〜図12を用いて説明した平面分割処理において生成された領域(以下、三角形領域と区別するため、便宜上「ブロック」という)毎に、そのブロックの中心点のX座標、Z座標及び分割回数を格納するものである。ブロックデータ43は、CPU10(又はGPU11b)によって生成され、格納される。
モデルデータ44は、図13、図14を用いて説明したポリゴン生成処理において生成されたポリゴンデータ(ポリゴン頂点の座標データ、法線ベクトルデータ等)を、ブロックデータ43と対応付けて格納するものである。モデルデータ44は、CPU10(又はGPU11b)によって生成され、内部メインメモリ11eに格納される。
次に、図18〜図21のフローチャートを参照して、画像処理プログラム40に基づくCPU10(又はGPU11b)の動作を説明する。なお、図18〜図21に示す各フローチャートの各ステップの処理は、CPU10とGPU11bのどちらが実行しても構わず、各ステップについてCPU10とGPU11bのどちらか適切な方に実行させるようにすれば良い。図18は、CPU(又はGPU)の動作の一例を示すフローチャートである。以下の説明では、図18に示すフローチャートのステップS101〜S107、及びステップS111の処理をCPU10が、図18に示すフローチャートのステップS109の処理をGPU11bが実行するものとして説明する。
画像処理プログラム40の実行が開始されると、図18のフローチャートに示す一連の処理が開始される。なお、図18のフローチャートに、ユーザからの外部入力やその他の条件に応じて、表示される曲面等を選択させる処理を追加しても構わない。
ステップS101では、CPU10は、距離データ41に基づいて法線ベクトルデータ42を生成し、内部メインメモリ11eに記録する。ステップS101で実行される法線画像生成処理の詳細については、図19を用いて後述する。ステップS103では、CPU10は、コントローラ7からの指示を受け付けて仮想カメラVPの位置を設定する。
ステップS105では、CPU10は、ステップS103において設定された仮想カメラVPの位置に基づいて、ブロックデータ43を生成し、内部メインメモリ11eに記録する。ステップS105で実行されるブロック生成処理の詳細については、図20を用いて後述する。
ステップS107では、CPU10は、ステップS105において生成されたブロックデータ43に基づいて、モデルデータ44を生成し、内部メインメモリ11eに記録する。ステップS107で実行されるポリゴン生成処理の詳細については、図21を用いて後述する。
ステップS109では、GPU11bは、ステップS107において生成されたモデルデータ44に基づいて、曲面SFを描画する。具体的には、内部メインメモリ11eからモデルデータ44を読み出して、VRAM11d内のフレームメモリへ描画する。ステップS111では、CPU10は、コントローラ7からの指示を受け付けて、画像処理を終了するか否かの判定を行う。画像処理を終了すると判定され場合(S111でYES)には、CPU10は、画像処理を終了する。画像処理を終了しないと判定され場合(S111でNO)には、CPU10は、処理をステップS103に戻し、ステップS103以降の処理を繰り返し実行する。
上記のステップS103〜S111の処理は、1フレーム周期(例えば、60分の1秒の周期)で繰り返され、その結果、テレビ2の画面には曲面SFを示す動画像が表示される。
ここでは、ステップS101において、距離データ41に基づいて法線ベクトルデータ42を生成し、内部メインメモリ11eに記録する場合について説明したが、予め生成された法線ベクトルデータ42を内部メインメモリ11e等に格納しておく形態でも良い。この場合には、法線ベクトルデータ42を生成する処理が不要となるため、処理が簡略化される。
図19は、図18に示すフローチャートのステップS101で実行される法線画像生成処理の一例を示す詳細フローチャートである。なお、ここでは、図16を参照して、法線画像生成処理の説明を行う。ステップS201では、CPU10は、仮想平面PL上の点から、法線ベクトル情報を生成する対象の点である基準点Q0を設定する(=「基準点設定ステップ」を実行する)。ステップS203では、CPU10は、ステップS201において設定された基準点M0に基づいて、外周点Q1〜Q4を設定する(=「外周点設定ステップ」を実行する)。
ステップS205では、CPU10は、ステップS201、S203において設定された基準点Q0及び外周点Q1〜Q4にそれぞれ対応する距離情報が内部メインメモリ11eから読み出す(=「第2距離読出ステップ」を実行する)。ステップS207では、CPU10は、基準点Q0及び外周点Q1〜Q4に対応する曲面SF上の点P0〜P4を頂点とする4つの三角形ポリゴンを生成する(=「第2座標算出ステップ」を実行する)。ステップS209では、CPU10は、ステップS207で生成された4つの三角形ポリゴンの法線ベクトルV1〜V4を求める(=「法線ベクトル算出ステップ」を実行する)。ステップS211では、CPU10は、ステップS209で生成された4つの法線ベクトルV1〜V4の平均値を求める(=「平均算出ステップ」を実行する)。ステップS213では、CPU10は、内部メインメモリ11eに、基準点Q0の仮想平面PL上の位置を示す情報と対応付けて記録する。
ステップS215では、CPU10は、仮想平面PL上の全て点(=距離画像PMの全てのピクセル)が基準点Q0として設定されたか否かの判定を行う。仮想平面PL上の全て点が設定されたと判定した場合(S215でYES)には、CPU10は、処理をリターンする。仮想平面PL上の全て点が設定されてはいないと判定した場合(S215でNO)には、CPU10は、処理をステップS201に戻し、ステップS201において未設定の点を基準点M0として設定し、ステップS201以降の処理を繰り返し実行する。
図20は、図18に示すフローチャートのステップS105で実行されるブロック生成処理の一例を示す詳細フローチャートである。なお、ここでは、図8〜図12を参照して、ブロック生成処理の説明を行う。ステップ301では、CPU10は、仮想平面PLを、4個のブロックPL11〜PL14に均等に分割する(=「第1分割ステップ」を実行する:図8参照)。ステップ303では、CPU10は、ステップS301(又はステップS311において)生成されたブロックに視野外のブロックが有るか否かの判定を行う(=「視野判定ステップ」を実行する:図9参照)。
視野外のブロックが無いと判定した場合(ステップS303でNO)には、CPU10は、処理をステップS307に進める。視野外のブロックが有ると判定した場合(ステップS303でYES)には、ステップ305で、CPU10は、視野外のブロックを処理の対象から除外する(=「領域除外ステップ」を実行する:図8参照)。ステップS303でNOの場合、又は、ステップS305の処理が終了した場合、ステップ307で、CPU10は、各ブロック(=ステップS301又はステップS311において生成されたブロックの内、ステップS305で処理対象から除外されていないブロック)のサイズ評価値を算出する(=「サイズ評価値算出ステップ」を実行する:図10参照)。
ステップS309では、CPU10は、ステップS307で算出されたサイズ評価値が予め設定された所定の閾値以上のブロック(=分割の必要なブロック)が有るか否かの判定を行う(=「分割要否判定ステップ」を実行する)。分割の必要なブロックが無いと判定した場合(S309でNO)には、CPU10は、処理をステップS313に進める。分割の必要なブロックが有ると判定した場合(S309でYES)には、ステップS311で、CPU10は、分割の必要なブロックをそれぞれ4個のブロックに均等に分割し(=「第2分割ステップ」を実行し)、処理をステップS303に戻し、ステップS303以降の処理を、分割の必要なブロックが無い(ステップS309でNO)と判定されるまで、繰り返し実行する。
ステップS309でNOの場合、ステップS313で、CPU10は、ステップS301又はステップS311で生成された各ブロックの中心点のX座標、Z座標及び分割回数を、ブロックデータ(図17参照)として図2に示す内部メインメモリ11eに一時的に記録する。ステップS315では、CPU10は、ステップS301又はステップS311で生成された各ブロックを、均等に分割して36個の小ブロックを生成する(=「再分割ステップ」を実行する:図11参照)。ステップS317では、CPU10は、ステップS315で生成された小ブロックを三角形領域に分割し(=「三角形生成ステップ」の一部を実行する:図11参照)し、処理をリターンする。
ここでは、ステップS313において、CPU10が、ブロックデータを内部メインメモリ11eに記録する場合について説明したが、その他のメモリ(例えば、フラッシュメモリ17等)に記録する形態でも良い。
また、ここでは、ステップS315において、ステップS301又はステップS311で生成された各ブロックを、均等に分割して36個の小ブロックを生成した後、ステップS317において、小ブロックを三角形領域に分割し、図21に示すフローチャートのステップS413で、三角形領域に対応する三角形ポリゴンを生成する場合について説明するが、ステップS301又はステップS311で生成された各ブロックを三角形領域に分割し、図21に示すフローチャートのステップS413で、三角形領域に対応する三角形ポリゴンを生成する形態(=「再分割ステップ」を実行せずに三角形領域を生成する形態)でも良い。
図21は、図18に示すフローチャートのステップS107で実行されるポリゴン生成処理の一例を示す詳細フローチャートである。ステップS401では、CPU10は、前回のポリゴン生成処理のステップS415において、内部メインメモリ11eにモデルデータ44と対応付けて格納されたブロックデータ43を読み出す。ステップS403では、図20に示すフローチャートのステップS313で内部メインメモリ11eに格納されたブロックデータの中から1のブロックデータを選択して読み出す。
ステップS405では、CPU10は、ステップS403で読み出したブロックデータと一致するブロックデータが、ステップS401で読み出したブロックデータ43に含まれているか否か(=既に、前回までのポリゴン生成処理において、ポリゴンが生成され、モデルデータ44が内部メインメモリ11eに格納されたブロックに対応するブロックデータ43に含まれるか否か)の判定を行う。ブロックデータ43に含まれていると判定された場合(S405でYES)には、CPU10は、処理をステップS417に進める。ブロックデータ43に含まれていないと判定された場合(S405でNO)には、ステップS407で、CPU10は、ステップS403で読み出したブロックデータに含まれる小ブロックの各頂点に対応する距離情報を内部メインメモリ11eに格納された距離データ41から読み出す(=「第1距離読出ステップ」を実行する)。
ステップS409では、CPU10は、ステップS407で読み出した距離情報を用いて、ステップS403で読み出したブロックデータに含まれる小ブロックの各頂点に対応するポリゴン頂点の座標を算出する(=「第1座標算出ステップ」を実行する)。ステップS411では、CPU10は、ステップS403で読み出したブロックデータ毎に、ステップS409で算出したポリゴン頂点の座標を用いて、72個の三角形ポリゴン(図11(b)参照)を生成する(=「三角形生成ステップ」を実行する)。ステップS413では、CPU10は、ステップS411で生成された三角形ポリゴンに含まれる画素に対応する法線ベクトル情報を、内部メインメモリ11eに格納された法線ベクトルデータ42から読み出す(=「法線読出ステップ」及び「法線設定ステップ」を実行する)。
ステップS415では、CPU10は、ステップS411、S413で生成されたポリゴンデータをモデルデータ44として、ステップS403で読み出したブロックデータ43と対応付けて、内部メインメモリ11eに格納する。ステップS415の処理が終了された場合、又は、ステップS405でYESの場合、ステップS417で、CPU10は、内部メインメモリ11eに格納された全てのブロックデータの選択が完了したか否かの判定を行う。全てのブロックデータの選択が完了したと判定した場合(S417でYES)には、CPU10は、処理をリターンする。全てのブロックデータの選択が完了してはいないと判定した場合(S417でNO)には、CPU10は、処理をステップS403に戻し、ステップS403において、未選択の1のブロックデータを選択し、ステップS403以降の処理を、ステップS417において全てのブロックデータの選択が完了したと判定されるまで繰り返し実行する。
このようにして、図21に示すポリゴン生成処理において、ブロックデータが、前回までのポリゴン生成処理において、ポリゴンが生成され、モデルデータ44が内部メインメモリ11eに格納されたブロックに対応するブロックデータ43に含まれていない場合(=今回のブロック生成処理において、新たに生成されたブロックに対応するブロックデータである場合)に限って、ポリゴンが生成されるため、処理を軽減することができる。
すなわち、前回までのポリゴン生成処理において生成されたモデルデータ44と、今回のポリゴン生成処理において生成するべきモデルデータとが一致する場合(=今回のブロック生成処理(図20参照)において生成され、内部メインメモリ11eに格納されたブロックデータと一致するブロックデータが、既に、内部メインメモリ11eに格納されている場合)には、今回のポリゴン生成処理においては、当該モデルデータが生成されない(=前回までのポリゴン生成処理において生成されたモデルデータ44が内部メインメモリ11eから読み出されて使用される)ため、処理を軽減することができるのである。
以上のように、本実施形態によれば、仮想カメラVPから見た画像の品位を確保することが可能であって且つ格納するために必要な容量が小さい(=適正な)ポリゴン情報(=モデルデータ44)を生成することができる。
本発明は、例えば、ゲーム装置等の画像処理プログラム及び画像処理装置に適用することができる。特に、仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面(例えば、地形を示す曲面)の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理プログラム及び画像処理装置に適用することができる。
本発明の一実施形態に係るゲームシステムの外観図 ゲーム装置の構成を示すブロック図 コントローラの上面後方から見た斜視図 コントローラを下面後方から見た斜視図 コントローラの上筐体を外した状態を示す斜視図 コントローラの下筐体を外した状態を示す斜視図 コントローラの構成を示すブロック図 仮想平面を予め設定された4つの領域に分割する処理の内容の一例を示す説明図 仮想カメラの視野外の領域を処理対象の領域から除外する処理の一例を示す説明図 領域の分割要否の判定に用いるサイズ評価値の算出処理の一例を示す説明図 再分割処理及び三角形生成処理の一例を説明する説明図 異なる大きさの領域が隣接している場合のポリゴン接続状態の一例を示す図 距離画像と仮想平面との対応付けの一例を示す図 ポリゴンモデルとして表現された曲面の、距離画像及び仮想平面との関係の一例を示す図 法線ベクトルとポリゴンとの関係の一例を示す図 法線画像生成処理の一例を示す図 内部メインメモリのメモリマップ CPU(又はGPU)の動作の一例を示すフローチャート 図18に示すフローチャートのステップS101で実行される法線画像生成処理の一例を示す詳細フローチャート 図18に示すフローチャートのステップS105で実行されるブロック生成処理の一例を示す詳細フローチャート 図18に示すフローチャートのステップS107で実行されるポリゴン生成処理の一例を示す詳細フローチャート
符号の説明
1 ゲームシステム
2 テレビジョン受像器(テレビ)
2a スピーカ
3 ゲーム装置
4 光ディスク
6 マーカ部
6R,6L マーカ
7 コントローラ
10 CPU
11 システムLSI
11a 入出力プロセッサ
11b GPU
11c DSP
11d VRAM
11e 内部メインメモリ
12 外部メインメモリ
13 ROM/RTC
14 ディスクドライブ
15 AV−IC
16 AVコネクタ
17 フラッシュメモリ
18 無線通信モジュール
19 無線コントローラモジュール
20 拡張コネクタ
21 メモリカード用コネクタ
22 アンテナ
23 アンテナ
24 電源ボタン
25 リセットボタン
26 イジェクトボタン
40 画像処理プログラム
41 距離データ
42 法線ベクトルデータ
43 ブロックデータ
44 モデルデータ
71 ハウジング
72 操作部
73 コネクタ
74 撮像情報演算部
75 通信部
700 基板
701 加速度センサ
702 LED
703 水晶振動子
704 バイブレータ
705 電池
706 スピーカ
707 サウンドIC
708 アンプ
741 赤外線フィルタ
742 レンズ
743 撮像素子
744 画像処理回路
751 マイコン
752 メモリ
753 無線モジュール
754 アンテナ

Claims (18)

  1. 仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理プログラムであって、当該画像処理プログラムは、コンピュータに、
    前記仮想平面を、多角形からなる複数の領域に、前記仮想カメラからの距離が近い程、各領域の面積を小さくするべく分割する平面分割ステップ、
    前記複数の領域にそれぞれ対応する多角形を構成する頂点毎に、前記仮想平面からの距離を示す距離情報を記憶手段から読み出す第1距離読出ステップ、
    前記複数の領域にそれぞれ対応する多角形を構成する各頂点から、前記第1距離読出ステップにおいて読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求める第1座標算出ステップ、
    前記第1座標算出ステップにおいて求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、前記複数の領域毎に略同数のポリゴンを生成するポリゴン生成ステップ、及び、
    前記ポリゴン生成ステップにおいて生成されたポリゴンを前記仮想カメラから見た画像を描画する描画ステップ、を実行させ
    前記平面分割ステップは、前記複数の領域毎の前記仮想カメラから見た画像の大きさを示すサイズ評価値をそれぞれ求めるサイズ評価値算出ステップを含み、
    前記サイズ評価値算出ステップにおいて求められたサイズ評価値を、予め設定された閾値以下とするべく、前記仮想平面を分割する、画像処理プログラム。
  2. 前記サイズ評価値算出ステップは、前記複数の領域にそれぞれ対応する多角形に内接又は外接する円を大円とする球の前記仮想カメラから見た画像の面積を、前記サイズ評価値として求める、請求項に記載の画像処理プログラム。
  3. 前記平面分割ステップは、
    前記仮想平面を予め設定された第1所定数の領域に分割する第1分割ステップ、
    前記第1分割ステップにおいて生成された領域毎に、前記サイズ評価値算出ステップにおいて求められたサイズ評価値が、それぞれ、前記閾値以下であるか否かを判定する分割要否判定ステップ、及び、
    前記分割要否判定ステップにおいて前記閾値以下ではないと判定された領域を、更に前記第1所定数の領域に分割する第2分割ステップ、を更に含み、
    前記分割要否判定ステップは、前記第2分割ステップにおいて新たに生成された各領域について、前記サイズ評価値算出ステップにおいて求められたサイズ評価値が、それぞれ、前記閾値以下であるか否かを判定し、
    生成された全ての領域の前記サイズ評価値が予め設定された閾値以下となるまで、前記分割要否判定ステップ及び前記第2分割ステップを繰り返し実行する、請求項に記載の画像処理プログラム。
  4. 前記第1分割ステップは、前記仮想平面を前記第1所定数の領域に均等に分割し、
    前記第2分割ステップは、前記分割要否判定ステップにおいて前記閾値以下ではないと判定された領域を、前記第1所定数の領域に均等に分割する、請求項に記載の画像処理プログラム。
  5. 前記仮想平面は、四角形の平面であり、
    前記多角形は、四角形であって、
    前記第1分割ステップは、前記四角形の仮想平面の互いに対向する2つの辺の中点を結ぶ2本の直線で、当該四角形の仮想平面を4等分し、
    前記第2分割ステップは、前記分割要否判定ステップにおいて前記閾値以下ではないと判定された四角形の領域の互いに対向する2つの辺の中点を結ぶ2本の直線で、当該四角形の領域を4等分する、請求項に記載の画像処理プログラム。
  6. 前記画像処理プログラムは、前記平面分割ステップにおいて生成された複数の領域を、それぞれ、予め設定された第2所定数の四角形の領域である小領域に均等に分割する再分割ステップを、前記コンピュータに更に実行させ、
    前記第1距離読出ステップは、前記再分割ステップにおいて生成された四角形の領域を構成する頂点毎に、前記距離情報を前記記憶手段から読み出し、
    前記第1座標算出ステップは、前記再分割ステップにおいて生成された四角形の領域を構成する各頂点から、前記第1距離読出ステップにおいて読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求め、
    前記ポリゴン生成ステップは、前記第1座標算出ステップにおいて求められた座標に対応する点を、前記ポリゴン頂点とするポリゴンを生成する、請求項に記載の画像処理プログラム。
  7. 前記ポリゴン生成ステップは、
    前記再分割ステップにおいて生成された四角形の小領域毎に、当該四角形の小領域を対角線で分割して得られる2つの三角形の領域にそれぞれ対応する2個の三角形ポリゴンを生成する三角形生成ステップ、を含む、請求項に記載の画像処理プログラム。
  8. 前記再分割ステップは、前記平面分割ステップにおいて生成された四角形の領域毎に、該四角形の各辺方向にそれぞれ偶数個の小領域に均等に分割し、
    前記三角形生成ステップは、
    前記第2所定数の小領域の内、前記平面分割ステップにおいて生成された各領域に対応する四角形を構成する辺の一部を、前記小領域に対応する四角形のいずれかの辺として含む小領域である外周小領域を抽出する外周抽出ステップ、及び、
    前記外周抽出ステップにおいて抽出された外周小領域の内、
    該外周小領域が前記平面分割ステップにおいて生成された領域に対応する四角形を構成する頂点を含む場合には、該外周小領域を構成する四角形をそれぞれ分割する対角線として、該頂点を含む対角線を選択し、
    該外周小領域が前記平面分割ステップにおいて生成された領域に対応する四角形を構成する頂点を含まない場合には、該外周小領域を構成する四角形をそれぞれ分割する対角線として、隣接する外周小領域の対角線が互いに略直交するべく対角線を選択する対角線選択ステップ、を含む、請求項に記載の画像処理プログラム。
  9. 前記ポリゴン生成ステップは、前記平面分割ステップにおいて生成された四角形の領域毎に、当該四角形の領域を対角線で分割して得られる2つの三角領域にそれぞれ対応する2個の三角形ポリゴンを生成する三角形生成ステップを含む、請求項に記載の画像処理プログラム。
  10. 前記画像処理プログラムは、前記平面分割ステップにおいて生成された各領域が、前記仮想カメラから見た画像に全く含まれない領域である視野外領域であるか否かを判定する視野判定ステップ、及び、
    前記視野判定ステップにおいて視野外領域であると判定された領域については、前記第1距離読出ステップ、第1座標算出ステップ、及び、ポリゴン生成ステップの処理対象から除外する領域除外ステップを、前記コンピュータに更に実行させる、請求項1に記載の画像処理プログラム。
  11. 前記画像処理プログラムは、
    法線ベクトル情報を生成する対象の点である基準点として、前記記憶手段に、前記距離情報が対応付けて格納された前記仮想平面上の点を順次設定する基準点設定ステップ、
    前記仮想平面内において、前記基準点から予め設定された第1方向に予め設定された単位距離だけ離間した2つの点を設定し、前記基準点から前記第1方向と直交する方向である第2方向に前記単位距離だけ離間した2つの点を設定する外周点設定ステップ、
    前記基準点設定ステップにおいて設定された基準点及び前記外周点設定ステップにおいて設定された4つの点に対応する前記距離情報を前記記憶手段から読み出す第2距離読出ステップ、
    前記基準点及び4つの点から、それぞれ、前記第2距離読出ステップにおいて読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求める第2座標算出ステップ、
    前記第2座標算出ステップにおいて求められた座標に対応する5つの点の内、前記基準点に対応する点と、前記第1方向に離間した2つの点のいずれか一方に対応する点と、前記第2方向に離間した2つの点のいずれか一方に対応する点と、を頂点とする4つの三角形ポリゴンの法線ベクトルをそれぞれ求める法線ベクトル算出ステップ、及び、
    前記法線ベクトル算出ステップにおいて算出された4つの法線ベクトルの平均値を算出し、前記記憶手段に、前記基準点の前記仮想平面上の位置を示す情報と対応付けて記録する平均算出ステップを、前記コンピュータに更に実行させ、
    前記ポリゴン生成ステップは、前記ポリゴン頂点毎に、対応する法線ベクトルを前記記憶手段から読み出して設定する法線設定ステップを含む、請求項1に記載の画像処理プログラム。
  12. 前記画像処理プログラムは、前記第1座標算出ステップにおいて求められた座標に対応する点における、前記曲面の傾きを示す法線ベクトル情報を前記記憶手段から読み出す法線読出ステップを、前記コンピュータに更に実行させ、
    前記ポリゴン生成ステップは、前記法線読出ステップにおいて読み出された法線ベクトル情報を、それぞれ、対応するポリゴン頂点の法線ベクトル情報として設定する法線設定ステップを含む、請求項1に記載の画像処理プログラム。
  13. 前記記憶手段には、画像を構成する各点の位置及び色が、それぞれ、前記曲面上の各点の位置及び法線ベクトルに対応するべく構成された画像情報として、前記法線ベクトル情報が格納されている、請求項12に記載の画像処理プログラム。
  14. 前記記憶手段には、画像を構成する各点の位置及び色が、それぞれ、前記曲面上の各点の位置及び前記仮想平面からの距離に対応するべく構成された画像情報として、前記距離情報が格納されている、請求項1に記載の画像処理プログラム。
  15. 前記曲面は、前記仮想三次元空間に配置された地形である、請求項1に記載の画像処理プログラム。
  16. 仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理装置であって、
    前記仮想平面を、多角形からなる複数の領域に、前記仮想カメラからの距離が近い程、各領域の面積を小さくするべく分割する平面分割手段、
    前記複数の領域にそれぞれ対応する多角形を構成する頂点毎に、前記仮想平面からの距離を示す距離情報を記憶手段から読み出す第1距離読出手段、
    前記複数の領域にそれぞれ対応する多角形を構成する各頂点から、前記第1距離読出手段によって読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求める第1座標算出手段、
    前記第1座標算出手段によって求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、前記複数の領域毎に略同数のポリゴンを生成するポリゴン生成手段、及び、
    前記ポリゴン生成手段によって生成されたポリゴンを前記仮想カメラから見た画像を描画する描画手段、を備え
    前記平面分割手段は、前記複数の領域毎の前記仮想カメラから見た画像の大きさを示すサイズ評価値をそれぞれ求めるサイズ評価値算出手段を含み、当該サイズ評価値算出手段によって求められたサイズ評価値を、予め設定された閾値以下とするべく、前記仮想平面を分割する、画像処理装置。
  17. 仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理システムであって、
    前記仮想平面を、多角形からなる複数の領域に、前記仮想カメラからの距離が近い程、各領域の面積を小さくするべく分割する平面分割手段、
    前記複数の領域にそれぞれ対応する多角形を構成する頂点毎に、前記仮想平面からの距離を示す距離情報を記憶手段から読み出す第1距離読出手段、
    前記複数の領域にそれぞれ対応する多角形を構成する各頂点から、前記第1距離読出手段によって読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求める第1座標算出手段、
    前記第1座標算出手段によって求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、前記複数の領域毎に略同数のポリゴンを生成するポリゴン生成手段、及び、
    前記ポリゴン生成手段によって生成されたポリゴンを前記仮想カメラから見た画像を描画する描画手段、を備え、
    前記平面分割手段は、前記複数の領域毎の前記仮想カメラから見た画像の大きさを示すサイズ評価値をそれぞれ求めるサイズ評価値算出手段を含み、当該サイズ評価値算出手段によって求められたサイズ評価値を、予め設定された閾値以下とするべく、前記仮想平面を分割する、画像処理システム。
  18. 仮想三次元空間に配置された仮想平面からの距離によって起伏が規定される曲面の、当該仮想三次元空間に配置された仮想カメラから見た画像を描画する画像処理システムのコンピュータによって実行される画像処理方法であって、
    前記コンピュータが、前記仮想平面を、多角形からなる複数の領域に、前記仮想カメラからの距離が近い程、各領域の面積を小さくするべく分割する平面分割ステップ、
    前記コンピュータが、前記複数の領域にそれぞれ対応する多角形を構成する頂点毎に、前記仮想平面からの距離を示す距離情報を記憶手段から読み出す第1距離読出ステップ、
    前記コンピュータが、前記複数の領域にそれぞれ対応する多角形を構成する各頂点から、前記第1距離読出ステップにおいて読み出された距離情報が示す距離だけ、前記仮想平面に垂直な方向に離間した位置の座標を求める第1座標算出ステップ、
    前記コンピュータが、前記第1座標算出ステップにおいて求められた座標に対応する点を、ポリゴンを規定する頂点であるポリゴン頂点として、前記複数の領域毎に略同数のポリゴンを生成するポリゴン生成ステップ、及び、
    前記コンピュータが、前記ポリゴン生成ステップにおいて生成されたポリゴンを前記仮想カメラから見た画像を描画する描画ステップ、を含み、
    前記平面分割ステップは、前記複数の領域毎の前記仮想カメラから見た画像の大きさを示すサイズ評価値をそれぞれ求めるサイズ評価値算出ステップを含み、
    前記サイズ評価値算出ステップにおいて求められたサイズ評価値を、予め設定された閾値以下とするべく、前記仮想平面を分割する、画像処理方法。
JP2008095401A 2008-04-01 2008-04-01 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法 Active JP5078712B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008095401A JP5078712B2 (ja) 2008-04-01 2008-04-01 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法
EP08011124A EP2106831A3 (en) 2008-04-01 2008-06-19 Storage medium having stored thereon image processing program and image processing apparatus
US12/213,658 US8259107B2 (en) 2008-04-01 2008-06-23 Storage medium having stored thereon image processing program and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008095401A JP5078712B2 (ja) 2008-04-01 2008-04-01 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2009251675A JP2009251675A (ja) 2009-10-29
JP5078712B2 true JP5078712B2 (ja) 2012-11-21

Family

ID=40942436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008095401A Active JP5078712B2 (ja) 2008-04-01 2008-04-01 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法

Country Status (3)

Country Link
US (1) US8259107B2 (ja)
EP (1) EP2106831A3 (ja)
JP (1) JP5078712B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582931B2 (en) * 2010-02-26 2017-02-28 Chevron U.S.A. Inc. Surface smoothing within an earth model of a geological volume of interest
GB2533444B (en) 2015-06-05 2017-08-16 Imagination Tech Ltd Tessellation method
JP7339846B2 (ja) * 2019-10-25 2023-09-06 住友重機械工業株式会社 モデル化装置及びプログラム
CN112734894B (zh) * 2021-01-25 2023-07-14 腾讯科技(深圳)有限公司 虚拟毛发的绘制方法、装置和存储介质及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679361A (en) * 1986-01-13 1987-07-14 Yacoe J Craig Polyhedral structures that approximate a sphere
JPH03227158A (ja) 1990-02-01 1991-10-08 Oki Electric Ind Co Ltd 車載・携帯兼用電話機の車載収納装置
WO1994028989A1 (fr) * 1993-06-16 1994-12-22 Namco Ltd. Appareil de jeu en trois dimensions
JPH07271999A (ja) * 1994-03-31 1995-10-20 Oki Electric Ind Co Ltd 3次元地形出力方法
US6167159A (en) * 1998-04-30 2000-12-26 Virtue Ltd. Triangle mesh compression
JP2001118082A (ja) * 1999-10-15 2001-04-27 Toshiba Corp 描画演算処理装置
JP3638568B2 (ja) * 2001-06-08 2005-04-13 株式会社ソニー・コンピュータエンタテインメント 画像処理プログラム、画像処理プログラムを記録した記録媒体、画像処理装置及び方法
JP2003044879A (ja) * 2001-08-02 2003-02-14 Mitsubishi Electric Corp 三次元データ生成装置、三次元データ生成方法およびその方法をコンピュータに実行させるプログラム、三次元データ送信装置、三次元データ送信方法およびその方法をコンピュータに実行させるプログラム
JP2003099801A (ja) * 2001-09-25 2003-04-04 Toyota Motor Corp 三次元モデルの画像表示方法、装置、プログラム及び記録媒体
US6765584B1 (en) * 2002-03-14 2004-07-20 Nvidia Corporation System and method for creating a vector map in a hardware graphics pipeline
GB2415117B (en) * 2002-05-10 2006-04-12 Imagination Tech Ltd An interface and method of interfacing between a parametric modelling unit and a polygon based rendering system
EP1548686B1 (en) * 2002-07-30 2012-09-05 Xanavi Informatics Corporation Map data product and map data processor
JP3748545B2 (ja) * 2002-09-19 2006-02-22 株式会社ナムコ プログラム、情報記憶媒体及び画像生成装置
JP3853329B2 (ja) * 2004-03-31 2006-12-06 株式会社コナミデジタルエンタテインメント ゲームプログラム及びゲーム装置
US7436405B2 (en) * 2004-05-14 2008-10-14 Microsoft Corporation Terrain rendering using nested regular grids
US20060132488A1 (en) * 2004-12-17 2006-06-22 Electronics And Telecommunications Research Institute Apparatus and method for representing multi-level LOD three-dimensional image
US7876322B2 (en) * 2005-11-29 2011-01-25 Siemens Corporation Method and apparatus for fast and efficient mesh simplification
JP2008095401A (ja) 2006-10-12 2008-04-24 I D C:Kk 地盤改良の単軸対流混合攪拌装置

Also Published As

Publication number Publication date
EP2106831A3 (en) 2012-02-01
US8259107B2 (en) 2012-09-04
EP2106831A2 (en) 2009-10-07
JP2009251675A (ja) 2009-10-29
US20090244063A1 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
JP5376874B2 (ja) 画像処理プログラムおよび画像処理装置
US8884875B2 (en) Information processing apparatus and computer-readable recording medium recording information processing program
US9310894B2 (en) Processing operation signals from a pointing device and/or an input device
JP5469516B2 (ja) 画像表示プログラム、画像表示システム、画像表示方法および画像表示装置
JP5063930B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
JP5236214B2 (ja) 画像処理プログラム
US8698794B2 (en) Computer-readable storage medium having overhead map resource generation program stored therein, computer-readable storage medium having overhead map display program stored therein, overhead map resource generation apparatus, and overhead map display apparatus
JP5632657B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法
JP5078712B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム及び画像処理方法
US8212808B2 (en) Image processing program and image processing apparatus
US9153071B2 (en) Game apparatus, game program and game system
JP5274298B2 (ja) 描画処理装置、および、描画処理プログラム
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP4151983B2 (ja) 移動方向算出装置および移動方向算出プログラム
JP4964688B2 (ja) 画像処理プログラムおよび画像処理装置
JP4290709B2 (ja) ゲーム装置およびゲームプログラム
JP4220531B2 (ja) 重力方向算出装置および重力方向算出プログラム
JP2007295989A (ja) ゲーム装置およびゲームプログラム
JP5798601B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110325

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120711

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120720

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

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

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

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5078712

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250