JP4226663B2 - 画像生成装置および画像生成方法 - Google Patents

画像生成装置および画像生成方法 Download PDF

Info

Publication number
JP4226663B2
JP4226663B2 JP52595799A JP52595799A JP4226663B2 JP 4226663 B2 JP4226663 B2 JP 4226663B2 JP 52595799 A JP52595799 A JP 52595799A JP 52595799 A JP52595799 A JP 52595799A JP 4226663 B2 JP4226663 B2 JP 4226663B2
Authority
JP
Japan
Prior art keywords
hit
polygon
moving path
data
hit determination
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
JP52595799A
Other languages
English (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.)
Sega Corp
Original Assignee
Sega Corp
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 Sega Corp filed Critical Sega Corp
Application granted granted Critical
Publication of JP4226663B2 publication Critical patent/JP4226663B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • A63F13/10
    • 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/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • 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/45Controlling the progress of the video game
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/643Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car by determining the impact between objects, e.g. collision detection
    • 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/663Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating liquid objects, e.g. water, gas, fog, snow, clouds
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8017Driving on land or water; Flying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

技術分野
本発明は、画像生成装置および画像生成方法に関し、特に、ゲーム装置などのように仮想3次元空聞内を移動させる移動体とその移動路などの周囲環境との間の関わり具合をより緻密にかつリアルに表現するようにした画像生成装置および画像生成方法に関する。
背景技術
近年のコンピュータグラフィックス技術の発達に伴い、業務用、家庭用を問わず、シミュレーション装置やゲーム装置が広く一般に普及するようになっている。ゲーム装置の一つのジャンルとして、仮想ゲーム空間内でオブジェクトとしての車両を移動させて競争するカーレースをゲーム内容とするゲーム装置があり、根強い人気を得ている。
このジャンルのゲーム装置は通常、予め記憶したゲームプログラムを実行するコンピュータ装置を内蔵した装置本体と、ゲームで表現されるオブジェクトの移動を指令する操作信号を装置本体に与える操作部と、装置本体でゲームプログラムが実行されることによるゲーム展開に伴う画像を表示するモニタと、そのゲーム展開に伴う音響を発生させる音響装置とを備えている。
カーレースゲームは通常、自車と敵車とが競争する形式でゲームが進められるので、ゲームをよりリアルにかつ臨場感溢れるものにする上で、車両の動きをよりリアルにシミュレートすることが需要であることは勿論のこと、背景の一部となる道路や地形(環境)との関わり具合、さらに車から周囲環境への関わりといった要素を反映した画像処理の緻密さリアルさも重要なファクタである。
しかしながら、このカーレースをゲーム内容とする従来のゲーム装置の場合、上述したように車両の走行に伴って発生する車両と周囲環境との聞の相互干渉のファクタを画像として表現する上で、以下のような未解決の問題が指摘されていた。
(1)車両の走行状態を画像表現するには、一定時間毎に地形と車両のタイヤ(車輪)との当たりを判定することが必要である。地形は近年では地形を細かく区分けした適宜な数のポリゴンデータにより表現されている。各ポリゴンデータはその複数の頂点の位置座標とそのポリゴン面全体で1つの法泉ベクトルのデータとを有している。従来の当たり判定はポリゴン面そのもの(ポリゴン面の座標)に対して行う構成であったため、ポリゴン同士が比較的大きな角度を持って隣接しているような場合、その繋ぎめを超えたときの当たり判定の方向が急激に変化することがあり、車両が不自然な挙動を呈していた。例えば、比較的滑らかに見える路面部分を走行していたにも関わらず、ポリゴン面同士の角度が大きかったために、車両の向きがロール方向、ピッチ方向、さらにはヨー方向に急変し、遊戯者に違和感を与えてしまっていた。
勿論、路面やその周囲環境を表す地形に対して1つのポリゴン面の大きさをタイヤの大きさに比べて非常に小さく設定すれば、その分、地形全体は滑らかさを増すから、そのような当たり判定の方向の急変は起こり難い。しかし、そのようにポリゴン面を細かく設定することは、地形のデータ量がその分増えることであり、メモリに必要な記憶容量が非常に大きくなり、コンピュータ装置のCPUへの演算負荷も著しく増えることとなる。仮に、記憶容量の大きなメモリは装備できたとしても、装置全体の処理速度は低下してしまう。処理速度の低下は昨今のゲーム装置にとって非常に不利なものであり、市場性にも影響する。このため、ポリゴン面の大きさの設定には自ずと一定の限界があった。
またポリゴン面同士にわたる挙動変化のみならず、各ポリゴン面上の細かい凹凸を反映した車両の挙動もリアル感を向上させる上で非常に重要である。従来、これを表現しようとする場合、その凹凸の高さ情報を予めポリゴン(テクスチャ)毎に持たせておき、この凹凸の高さ情報との間で当たり判定をとる必要があり、データ量および演算量が膨大になり、実際上不可能であった。
さらに、車両の挙動が周囲環境に及ぼすファクタの1つに走行に伴う路面、地面からの砂煙の発生がある。この砂煙は路面状態や高速、加速といった走行状態をリアルに表現する上で、非常に大切なファクタの1つである。
それにも関わらず、従来、この砂煙の画像処理は非常に難しく、その表現の出来栄えとの兼ね合いから砂煙は表現しないことが多かった。この砂煙を敢えて表現する場合、単に砂煙のもや(固まり)の外表面を表現する1枚または複数枚のポリゴンを背景などに3次元的に重ねて表示していた。このため、輪郭が非常に目立たつ砂煙のもやとしての物体を車両の後方に飛ばすことで表現していた。
しかしながら、実際には一見して砂煙とは見えないことが多く、非常に人為的に見える画像になっていた。このため、煙をなす粒子という感覚を表現するため、煙のポリゴンの存在感を落とした画像処理で粒子感を代替させることが多く、そのような場合、砂煙としての臨場感に不足していた。また、例えば敵車が加速しながら自車を追い越していくときに、視点カメラが位置的に砂煙の雰囲気中に入ってしまうことがある。そのような場合、従来では、視点カメラは実際には砂煙のもやの中に在りながら、トンネルの中に入ってその壁のみ、すなわち砂煙の固まりの外表面のみが見えるという不自然な状態の画像しか生成できなかった。
さらに、移動している車両がその周囲環境に干渉するファクタとして、車両の点灯しているヘッドライトやテールランプ、さらには車体の一部がゲーム空間内の仮想的な太陽光に反射する光がある。これらはいずれも光の拡散または光のまぶしさとして表現できるファクタである。
従来のゲーム装置において、これらの輝度の高い物体を表現する場合、その物体自体の色を明るく表現するか、ハード的に備えているユニットを使った霧の効果を利用して表現するか、さらにはその光物体の外郭から中心に進むにつれて透明から不透明に変化する1枚の板を自車に向けて発光点に置くことで表現するかの手法を採用している。
しかし、これらの手法はいずれも動く物体からの拡散光の本質的性質である指向性を表現することができず、単に光っていることを表しているだけであって、移動中の車両がダイナミックに光を出すといった感覚に欠けていた。また、とくに、3番目の手法の場合、ヘッドライトを例に挙げると、かかる車両を後ろから見た場合でも光が拡散しているという不自然な状態になってしまう。
本発明は、上述したゲーム装置が有する未解決の問題を克服するためになされたもので、演算量やデータ量を格別に増大させることなく、移動体としての車両とその周囲環境との間の相互干渉に関わるファクタを、よりリアルに表現でき、車両の移動をメインテーマとするゲームの臨場感を高め、また興味感を向上させることができる画像生成装置および画像生成方法を提供することを、共通の目的とする。
具体的には、本発明の第1の目的は、演算量やデータ量を格別増大させることなく、ポリゴン同士の繋ぎめを超えた当たり判定のときの判定方向の急変を防止して、違和感の少ない、より自然な当たり判定を行うとともに、路面の凹凸をも考慮した当たり判定を行うことで、車両挙動表現のリアル感、臨場感を従来よりも格段に高めた画像生成装置および画像生成方法を提供することである。
本発明の第2の目的は、演算量やデータ量を格別増大させることなく、砂煙のもやによる粒子感を表現して従来ののっぺりした又は人為的な砂煙による違和感を排除するとともに、カメラ視点がもやの中に空間的に位置した場合でも、そのカメラ視点から観測されるもや状態の違和感を排除した砂煙を表現できる画像生成装置および画像生成方法を提供することである。
本発明の第3の目的は、演算量やデータ量を格別増大させることなく、移動している車両から発せされるヘッドライト、テールライト、反射光といった指向性を持った拡散光をダイナミックに画像生成して、リアリティを向上させた拡散光を表現できる画像生成装置および画像生成方法を提供することである。
発明の開示
上記目的を達成するため、第1の発明に係る画像生成装置によれば、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を確立する当たり確立手段と、この当たり状態を保持しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する生成手段とを備え、前記当たり確立手段は、前記移動路のポリゴンの頂点に与えられた頂点データから前記オブジェクトの当たり位置における当たり確立用データを補間して求める補間手段と、この補間手段により補間された当たり確立用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段とを有する、ことを特徴とする。
例えば、前記頂点データは各頂点の高さと法線ベクトルから成り、前記当たり確立用データは前記当たり位置の高さおよび法線ベクトルから成る。また例えば、前記補間手段は、前記当たり位置から座標軸に沿って辿って交差する前記ポリゴンの2辺それぞれを指定する手段と、前記各辺の両端の頂点データに基づく第1および第2の稜線を設定する手段と、この各稜線上で前記2辺との交差点それぞれのデータを求める手段と、前記2辺との交差点を両端とする線分の第3の稜線を指定する手段と、この第3の稜線上で前記交差点それぞれのデータから前記当たり判定位置の前記当たり確立用データを求める手段とを有する。好適には、前記第1乃至第3の稜線は3次式で与えられる。
さらに、第2の発明に係る画像生成装置は、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を確立する当たり確立手段と、この当たり状態を保持しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像データ生成手段とを備え、前記当たり確立手段は、前記オブジェクトの当たり位置での当たり確立用データを前記ポリゴンで表現する前記移動路の属性に応じて補正する補正手段と、この補正手段により補正された前記当たり確立用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段とを有する、ことを特徴とする。
例えば、前記当たり確立用データは前記当たり位置の高さおよび法線ベクトルである。また例えば、前記移動路の属性はその移動路の凹凸であり、この凹凸の情報は前記ポリゴンに貼り付けるテクスチャに与えられた濃淡データを用いる。
さらに、第3の発明に係る画像生成装置は、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を確立する当たり確立手段と、この当たり状態を保持しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像データ生成手段とを備え、前記当たり確立手段は、前記移動路のポリゴンの頂点に与えられた頂点データから前記オブジェクトの当たり位置における当たり確立用データを補間して求める補間手段と、この補間手段により補間された当たり確立用データを前記ポリゴンで表現する前記移動路の属性に応じて補正する補正手段と、この補正手段により補正された前記当たり確立用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段とを有する、ことを特徴とする。例えば、前記当たり確立用データは前記当たり位置の高さおよび法線ベクトルである。
さらに、第4の発明に係る画像生成装置によれば、仮想3次元空間を移動するオブジェクトの光源から放射される拡散光の画像データをそのオブジェクトの移動状態に応じて制御する拡散光制御手段と、この制御された拡散光の画像データを含めた前記オブジェクトの移動状態を表す画像データを生成する生成手段とを備えたことを特徴とする。
好適には、前記拡散光制御手段は、前記光源の向きを表す光源ベクトルおよび前記仮想3次元空間内のカメラ視点の向きを表す視線ベクトルを求める手段と、前記拡散光の画像データとして1枚のポリゴンを指定する手段と、前記両ベクトル間の角度情報に基づき前記ポリゴンの大きさを変化させる変化手段とを有する。また、好適には、前記変化手段は、前記両ベクトルの向きが一致したときに無限大に発散する係数を乗じて前記ポリゴンの大きさを変化させる手段である。
さらに、第5の発明に係る画像生成装置によれば、仮想3次元空間を移動するオブジェクトが発生する砂煙の画像データをそのオブジェクトの移動状態に応じて制御する砂煙制御手段と、この制御された砂煙の画像データを含めた前記オブジェクトの移動状態を表す画像データを生成する生成手段とを備えたことを特徴とする。
この場合の好適な一例は、前記砂煙制御手段は、前記砂煙の画像データを2次元配置の複数のポリゴンとして指定する手段と、前記オブジェクトの挙動を含むファクタの物理的影響の度合いを求める手段と、この度合いに応じて前記複数のポリゴンそれぞれの挙動を演算する手段と、この演算結果に応じて前記複数のポリゴンを相互に繋いでポリゴン集合体として再構成する手段とを有する、ことである。また例えば、前記砂煙制御手段は、前記再構成されたポリゴン集合体に砂煙らしさに関わる透明度の相違および霧状に見える処理を加える手段を有することができる。
なお、上記各構成において、前記オブジェクトは前記仮想3次元空間内で移動するカーレースゲームの車である、ことができる。
さらに、第6の発明に係る画像生成方法は、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を確立しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像生成方法であって、前記移動路のポリゴンの頂点に与えられた頂点データから前記オブジェクトの当たり位置における当たり確立用データを補間して求め、この補間された当たり確立用データに応じて前記オブジェクトの前記移動路への当たりを設定する、ことを特徴とする。
さらに、第7の発明に係る画像生成方法は、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を確立しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像生成方法であって、前記オブジェクトの当たり位置での当たり確立用データを前記ポリゴンで表現する前記移動路の属性に応じて補正し、この補正された当たり確立用データに応じて前記オブジェクトの前記移動路への当たりを設定する、ことを特徴とする。
さらに、第8の発明に係る画像生成方法は、仮想3次元空間を移動するオブジェクトの光源から放射される拡散光の方向が当該空間内のカメラ視点の方向に一致するにしたがって当該拡散光の大きさおよび強度が増加させる、ことを特徴とする。
さらに、第9の発明に係る画像生成方法は、仮想3次元空間を移動するオブジェクトにより発生される砂煙を当該オブジェクトの挙動に応じて変形するとともに、その外縁に至るほど透明感を増加させる、ことを特徴とする。
【図面の簡単な説明】
図1は、本発明の1つの実施形態にかかるゲーム装置の構成を示すブロック図。図2は、CPUを中心として実行されるメインフローを示す図。図3は、当たり判定処理の概要を示すサブフローの図。図4は、路面を構成する多数のポリゴンの配置を示す模式図。図5は、当たり判定処理におけるポリゴン内の補間処理の手順を説明するための図。図6は、当たり判定処理におけるポリゴン内の補間処理の手順を説明するための図。図7は、当たり判定処理におけるポリゴン内の補間処理の手順を説明するための図。図8は、当たり判定処理におけるバンプ補正処理の手順を説明するための図。図9は、当たり判定処理におけるバンプ補正処理の手順を説明するための図。図10は、当たり判定処理におけるバンプ補正処理の手順を説明するための図。図11は、当たり判定処理におけるバンプ補正処理の手順を説明するための図。図12は、砂煙の発生処理の概要手順を説明するための図。図13は、砂煙の発生処理を説明するための図。図14は、砂煙の発生処理を説明するための図。図15は、砂煙の発生処理を説明するための図。図16は、砂煙の発生処理を説明するための図。図17は、拡散光の表現処理の概要手順を説明するための図。図18は、拡散光の表現処理を説明するための図。図19は、拡散光の表現処理を説明するための図。図20は、拡散光の表現処理を説明するための図。図21は、拡散光の表現処理を説明するための図。
発明を実施するための最良の形態
以下、本発明の1つの実施の形態を図面を参照して説明する。
図1に示すゲーム装置は、本発明に係る画像生成装置および画像生成方法を実施する1つの形態であり、カーレース用のゲームを実施する装置である。この装置は、その基本的要素としてゲーム処理ボード10、入力装置11、出力装置12、TVモニタ13、およびスピーカ14を備える。
入力装置11は、ハンドル、アクセル、ブレーキ、シフトレバー、ビューチャンジスイッチなどを備える。出力装置13は、ハンドルキックバック機構、各種表示ランプ類などを備える。TVモニタ13はカーレースゲームの画像を表示するもので、TVモニタの代わりにプロジェクタを使用してもよい。ビューチャンジスイッチは仮想的なカメラ視点の位置を変更するためのスイッチである。遊戯者がこのスイッチを操作することで、例えば、運転席から見た前方の視点、自車を斜め後方から見た視点などを選択できる。
ゲーム処理ボード10は、カウンタ100、CPU(中央演算処理装置)101、このゲーム装置の動作プログラムやデータが記憶された記憶媒体としてのROM102、RAM103、サウンド装置104、入出力インターフェイス106、スクロールデータ演算装置107、コ・プロセッサ(補助演算処理装置)108、地形データROM109、ジオメタライザ110、形状データROM111、描画装置112、テクスチャデータROM113、テクスチャマップRAM114、フレームバッファ115、画像合成装置116、およびD/A変換器117を備えている。
この内、CPU101はバスラインを介して、初期値からカウントダウンするカウンタ100、所定のプログラムや画像処理プログラムなどを記憶したROM102、演算データを記憶するRAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ108、およびジオメタライザ110に接続されている。RAM103はバッファ用として機能させるもので、ジオメタライザに対する各種コマンドの書込み(オブジェクトの表示など)、変換マトリクス演算時を含む各種演算時の必要データの書込みなどに使用される。
入出力インターフェース106は入力装置11および出力装置12に接続されており、入力装置11の各種の操作信号、検知信号がデジタル量としてCPU101に取り込まれる。また、CPU101などで生成された信号を出力装置12に供給できる。サウンド装置104は電力増幅器105を介してスピーカ14に接続されている。これにより、サウンド装置104で生成された音響信号が電力増幅され、スピーカ14から音響として出力される。
CPU101は、ROM102に内蔵したプログラムに基づいて、入力装置11からの操作信号および地形データROM109からの地形データ、または形状データROM111からの形状データ(「自車、敵車などのオブジェクト」、および、「路面、地形、空、観客、各種構造物などの背景」などの3次元データ)を読み込んで、地形と車の当たり判定、車同士の衝突判定、4輪サスペンションの挙動計算、車の挙動計算の挙動計算(シミュレーション)、および砂煙の発生処理、拡散光の発生・制御処理を含む特殊効果処理の演算を行う。
車の挙動計算は、入力装置11からの遊戯者による操作信号を用いて仮想3次元空間(ゲーム空間)での車の動きをシミュレートするものである。これを実行するには、仮想3次元空間での車のポリゴンの座標値が決定された後、この座標値を2次元視野座標系に変換するための変換マトリクスと形状データ(ポリゴンデータ)とがジオメタライザ110に指定される。コ・プロセッサ108には地形データROM109が接続されており、予め定めた地形データがコ・プロセッサ108およびCPU101に渡される。コ・プロセッサ108は主に、地形と車の当たり判定や車の挙動計算時に浮動小数点の演算を引き受けるようになっている。このため、CPUの演算負荷を軽減できる。
ジオメタライザ110は形状データROM111および描画装置112に接続されている。形状データROM111には、上述したように、複数のポリゴンから成る形状データ(3つ以上の頂点から成る車、地形、背景などの3次元データ)が予め記憶されている。この形状データはジオメタライザ110に渡される。ジオメタライザ110はCPU101から指定される変換マトリクスで、指定された形状データの透視変換を行い、3次元仮想空間での座標系から視野座標系に変換した形状データを得る。
描画装置112は、変換された視野座標系の形状データにテクスチャを貼り付け、フレームバッファ115に出力する。このテクスチャの貼り付けを行うため、描画装置112はテクスチャデータROM113およびテクスチャマップRAM114に接続されるとともに、フレームバッファ115に接続されている。
なお、ポリゴンデータとは、3個以上の頂点の集合からなるポリゴン(多角形:主に3角形、4角形)の各頂点の相対ないしは絶対座標の座標データ群を言う。前記地形データROM109には、所定の判定(当たり判定など)を実行する上で足りる、比較的粗く設定されたポリゴンデータが格納されている。これに対し、形状データROM111には車、背景などの画面を構成する形状に関して、より緻密に設定されたポリゴンデータが格納されている。
スクロールデータ演算装置107は文字などのスクロール画面のデータ(ROM102に格納されている)を計算する。この演算装置107とフレームバッファ115とが画像合成装置116およびD/A変換器117を介してTVモニタ13に至る。これにより、フレームバッファ115に一時記憶された車、地形(背景)などのポリゴン画面(シミュレーション結果)とスピード、ラップタイムなどの文字情報のスクロール画面とが指定プライオリティにしたがって合成され、最終的な画像データがフレーム毎かつ一定タイミング毎に生成される。この画像データはD/A変換器117でアナログ信号に変換されてTVモニタ13に送られ、ゲーム画面としてリアルタイムに表示される。
(作用)
<メインルーチン処理>
続いて、本実施形態のゲーム装置によるカーレースに関わる画像生成処理を説明する。図2はその画像生成処理のメインルーチンを示す。このメインルーチンは例えば表示インターラプトに同期した1フィールド(1/60秒)毎にCPU101により繰り返し実行される。なお、画像画面の内、少なくとも車両および車両が走行する移動路としての路面は複数のポリゴン(例えば3角形のポリゴン)により形成される。とくに、路面を表す各ポリゴンの各頂点には、3次元仮想空間内の基準位置からの高さの情報(すなわち頂点位置情報)と頂点位置における法線ベクトルとが与えられており、その情報が予めメモリに格納されている。
まず、CPU101は入力装置11により検出された遊戯者の操作情報および前回のインターラプト時に演算していた演算情報を読み込む(ステップ201)。この内、操作情報には遊戯者が操作したハンドル角度、アクセル角度などが含まれる。また演算情報にはCPU101が処理した自車、敵車の位置、車両挙動情報、砂煙や拡散光などの特殊効果情報も含まれる。なお、自車は操作情報に基づきCPU101により管理されているが、敵車はCPU101により事前のプログラムに基づき独自に管理される。
次いで、この操作情報および前回のインターラプト時の演算情報(自車、敵車の位置、走行方向など)に基づき今回のインターラプト時の各車両の当たり判定位置(車輪の接地位置)を算出する(ステップ202)。
次いで、CPU101は、各車両の当たり判定位置毎に当たり判定処理を実行する(ステップ203)。次いで、車両挙動に関わる特殊効果として、砂煙の発生処理および拡散光の表現処理を順次実行する(ステップ204、205)。これらステップ203〜205の処理は後述される。
この後、CPU101はさらに、操作情報や当たり判定結果を反映した車両挙動を計算し(ステップ206)、透視変換マトリクスを作成・指定し(ステップ207)、さらに描画に必要なポリゴンデータなどを指定する(ステップ208)。これによりインターラプト毎に画像データが更新され、カーレースゲームの展開に伴う画像がTVモニタ13にその他の文字情報と共に表示される。これにより、遊戯者は表示画面を見ながらさらに所望の操作入力を入力装置11から与え、ゲームを行うことができる。
(当たり判定処理)
続いて、上述したステップ203で実施される当たり判定処理の詳細をその原理と共に図3〜図10に基づき説明する。
図3には、ステップ203で実施される処理のサブルーチンを示す。このルーチンによれば、図4に例示する如く設定された路面を成す複数のポリゴンPGの中から、各車両について算出した当たり判定点が属する当たり判定の対象となるポリゴンを仮想3次元空間のxz平面上から探索する(ステップ203a)。
次いで、対象ポリゴンにおいて当たり判定位置の高さと法線ベクトルを補間により新しく演算する(ステップ203b)。この演算法を以下に説明する。
いま、図5に示すように、対象ポリゴンがポリゴンABCで、その中に位置する判定点がP(Px,Pz)であるとする。判定点Pをx軸に沿って平行に辿ると、ポリゴンABCの辺ABまたは辺BCに到達する。それらの交点をPAB、PBCとする。次いで、例えば辺ABとy軸とによる2次元系を考える。これにより、図5および図6に示すように、点Aにおける高さyAの線分頂点と点Bにおける高さyBの線分頂点とを結ぶ曲線を想定できる。この曲線を稜線と呼ぶ。
そして、点Aでt=0、点Bでt=1となる位置パラメータtを導入し、上記稜線を表す関数fAB(t)を、
AB(t)=y=at3+bt2+ct+d (1)
と想定する(図6参照)。境界条件から、
f(0)=d=yA=点Aの高さ
f(1)=a+b+c+d=yB=点Bの高さ
f′(0)=c=nA=点Aにおける法線の傾き
f′(1)=3a+2b+c=nB=点Bにおける法線の傾き
が定まり、これから
a=2yA−2yB+nA+nB
b=−3yA+3yB−2nA−nB
c=nA
d=yA
により係数が算出される。したがって、点A,Bにおける高さyA、yBおよび法線の傾きnA、nBは事前に与えられているので、係数a,b,c,dは算出できる。そこで、この点A,Bに関する稜線を規定する係数a,b,c,dをリアルタイムにその都度、演算するか、または、事前に演算してメモリに係数のテーブルデータとして格納しておいて、その都度読み出すようにしてもよい。後者の方が処理速度の点では有利である。
演算により、または、読み出しにより得た係数a,b,c,dを前記(1)式による関数fABから交点PABにおける関数値fAB(PAB)を求める。したがって、点PABの座標は(Px′,fAB(P′),Pz)となる。ここで、Px′PをX軸に沿って移動したときのABとの交点の座標位置である。その時の関数値がP′である。
また、交点PABにおける法線ベクトルNp′は、点Aと点Bの法線ベクトルNA、NBを次式による線形補間で算出する。
ベクトルNp′=[(1−tp)NA+tpB]/
|(NA+NB)| (2)
上述と同様にして別の辺BCが形成する稜線に基づいて、辺BC上の交点PBC上の座標と法線ベクトルを算出する。
さらに上述の2つの交点PABおよびPBC間の線分PABBCに対しても上述と同様に、図7に示す如く3次式による稜線を想定し、この稜線に基づいて判定点P上の座標y(高さ)と法線ベクトル(大きさ、方向)を算出する。このようにして判定点P上のy座標(高さ)と法線ベクトルの情報がポリゴン頂点の高さ情報および法線ベクトル情報から一意に求められる。
なお、この算出に使用する対象ポリゴンの辺は辺AB、辺BCのみに限定されるものではなく、当たり判定点Pをz軸と平行に辿って到達する辺AC,辺ABを用いてもよい。要するにいずれか2辺を利用すればよい。
次いで、CPU101は図3において、当たり判定点Pの高さおよび法線ベクトルにさらに路面のバンプ(凹凸)に依存した細かな補正を加える処理を行う(ステップ203c、203d,203e)。
この補正処理はバンプ用テクスチャの濃淡を路面凹凸を表す高さ情報と見做して行うもので、この処理をバンプ補正と呼ぶことにする。なお、ここではポリゴンに貼り付けるテクスチャの属性をバンプ補正(すなわち最終的には当たり判定)に利用することが特徴的であり、上述した濃淡のほか、テクスチャとして与えられる草、石などの物体をバンプ情報と見做してバンプ補正を行うこともできる。
ステップ203cでは、いま対象となっているポリゴン内にバンプ用テクスチャが施されているかどうかをフラグなどを使って判断する。バンプ用テクスチャが施されていない(NO)場合、ステップ203dは飛ばして処理される。バンプ用テクスチャが施されている(YES)の場合、ステップ203dにて、バンプ用テクスチャに依る当たり判定位置の高さおよび法線ベクトルが算出される。この算出処理を以下に詳述する。
一般に、図8に示すように、テクスチャのuv座標系とポリゴンのxz座標系とで3点の写像は次のマトリクスM、M^で表される。つまり、uv座標系からxz座標系へは、
Figure 0004226663
により変換でき、反対に、xz座標系からuv坐標系へは
Figure 0004226663
により変換できる。
いま、uv座標系における当たり判定位置に相当するある点(u0,v0)を囲む4つのピクセルを図9に示すように選択すると、この4つのピクセルはそれぞれ高さデータT00,T10,T11,T01を有している。
この高さデータの内、v軸に平行な一方の辺の両ピクセルに相当するT00〜T10と他方の辺の両ピクセルに相当するT01〜T11について位置v0での高さTu0,Tu1を線形補間でそれぞれ算出する。
同様に、u軸に平行な一方の辺の両ピクセルに相当するT00〜T01と他方の辺の両ピクセルに相当するT10〜T11について位置u0での高さT0v,T1vを線形補間でそれぞれ算出する。
次いで、上述のように補間した高さデータの内、u軸に平行にとった線分の高さデータTu0〜Tu1の傾きを求め、これを点(u0,v0)におけるu軸方向偏微分値(=傾き)と見做す。また、v軸に平行にとった線分の高さデータT0v〜T1vの傾きを求め、これを点(u0,v0)におけるv軸方向偏微分値(=傾き)と見做す。
この2つの傾きをu,v軸の各方向の接線ベクトルdu,dvに変換し、それらを上述したマトリクスMでテクスチャのuv座標系からポリゴンのxz座標系に変換する。
さらに、変換された2つの接線ベクトルdu,dvに共に直交する直線が当たり判定点P(Px,Pz)におけるバンプ補正された法線ベクトルとなる(図10参照)。この当たり判定点P(Px,Pz)のバンプ補正された高さは4点のピクセルの高さデータをバイリニア補間することで算出される。
次いで、CPU101は図3のステップ203eに移行し、当たり判定位置の最終的な高さと法線ベクトルを、上述のステップ203bで算出したポリゴンに依る補間データ(高さ、法線ベクトル)とステップ203dで算出したバンプ補間データ(高さ、法線ベクトル)とを合成する。高さについては両者を加減する。
法線ベクトルについては以下のように変換される。いま、ポリゴンに依る補間で得た法線ベクトルn、および、バンプ補正により得た法線ベクトルmとする。ベクトルmは、ベクトルnが直上(0,1,0)を向いているときの法線方向になるので、それに合わせて(0,1,0)をベクトルnに変換する変換マトリクスを求める(図11参照)。次いで、この変換マトリクスでベクトルmを変換する。この変換されたベクトルmが最終的に合成された法線ベクトルとなる。
これによりポリゴン内で補間された高さおよび法線ベクトルのデータがバンプ補正によってさらに細かく修正される。
この結果得られた最終的な当たり判定位置の高さデータおよび法線ベクトルデータを用いて車両タイヤと対象ポリゴンとの間の当たりがとられる(図3、ステップ203f)。
上述した一連の当たり判定処理は一定微小時間毎に繰り返し実行され、連続的な当たり判定が各タイヤ、自車、敵車の各車両に対してなされ、当たり処理が実施される。
本実施形態によれば、まず、当たり判定位置における高さと法線ベクトルがポリゴンデータから補間される。このため、当たり判定位置がポリゴン面に角度差の在る、あるポリゴンから別のポリゴンに移ったときにも、当たり判定の方向に供する法線ベクトルの方向が従来法よりも格段に滑らかに変化するので、当たり判定の方向も滑らかに変わり、当たり判定の精度を従来法よりも向上させ、違和感のないものにすることができる。
その上、本実施形態では、上述のようにポリゴンに依り一度補間した高さおよび法線ベクトルを、さらに、テクスチャの属性である濃淡データによりバンプ補正するという2段階の修正法を採っている。このため、路面の大局的な高低変化を滑らかに捕らえた後で、路面の細かな凹凸を緻密に反映させた高さおよび法線ベクトルで当たり判定を行うので、当たり判定の精度が非常に高くなって、路面の属性をより正確に捕らえた車両挙動をシミュレートできる。
なお、上述したポリゴンデータに依る補間処理とテクスチャによるバンプ補正処理とは必ずしも両者を併用して実施しなくてもよく、いずれか一方のみを単独に実施する場合でも従来の当たり判定に比べて、その判定精度は非常に高くなるという利点が得られる。
(砂煙の発生処理)
次いで、図2のステップ204による砂煙の発生処理を説明する。CPU101は、上述のように当たり判定処理が終わると、カーレースゲームの特殊効果処理の1つとして、この砂煙の発生処理を実施して表示画面に臨場感を演出する。この処理を図12〜図16に基づき説明する。図12に処理手順の概要を示す。
まず、砂煙を表すポリゴンデータとして、予め格子状のポリゴンの集合体をメモリ内に格納しておく。図13は、この集合体の一例を模式的に示すもので、縦方向Rを煙の解像度の次元に、横方向Tを時間軸の次元にとった2次元状のマッピングになっている。具体的例としては、縦方向のポリゴン数Rmax=5、横方向のポリゴン数Tmax=20である。このポリゴン数は表示精度と演算負荷との兼ね合いにおいて適宜に決定すればよい。
各ポリゴンの頂点それぞれには現在の空間位置、速度、そのほかのパラメータを砂煙計算時に持たせる。このパラメータの数、ならびに、縦方向の解像度および横方向の時間軸を表すポリゴン数が多いほど砂煙のシミュレーションが精密になる。この砂煙のポリゴン集合体は種々の要因に応じて変形させながら表示する処理を行うので、格子としてのポリゴン各頂点相互を繋ぐ繋ぎ情報が画像データとして用いられる。砂煙全体の形状は変形して決定される。
いま、車両の前輪から砂煙が噴出する場合を想定する。最初に、ポリゴン集合体の内、時間軸T=0の位置において解像度R方向に在るポリゴン列の各ポリゴンに対して前輪の接地面の位置、および、タイヤの路面からの空転度や乱数からの初速を与える(図12、ステップ2031)。次いで、時間軸T=1の位置に移行して解像度R方向に在るポリゴン列の各ポリゴンに対して位置および速度を設定する。具体的には、前回のフレーム表示時に処理したT=0の位置の各ポリゴンが有していた位置および速度に、T=1の位置の各ポリゴンが今回のフレーム表示に際して受ける種々の砂煙パラメータを加味して決定される(ステップ2032)。ここでは、砂煙パラメータとして風の向きおよび強さ、重力加速度、空気抵抗などを採用する。これらのパラメータはその都度、操作情報や現在の車速などから演算して求める。これにより、T=1の2列目の各ポリゴンには前回処理時の前列の各ポリゴンの動きが反映された動きが与えられる。
同様に、T=2の3列目からT=n(例えば20)のn+1列目まで、上述の演算を繰り返す(ステップ2032)。つまり、T=2の各ポリゴンについて、前回処理時のT=1の各ポリゴンの位置及び速度に、砂煙パラメータを加味して位置および速度を与える。T=3の各ポリゴンについて、前回処理時のT=2の各ポリゴンの位置及び速度に、砂煙パラメータを加味して位置および速度を与える。同様に演算していって、最終は、T=nの各ポリゴンについて、前回処理時のT=n−1の各ポリゴンの位置及び速度に、砂煙パラメータを加味して位置および速度を与える。
この一連の演算により設定した各ポリゴンの頂点位置を、頂点同士の繋ぎデータを用いて砂煙を表す物体として再構成する(ステップ2033)。これにより、1つの形状に戻され、表示時には頂点各点が砂煙のように振る舞う。
この変形させたポリゴン集合体に対して、さらに、砂煙らしさをさらに強調するための種々の処理を施す(ステップ2034)。この処理としては、(1)時間軸T方向にポリゴンを辿るにつれて透明度を上げる処理、(2)砂煙全体を横方向から見たとき、最上位置のポリゴンと背景との境目が目立たなくなるように上方にいくほど透明度を上げる処理、(3)カメラ視点が砂煙の雰囲気中に入った場合でも、違和感がないように、煙と同一色のフォグ(霧)を掛け、かつ、そのフォグの濃度が砂煙の中心に近づくにつれて濃くする処理などである。
このように本実施形態では、砂煙をポリゴン集合体で表すこととし、各ポリゴンの頂点を物理演算によって設定し、ポリゴン集合体の尾を引かせることにより砂煙が表示される。とくに、物理演算として、前回処理時の前列ポリゴンの動きを後列ポリゴンに反映させるとともに、風の向きおよび強さ、重力加速度、空気抵抗などの環境要因を主とする砂煙パラメータの量を反映させている。このため、図14および図15に示すように、砂煙SSは車輪から尾を引くようになびいて且つ手前になるほど広がって表示され、その形状は各種の砂煙パラメータの量に応じて自在に変わる。この物理演算による頂点の動き決定のために、砂煙全体の挙動(舞い上がり、なびき)が従来のものに比べて非常に自然に近く見えるようになり、人為的であるとの違和感を殆ど無くすることができる。
また、砂煙全体は、上方にいくほど、また後方にいくほど透明度が増すこととなる。つまり、砂煙の粒子濃度がそれらの方向に進むほど低くなるように表示され、砂煙の固まりの輪郭がぼやけて表示される。従来のように、砂煙の固まりとそれ以外との境界が明瞭過ぎるという不自然さを排除することができる。これによっても、砂煙を表示する上でのリアル感が格段に向上する。
さらに、図16に示すように、加速した敵車ECに自車が追い越されたような場合、自車の遊戯者位置に在るカメラ視点が敵車の巻き上げる砂煙SSの雰囲気中にすっぽり入ってしまうことがある。このようなケースでは、従来法によると、中身が空っぽの砂煙のトンネルに入ってしまったかのような錯覚を与える画面しか表示されなかった。これに対し、本実施形態では、砂煙と同一色のフォグが掛けられ、さらにその中心ほどフォグの濃度の濃い画面が表示されるので、砂煙の中身が詰まった本来の状態を表現することができる。従来法に依る違和感を排除して、非常にリアルな砂煙を表現でき、ゲームの臨場感を向上させることができる
さらに、このフォグ処理によって、画面のクリッピング処理(物体がある一定距離以上手前に近づいたときはその物体を表示しない処理)を活用でき、表示の不自然さを回避するとともに演算処理の軽減化を図ることができる。
なお、4輪駆動者の場合、砂煙は4輪全てから発生するが、前進時に後輪から発生する砂煙のポリゴンは前輪から発生するそれと混ざってしまうので、砂煙ポリゴンの発生を省略することができる。反対に、後退時は前輪から発生させる砂煙ポリゴンを省略することができる。
次いで、図2のステップ205による拡散光の表現処理を説明する。CPU101は、砂煙の発生処理に引き続き、カーレースゲームの特殊効果処理の1つとして、この拡散光の表現処理を実施して表示画面に臨場感を演出する。この処理を図17〜21に基づき説明する。図17に処理手順の概要を示す。
図18は、3次元仮想空間における車両とカメラ視点の位置関係を示す。車両の空間位置関係を示す行列をMc、カメラ視点の空間位置関係を示す行列をMeとすると、これらの行列は以下のように表される。
Figure 0004226663
まず、図19(a)(b)に例示するように、車両(光源の向き)およびカメラ視点それぞれの方向ベクトルVc,Veを求める(図17、ステップ2041)。これらの方向ベクトルは車両(表示対象の光源の向き)、カメラ視点それぞれが空間上でどの方向を向いているかを示す量であり、それぞれの行列Mc,Meの方向成分に対して(0,0,1)を乗じることで算出できる。つまり、
Figure 0004226663
となる。
次いで、この2つの方向ベクトル間の角度を求める(ステップ2042)。具体的には、この角度は、2つのベクトルの内積を演算し、その方向余弦を求めことで算出できる。すなわち、方向余弦は、
cosθ=(Vc・Ve)÷(|Vc|×|Ve|)
=(mc00me00+mc10me10+mc20me20)÷
[(mc002+mc102+mc2021/2×
(mc002+mc102+mc2021/2
で求められる。この結果から、方向正弦は
sinθ=(1−cos2θ)1/2
で求める(ステップ2043)。
次いで、この逆数1/sinθを演算する(ステップ2044)。この関数1/sinθは2つの方向ベクトルVc,Veが互いに平行になったときのみ無限大に発散する曲線を描く(図20参照)。この関数は後述するように拡散光の表示体に対する拡大係数として機能させる。
そこで、図21に示すように、車両のヘッドライトなどの光源位置には1枚の光源ポリゴンPGL(光源1つ当たりに1枚のポリゴンが望ましい)を配置するが、この光源ポリゴンを視線と垂直に交わる平面の方向に、関数1/sinθで拡大する処理を実施する(ステップ2045)。光源ポリゴンは視線ベクトルに対して常に正対している訳ではないから、上記拡大処理の中で、光ポリゴンと光源ベクトル(車両の方向ベクトル)との間の成す角度を演算し、この角度に応じて光ポリゴンを楕円状に拡大変形させ(3次元仮想空間において、X軸方向又はY軸方向を楕円状に拡大させ)、正対したとき(すなわち光源ポリゴンが視線ベクトルの正面に向く)には円状に拡大する処理も行う。この光源ポリゴンはその外郭から中心に向かって透明から不透明な光源色をマッピングしてある。
これにより、カメラ視線と車両(光源の向き)の角度が平行に近づくにつれて、図21の(b)から(c)に示すように、加速度的に拡大拡散する発光状態が楕円状から無限大に拡大する円状に変化しつつ表示される。しかも、拡散光の中心位置にある発光源は不透明であるから、最も眩しい箇所であることも表現できる。図21(a)は、上記光源に対する演出処理の初期状態であり、光源の形状は小径を持った円又は楕円である。
したがって、画面を見ている遊戯者(仮想的にカメラ視点に居る観測者)に拡散光が方向性を有しているという感覚を確実に与えることができ、この感覚は実際の車両との間で日常体験するものと非常に近いことから、車両の挙動のリアル感向上に確実に寄与することなる。なお、光源の形状変化は、ここで示されたものに限定されるものではなく、星形など様々な形状にすることが可能である。
とくに、カメラ視点と車両の向きとが一致するときの発光状態は拡散光が表示画面よりも大きくなって表現されるので、遊戯者に与えるインパクト感には大きいものがあり、ゲームとしての興味感を盛り上げることができ、直感的に把握し易い画像を提供できる。
また、このような従来とは一線を画した拡散光の表現処理であり、その視覚的な効果は絶大でありながら、処理演算法は上述したように1枚のポリゴンの拡大処理がベースであるので、非常に簡単である。このため、演算処理負荷は小さくて済み、処理速度も速いという特徴がある。
なお、この拡散光の表現処理は車両のヘッドライトに限定されるものではなく、テールランプであってもよいし、またその両方に実施してもよい。さらに、この拡散光の表現処理は、戦闘機ゲームにおける戦闘機の操縦席のガラス面に反射する太陽光の拡散状態を表現する場合にも好適に実施できる。
なお、本発明はカーレースゲームを行う画像生成装置としてのゲーム装置に実施する場合に限定されない。水上ボートレース、スケートボードゲームなど、仮想3次元空間内に設定した移動路を移動体としてのオブジェクトを移動させるゲーム装置に好適に実施することができる。
また、砂煙の他に水煙でも良い。また、煙でも良い。要するに移動する物体から排出される、移動の結果の演出のための表示されるものであれば良い。
なお、本発明における記憶媒体としては、他の記憶手段、例えばハードディスク、カートリッジ型のROM、CD−ROM等他公知の各種媒体の他、通信媒体(インターネット、各種パソコン通信網、これらのサーバー上の情報自体)をも含むものであってもよい。
産業上の利用性
本発明は、以上説明したように、演算量やデータ量を格別に増大させることなく、移動体としての車両とその周囲環境との間の相互干渉に関わるファクタを、よりリアルに表現でき、車両の移動をメインテーマとするゲームの臨場感を高め、また興味感を向上させることができる画像生成装置および画像生成方法を提供することができる。
とくに、ポリゴン同士の繋ぎめを超えた当たり判定のときの判定方向の急変を防止して、違和感の少ない、より自然な当たり判定を行うとともに、路面の凹凸をも考慮した当たり判定を行うことで、車両挙動表現のリアル感、臨場感を従来よりも格段に高めることができる。
また、砂煙のもやによる粒子感を表現して従来ののっぺりした又は人為的な砂煙による違和感を排除するとともに、カメラ視点がもやの中に空間的に位置した場合でも、そのカメラ視点から観測されるもや状態の違和感を排除した砂煙を表現できる。
さらに、移動している車両から発せされるヘッドライト、テールライト、反射光といった指向性を持った拡散光をダイナミックに画像生成して、リアリティを向上させた拡散光を表現できる。

Claims (9)

  1. 仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定する当たり判定手段と、この当たり判定結果を反映して前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像生成手段と、を備え、
    前記当たり判定手段は、
    前記移動路のポリゴンの各頂点に与えられた頂点位置情報と各頂点位置における法線ベクトルを含む頂点データから、前記オブジェクトの当たり位置における該当たり位置の頂点位置情報および当該頂点位置における法線ベクトルを含む当たり判定用データを補間して求める補間手段と、
    この補間手段により求められた前記当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段と、を有する、
    ことを特徴とした画像処理装置。
  2. 仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定する当たり判定手段と、この当たり判定結果を反映して前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像生成手段と、を備え、
    前記当たり判定手段は、
    前記オブジェクトの当たり位置での当たり判定用データを前記ポリゴンで表現する前記移動路のポリゴンに貼り付けるテクスチャの情報に応じて補正する補正手段と、
    この補正手段により補正された前記当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段と、を有し、
    前記移動路のポリゴンに貼り付けるテクスチャの情報が濃淡データである、
    ことを特徴とした画像処理装置。
  3. 仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定する当たり判定手段と、この当たり判定結果を反映して前記オブジェクトが前記移動路を移動する状態を表す画像データを生成する画像生成手段と、を備え、
    前記当たり判定手段は、
    前記移動路のポリゴンの各頂点に与えられた頂点位置情報と当該頂点位置における法線ベクトルを含む頂点データから、前記オブジェクトの当たり位置における該当たり位置の高さおよび法線ベクトルを含む当たり判定用データを補間して求める補間手段と、
    この補間手段により補間された前記当たり判定用データを前記ポリゴンで表現する前記移動路のポリゴンに貼り付けるテクスチャの情報に応じて補正する補正手段と、
    この補正手段により補正された前記当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定する当たり設定手段と、を有する、
    ことを特徴とした画像処理装置。
  4. 前記移動路のポリゴンに貼り付けるテクスチャの情報は、濃淡データであることを特徴とする請求項記載の画像処理装置。
  5. 前記補間手段は、
    前記移動路とオブジェクトとの当たり位置から前記仮想3次元空間に設定された3次元座標軸のいずれかの座標軸に沿った平行な仮想線を辿ることにより到達する前記ポリゴンの2辺及び当該2辺の各々と前記仮想線とが交差して得られる第1及び第2の交点を指定する手段と、
    前記ポリゴンの2辺の各々の両端の頂点データに基づいて、当該2辺のうちの一方の辺の両端に対応した第1の稜線と、当該2辺のうちの他方の辺に対応した第2の稜線と、を設定する手段と、
    前記第1及び第2の稜線の各々に基づいて、前記第1及び第2の交点を両端とする線分に対応した第3の稜線を設定する手段と、
    前記第3の稜線に基づいて前記当たり判定位置の前記当たり判定用データを求める手段と、を有する、
    請求項1又は3記載の画像処理装置。
  6. 画像処理装置が、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成するように構成された画像処理方法であって、
    前記画像処理装置は、
    前記移動路のポリゴンの各頂点に与えられた頂点位置情報と各頂点位置における法線ベクトルを含む頂点データから、前記オブジェクトの当たり位置における該当たり位置の頂点位置情報および当該頂点位置における法線ベクトルを含む当たり判定用データを補間して求め、
    この求められた前記当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定する、ことを特徴とした画像処理方法。
  7. 画像処理装置が、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成するように構成された画像処理方法であって、
    前記画像処理装置は、前記オブジェクトの当たり位置での当たり判定用データを前記ポリゴンで表現する前記移動路のポリゴンに貼り付けるテクスチャの情報に応じて補正し、この補正された当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定するものであり、
    前記移動路のポリゴンに貼り付けるテクスチャの情報が濃淡データである、ことを特徴とした画像処理方法。
  8. 画像処理装置が、仮想3次元空間にポリゴンで設定したオブジェクトおよび移動路の間の当たり状態を判定しながら前記オブジェクトが前記移動路を移動する状態を表す画像データを生成するように構成された画像処理方法であって、
    前記画像処理装置は、
    前記移動路のポリゴンの各頂点に与えられた頂点位置座標と各頂点位置における法線ベクトルを含む頂点データから、前記オブジェクトの当たり位置における該当たり位置の頂点位置情報および当該頂点位置における法線ベクトルから成る当たり判定用データを補間して求め、
    この求められた前記当たり判定用データを前記ポリゴンで表現する前記移動路のポリゴンに貼り付けるテクスチャの情報に応じて補正し、
    この補正された前記当たり判定用データに応じて前記オブジェクトの前記移動路への当たりを設定する、
    ことを特徴とした画像処理方法。
  9. 請求項6乃至8のいずれか一項記載の画像処理方法をコンピュータに実行させるためのプログラムを記憶した、当該コンピュータが読み取り可能な記憶媒体。
JP52595799A 1997-11-07 1998-11-06 画像生成装置および画像生成方法 Expired - Fee Related JP4226663B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP30622697 1997-11-07
PCT/JP1998/005015 WO1999024937A1 (en) 1997-11-07 1998-11-06 Image generating device and image generating method

Publications (1)

Publication Number Publication Date
JP4226663B2 true JP4226663B2 (ja) 2009-02-18

Family

ID=17954523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52595799A Expired - Fee Related JP4226663B2 (ja) 1997-11-07 1998-11-06 画像生成装置および画像生成方法

Country Status (9)

Country Link
US (1) US6657630B1 (ja)
EP (2) EP0973132B1 (ja)
JP (1) JP4226663B2 (ja)
KR (1) KR100816622B1 (ja)
CN (1) CN1183493C (ja)
DE (1) DE69836805T2 (ja)
ES (1) ES2283076T3 (ja)
HK (1) HK1024767A1 (ja)
WO (1) WO1999024937A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11045732B2 (en) 2018-01-09 2021-06-29 Koei Tecmo Games Co., Ltd. Non-transitory computer readable storage medium storing image processing program, image processing method, and image processing device

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3363137B2 (ja) 2000-11-29 2003-01-08 コナミ株式会社 当たり判定方法、その装置、当たり判定処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
JP2002216151A (ja) * 2001-01-12 2002-08-02 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
JP4610748B2 (ja) * 2001-01-16 2011-01-12 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
JP4846919B2 (ja) * 2001-04-23 2011-12-28 本田技研工業株式会社 模擬運転装置
KR100420859B1 (ko) * 2001-08-11 2004-03-02 학교법인연세대학교 범프 매핑 처리 장치 및 방법
JP4148868B2 (ja) * 2003-10-08 2008-09-10 任天堂株式会社 ゲームプログラムおよびゲーム装置
US7077749B1 (en) * 2003-11-20 2006-07-18 Microsoft Corporation Dynamic weather simulation
CN101941012B (zh) * 2009-07-03 2012-04-25 泰怡凯电器(苏州)有限公司 清洁机器人及其脏物识别装置和该机器人的清洁方法
US20170185057A1 (en) * 2011-04-14 2017-06-29 Suntracker Technologies Ltd. System and method for the optimization of radiance modelling and controls in predictive daylight harvesting
US9690762B1 (en) * 2013-01-14 2017-06-27 Google Inc. Manipulating image content items through determination and application of multiple transparency values to visually merge with other content as part of a web page
US9643735B2 (en) * 2015-05-27 2017-05-09 Honeywell International Inc. Integration of braking action information with flight deck runway functions
US20190004206A1 (en) * 2015-08-13 2019-01-03 Cgg Services Sas System and method for gravity and/or gravity gradient terrain corrections
CN106056655B (zh) * 2016-09-06 2019-09-10 珠海金山网络游戏科技有限公司 一种可编辑的虚拟摄像机系统和方法
US11136025B2 (en) 2019-08-21 2021-10-05 Waymo Llc Polyline contour representations for autonomous vehicles

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4148485A (en) * 1977-09-19 1979-04-10 Atari, Inc. Driving games method for automatically controlled cars
US4645459A (en) * 1982-07-30 1987-02-24 Honeywell Inc. Computer generated synthesized imagery
US4895376A (en) * 1988-06-17 1990-01-23 Tigers Electronics, Inc. Interactive video game
JPH04242281A (ja) * 1991-01-16 1992-08-28 Nissan Motor Co Ltd ドライビングシミュレータ
JP2883523B2 (ja) * 1992-08-26 1999-04-19 株式会社ナムコ 画像合成装置及び画像合成方法
JP3335445B2 (ja) * 1993-10-21 2002-10-15 株式会社ナムコ 3次元シミュレータ装置
JPH08276070A (ja) * 1995-04-06 1996-10-22 Sega Enterp Ltd ゲーム装置
US5755620A (en) * 1995-04-03 1998-05-26 Kabushiki Kaisha Sega Enterprises Game system and data processing method thereof
US6064393A (en) * 1995-08-04 2000-05-16 Microsoft Corporation Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
JP3138424B2 (ja) * 1996-03-26 2001-02-26 株式会社ナムコ シミュレーション装置及び衝突判定方法
JP3753338B2 (ja) * 1996-06-06 2006-03-08 株式会社ナムコ 3次元シミュレータ装置及び画像合成方法
JP3046578B2 (ja) * 1998-06-11 2000-05-29 株式会社ナムコ 画像生成装置及び情報記憶媒体
US6339429B1 (en) * 1999-06-04 2002-01-15 Mzmz Technology Innovations Llc Dynamic art form display apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11045732B2 (en) 2018-01-09 2021-06-29 Koei Tecmo Games Co., Ltd. Non-transitory computer readable storage medium storing image processing program, image processing method, and image processing device

Also Published As

Publication number Publication date
EP0973132A1 (en) 2000-01-19
EP1720132A3 (en) 2010-05-26
CN1251674A (zh) 2000-04-26
CN1183493C (zh) 2005-01-05
US6657630B1 (en) 2003-12-02
EP0973132B1 (en) 2007-01-03
WO1999024937A9 (fr) 1999-11-04
HK1024767A1 (en) 2000-10-20
DE69836805T2 (de) 2007-11-29
DE69836805D1 (de) 2007-02-15
WO1999024937A1 (en) 1999-05-20
EP0973132A4 (en) 2003-01-02
KR100816622B1 (ko) 2008-03-24
KR20000069955A (ko) 2000-11-25
ES2283076T3 (es) 2007-10-16
EP1720132A2 (en) 2006-11-08

Similar Documents

Publication Publication Date Title
US6667741B1 (en) Image generating device and image generating method
JP4226663B2 (ja) 画像生成装置および画像生成方法
JP2807608B2 (ja) ソーティング処理装置、これを用いた画像合成装置及びソーティング処理方法
US6234901B1 (en) Game device, picture data and flare forming method
EP2158948A2 (en) Image generation system, image generation method, and information storage medium
US6384834B1 (en) Three-dimensional simulator apparatus and image synthesis method using texture computation and texture information storage
US6917371B1 (en) Game device, picture data forming method and medium
JP4651527B2 (ja) プログラム、情報記憶媒体及び画像生成システム
US20040246250A1 (en) Image generation method, program, and information storage medium
JPH11509009A (ja) 気象現象効果シミュレーション方法及び装置
JP2009129167A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4651436B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4861862B2 (ja) プログラム、情報記憶媒体、及び、画像生成システム
JP4229317B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3783735B2 (ja) 画像処理装置及びこれを備えたゲーム装置
US7724255B2 (en) Program, information storage medium, and image generation system
JP3727098B2 (ja) 画像合成方法及び装置
JP4592087B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JPH08276070A (ja) ゲーム装置
JP3254091B2 (ja) 3次元シミュレータ装置及び画像合成方法
JPH11134515A (ja) ゲーム装置及びゲーム画面合成方法
JP3752081B2 (ja) 3次元シミュレータ装置及び画像合成方法
GB2324013A (en) Three-dimensional simulator and image synthesising method
JP2007164323A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2008071096A (ja) プログラム、画像生成装置および情報記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050816

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20050816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080916

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

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

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees