(57)【特許請求の範囲】
【請求項１】
多角形で構成されたオブジェクトの３次元画像を生成する画像生成システムであって、
３次元空間を分割する複数のブロックの中から視野範囲内のブロックを選別し、選別したブロックの中からシザリング処理の対象となるブロックを抽出し、選別したブロックに属する各オブジェクトがシザリング処理の対象となるブロックに属しているか否かを判定し、シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の中から描画可能な範囲に収まらない頂点を含む多角形を選別し、選別した多角形を所定の平面で切って、切りとった多角形を特定するための新たな頂点を生成する頂点生成手段と、
新たに生成された頂点を含む多角形で構成されたオブジェクトの画像を生成する画像生成手段とを含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記頂点生成手段は、
視点位置から所定の距離以内にあるブロックを、シザリング処理の対象となるブロックとして抽出することを特徴とする画像生成システム。
【請求項３】
請求項１又は２のいずれかにおいて、
前記頂点生成手段は、
シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の各頂点が描画可能な範囲に収まっているか否かを判定し、少なくとも１つの頂点が描画可能な範囲に収まっていなければ当該多角形が描画されないように非表示の指定を行い、非表示の指定が行われた多角形のうち、少なくとも１つの頂点が描画可能な範囲に収まっている多角形を前記所定の平面で切って、切りとった多角形を特定するための新たな頂点を生成し、
前記画像生成手段は、
非表示の指定が行われていない多角形を描画することを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記頂点生成手段は、
前記所定の平面として視野範囲を特定する平面で前記多角形を切ることを特徴とする画像生成システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記頂点生成手段は、
３次元空間に配置された多角形をスクリーン座標系に座標変換をおこない描画可能でない頂点を検出し、検出結果に基づいて、シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の中から描画可能な範囲に収まらない頂点を含む多角形を選別することを特徴とする画像生成システム。
【請求項６】
コンピュータが読み取り可能な情報記憶媒体であって、
３次元空間を分割する複数のブロックの中から視野範囲内のブロックを選別し、選別したブロックの中からシザリング処理の対象となるブロックを抽出し、選別したブロックに属する各オブジェクトがシザリング処理の対象となるブロックに属しているか否かを判定し、シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の中から描画可能な範囲に収まらない頂点を含む多角形を選別し、選別した多角形を所定の平面で切って、切りとった多角形を特定するための新たな頂点を生成する頂点生成手段と、
新たに生成された頂点を含む多角形で構成されたオブジェクトの画像を生成する画像生成手段と、
してコンピュータを機能させるプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項７】
請求項６において、
前記頂点生成手段は、
視点位置から所定の距離以内にあるブロックを、シザリング処理の対象となるブロックとして抽出することを特徴とする情報記憶媒体。
【請求項８】
請求項６又は７のいずれかにおいて、
前記頂点生成手段は、
シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の各頂点が描画可能な範囲に収まっているか否かを判定し、少なくとも１つの頂点が描画可能な範囲に収まっていなければ当該多角形が描画されないように非表示の指定を行い、非表示の指定が行われた多角形のうち、少なくとも１つの頂点が描画可能な範囲に収まっている多角形を前記所定の平面で切って、切りとった多角形を特定するための新たな頂点を生成し、
前記画像生成手段は、
非表示の指定が行われていない多角形を描画することを特徴とする情報記憶媒体。
【請求項９】
請求項６乃至８のいずれかにおいて、
前記頂点生成手段は、
前記所定の平面として視野範囲を特定する平面で前記多角形を切ることを特徴とする情報記憶媒体。
【請求項１０】
請求項６乃至９のいずれかにおいて、
前記頂点生成手段は、
３次元空間に配置された多角形をスクリーン座標系に座標変換をおこない描画可能でない頂点を検出し、検出結果に基づいて、シザリング処理の対象となるブロックに属するオブジェクトに含まれる多角形の中から描画可能な範囲に収まらない頂点を含む多角形を選別することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、レーシングカー（オブジェクト）を操作してオブジェクト空間内で走行させ、他のプレーヤやコンピュータが操作するレーシングカーと競争することで３次元ゲームを楽しむ。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。
【０００４】
さて一般に画像生成を行う場合には、３次元空間内に存在するポリゴン座標をスクリーン座標系に透視投影変換した後、フレームバッファに書き込む。このとき画面端付近の至近距離に存在するポリゴンの頂点の場合、Ｚ値が０に近いため透視変換後の値が所定の範囲を超えてしまう。このためフレームバッファに書き込まれず、当該ポリゴンがぬけ落ちた画像が生成されるという不具合が発生していた。特にポリゴンが大きいと表示抜けが目立ってしまうという問題があった。
【０００５】
かかる不具合を解消する手法のひとつとして多角形をより小さな複数の多角形に分割して表示抜けを少なくしたり目立たなくするという手法があった。しかしこの手法によれば、分割後同一位置にあるはずの頂点が、２頂点座標の補完を行う際にずれが生じ隙間が発生するという問題点があった。
【０００６】
本発明は、このような従来の課題に鑑みてなされたものであり、少ない処理負担で３次元段階で多角形のシザリング処理を行い、また画面端や至近距離にあるポリゴンの表示抜けを防止可能な画像生成システム及び情報記憶媒体を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、多角形で構成されたオブジェクトの３次元画像を生成する画像生成システムであって、３次元空間に配置された多角形を任意の平面で切って、切りとった多角形を特定するための新たな頂点を生成する手段と、新たに生成された頂点を含む多角形で構成されたオブジェクトの画像を生成する手段とを含むことを特徴とする。
【０００８】
また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【０００９】
本発明によれは、３次元段階で多角形のシザリングを行い、シザリングにより新たに生成された頂点を含むオブジェクトの画像を生成することができる。
【００１０】
したがって例えば画面端付近の至近距離に存在する大きな多角形を適当な平面でシザリングしておくことにより、多角形の表示抜けを防止することができる。
【００１１】
また、切断されたオブジェクトの画像を生成する際にも有効である。
【００１２】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、描画可能な範囲に収まらない頂点を含む多角形について、当該頂点を含む部分を所定の平面で切ることを特徴とする。
【００１３】
描画可能な範囲に収まらない頂点とは例えば視点から近いポリゴンは透視変換後の値が所定の範囲を超えてしまいフレームバッファに書き込まれない場合の頂点等を含む。かかる頂点は画面端付近の至近距離に存在する多角形に含まれている場合が多い。このような場合多角形が大きいと表示抜けが目立ってしまうため、多角形を複数の多角形に分割して表示抜けを少なくしたり目立たなくする手法があった。
【００１４】
このような場合に大きな多角形を分割して画像生成する手法もあるが、これによると分割後同一位置にあるはずの頂点が、２頂点座標の補完を行う際にずれが生じ隙間が発生するという問題点があった。
【００１５】
しかし本発明によれば、不具合が生じる頂点を含む部分を所定の平面で切ることによりこのような不具合を発生させることなく、多角形の表示抜けを防止することができ、画面端付近にオブジェクトが存在する場合にも良好な画像を生成することができる。
【００１６】
なお所定の平面は、不具合を発生させる部分を取り除ける平面であることが好ましい。
【００１７】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、視野範囲を特定する平面で前記多角形を切ることを特徴とする。
【００１８】
視野範囲を特定する平面とは例えばビューボリュームを構成する平面である。例えばビューボリュームが視点を頂点とする四角錐である場合には底面を除く４側面で３次元空間内の多角形の切断を行うと効率よくシザリング演算を行うことができる。
【００１９】
本発明によれば、視界の端にかかっている多角形について、視野範囲を特定する平面で切ることによりかかる多角形の表示抜けを効果的に防止することができるとともに、表示画像に切り口が見えないようにすることができ、より好適な画像を生成することができる。
【００２０】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、３次元空間に配置された多角形をスクリーン座標系に座標変換をおこない描画可能でない頂点を検出し、検出された頂点を含む多角形について当該頂点を含む部分を所定の平面で切ることを特徴とする。
【００２１】
多角形の表示抜けは、３次元空間に配置された多角形をスクリーン座標系に座標変換した際の値が所定の範囲にないことに起因する場合が多い。本発明によればあらかじめ座標変換を行ってかかる頂点を検出して、検出された頂点を含む多角形についてのみ当該頂点を含む部分を任意の平面で切る処理を行う。このためすべての多角形について任意の平面で切る処理を行う場合にくらべ大幅に演算負荷を軽減することができる。したがって処理能力の低いハードウェアでリアルタイム画像生成処理を行う場合等に特に効果的である。
【００２２】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を、レーシングゲームに適用した場合を例にとり説明するが、本発明はこれに限定されず、種々のゲームに適用できる。
【００２３】
１．構成
図１に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００２４】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００２５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００２６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００２７】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはプログラム及びデータ）が格納される。
【００２８】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００２９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３０】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３１】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３２】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３３】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００３４】
処理部１００は、ゲーム処理部１１０、画像処理部１４０、音処理部１５０を含む。
【００３５】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクトの位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点位置や視線角度（視線方向）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００３６】
画像処理部１４０は、ゲーム処理部１１０からの指示等にしたがって、各種の画像処理を行うものである。また、音処理部１５０は、ゲーム処理部１１０からの指示等にしたがって、各種の音処理を行うものである。
【００３７】
なお画像処理部１４０、音処理部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００３８】
ゲーム処理部１１０は、移動・動作演算部１１４を含む。
【００３９】
移動・動作演算部１１４は、車などのオブジェクトの移動情報（位置データ、回転角度データ）や動作情報（オブジェクトの各パーツの位置データ、回転角度データ）を演算するものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【００４０】
より具体的には、移動・動作演算部１１４は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでのオブジェクトの位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでのオブジェクトの位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００４１】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
画像処理部１４０は、ジオメトリ処理部（３次元座標演算部）１４２、シザリング処理部１４４、描画部（レンダリング部）１４６を含む。
【００４２】
ここで、ジオメトリ処理部１４２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元座標演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点位置、頂点テクスチャ座標、輝度データ、或いは法線ベクトル等）は、記憶部１７０のメインメモリ１７２に格納されて、保存される。
【００４３】
シザリング処理部１４４は、３次元空間に配置された多角形を任意の平面で切って、切りとった多角形を特定するための新たな頂点を生成する処理を行う。
【００４４】
描画可能な範囲に収まらない頂点を含む多角形について、当該頂点を含む部分を所定の平面で切るように構成してもよい。また視野範囲を特定する平面で前記多角形を切るよう構成してもよい。また３次元空間に配置された多角形をスクリーン座標系に座標変換をおこない描画可能でない頂点を検出し、検出された頂点を含む多角形について当該頂点を含む部分を所定の平面で切るよう構成してもよい。
【００４５】
描画部１４６は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、テクスチャ記憶部１７６に記憶されるテクスチャとに基づいて、オブジェクトを描画する処理を行う。そして本実施形態では、描画部１４６が、メインメモリ１７２に記憶されるシザリング処理後のオブジェクトデータを用いてオブジェクトを描画する。このようにすることで、少ない処理負担で至近距離のポリゴンの表示抜けを防止できるようになる。
【００４６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００４７】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００４８】
２．本実施の形態の特徴と動作
次に本実施の形態の特徴と動作について説明する。なお以下ではオブジェクトを構成する多角形がポリゴンである場合を例にとり説明する。
【００４９】
本実施の形態の第一の特徴は、３次元段階で多角形のシザリングを行い、シザリングにより新たに生成された頂点を含むオブジェクトの画像を生成することがで切る点にある。
【００５０】
また本実施の形態の第二の特徴はこのシザリングの手法を用いて画面端付近の至近距離に存在するポリゴンの表示抜けを防止している点にある。
【００５１】
図２は、ドライブゲームの表示画面において、表示抜けが発生している例を示したものである。視点位置から至近距離にある道路の一部２１０で表示抜けが発生している。
【００５２】
かかる表示抜けは視点に近いポリゴンのように透視変換後の値が所定の範囲を超えフレームバッファに書き込まれないために発生するものである。
【００５３】
したがってドライブゲーム等における道路等のように至近距離にあるオブジェクトの画像が生成される場合に表示抜けがおきやすい。しかも道路等は１枚１枚のポリゴンが大きいため表示抜けが目立ちやすい。
【００５４】
そこで本実施の形態では、透視変換後の値が所定の範囲内に収まらない頂点を含むポリゴンについて、その頂点を含む部分を所与の平面で切るシザリング処理を行い、不具合が生じる頂点を含む部分を切ることにより多角形の表示抜けを防止している。
【００５５】
図３は本実施の形態でシザリング処理に用いる平面について説明するための図である。本実施の形態では、ビューボリューム２２０を構成する四角錐の側面２２２、２２４、２２６、２２８を用いてシザリング処理を行うよう構成されている。
【００５６】
ビューボリュームを構成する四角錐の側面で切ることにより、表示部分以外をすべてかつ表示画面に切り口が見えないように効率よく切り落とすことができる。
【００５７】
そして切り落とした部分に新たな頂点を生成し、新たな頂点を含むポリゴンを透視変換して描画処理を行っている。
【００５８】
図４は、本実施の形態のシザリング処理の対象となるオブジェクトを抽出する処理例について説明するための図である。図５、図６はクリッピング対象ブロックとシザリング対象ブロックについて説明するための図である。
【００５９】
まず、視点位置に基づいて、クリッピング対象ブロックとシザリング対象ブロックを抽出する（ステップＳ１０）。
【００６０】
本実施の形態では、図５に示すようにゲームフィールドをＢx、z、Ｂx、z+１、Ｂx+1、z、‥と格子状に複数のブロックに分割している。視点位置がプレーヤカー３２０付近にあり３１０が視野範囲であるとすると、まず視野範囲内のブロックを抽出する（図６参照）。そして視野範囲内のブロック３４０に属するオブジェクトをクリッピング処理の対象として抽出する。また、視点位置から至近距離にあるポリゴンが表示抜けの対象となるので、例えば視点位置を含む４ブロック（図６の斜線部分３５０）をシザリング処理の対象として抽出する。
【００６１】
そしてクリッピング処理対象ブロックに属するオブジェクトについてクリッピング処理を行い、描画対象オブジェクトを抽出する（ステップＳ２０）。
【００６２】
そしてステップＳ３０からＳ７０において、各オブジェクトを通常の描画処理の対象となるものと、シザリング＆描画処理の対象となるものに分類する。
【００６３】
すなわち、描画対象オブジェクトであって、シザリング処理対象ブロックに属しているオブジェクトはシザリング＆描画処理の対象となる（ステップＳ３０、Ｓ４０、Ｓ５０）。また描画対象オブジェクトであって、シザリング処理対象ブロックに属していないオブジェクトは通常の描画処理の対象となる（ステップＳ３０、Ｓ４０、Ｓ６０）。すべてのオブジェクトについて分類処理がおわるまでステップＳ３０からＳ７０の処理を繰り返す。
【００６４】
図７、図８はシザリング＆描画処理の具体的な処理例について説明するための図である。
【００６５】
まずシザリング対象選別処理を行い、シザリングの対象となるポリゴンをさらに絞り込む（ステップＳ１１０）。不必要なシザリング処理を減らして演算負荷の軽減を図るためである。ここでシザリングの対象となるポリゴンについて、シザリングフラグがたつことになる。そして各ストリップ又はポリゴンの全頂点について処理が終了するまでステップＳ１１０の処理を繰り返す（ステップＳ１２０）。ここにおいて各ストリップとは、辺を共有する連続した３角形を作っていくデータ構造である。
【００６６】
次に、シザリングフラグがたっているポリゴンについては、元の三角形（ポリゴン）を構成する頂点リストを作成する（ステップＳ１３０、Ｓ１４０）。頂点リストは、頂点座標や頂点に対応するテクスチャ座標その他の画像生成のために必要な各種情報を含む。
【００６７】
そしてビューボリュームを構成する四角錐のそれぞれの側面についてシザリングを行い、新たな頂点リストを作成してパケット作成後に描画を行う（ステップＳ１５０）。ここにおいてパケットとは、例えば頂点リストに含まれる情報等の画像生成に必要な情報を含むもので、画像描画部はこのパケットに基づき描画処理を行う。
【００６８】
またシザリングフラグのたっていないポリゴンについては、シザリング対象選別処理の中で既に作成されているパケットに基づき描画を行う（ステップＳ１７０）。
【００６９】
各ストリップ又は各ポリゴンの全頂点の処理を終了するまでステップＳ１３０〜Ｓ１６０までの処理を繰り返す（ステップＳ１７０）。
【００７０】
また全ストリップについて処理を終了するまでステップＳ１００からＳ１８０までの処理を繰り返す（ステップＳ１８０）。
【００７１】
図８はシザリング対象選別処理の具体的な処理例について説明するための図である。
【００７２】
まず、頂点を座標変換、透視変換を行いパケットを作成する（ステップＳ２１０）。ここにおいてパケットとは、例えば頂点リストに含まれる情報等の画像生成に必要な情報を含むもので、画像描画部はこのパケットに基づき描画処理を行う。
【００７３】
そして頂点のスクリーン座標が指定範囲内に収まっているか判定する（ステップＳ２２０）。
【００７４】
ポリゴンを構成する３頂点の判定結果がすべて範囲内に収まっていなければパケットデータに非表示指定をする（ステップＳ２４０）。非表示指定をしておくと、描画データはあるが表示はされない。
【００７５】
またポリゴンを構成する３頂点の判定結果がすべて範囲外でない場合には、シザリングフラグを立てる（ステップＳ２５０、Ｓ２６０）。
【００７６】
なおポリゴンを構成する３頂点の判定結果がすべて範囲内に収まっている場合には非表示指定及びシザリングフラグを立てる必要はないのでステップＳ２４０〜Ｓ２６０の処理はスキップされる（ステップＳ２３０）。またすべて範囲外である場合には表示抜けの可能性はないのでステップＳ２６０の処理はスキップされる。
【００７７】
そしてパケットに従い描画を行う（ステップＳ２７０）。
【００７８】
３．３次元シザリング処理
図３で説明したように、本実施の形態ではビューボリュームを構成する四角錐の４つの側面をシザリング平面としてシザリング処理を行うよう構成されている。
【００７９】
以下図９（Ａ）〜図１６を用いて３次元シザリング処理の具体例について説明する。
【００８０】
例えば図９（Ａ）のポリゴン４００をシザリング平面４１０でシザリングする場合には、シザリング平面がＸＹ平面となるように座標変換しておく必要がある。すると図９（Ｂ）に示すように、ポリゴン４００のうちＺ座標が正の部分が範囲内となり、Ｚ座標が負の部分が範囲外となる。このように座標変換しておくと以下のシザリング演算が簡単になり演算負荷を軽減することができる。
【００８１】
図１０はポリゴン４００の範囲外の部分をシザリング平面４１０で切り、新たな頂点４４０、４５０を生成する場合の頂点座標の演算例について説明するための図である。前述したようにシザリング平面４１０がＸＹ平面となるように座標変換されているため、Ｚ座標４２０と４３０の差分から分割係数を求め、それを用いて分割後の頂点座標を簡単に求めることができる。
【００８２】
図１１は頂点Ｖn、Ｖn+1を結ぶ辺をシザリングして新たな頂点を生成する際の基本的な考え方を説明するためのフローチャート図である。
【００８３】
Ｖn、Ｖn+1がともに範囲内である場合にはＶn+1のみ頂点リストに追加する（ステップＳ３１０、Ｓ３２０）。
【００８４】
Ｖnは範囲内、Ｖn+1は範囲外である場合にはＶn−Ｖn+1間に新たな頂点Ｖn+2を生成し、Ｖn+2のみ頂点リストに追加する（ステップＳ３３０、Ｓ３４０）。
【００８５】
Ｖnは範囲外、Ｖn+1は範囲内である場合にはＶn−Ｖn+1間に新たな頂点Ｖn+2を生成し、Ｖn+2とＶn+1を頂点リストに追加する（ステップＳ３５０、Ｓ３６０）。
【００８６】
Ｖn、Ｖn+1がともに範囲外である場合には頂点リストになにも追加しない（ステップＳ３７０、Ｓ３８０）。
【００８７】
これらをシザリング対象となるポリゴン面のすべての辺について行う。
【００８８】
次に、ひとつのポリゴン面を４つのシザリング平面で順次切り取り新しい頂点を生成する場合を例にとり、シザリングによる頂点の切り取り及び頂点の生成例について説明する。
【００８９】
図１２は三角形５００を第一のシザリング平面５１０で切り取り、新しい頂点を生成する様子を説明するための図である。図９（Ａ）（Ｂ）で説明したように第一のシザリング平面５１０がＸＹ平面となるように座標変換しておく。
【００９０】
元の頂点リスト５２０にはシザリング処理を行う前のポリゴン５００の頂点Ｖ０、Ｖ１、Ｖ２がリストアップされている。なお、頂点リストには、頂点番号のほか頂点座標や頂点に対応したテクスチャ座標その他の描画に必要な情報が記憶されているがここでは説明を省略する。
【００９１】
第一のシザリング平面５１０の下側の斜線部分５４０が切り取り対象となる部分（以下「範囲外」という）である。元の頂点リスト５２０にリストアップされた頂点番号の順にしたがって、これらの頂点を始点及び終点とする各辺について図１１のフローチャート図に示されたアルゴリズムにしたがってａ１〜ａ３の処理を行い、新しい頂点リスト５３０を生成する。ａ１〜ａ３の処理により新たな頂点Ｖ３、Ｖ４が生成され、範囲外の頂点Ｖ２を含む部分５５０が切り取られている。
【００９２】
図１３は第一のシザリング平面で切り取られたあとの四角形５６０を第二のシザリング平面５７０で切り取り、新しい頂点を生成する様子を説明するための図である。図９（Ａ）（Ｂ）で説明したように第二のシザリング平面５７０がＸＹ平面となるように座標変換しておく。
【００９３】
斜線部分５５０は第一のシザリング平面により切り取られた部分である。したがって元の頂点リスト５８０には四角形５６０の頂点Ｖ１、Ｖ３、Ｖ４、Ｖ０がリストアップされている。
【００９４】
第二のシザリング平面５７０の左側の斜線部分６００が切り取り対象となる部分（以下「範囲外」という）である。元の頂点リスト５８０にリストアップされた頂点番号の順にしたがって、これらの頂点を始点及び終点とする各辺について図１１のフローチャート図に示されたアルゴリズムにしたがってｂ１〜ｂ４の処理を行い、新しい頂点リスト５９０を生成する。ｂ１〜ｂ４の処理により新たな頂点Ｖ５、Ｖ６が生成され、範囲外の頂点Ｖ０を含む部分６１０が切り取られている。
【００９５】
図１４は第一及び第二のシザリング平面で切り取られたあとの五角形６６０を第三のシザリング平面６２０で切り取り、新しい頂点を生成する様子を説明するための図である。図９（Ａ）（Ｂ）で説明したように第三のシザリング平面６２０がＸＹ平面となるように座標変換しておく。
【００９６】
斜線部分５５０、６１０は第一及び第二のシザリング平面により切り取られた部分である。したがって元の頂点リスト６３０には五角形６６０の頂点Ｖ３、Ｖ４、Ｖ５、Ｖ６、Ｖ１がリストアップされている。
【００９７】
第三のシザリング平面６２０の右側の斜線部分６５０が切り取り対象となる部分（以下「範囲外」という）である。元の頂点リスト６３０にリストアップされた頂点番号の順にしたがって、これらの頂点を始点及び終点とする各辺について図１１のフローチャート図に示されたアルゴリズムにしたがってｃ１〜ｃ５の処理を行い、新しい頂点リスト６４０を生成する。ｃ１〜ｃ５の処理により新たな頂点Ｖ７、Ｖ８が生成され、範囲外の頂点Ｖ１を含む部分６７０が切り取られている。
【００９８】
図１５は第一及び第二及び第三のシザリング平面で切り取られたあとの六角形６８０を第四のシザリング平面６９０で切り取り、新しい頂点を生成する様子を説明するための図である。図９（Ａ）（Ｂ）で説明したように第四のシザリング平面６９０がＸＹ平面となるように座標変換しておく。
【００９９】
斜線部分５５０、６１０、６７０は第一及び第二及び第三のシザリング平面により切り取られた部分である。したがって元の頂点リスト７１０には六角形６８０の頂点Ｖ４、Ｖ５、Ｖ６、Ｖ７、Ｖ８、Ｖ３がリストアップされている。
【０１００】
第四のシザリング平面６９０の下側の斜線部分６９０が切り取り対象となる部分（以下「範囲外」という）である。元の頂点リスト７１０にリストアップされた頂点番号の順にしたがって、これらの頂点を始点及び終点とする各辺について図１１のフローチャート図に示されたアルゴリズムにしたがってｄ１〜ｄ６の処理を行い、新しい頂点リスト７２０を生成する。ｄ１〜ｄ６の処理により新たな頂点Ｖ９、Ｖ１０が生成され、範囲外の頂点Ｖ３、Ｖ４を含む部分７３０が切り取られている。
【０１０１】
この新しい頂点リスト７２０にもとづいて、シザリング後の多角形のパケットデータが作成される。
【０１０２】
図１６はシザリング後の多角形の様子を示している。本実施の形態では３角形のポリゴンを用いて画像を生成しているがシザリングにより生成されたのが六角形であるため、Ｐ１〜Ｐ４の４つのポリゴンについてトライアングルファンの手法により描画を行う。
【０１０３】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１７を用いて説明する。
【０１０４】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１０５】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０６】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１０７】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１０８】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１０９】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１１０】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１１１】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１１２】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１１３】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１１４】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１１５】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルインターフェースのバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルインターフェースのバスを利用することで、他の画像生成システム、他のゲームシステム、家電（ビデオデッキ、ビデオカメラ）、或いは情報処理機器（パーソナルコンピュータ、プリンタ、マウス、キーボード）などとの間でのデータ転送が可能になる。
【０１１６】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１１７】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラム（プログラム及びデータ）が格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１１８】
図１８（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するためのプログラム（或いはプログラム及びデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１１９】
図１８（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１２０】
図１８（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１８０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１２１】
なお、図１８（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１２２】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１２３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１２４】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１２５】
例えば本実施の形態では、ポリゴンの表示抜けを防止するためにシザリング処理を行う場合を例にとり説明したがこれに限られない。例えばオブジェクトを切り落とす演出に用いてもよい。
【０１２６】
またシザリング処理において新たな頂点を生成する具体的な手法についても本実施の形態で説明した手法に限られない。
【０１２７】
また本発明はレーシングゲーム以外にも種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１２８】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、画像生成システム、ゲーム画像を生成するシステムボード等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムのブロック図の例である。
【図２】ドライブゲームの表示画面において、表示抜けが発生している例を説明するための図である。
【図３】本実施の形態でシザリング処理に用いる平面について説明するための図である。
【図４】本実施の形態のシザリング処理の対象となるオブジェクトを抽出する処理例について説明するための図である。
【図５】クリッピング対象ブロックとシザリング対象ブロックについて説明するための図である。
【図６】クリッピング対象ブロックとシザリング対象ブロックについて説明するための図である。
【図７】シザリング＆描画処理の具体的な処理例について説明するための図である。
【図８】シザリング＆描画処理の具体的な処理例について説明するための図である。
【図９】図９（Ａ）（Ｂ）は本実施の形態の３次元シザリング処理の具体例について説明するための図である。
【図１０】ポリゴンの範囲外の部分をシザリング平面で切り、新たな頂点を生成する場合の頂点座標の演算例について説明するための図である。
【図１１】頂点Ｖｎ、Ｖｎ＋１を結ぶ辺をシザリングして新たな頂点を生成する際の基本的な考え方を説明するためのフローチャート図である。
【図１２】三角形を第一のシザリング平面で切り取り、新しい頂点を生成する様子を説明するための図である。
【図１３】第一のシザリング平面で切り取られたあとの四角形を第二のシザリング平面で切り取り、新しい頂点を生成する様子を説明するための図である。
【図１４】第一及び第二のシザリング平面で切り取られたあとの五角形を第三のシザリング平面で切り取り、新しい頂点を生成する様子を説明するための図である。
【図１５】第一及び第二及び第三のシザリング平面で切り取られたあとの六角形を第四のシザリング平面で切り取り、新しい頂点を生成する様子を説明するための図である。
【図１６】シザリング後の多角形の様子を表した図である。
【図１７】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１８】図１８（Ａ）（Ｂ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１１４  移動・動作演算部
１４０  画像処理部
１４２  ジオメトリ処理部
１４４  シザリング処理部
１４６  描画部
１５０  音処理部
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１７６  テクスチャ記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
２２０  ビューボリューム
【図１】
0004371283.tif 000002
【図２】
0004371283.tif 000003
【図３】
0004371283.tif 000004
【図４】
0004371283.tif 000005
【図５】
0004371283.tif 000006
【図６】
0004371283.tif 000007
【図７】
0004371283.tif 000008
【図８】
0004371283.tif 000009
【図９】
0004371283.tif 000010
【図１０】
0004371283.tif 000011
【図１１】
0004371283.tif 000012
【図１２】
0004371283.tif 000013
【図１３】
0004371283.tif 000014
【図１４】
0004371283.tif 000015
【図１５】
0004371283.tif 000016
【図１６】
0004371283.tif 000017
【図１７】
0004371283.tif 000018
【図１８】
0004371283.tif 000019