(57)【要約】【課題】少ない処理負荷でジャギーを除去できる画像生成システム、プログラム及び情報記憶媒体を提供すること。【解決手段】透視変換後のオブジェクトのプリミティブ点の座標が前回のフレームと今回のフレームとで異なった値になるように、プリミティブ点の座標を変動させてジャギーを除去する。プリミティブ点の座標が、第１のフレームでは（Ｘ１、Ｙ１）、第２のフレームでは（Ｘ２、Ｙ２）、第３のフレームでは（Ｘ３、Ｙ３）、第４のフレームでは（Ｘ１、Ｙ１）・・・となるように、座標を変動させる。Ｘ１〜Ｘ３が全て異なった値になり、且つ、Ｙ１〜Ｙ３も全て異なった値になるようにする。（Ｘ１、Ｙ１）〜（Ｘ３、Ｙ３）として、座標変動前のプリミティブ点を内包する３（Ｎ）角形の頂点の座標を用いる。座標変動範囲を１画素未満にする。透視変換されないオブジェクト（文字等）については、座標変動処理を省略する。【選択図】　　図８
2004030283.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
オブジェクト空間内のオブジェクトに対して、透視変換を含むジオメトリ処理を施すジオメトリ処理部と、
透視変換後のオブジェクトを描画バッファに描画し、オブジェクト空間内において所与の視点から見える画像を生成する画像生成部と、
透視変換後のオブジェクトのプリミティブ点の座標が前回のフレームと今回のフレームとで異なった値になるように、プリミティブ点の座標を変動させてジャギーを除去する座標変動部と、
を含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記座標変動部が、
プリミティブ点の座標が、第１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｋ（１＜Ｋ＜Ｎ）のフレームでは（ＸＫ、ＹＫ）、・・・・・第Ｎのフレームでは（ＸＮ、ＹＮ）、第Ｎ＋１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｎ＋Ｋのフレームでは（ＸＫ、ＹＫ）、・・・・・第２Ｎのフレームでは（ＸＮ、ＹＮ）、・・・・となるように、プリミティブ点の座標を変動させることを特徴とする画像生成システム。
【請求項３】
請求項２において、
前記座標変動部が、
Ｘ１〜ＸＮが全て異なった値になり、且つ、Ｙ１〜ＹＮも全て異なった値になるように、プリミティブ点の座標を変動させることを特徴とする画像生成システム。
【請求項４】
請求項２又は３において、
（Ｘ１、Ｙ１）〜（ＸＮ、ＹＮ）が、座標変動前のプリミティブ点を内包するＮ角形の頂点の座標であることを特徴とする画像生成システム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記Ｎが奇数であることを特徴とする画像生成システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
プリミティブ点の座標変動範囲が１画素未満であることを特徴とする画像生成システム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記座標変動部が、
透視変換されないオブジェクトについては、座標変動処理を省略することを特徴とする画像生成システム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記座標変動部が、
描画バッファでの描画座標の原点を設定するための描画座標レジスタの値にオフセット値を加えることで、プリミティブ点の座標を変動させることを特徴とする画像生成システム。
【請求項９】
画像を生成するためのプログラムであって、
オブジェクト空間内のオブジェクトに対して、透視変換を含むジオメトリ処理を施すジオメトリ処理部と、
透視変換後のオブジェクトを描画バッファに描画し、オブジェクト空間内において所与の視点から見える画像を生成する画像生成部と、
透視変換後のオブジェクトのプリミティブ点の座標が前回のフレームと今回のフレームとで異なった値になるように、プリミティブ点の座標を変動させてジャギーを除去する座標変動部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項１０】
請求項９において、
前記座標変動部が、
プリミティブ点の座標が、第１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｋ（１＜Ｋ＜Ｎ）のフレームでは（ＸＫ、ＹＫ）、・・・・・第Ｎのフレームでは（ＸＮ、ＹＮ）、第Ｎ＋１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｎ＋Ｋのフレームでは（ＸＫ、ＹＫ）、・・・・・第２Ｎのフレームでは（ＸＮ、ＹＮ）、・・・・となるように、プリミティブ点の座標を変動させることを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記座標変動部が、
Ｘ１〜ＸＮが全て異なった値になり、且つ、Ｙ１〜ＹＮも全て異なった値になるように、プリミティブ点の座標を変動させることを特徴とするプログラム。
【請求項１２】
請求項１０又は１１において、
（Ｘ１、Ｙ１）〜（ＸＮ、ＹＮ）が、座標変動前のプリミティブ点を内包するＮ角形の頂点の座標であることを特徴とするプログラム。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記Ｎが奇数であることを特徴とするプログラム。
【請求項１４】
請求項９乃至１３のいずれかにおいて、
プリミティブ点の座標変動範囲が１画素未満であることを特徴とするプログラム。
【請求項１５】
請求項９乃至１４のいずれかにおいて、
前記座標変動部が、
透視変換されないオブジェクトについては、座標変動処理を省略することを特徴とするプログラム。
【請求項１６】
請求項９乃至１５のいずれかにおいて、
前記座標変動部が、
描画バッファでの描画座標の原点を設定するための描画座標レジスタの値にオフセット値を加えることで、プリミティブ点の座標を変動させることを特徴とするプログラム。
【請求項１７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項９乃至１６のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム（カーゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等）を用いてプレーヤ移動体（プレーヤカー、プレーヤオブジェクト）を操作し、コンピュータや相手プレーヤが操作する敵移動体（敵カー、敵オブジェクト）と競争することでゲームを楽しむ。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感を向上するために、より高品質な画像を生成することが望まれている。ところが、何ら工夫を行わずにレンダリングを行うと、画面に表示されるポリゴンの縁にジャギーが発生してしまうという問題がある。特に、垂直又は水平に近い角度で表示されるポリゴンでは、このジャギーが非常に目立ってしまい、高品質な画像を生成できない。
【０００４】
この場合、ジャギーを除去する手法として、アンチエイリアス処理やデフリッカ処理などを行う手法もあるが、これらの手法は、専用のハードウェアを必要としたり、処理負荷が重くなるなどの問題がある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷でジャギーを除去できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、画像生成を行う画像生成システムであって、オブジェクト空間内のオブジェクトに対して、透視変換を含むジオメトリ処理を施すジオメトリ処理部と、透視変換後のオブジェクトを描画バッファに描画し、オブジェクト空間内において所与の視点から見える画像を生成する画像生成部と、透視変換後のオブジェクトのプリミティブ点の座標が前回のフレームと今回のフレームとで異なった値になるように、プリミティブ点の座標を変動させてジャギーを除去する座標変動部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明によれば、透視変換後のオブジェクトのプリミティブ点の座標（例えばスクリーン座標）が、前回のフレームと今回のフレームとで異なった値になるように変動する。即ち、その描画座標が変動しながら、透視変換後のオブジェクトが描画バッファに描画される。従って、透視変換されるオブジェクトに発生するジャギーの発生場所が変動し、ジャギーが目立たなくなるようになり、高品質な画像を提供できる。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記座標変動部が、プリミティブ点の座標が、第１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｋ（１＜Ｋ＜Ｎ）のフレームでは（ＸＫ、ＹＫ）、・・・・・第Ｎのフレームでは（ＸＮ、ＹＮ）、第Ｎ＋１のフレームでは（Ｘ１、Ｙ１）、・・・・・第Ｎ＋Ｋのフレームでは（ＸＫ、ＹＫ）、・・・・・第２Ｎのフレームでは（ＸＮ、ＹＮ）、・・・・となるように、プリミティブ点の座標を変動させるようにしてもよい。
【０００９】
このようにプリミティブ点の座標を巡回的に変動させれば、目の残像効果等を有効利用してジャギーの低減化を図れる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記座標変動部が、Ｘ１〜ＸＮが全て異なった値になり、且つ、Ｙ１〜ＹＮも全て異なった値になるように、プリミティブ点の座標を変動させるようにしてもよい。
【００１１】
このようにすれば、ジャギーの発生場所が散在するようになり、ジャギーを更に目立たなくすることが可能になる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、（Ｘ１、Ｙ１）〜（ＸＮ、ＹＮ）が、座標変動前のプリミティブ点を内包するＮ角形の頂点の座標であってもよい。
【００１３】
このようにすれば、簡素な処理で、座標変動処理を実現できるようになる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記Ｎが奇数であってもよい。また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、プリミティブ点の座標変動範囲が１画素未満であってもよい。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記座標変動部が、透視変換されないオブジェクトについては、座標変動処理を省略してもよい。
【００１６】
このようにすれば、透視変換されない例えば文字等のオブジェクトの判読が困難になるなどの事態を防止できる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記座標変動部が、描画バッファでの描画座標の原点を設定するための描画座標レジスタの値にオフセット値を加えることで、プリミティブ点の座標を変動させてもよい。
【００１８】
このようにすれば、描画座標レジスタの値を書き換えるだけという負荷の軽い処理で、座標の変動処理を実現できるようになる。
【００１９】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【００２０】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２１】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外の各部（機能ブロック）については任意の構成要素とすることができる。
【００２２】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【００２３】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００２４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００２５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００２６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００２７】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００２８】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２９】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００３０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００３１】
処理部１００は、移動・動作処理部１１０、オブジェクト空間設定部１１２、視点制御部１１４、ジオメトリ処理部１１６、座標変換部１１８、画像生成部１２０、音生成部１３０を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【００３２】
移動・動作処理部１１０は、オブジェクト（移動体）の移動情報（位置、回転角度）や動作情報（オブジェクトの各パーツの位置、回転角度）を求める処理を行う。即ち、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作（モーション、アニメーション）させたりする処理を行う。
【００３３】
オブジェクト空間設定部１１２は、移動体（キャラクタ、車、戦車、ロボット）、柱、壁、建物、マップ（地形）などの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転）でオブジェクトを配置する。
【００３４】
視点制御部１１４は、オブジェクト空間内に設定される視点（仮想カメラ）を制御する処理を行う。即ち、視点の位置（Ｘ、Ｙ、Ｚ）又は回転（Ｘ、Ｙ、Ｚ軸回りでの回転）などを求め、視点位置や視線方向を制御する。
【００３５】
ジオメトリ処理部１１６は、座標変換、クリッピング処理、透視変換或いは光源処理などの種々のジオメトリ処理（３次元演算）を行う。例えば、オブジェクト空間内のオブジェクト（３次元オブジェクト）をスクリーン座標系に透視変換するなどの処理を行う。
【００３６】
座標変動部１１８は、透視変換後のオブジェクトのプリミティブ点（オブジェクトを構成する点）の座標が前回のフレームと今回のフレームとで異なった値になるように、プリミティブ点の座標を変動させる処理（オブジェクトの描画座標を変動させる処理）を行う。より具体的には、例えば、第１のフレームでは（Ｘ１、Ｙ１）、第２のフレームでは（Ｘ２、Ｙ２）、・・・・・第Ｎのフレームでは（ＸＮ、ＹＮ）、第Ｎ＋１のフレームでは（Ｘ１、Ｙ１）、第Ｎ＋２のフレームでは（Ｘ２、Ｙ２）、・・・・・第２Ｎのフレームでは（ＸＮ、ＹＮ）になるように、プリミティブ点の座標（描画座標）を変動させる。これにより、ジャギーの低減化を図れる。なお、プリミティブ点の座標（描画座標）を乱数に基づいて変動させてもよい。
【００３７】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。即ち、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像が生成されるようになる。
【００３８】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００３９】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００４０】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００４１】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００４２】
２．１　座標変動によるジャギー除去
本実施形態では、透視変換（ジオメトリ処理）後のオブジェクトのプリミティブ点の座標を変動させてジャギーを除去する手法を採用している。
【００４３】
例えば図２に、オブジェクト空間内のオブジェクト（３次元オブジェクト）を透視変換し、透視変換後のオブジェクト（２次元オブジェクト）を描画バッファ（フレームバッファ）に描画することで得られる画像の例を示す。
【００４４】
本実施形態では、図２の透視変換後のオブジェクトのプリミティブ点（２次元画像を構成するプリミティブ点）の座標（スクリーン座標）を、前回のフレームと今回のフレームで異なった値になるように変動させる。即ち、１画素（ドット）未満の微少な座標変動範囲で描画座標を変動させながら、透視変換後のオブジェクトを描画（レンダリング）する。これにより例えば図２のＡ１、Ａ２に示す場所等で、ジャギーの発生を効果的に低減できる。
【００４５】
即ち本実施形態の手法を用いないと、図３において直線ＬＮ（オブジェクト）の描画座標（描画位置）は変動しないようになるため、ジャギーの場所が図３のＢ１の位置に定在してしまう。このため、Ｂ１のジャギーが目立ってしまい、高品質な画像を生成できない。
【００４６】
これに対して本実施形態では、図３の直線ＬＮ（オブジェクト）を構成するプリミティブ点の座標を、スクリーン座標系のＹ座標方向で、Ｙ、Ｙ＋１／３Ｐ（Ｐ＝画素の幅）、Ｙ＋２／３Ｐ、Ｙ、Ｙ＋１／３Ｐ、Ｙ＋２／３Ｐ・・・・というようにフレーム毎に変動させて描画する。即ち、ＬＮをＹ座標方向でフレーム毎にずらしながら描画する。すると、図３のＢ１、Ｂ２、Ｂ３に示すようにジャギーの発生場所が滑らかに変化するようになり、ジャギーが目立たなくなる。従って、少ない処理負荷で高品質な画像を生成できるようになる。
【００４７】
なお、ジャギーの発生場所が変化すると、その部分が点滅して見えるようになるが、３〜５フレーム程度の周期で変動させれば、目の残像効果により、この点滅も目立たなくなる。特にプログレッシブ方式などの表示部ではフレーム間の補間が行われるため、この点滅を更に目立たなくすることが可能になる。
【００４８】
なお、図３では、Ｙ座標方向で座標を変動させているが、Ｙ座標方向のみならずＸ座標方向にも座標を変動させることが望ましい。また、変動方向（ずらす方向）や変動量（ずらし量）は、周期的なものであってもよいし、ランダムなものであってもよい。
【００４９】
２．２　座標変動手法
図４に、座標変動手法の具体例を示す。
【００５０】
図４において、（ＸＶ、ＹＶ）は、座標変動前のオブジェクトのプリミティブ点（例えば頂点）の座標である。本実施形態では、この（ＸＶ、ＹＶ）を内包する３角形（広義にはＮ角形）を想定する。そして、（ＸＶ、ＹＶ）の変動座標として、この３角形（Ｎ角形）の頂点の座標（Ｘ１、Ｙ１）、（Ｘ２、Ｙ２）、（Ｘ３、Ｙ３）（広義には（Ｘ１、Ｙ１）〜（ＸＮ、ＹＮ））を用いる。
【００５１】
より具体的には、（ＸＶ、ＹＶ）が、第１のフレームでは（Ｘ１、Ｙ１）、第２のフレームでは（Ｘ２、Ｙ２）、第３のフレームでは（Ｘ３、Ｙ３）、第４のフレームでは（Ｘ１、Ｙ１）、第５のフレームでは（Ｘ２、Ｙ２）、第６のフレームでは（Ｘ３、Ｙ３）・・・・となるように、プリミティブ点の座標を変動させる。即ち、プリミティブ点の座標を、（ＸＶ、ＹＶ）を内包する３（Ｎ）角形の頂点上で巡回的に移動させる。
【００５２】
このようにすることで、プリミティブ点の変動座標を簡素な処理で得ることができる。また図４に示すように、Ｘ１〜Ｘ３（広義にはＸ１〜ＸＮ）が全て異なった値になり、且つ、Ｙ１〜Ｙ３（広義にはＹ１〜ＹＮ）も全て異なった値になるように、プリミティブ点の座標を変動させることが可能になる。
【００５３】
これにより、ジャギーの低減効果の高い座標変動処理を、少ない処理負荷で実現できるようになる。
【００５４】
なお、図４では、３角形を用いているが、４角形以上のＮ角形を用いてもよい。但し、Ｎが大きすぎると、目の残像効果が薄れてしまう可能性があるため、Ｎ＝３〜５程度であることが望ましい。
【００５５】
また、このＮは奇数であることが望ましい。
【００５６】
即ち、多くの表示部ではインターレス表示が行われている。そして、インターレス表示において、Ｎを偶数（例えばＮ＝４）に設定すると、図５のＣ１に示すように、奇数ラインではＹ、Ｙ＋２／４Ｐ、Ｙ、Ｙ＋２／４Ｐ・・・・というように座標が変動し、偶数ラインではＹ＋１／４Ｐ、Ｙ＋３／４Ｐ、Ｙ＋１／４Ｐ、Ｙ＋３／４Ｐ・・・・というように座標が変動するようになる。即ち、せっかくＮ＝４に設定しているのに、奇数ライン、偶数ラインの各々において、変動座標は２つの値しかとることができない。
【００５７】
これに対して、Ｎを奇数（例えばＮ＝３）に設定すれば、図５のＣ２に示すように、奇数ラインではＹ、Ｙ＋２／３Ｐ、Ｙ＋１／３Ｐ、Ｙ、Ｙ＋２／３Ｐ、Ｙ＋１／３Ｐ・・・・というように座標が変動し、偶数ラインではＹ＋１／３Ｐ、Ｙ、Ｙ＋２／３Ｐ、Ｙ＋１／３Ｐ、Ｙ、Ｙ＋２／３Ｐ・・・・というように座標が変動するようになる。即ち、奇数ライン、偶数ラインのいずれにおいても、３つの値を取ることが可能になると共に、奇数ラインと偶数ラインの表示が干渉して不自然な画像が生成されてしまう事態も防止できる。
【００５８】
２．３　描画座標レジスタの利用
さて、ダブルバッファなどを実現するために、図６（Ａ）、（Ｂ）に示すような表示座標レジスタＤＩＳＲＥＧ、描画座標レジスタＤＲＡＲＥＧが使用される場合がある。
【００５９】
ここで、ＤＩＳＲＥＧは、描画バッファ（フレームバッファ）での表示座標の原点（基準点）を設定するためのレジスタであり、表示エリアを指定するためのレジスタである。一方、ＤＲＡＲＥＧは、描画バッファでの描画座標の原点（基準点）を設定するためのレジスタであり、描画エリアを指定するためのレジスタである。
【００６０】
例えば図６（Ａ）では、ＤＩＳＲＥＧに、描画バッファ上のエリア０の原点座標ＰＳ０（アドレス）を設定し、ＤＲＡＲＥＧに、エリア１の原点座標ＰＳ１（アドレス）を設定する。これにより、エリア０の画像を表示部により表示している間に、エリア１に、透視変換後のオブジェクトを描画できるようになる。
【００６１】
一方、図６（Ｂ）では、ＤＩＳＲＥＧに、描画バッファ上のエリア１の原点座標ＰＳ１を設定し、ＤＲＡＲＥＧに、エリア０の原点座標ＰＳ０を設定する。これにより、エリア１の画像を表示部により表示している間に、エリア０に、透視変換後のオブジェクトを描画できるようになる。
【００６２】
このように表示座標レジスタＤＩＳＲＥＧ、描画座標レジスタＤＲＡＲＥＧを利用することで、いわゆるダブルバッファを実現できる。
【００６３】
そして本実施形態では、これらの表示座標レジスタＤＩＳＲＥＧ、描画座標レジスタＤＲＡＲＥＧを有効利用して、座標の変動処理を実現している。
【００６４】
即ち図７（Ａ）では、ＤＩＳＲＥＧに、エリア０の原点座標ＰＳ０を設定し、ＤＲＡＲＥＧに、エリア１の原点座標ＰＳ１にオフセット値ＯＦＳ（オフセット座標）を加えたものを設定する。
【００６５】
一方、図７（Ｂ）では、ＤＩＳＲＥＧに、エリア１の原点座標ＰＳ１を設定し、ＤＲＡＲＥＧに、エリア０の原点座標ＰＳ０にオフセット値ＯＦＳを加えたものを設定する。
【００６６】
このようにすることで、表示座標の原点と描画座標の原点が、オフセット値ＯＦＳの分だけずれるようになる。これにより、透視変換後のオブジェクトのプリミティブ点の座標に、オフセット値ＯＦＳの分の変動を加えることが可能になり、ジャギーの低減化を図れる。
【００６７】
しかも、図７（Ａ）、（Ｂ）の手法では、オブジェクトのプリミティブ点（頂点）にオフセット値を加える処理を、画像生成システムが有するハードウェア（描画プロセッサ）を利用して実現できるため、ソフトウェアの処理負荷を軽減できる。
【００６８】
なお、座標を変動させる手法は、図７（Ａ）、（Ｂ）に示すものに限定されず、種々の変形実施が可能である。例えば、透視変換後のオブジェクト（ポリゴン）の頂点リストに含まれる頂点座標にオフセット値を加算してもよい。或いは、視点の位置座標等にオフセット値を加算してもよい。
【００６９】
２．４　座標変動処理の省略
以上のように本実施形態では、透視変換後のオブジェクトのプリミティブ点の座標を変動させて、ジャギーを低減している。
【００７０】
ところが、画面上に表示される文字などの座標が変動してしまうと、生成される画像が見にくいものになってしまう。
【００７１】
そこで本実施形態では、文字などの透視変換されないオブジェクト（スプライト）については、座標の変動処理を行わないようにしている。
【００７２】
例えば図８に示すように、透視変換されて描画バッファに描画される車、コース、建物などのオブジェクトについては、座標の変動処理を行う。具体的には、描画バッファにこれらのオブジェクトを描画する際に、図７（Ａ）、（Ｂ）に示すように、描画座標レジスタＤＲＡＲＥＧにオフセット値ＯＦＳを加算しながら、描画処理を行う。
【００７３】
そして、その後に、成績等の文字、コースマップ、速度計などを表すスプライト（透視変換されないオブジェクト）を描画する。
【００７４】
このようにすれば、文字等のスプライトには、座標の変動処理が行われないようになるため、文字の判読が難しくなってしまう等の問題を防止できる。
【００７５】
なお、座標変動処理を行わないオブジェクトは、文字、コースマップ、速度計に限定されず、少なくとも透視変換されずに描画バッファに描画されるオブジェクトであればよい。
【００７６】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図９、図１０、図１１のフローチャートを用いて説明する。
【００７７】
まず、垂直帰線期間（Ｖブランク）に入ったか否かを判断する（ステップＳ１）。そして、垂直帰線期間入った場合には、偶数フィールドか否かを判断する（ステップＳ２）。そして、偶数フィールドの場合には、表示座標レジスタ（図７（Ａ）、（Ｂ）のＤＩＳＲＥＧ）にエリア０の原点座標（アドレス）をセットする（ステップＳ３）。一方、奇数フィールドの場合には、表示座標レジスタにエリア１の原点座標をセットする（ステップＳ４）。
【００７８】
次に、揺らぎ（変動）カウント値を１だけインクリメントする（ステップＳ５）。そして、揺らぎカウント値が３以上か否かを判断し（ステップＳ６）、３以上の場合には０にリセットする（ステップＳ７）。
【００７９】
次に、揺らぎカウント値に基づいて、図４等で説明した手法によりオフセット値を計算する（ステップＳ８）。
【００８０】
例えば図４において、揺らぎカウント値が０、１、２の場合には、各々、（Ｘ１、Ｙ１）−（ＸＶ、ＹＶ）、（Ｘ２、Ｙ２）−（ＸＶ、ＹＶ）、（Ｘ３、Ｙ３）−（ＸＶ、ＹＶ）が、オフセット値として計算される。
【００８１】
次に、偶数フィールドか否かを判断し（ステップＳ９）、偶数フィールドの場合には、描画座標レジスタ（図７（Ａ）、（Ｂ）のＤＲＡＲＥＧ）に、エリア１の原点座標にオフセット値を加算することで得られる座標（アドレス）をセットする（ステップＳ１０）。一方、奇数フィールドの場合には、描画座標レジスタに、エリア０の原点座標にオフセット値を加算することで得られる座標をセットする（ステップＳ１１）。
【００８２】
次に、視点座標系変換マトリクスをセットする（ステップＳ１２）。そして、描画オブジェクトのデータを用意する（ステップＳ１３）。
【００８３】
次に、頂点データに視点座標系変換マトリクスをかける（ステップＳ１４）。そして、頂点データに透視変換マトリクスをかける（ステップＳ１５）。そして、ポリゴン内の全頂点の処理が終了したか否かを判断し（ステップＳ１６）、終了していない場合にはステップＳ１４に戻る。
【００８４】
ポリゴン内の全頂点の処理が終了した場合には、Ｚクリッピングを行う（ステップＳ１７）。そして、ビューボリュームによるクリッピングを行い（ステップＳ１８）、ポリゴンの表裏判定を行う（ステップＳ１９）。そして、オブジェクトを構成する全てのポリゴンの処理が終了したか否かを判断し（ステップＳ２０）、終了していない場合にはステップＳ１４に戻る。
【００８５】
オブジェクトを構成する全てのポリゴンの処理が終了した場合には、描画データ（ポリゴンデータ）を描画プロセッサに転送する（ステップＳ２１）。そして、オブジェクト空間（ゲーム空間）内の全てのオブジェクトの処理が終了したか否かを判断し（ステップＳ２２）、終了していない場合にはステップＳ１３に戻る。一方、終了した場合には、成績、コースマップ、速度計などのスプライトを描画する（ステップＳ２３）。
【００８６】
図１１は、視点の座標を変動させてジャギー除去を実現する処理のフローチャートである。
【００８７】
まず、垂直帰線期間に入ったか否かを判断し（ステップＳ３１）、次に、偶数フィールドか否かを判断する（ステップＳ３２）。そして、偶数フィールドの場合には、表示座標レジスタにエリア０の原点座標をセットし（ステップＳ３３）、描画座標レジスタにエリア１の原点座標をセットする（ステップＳ３４）。
【００８８】
一方、奇数フィールドの場合には、表示座標レジスタにエリア１の原点座標をセットし（ステップＳ３５）、描画座標レジスタにエリア０の原点座標をセットする（ステップＳ３６）。
【００８９】
次に、揺らぎカウント値を１だけインクリメントする（ステップＳ３７）。そして、揺らぎカウント値が３以上か否かを判断し（ステップＳ３８）、３以上の場合には０にリセットする（ステップＳ３９）。
【００９０】
次に、揺らぎカウント値に基づいてオフセット値を計算する（ステップＳ４０）。そして、視点の座標にオフセット値を加算する（ステップＳ４１）。これにより座標変動が実現される。
【００９１】
その後は、図１０に示すステップＳ１２〜Ｓ２３の処理を行う。
【００９２】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１２を用いて説明する。
【００９３】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【００９４】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００９５】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【００９６】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【００９７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【００９８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【００９９】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１００】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１０１】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１０２】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１０３】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１０４】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１０５】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０６】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【０１０７】
図１３（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、操作部１１０２（レバー、ボタン）を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０１０８】
図１３（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０１０９】
図１３（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４−１〜１３０４−ｎ（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４−１〜１３０４−ｎが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０１１０】
なお、図１３（Ｃ）の構成の場合に、本実施形態の各部を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１１１】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【０１１２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１１３】
例えば、明細書中の記載において広義な用語（Ｎ角形、描画バッファ、プリミティブ面、文字等）として引用された用語（３角形、フレームバッファ、ポリゴン、スプライト等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０１１４】
また、座標の変動手法も、本実施形態で詳細に説明した手法に限定されず、種々の変形実施が可能である。
【０１１５】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１１６】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）に適用できる。
【０１１７】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】透視変換後のオブジェクトを描画バッファに描画することで得られる画像の例である。
【図３】本実施形態の座標変動手法について説明するための図である。
【図４】本実施形態の座標変動手法について説明するための図である。
【図５】Ｎを奇数に設定する手法について説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、表示座標レジスタ、描画座標レジスタについて説明するための図である。
【図７】図７（Ａ）、（Ｂ）は、表示座標レジスタ、描画座標レジスタを利用して座標を変動させる手法について説明するための図である。
【図８】文字等への座標変動処理を省略する手法について説明するための図である。
【図９】本実施形態の処理の詳細例について示すフローチャートである。
【図１０】本実施形態の処理の詳細例について示すフローチャートである。
【図１１】本実施形態の処理の詳細例について示すフローチャートである。
【図１２】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１３】図１３（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＤＩＳＲＥＧ　　表示座標レジスタ
ＤＲＡＲＥＧ　　描画座標レジスタ
ＰＳ０、ＰＳ１　原点座標
１００　処理部
１１０　移動・動作処理部
１１２　オブジェクト空間設定部
１１４　視点制御部
１１６　ジオメトリ処理部
１１８　座標変動部
１２０　画像生成部
１２４　色合成部
１３０　音生成部
１６０　操作部
１７０　記憶部
１７２　主記憶部
１７４　描画バッファ
１８０　情報記憶媒体
１９０　表示部
１９２　音出力部
１９４　携帯型情報記憶装置
１９６　通信部
【図１】
2004030283.tif 000003
【図２】
2004030283.tif 000004
【図３】
2004030283.tif 000005
【図４】
2004030283.tif 000006
【図５】
2004030283.tif 000007
【図６】
2004030283.tif 000008
【図７】
2004030283.tif 000009
【図８】
2004030283.tif 000010
【図９】
2004030283.tif 000011
【図１０】
2004030283.tif 000012
【図１１】
2004030283.tif 000013
【図１２】
2004030283.tif 000014
【図１３】
2004030283.tif 000015