JP4074531B2 - 描画装置および描画方法、並びに提供媒体 - Google Patents

描画装置および描画方法、並びに提供媒体 Download PDF

Info

Publication number
JP4074531B2
JP4074531B2 JP2003056079A JP2003056079A JP4074531B2 JP 4074531 B2 JP4074531 B2 JP 4074531B2 JP 2003056079 A JP2003056079 A JP 2003056079A JP 2003056079 A JP2003056079 A JP 2003056079A JP 4074531 B2 JP4074531 B2 JP 4074531B2
Authority
JP
Japan
Prior art keywords
pixel
image
overwriting
pixel data
polygon
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 - Lifetime
Application number
JP2003056079A
Other languages
English (en)
Other versions
JP2003303352A5 (ja
JP2003303352A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2003056079A priority Critical patent/JP4074531B2/ja
Publication of JP2003303352A publication Critical patent/JP2003303352A/ja
Publication of JP2003303352A5 publication Critical patent/JP2003303352A5/ja
Application granted granted Critical
Publication of JP4074531B2 publication Critical patent/JP4074531B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、描画装置および描画方法、並びに提供媒体に関し、特に、例えば、コンピュータを用いた映像機器である3次元グラフィックコンピュータや、特殊効果装置(エフェクタ)、ビデオゲーム機などにおいて、高画質の画像を表示することができるようにする描画装置および描画方法、並びに提供媒体に関する。
【0002】
【従来の技術】
プロセッサやメモリなどの高集積化、高速化等に伴い、従来は困難であった3次元画像のリアルタイム生成が可能となり、これにより、例えば、ビデオゲーム機などにおいては、臨場感のある3次元画像の表示が可能となっている。なお、3次元画像を表示する場合においては、多くの場合、その3次元画像を複数のポリゴン(単位図形)に分解し、これらのポリゴンそれぞれを描画することで、3次元画像全体を描画するようになされている。従って、このようにして描画される3次元画像は、ポリゴンの組合せにより定義されているということができる。
【0003】
【発明が解決しようとする課題】
ところで、例えば、3次元画像の表示は、それを構成するポリゴンのデータについて、座標変換や、クリッピング(Clipping)処理、ライティング(Lighting)処理等のジオメトリ(Geomerty)処理を施し、その処理の結果得られるデータを透視投影変換することにより、3次元空間上のデータを2次元平面上の画素データにして、それを描画することで行われるが、その描画の際には、それまで、浮動小数点または固定小数点で表されていたポリゴンの位置が、それを画面上の固定の位置にある画素に対応させるのに整数化されるため、エイリアシング(ailasing)が生じ、ジャギー(jaggy)と呼ばれる階段状のギザギザが発生することにより、例えば、ビデオカメラで撮影した画像などよりも、画質が低下する課題があった。
【0004】
さらに、3次元画像が動画像である場合には、エイリアシングは、画像のちらつきとなって現れ、それを見ているユーザに煩わしさを感じさせる課題があった。
【0005】
ここで、エイリアシングは、画像に限られず、信号を、有限個の点でサンプリングするときに、そのサンプリングする点の数が少なすぎることに起因して発生するサンプリング誤差である。
【0006】
エイリアシングによる画質の低下を低減する方法としては、例えば、1画素を、より細かいサブピクセルと呼ばれる単位に仮想的に分割し、そのサブピクセル単位で、レイトレーシングの計算などを行った後に、その計算結果を、1画素単位で平均化するものがあるが、レイトレーシングの計算には、かなりの時間を要するため、プロセッサやメモリなどのハードウェアの高速化が進んだといっても、動画像について、リアルタイムで、上述のようなレイトレーシングの計算を行うのは、いまのところ困難である。即ち、動画像は、一般に、1秒間あたり、20乃至30フレーム程度で構成されるが、現状では、ある程度廉価なハードウェアによって、レイトレーシングの計算を、1秒間あたりに、サブピクセル単位で、20乃至30回も行うのは困難である。
【0007】
また、高解像度の画像を生成し、それをフィルタリングして画素数を減らすことで、アンチエイリアシングを行う(エイリアシングによる画質の低下を低減する)方法もあるが、この方法により、動画像を表示する場合には、高解像度の画像を記憶するための大容量かつ高速なフレームバッファやZバッファが必要となり、装置が高コスト化および大型化する。
【0008】
さらに、アンチエイリアシングを施すその他の方法としては、例えば、ある図形を表示する場合に、画素の中を、図形が占める割合を求め、その割合に基づいて、図形と背景とを、いわゆるαブレンディング(アルファブレンディング)する方法がある。しかしながら、この方法によれば、図形のエッジについては、アンチエイリアシングが施されるが、図形に貼り付けられるテクスチャのちらつきや、3次元形状どうしが交わっている部分(交線)(例えば、2つの球のうちの一方が他方にめり込んでいる場合の、その2つの球が交わっている部分)に生じるエイリアシングなどには効果がない。
【0009】
本発明は、このような状況に鑑みてなされたものであり、装置の高コスト化や大型化を極力避けて、エイリアシングに起因する画質の低下を低減することができるようにするものである。
【0010】
【課題を解決するための手段】
請求項1に記載の描画装置は、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定手段と、画素データ記憶手段における、ずらし量設定手段により設定された複数のずらし量に対応する位置それぞれに、画素データを描画することにより、画像を重ね書きする描画手段とを備えることを特徴とする。
【0011】
請求項43に記載の描画方法は、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定ステップと、その複数のずらし量に対応する、画素データ記憶手段の位置それぞれに、画素データを描画することにより、画像を重ね書きする描画ステップとを備えることを特徴とする。
【0012】
請求項75に記載の提供媒体は、画素データを、メモリに描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定ステップと、その複数のずらし量に対応する、メモリの位置それぞれに、画素データを描画することにより、画像を重ね書きする描画ステップとを備えるコンピュータプログラムを提供することを特徴とする。
【0013】
請求項1に記載の描画装置においては、ずらし量設定手段は、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定し、描画手段は、画素データ記憶手段における、ずらし量設定手段により設定された複数のずらし量に対応する位置それぞれに、画素データを描画することにより、画像を重ね書きするようになされている。
【0014】
請求項43に記載の描画方法においては、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定し、その複数のずらし量に対応する、画素データ記憶手段の位置それぞれに、画素データを描画することにより、画像を重ね書きするようになされている。
【0015】
請求項75に記載の提供媒体においては、画素データを、メモリに描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定し、その複数のずらし量に対応する、メモリの位置それぞれに、画素データを描画することにより、画像を重ね書きする処理をコンピュータに行わせるためのコンピュータプログラムを提供するようになされている。
【0016】
【発明の実施の形態】
以下に、本発明の実施の形態を説明するが、その前に、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態(但し、一例)を付加して、本発明の特徴を記述すると、次のようになる。
【0017】
即ち、請求項1に記載の描画装置は、画像を描画する描画装置であって、画像を出力する2次元出力装置に出力させる画素データを記憶する画素データ記憶手段(例えば、図6に示すフレームバッファ141など)と、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定手段と(例えば、図18に示すプログラムの処理ステップS6など)、画素データ記憶手段における、ずらし量設定手段により設定された複数のずらし量に対応する位置それぞれに、画素データを描画することにより、画像を重ね書きする描画手段(例えば、図18に示すプログラムの処理ステップS14など)とを備えることを特徴とする。
【0018】
請求項3,14,25、および35に記載の描画装置は、描画手段が画像を重ね書きする重ね書き回数を決定する回数決定手段(例えば、図18に示すプログラムの処理ステップS5など)をさらに備えることを特徴とする。
【0019】
請求項4,15,26、および36に記載の描画装置は、描画手段が、1画面分の画素データを、画素データ記憶手段に描画するのにかかる描画時間を推定する推定手段(例えば、図18に示すプログラムの処理ステップS4など)をさらに備え、回数決定手段が、推定手段により推定された描画時間に基づいて、重ね書き回数を決定することを特徴とする。
【0020】
請求項6,17,28、および38に記載の描画装置は、画像が動画像である場合において、動画像の動きに基づいて、ずらし量を補正する補正手段(例えば、図18に示すプログラムの処理ステップS10など)をさらに備えることを特徴とする。
【0021】
請求項8および19に記載の描画装置は、画像が、単位図形の組合せにより定義される3次元画像である場合において、単位図形を、その奥行き方向順に並べ替える並べ替え手段(例えば、図18に示すプログラムの処理ステップS7など)をさらに備え、描画手段が、単位図形を、視点に近いものから順に描画することを特徴とする。
【0022】
請求項12に記載の描画装置は、所定の入力を与えるときに操作される操作手段(例えば、図1に示す操作装置17など)と、記録媒体に記録されているデータを読み込み、そのデータを用いて、操作手段からの入力に基づき、所定の演算を行う演算手段(例えば、図5に示すメインCPU111など)と、演算手段による演算結果に基づいて、画素データを求める画素データ生成手段(例えば、図5に示すGPU115など)とをさらに備えることを特徴とする。
【0023】
請求項23に記載の描画装置は、画像が、単位図形の組合せにより定義される3次元画像である場合において、視点に応じて、3次元画像を構成する単位図形を、2次元出力装置の座標系のものに変換する変換手段(例えば、図5に示すメインCPU111など)と、変換手段によって変換された単位図形を、その奥行き方向順に並べ替える並べ替え手段(例えば、図18に示すプログラムの処理ステップS7など)と、単位図形の奥行き方向の位置を表す値を記憶する奥行き記憶手段(例えば、図6に示すZバッファ142など)とをさらに備え、描画手段が、単位図形を、視点に近いものから順に、奥行き記憶手段を用いて描画することを特徴とする。
【0024】
請求項33に記載の描画装置は、画像が、単位図形の組合せにより定義される3次元画像である場合において、所定の入力を与えるときに操作される操作手段(例えば、図1に示す操作装置17など)と、記録媒体に記録されているデータを読み込み、そのデータを用いて、操作手段からの入力に基づき、所定の演算を行う演算手段(例えば、図5に示すメインCPU111など)と、演算手段による演算の結果得られる単位図形を、2次元出力装置の座標系のものに変換する変換手段(例えば、図5に示すメインCPU111など)と、変換手段によって変換された単位図形を、その奥行き方向順に並べ替える並べ替え手段(例えば、図18に示すプログラムの処理ステップS7など)と、単位図形の奥行き方向の位置を表す値を記憶する奥行き記憶手段(例えば、図6に示すZバッファ142など)とをさらに備え、描画手段が、単位図形を、視点に近いものから順に、奥行き記憶手段を用いて描画することを特徴とする。
【0025】
なお、勿論この記載は、各手段を上記したものに限定することを意味するものではない。
【0026】
図1は、本発明を適用したビデオゲーム機の一実施の形態の構成を示す平面図である。なお、図2に、その正面図(図1において、下方向から見た図)を、図3に、その右側面の側面図(図1において、向かって右方向から見た側面図)を、それぞれ示す。
【0027】
ビデオゲーム機は、ゲーム機本体2、このゲーム機本体2と接続される略四角形状をなした接続端子部26を備えた操作装置17、および同じくゲーム機本体2と接続される記録装置38とから構成されている。
【0028】
ゲーム機本体2は、略四角形状に形成され、その中央の位置に、ゲームを行うためのコンピュータプログラム(後述するレンダリング(描画)処理を行うためのプログラムを含む)やデータが記録されたゲーム用記録媒体を装着するディスク装着部3が設けられている。なお、本実施の形態では、ディスク装着部3には、例えば、図4に示すようなCD(Compact Disc)−ROM(Read Only Memory)51がゲーム用記録媒体として着脱可能になされている。但し、ゲーム用記録媒体は、ディスクに限定されるものではない。
【0029】
ディスク装着部3の左側には、ゲームをリセットするときなどに操作されるリセットスイッチ4と、電源のオン/オフをするときに操作される電源スイッチ5とが設けられており、その右側には、ディスク装着部3を開閉するときに操作されるディスク操作スイッチ6が設けられている。さらに、ゲーム機本体2の正面には、操作装置17および記録装置38を1組として接続することのできる接続部7A,7Bが設けられている。なお、本実施の形態では、2組の操作装置17および記録装置38を接続することができるように、接続部7A,7Bが設けられているが、接続部は、2組以外の組数の操作装置17および記録装置38を接続することができる数だけ設けるようにすることが可能である。また、接続部7Aまたは7Bに対して、操作装置17および記録装置38の接続数を拡張するようなアダプタを装着することにより、多数の操作装置および記録装置を接続するようにすることも可能である。
【0030】
接続部7A,7Bは、図2および図3に示すように、2段に形成され、上段には記録装置38と接続する記録挿入部8を設け、下段には操作装置17の接続端子部26と接続する接続端子挿入部12を設けた構造となっている。
【0031】
記録挿入部8の挿入孔は、横方向に長い長方形状に形成し、その下側の両端のコーナーを上側の両端のコーナーに比べて丸みを多くして、記録装置38が逆に挿入できない構造となっている。さらに、記録挿入部8には、内部の電気的接続を得る接続端子(図示せず)を保護するためのシャッタ9が設けられている。
【0032】
シャッタ9は、例えば、コイルねじりバネ状に形成されたスプリングなどの弾性体(図示せず)により常時外側に向けて付勢された状態で取り付けられている。従って、シャッタ9は、記録装置38を差し込む時には記録装置38を挿入する先端側で奥側に開けられ、記録装置38を抜いた時には弾性体の付勢力により戻され、自動的に閉じた状態となって、内部の接続端子の防埃の役目をし、さらに外部の衝撃から守る役目をする。
【0033】
接続端子挿入部12は、図2および図3に示すように、横方向に長い長方形状をした挿入孔の下側の両端のコーナーを上側の両端のコーナーに比べて丸みを多くした形状にして操作装置17の接続端子部26が逆に入らない構造であり、且つ記録装置38も入らないように挿入孔の形状を異にした構造となっている。このようにして、記録装置38と操作装置17の挿入孔の大きさ及び形状を異にして互いに入れ間違いのないようにした構造となっている。
【0034】
操作装置17は、図1に示すように、両手の掌で挟持して5本の指が自由自在に動いて操作できる構造をしており、左右対象に連設した丸型形状に形成された第1及び第2の操作部18,19、この第1及び第2の操作部18,19から角状に突出形成した第1及び第2の支持部20,21、第1及び第2の操作部18,19の中間位置の括れた部分に設けたセレクトスイッチ22およびスタートスイッチ23、第1及び第2の操作部18,19の前面側に突出形成した第3及び第4の操作部24,25、並びにゲーム機本体2と電気的に接続するための接続端子部26およびケーブル27から構成されている。
【0035】
尚、操作装置17は、接続端子部26およびケーブル27を介さずに、例えば赤外線などによって、ゲーム機本体2と電気的に接続されるような構成とすることもできる。
【0036】
また、操作装置17には、それ自体を振動させるための、例えば、モータなどを内蔵させることができる。操作装置17を、ゲームの場面に応じて振動させることにより、ユーザに対して、より臨場感を与えることが可能となる。なお、操作装置17に内蔵させるモータとしては、回転数の異なる複数のモータを採用することができる。この場合、ゲームの場合に適した小さな振動や大きな振動、さらには、それらを組み合わせた振動を、ユーザに享受させることが可能となる。
【0037】
接続端子部26は、ゲーム機本体2と電気的接続をするためのケーブル27の先端に取り付けられており、図3に示すように、その左右の両側面には、凹凸状のある形状にして、いわゆるギザギザ模様にした滑り止め加工(例えば、ローレット加工など)が施されている把持部が設けられている。なお、接続端子部26に設けられた把持部は、いわゆる抜き差し部を形成し、その大きさ、即ち、その幅Wと長さLは、例えば、後述する記録装置38の把持部と同一とされている。
【0038】
記録装置38は、例えばフラッシュメモリなどの不揮発性メモリを内蔵しており、その両側面には、例えば、接続端子部26における場合と同様に構成される把持部(図3)が設けられ、ゲーム機本体2に対し、容易に着脱することができるようになされている。なお、記録装置38には、例えば、ゲームを一時的に中断する場合に、そのときの状態が記憶(記録)されるようになされており、これにより、再起動の際に、そこからデータを読み出すことで、そのデータに対応した状態、即ち、中断時の状態から、ゲームを再開することができるようになされている。
【0039】
以上のように構成されるビデオゲーム機によりゲームを行う場合においては、ユーザは、例えば、操作装置17を、ゲーム機本体2に接続し、さらに、必要に応じて、記録装置38も、ゲーム機本体2に接続する。また、ユーザは、ディスク操作スイッチ6を操作することにより、ゲーム用記録媒体としてのCD−ROM51を、ディスク装着部3にセットし、電源スイッチ5を操作することにより、ゲーム機本体2の電源をオンにする。これにより、ゲーム機本体2においては、ゲームのための画像および音声が再生されるので、ユーザは、操作装置17を操作することによりゲームを行う。
【0040】
次に、図5は、図1のゲーム機本体2の電気的構成例を示している。
【0041】
このゲーム機本体2は、各ブロックにおいてデータをやりとりするためのバスとして、メインバス101およびサブバス102の2種類のバスを有しており、このメインバス101とサブバス102とは、バスコントローラ116を介して接続されている。
【0042】
メインバス101には、バスコントローラ116の他、例えばマイクロプロセッサなどからなるメインCPU(Central Processing Unit)111、例えばRAM(Random Access Memory)などでなるメインメモリ112、メインDMAC(Direct Memory Access Controller)113、MDEC(MPEG(Moving Picture Experts Group) Decoder)、およびGPU(Graphic Processor Unit)115が接続されている。
【0043】
サブバス102には、バスコントローラ116の他、GPU115、例えばメインCPU111と同様に構成されるサブCPU121、例えばメインメモリ112と同様に構成されるサブメモリ122、サブDMAC123、オペレーティングシステムなどが格納されたROM(Read Only Memory)124、SPU(Sound Processing Unit)125、ATM(Asynchronous Transmission Mode)通信部126、補助記憶装置127、および入力デバイス用I/F(Interface)128が接続されている。
【0044】
なお、ここでは、メインバス101では、高速でデータのやりとりが行われるようになされており、サブバス102では、低速でデータのやりとりが行われるようになされている。即ち、低速でやりとりが可能なデータについては、サブバス102を用いることで、メインバス101の高速性を確保するようになされている。
【0045】
バスコントローラ116は、メインバス101とサブバス102とを切り離したり、メインバス101にサブバス102を接続したりするようになされている。メインバス101とサブバス102とが切り離された場合、メインバス101上からは、メインバス101に接続されたデバイスのみにしかアクセスできず、また、サブバス102上からも、サブバスに接続されたデバイスのみにしかアクセスすることができないが、メインバス101にサブバス102が接続された場合には、メインバス101およびサブバス102のいずれからであっても、いずれのデバイスにもアクセスすることができる。なお、例えば、装置の電源がオンにされた直後などの初期状態においては、バスコントローラ116はオープン状態になっている(メインバス101とサブバス102とが接続された状態となっている)。
【0046】
メインCPU111は、メインメモリ112に記憶されたプログラムにしたがって各種の処理を行うようになされている。即ち、メインCPU111は、例えば、装置が起動されると、バスコントローラ116を介して、サブバス102上にある(サブバス102に接続された)ROM124からブートプログラムを読み出して実行する。これにより、メインCPU111は、補助記憶装置127からアプリケーションプログラム(ここでは、ゲームのプログラムや後述するような描画処理を行うためのプログラム)および必要なデータを、メインメモリ112やサブメモリ112にロードさせる。そして、メインCPU111は、このようにしてメインメモリ112にロードさせたプログラムを実行する。
【0047】
メインCPU111は、GTE(Geometry Transfer Engine)117を内蔵しており、このGTE117は、例えば複数の演算を並列に実行する並列演算機構を備え、メインCPU111からの要求に応じて、座標変換や、光源計算、行列演算、ベクトル演算などのジオメトリ処理のための演算処理を高速に行うようになされている。このように、GTE117は、メインCPU111からの要求にしたがった処理(ジオメトリ処理)を行うことにより、表示すべき3次元画像を構成するポリゴン(本明細書中では、3点以上の頂点を有する多角形の他、直線(線分)や点も含まれるものとする)のデータ(以下、適宜、ポリゴンデータという)を生成し、メインCPU111に供給する。メインCPU111は、GTE117からポリゴンデータを受信すると、それを透視投影変換することにより、2次元平面上のデータとして、メインバス101を介して、GPU115に転送する。
【0048】
なお、メインCPU111は、キャッシュメモリ(Cache)119を内蔵しており、メインメモリ112にアクセスする代わりに、このキャッシュメモリ119にアクセスすることで、処理の高速化を図るようになされている。
【0049】
メインメモリ112は、上述したように、プログラムなどを記憶する他、メインCPU111の処理上必要なデータなどを記憶するようにもなされている。メインDMAC113は、メインバス101上のデバイスを対象に、DMA転送の制御を行うようになされている。但し、バスコントローラ116がオープン状態にあるときは、メインDMAC113は、サブバス102上のデバイスをも対象として制御を行うようになされている。MDEC114は、メインCPU111と並列に動作可能なI/Oデバイスで、画像伸張エンジンとして機能するようになされている。即ち、MDEC114は、MPEG符号化されて圧縮された画像データを復号化するようになされている。
【0050】
GPU115は、レンダリングプロセッサとして機能するようになされている。即ち、GPU115は、メインCPU111から送信されてくるポリゴンデータを受信し、そのポリゴンデータのうちの、例えば、ポリゴンの頂点の色データと奥行き(視点からの深さ)を示すZ値などに基づいて、ポリゴンを構成する画素データを計算し、グラフィックメモリ118に書き込む(描画する)レンダリング処理を行うようになされている。さらに、GPU115は、グラフィックメモリ118に書き込んだ画素データを読み出し、ビデオ信号として出力するようにもなされている。なお、GPU115は、必要に応じて、メインDMAC113、あるいはサブバス102上のデバイスからもポリゴンデータを受信し、そのポリゴンデータにしたがってレンダリング処理を行うようにもなされている。
【0051】
グラフィックメモリ118は、例えば、DRAMなどで構成され、図6に示すように、フレームメモリ141,Zバッファ142、およびテクスチャメモリ143を有している。フレームメモリ141は、画面に表示する画素データを、例えば、1フレーム分だけ記憶するようになされている。Zバッファ142は、画面に表示する画像の中の最も手前にあるポリゴンのZ値を記憶するようになされており、例えば、1フレーム分のZ値を記憶することのできる記憶容量を有している。テクスチャメモリ143は、ポリゴンに貼り付けるテクスチャのデータを記憶するようになされている。
【0052】
ここで、GPU115は、これらのフレームメモリ141,Zバッファ142、およびテクスチャメモリ143を用いてレンダリング処理を行うようになされている。即ち、GPU115は、Zバッファ142に、3次元画像を構成するポリゴンのうちの、最も手前にあるもののZ値を記憶させ、このZバッファ142の記憶値に基づいて、フレームバッファ141に、画素データの描画を行うかどうかを決定する。そして、画素データを描画する場合には、テクスチャメモリ143からテクスチャのデータを読み出し、そのデータを用いて、描画すべき画素データを求めて、フレームメモリ141に描画するようになされている。
【0053】
なお、GPU15は、ポリゴンを、その奥行き方向順に並べ替えるZソートを行うようにもなされており、ここでは、レンダリングは、手前にあるポリゴンから順に行うようになされている。
【0054】
図5に戻り、サブCPU121は、サブメモリ122に記憶されたプログラムを読み出して実行することにより、各種の処理を行うようになされている。サブメモリ122には、メインメモリ112と同様に、プログラムや必要なデータが記憶されるようになされている。サブDMAC123は、サブバス102上のデバイスを対象として、DMA転送の制御を行うようになされている。なお、サブDMAC123は、バスコントローラ116がクローズ状態にあるとき(メインバス101とサブバス102とが切り離されている状態にあるとき)のみ、バス権を獲得するようになされている。ROM124は、上述したようにブートプログラムや、オペレーティングシステムなどを記憶している。なお、ROM124には、メインCPU111およびサブCPU121の両方のプログラムが記憶されている。また、ROM124は、ここでは、アクセス速度の遅いものが用いられており、そのため、サブバス102上に設けられている。
【0055】
SPU125は、サブCPU121またはサブDMAC123から送信されてくるパケットを受信し、そのパケットに配置されているサウンドコマンドにしたがって、サウンドメモリ129から音声データを読み出すようになされている。そして、SPU25は、読み出した音声データを、図示せぬスピーカに供給して出力させるようになされている。ATM通信部126は、例えば、図示せぬ公衆回線などを介して行われる通信の制御(ATM通信の制御)を行うようになされている。これにより、ビデオゲーム機のユーザは、他のビデオゲーム機のユーザと直接、あるいはインターネットや、いわゆるパソコン通信のセンタ局などを介してデータのやりとりをすることで対戦することができるようになされている。
【0056】
補助記憶装置127は、例えば、ディスクドライブなどで、CD−ROM51(図1、図4)に記録されている情報(プログラム、データ)を再生するようになされている。また、補助記憶装置127は、記録装置38(図1)に対する情報の記録や読み出しも行うようになされている。入力デバイス用I/F128は、コントロールパッドとしての操作装置17(図1)の操作に対応する信号や、他の装置によって再生された画像や音声などの外部入力を受け付けるためのインターフェイスで、外部からの入力に応じた信号を、サブバス102上に出力するようになされている。サウンドメモリ129は、音声データ(オーディオデータ)を記憶している。
【0057】
以上のように構成されるゲーム機本体2においては、装置の電源がオンにされると、メインCPU111において、ブートプログラムがROM124から読み出されて実行されることにより、補助記憶装置127にセットされたCD−ROM51(図4)からプログラムおよびデータが読み出され、メインメモリ112およびサブメモリ122に展開される。そして、メインCPU111またはサブCPU121それぞれにおいて、メインメモリ112またはサブメモリ122に展開されたプログラムが実行されることにより、ゲームの画像(ここでは、動画像とする)、音声が再生される。
【0058】
即ち、例えば、メインCPU111において、メインメモリ112に記憶されたデータにしたがって、所定の3次元画像を構成するポリゴンを描画するためのポリゴンデータが生成される。このポリゴンデータは、例えば、パケット化され、メインバス101を介して、GPU115に供給される。
【0059】
GPU115は、メインCPU111からパケットを受信すると、Zソートを行い、手前にあるポリゴンから順に、Zバッファ142を使用して、フレームメモリ141に描画する。フレームメモリ141に対する描画結果は、GPU115において適宜読み出され、ビデオ信号として出力される。これにより、ゲームのための3次元画像が、2次元出力装置としての、例えば、図示せぬディスプレイ上の2次元画面に表示される。
【0060】
一方、サブCPU121では、サブメモリ122に記憶されたデータにしたがって、音声の生成を指示するサウンドコマンドが生成される。このサウンドコマンドは、パケット化され、サブバス102を介して、SPU125に供給される。SPU125は、サブCPU121からのサウンドコマンドにしたがって、サウンドメモリ129から音声データを読み出して出力する。これにより、ゲームのBGM(Background Music)その他の音声が出力される。
【0061】
次に、図5のゲーム機本体2において行われるポリゴンのレンダリング(描画)処理について詳述する。
【0062】
ゲーム機本体2のGPU115では、上述したように、フレームバッファ141に対して、ポリゴンの画素データが描画されるが、その際、画素データの描画位置を、1画素より細かい精度である、例えば、サブピクセル精度などでずらすための複数のずらし量が設定され、その複数のずらし量に対応する、フレームバッファ141の位置(メモリセル)それぞれに、画素データが描画されるようになされており、これにより、ポリゴン、さらには、ポリゴンで構成される3次元画像が重ね書きされるようになされている。
【0063】
即ち、例えば、いま、3次元空間上での座標が、(x,y,z)で与えられた点の描画を行うものとすると、メインCPU111において、この点(x,y,z)は、視点の情報などに基づいて、ジオメトリ処理され、さらに、透視変換されることにより、2次元平面である画面座標系(3次元画像を表示するディスプレイの画面に対応する座標系)上の点(X,Y,Z)に変換される。なお、x,y,z,X,Y,Zは、浮動小数点または固定小数点で表現される値である。また、画面座標系上の点(X,Y,Z)を表すZは、その点の、視点からの奥行き方向の位置を表す。
【0064】
さらに、GPU115は、点(X,Y,Z)における点の色情報としてのR,G,B信号(Ri,Gi,Bi)その他を、視点や、光源、テクスチャなどから求める。なお、Ri,Gi,Biにおけるiは、整数値であることを表し、本実施の形態では、Ri,Gi,Biは、例えば、それぞれ8ビットで表現され、従って、0乃至255の範囲の値をとる。
【0065】
そして、例えば、いま、重ね書き回数を4回とするとともに、図7に示すように、1画素の横および縦を、いずれも4等分することにより、1画素について、16(=4×4)個のサブピクセルが想定されているとすると、GPU115は、点(X,Y,Z)の1乃至4回目の描画時における、画面座標系での描画位置のずらし量(dX,dY)それぞれを、例えば、サブピクセルの2倍(ここでは、1画素の1/2)の精度である(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)に設定する。なお、図7(後述する図8乃至図17においても同様)においては、右方向または上方向が、それぞれX軸またはY軸(の正方向)とされている。
【0066】
その後、CPU115は、そのずらし量(dX,dY)にしたがって、描画位置をずらして、点の描画を行う。
【0067】
即ち、1回目の描画においては、GPU115は、点(X,Y,Z)を、(0.0,0.0)だけずらし、そのずらした点(X,Y,Z)を、サブピクセルの精度の点(Xs,Ys,Zs)に変換(以下、適宜、サブピクセル精度化という)する。なお、Xs,Ys,Zsにおけるsは、サブピクセル精度の値であることを表し、図7では、1画素の横および縦が、いずれも4等分されているから、サブピクセル精度は0.25(=1/4)となっている。即ち、図7では、最も左下のサブピクセルの座標を(0.0,0.0)とし、左または右にいくにつれて、サブピクセルの座標は、0.25ずつ増加するようになっている。
【0068】
そして、点(Xs,Ys,Zs)に対応するサブピクセルを含む画素の位置に、点(Xs,Ys,Zs)に対応する色情報(Ri,Gi,Bi)を書き込む。なお、色情報(画素データ)は、重ね書き回数で除算された値が書き込まれる。具体的には、ここでは、重ね書き回数が4回であるから、色情報としては、(Ri/4,Gi/4,Bi/4)が書き込まれる。
【0069】
ここで、例えば、いま、描画対象の点(X,Y,Z)のXまたはY座標が、それぞれ1.6または1.3であったとすると、1回目の描画では、点(1.6,1.3,Z)を、(0.0,0.0)だけずらし、さらに、そのずらした点(1.6,1.3,Z)(図7(A)に●印で示す)をサブピクセル精度化した点(1.5,1.25,Zs)に対応するサブピクセルを含む画素の位置(1,1)に対して、図7(A)に示すように、本来書き込むべき色情報の1/4の色情報(同図(A)において、垂直方向の点線で示す部分)が書き込まれる。
【0070】
2回目の描画においては、GPU115は、点(X,Y,Z)を、(0.5,0.0)だけずらし、そのずらした点を、点(Xs,Ys,Zs)にサブピクセル精度化する。そして、点(Xs,Ys,Zs)に対応するサブピクセルを含む画素の位置に、色情報(Ri,Gi,Bi)を1/4にしたものが重ね書きされる。
【0071】
即ち、上述したように、例えば、いま、描画対象の点(X,Y,Z)のXまたはY座標が、それぞれ1.6または1.3であったとすると、2回目の描画では、点(1.6,1.3,Z)を、(0.5,0.0)だけずらし、さらに、そのずらした点(2.1,1.3,Z)(図7(B)に●印で示す)をサブピクセル精度化した点(2.0,1.25,Zs)に対応するサブピクセルを含む画素(2,1)の位置に対して、図7(B)に示すように、本来書き込むべき色情報の1/4の色情報(同図(B)において、水平方向の点線で示す部分)が重ね書きされる。具体的には、画素(2,1)に、既に書き込まれている色情報に対して、本来書き込むべき色情報の1/4が加算され、その加算値が、画素(2,1)に書き込まれる。
【0072】
3回目および4回目の描画も、同様にして行われる。即ち、例えば、いま、描画対象の点(X,Y,Z)のXまたはY座標が、それぞれ1.6または1.3であったとすると、3回目の描画では、点(1.6,1.3,Z)を、(0.5,0.5)だけずらし、さらに、そのずらした点(2.1,1.8,Z)(図7(C)に●印で示す)をサブピクセル精度化した点(2.0,1.75,Zs)に対応するサブピクセルを含む画素(2,1)の位置に対して、図7(C)に示すように、本来書き込むべき色情報の1/4の色情報(同図(C)において、右上がりの点線で示す部分)が重ね書きされる。具体的には、画素(2,1)に、既に書き込まれている色情報に対して、本来書き込むべき色情報の1/4が加算され、その加算値が、画素(2,1)に書き込まれる。
【0073】
そして、4回目の描画では、点(1.6,1.3,Z)を、(0.0,0.5)だけずらし、さらに、そのずらした点(1.6,1.8,Z)(図7(D)に●印で示す)をサブピクセル精度化した点(1.5,1.75,Zs)に対応するサブピクセルを含む画素(1,1)の位置に対して、図7(D)に示すように、本来書き込むべき色情報の1/4の色情報(同図(D)において、左上がりの点線で示す部分)が重ね書きされる。具体的には、画素(1,1)に、既に書き込まれている色情報に対して、本来書き込むべき色情報の1/4が加算され、その加算値が、画素(1,1)に書き込まれる。
【0074】
以上により、点(1.6,1.3,Z)の描画結果(重ね書き結果)は、図8に示すようになる。
【0075】
以上のように重ね書きを行うことで、解像度を、実質的に4倍にすることができ、その結果、アンチエイリアシングを行うことができる。
【0076】
なお、重ね書きを行う場合において、4回の描画それぞれにおけるずらし量(dX,dY)を、上述したように、(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)としたときには、描画された点の位置が、本来の位置よりも右上方向に移動することがあるので、ずらし量(dX,dY)は、そのような移動が生じないように、例えば、(−0.25,−0.25),(0.25,−0.25),(0.25,0.25),(−0.25,0.25)などとする(ずらし量dXまたはdYの平均値が、いずれも0となるようにする)ことも可能である。
【0077】
次に、図7および図8では、1画素について、16個のサブピクセルを想定したが、その他、例えば、図9に示すように、1画素の横および縦を、いずれも2等分することにより、1画素について、4(=2×2)個のサブピクセルを想定した場合でも、同様の重ね書きが可能である。
【0078】
即ち、例えば、点(1.6,2.2,Z)を描画する場合においては(以下では、適宜、Z座標を省略する)、従来は、図10に示すように、点(1.6,2.2)が、サブピクセル精度化され、図10に●印で示すように点(1.5,2.0)とされる。そして、点(1.5,2.0)に対応するサブピクセルを含む画素の位置(1,2)に対して、図10に斜線を付して示すように、本来書き込むべき色情報が書き込まれる。
【0079】
これに対して、図5のゲーム機本体2では、GPU115において、まず1乃至4回目の描画時における、画面座標系での描画位置のずらし量(dX,dY)として、例えば、サブピクセルの精度(ここでは、1画素の1/2の精度)である(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)がそれぞれ設定される。その後、1回目の描画では、点(1.6,2.2)が、(0.0,0.0)だけずらされる。さらに、そのずらされた点(1.6,2.2)が、サブピクセル精度化され、図11(A)に●印で示すように点(1.5,2.0)とされる。そして、点(1.5,2.0)に対応するサブピクセルを含む画素の位置(1,2)に対して、図11(A)に垂直方向の点線で示すように、本来書き込むべき色情報の1/4の色情報が書き込まれる。
【0080】
2回目の描画では、点(1.6,2.2)が、(0.5,0.0)だけずらされる。さらに、そのずらされた点(2.1,2.2)が、サブピクセル精度化され、図11(B)に●印で示すように点(2.0,2.0)とされる。そして、点(2.0,2.0)に対応するサブピクセルを含む画素の位置(2,2)に対して、図11(B)に水平方向の点線で示すように、本来書き込むべき色情報の1/4の色情報が重ね書きされる。
【0081】
3回目の描画では、点(1.6,2.2)が、(0.0,0.5)だけずらされる。さらに、そのずらされた点(1.6,2.7)が、サブピクセル精度化され、図11(C)に●印で示すように点(1.5,2.5)とされる。そして、点(1.5,2.5)に対応するサブピクセルを含む画素の位置(1,2)に対して、図11(C)に右上がりの点線で示すように、本来書き込むべき色情報の1/4の色情報が重ね書きされる。
【0082】
4回目の描画では、点(1.6,2.2)が、(0.5,0.5)だけずらされる。さらに、そのずらされた点(2.1,2.7)が、サブピクセル精度化され、図11(D)に●印で示すように点(2.0,2.5)とされる。そして、点(2.0,2.5)に対応するサブピクセルを含む画素の位置(2,2)に対して、図11(D)に左上がりの点線で示すように、本来書き込むべき色情報の1/4の色情報が重ね書きされる。
【0083】
以上により、点(1.6,2.2)の描画結果は、図12に点線で示すようになり、図10と図12とを比較して分かるように、重ね書きを行うことで、アンチエイリアシングの効果が得られる。
【0084】
ここで、図7における場合と、図11における場合とでは、いずれも、ずらし量として、(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)を用いているが、4回の描画において用いるずらし量の順番が異なっている(図7では、(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)の順で用いており、図11では、(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)の順で用いている)。しかしながら、このずらし量を用いる順番は、重ね書きによる画質に影響を与えるものではない。
【0085】
また、図7における場合と、図11における場合とでは、サブピクセルの精度が異なるが(図7では、画素の1/16の精度であり、図11では画素の1/4の精度である)、これも、重ね書きによる画質に影響を与えることはない(4回の重ね書きを行う場合に、サブピクセルの精度が1/4か、または1/16かは、あくまでも、「重ね書きによる」画質の向上に影響がないのであって、重ね書きを考えなければ、サブピクセルの精度が高い方が画質は良い)。
【0086】
なお、上述のように、重ね書き回数を4回とし、その4回の描画時におけるずらし量を、(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)とした場合において、点(X,Y)のXまたはY座標が、例えば、ぞれぞれ1.5以上2.0未満または2.5以上3.0未満のときには、図13(A)に示すように、1乃至4回目の描画によって、座標(1,2),(2,2),(1,3),(2,3)で表される画素の描画がそれぞれ行われる。そして、4回の描画においては、いずれも、本来書き込むべき色情報の1/4の色情報が重ね書きされるから、いま、輝度が8ビット(0乃至255)で表され、点(X,Y)の輝度が、最高値である255であるとすると、座標(1,2),(2,2),(1,3),(2,3)で表される画素の輝度は、いずれも、255の1/4である64となる(但し、ここでは、小数点以下を切り上げるものとする)。
【0087】
また、点(X,Y)のXまたはY座標が、例えば、ぞれぞれ1.5以上2.0未満または2.0以上2.5未満のときには、図13(B)に示すように、1乃至4回目の描画によって、座標(1,2),(2,2),(1,2),(2,2)で表される画素の描画がそれぞれ行われる。そして、この場合においては、座標(1,2)および(2,2)で表される画素に対して、いずれも、本来書き込むべき色情報の1/4の色情報が2回ずつ重ね書きされるから、いま、輝度が8ビットで表され、点(X,Y)の輝度が、最高値である255であるとすると、座標(1,2)および(2,2)で表される画素の輝度は、いずれも、128となる。即ち、上述したことから、1回の描画は、64の輝度で行われるから、2回の描画が行われる画素の輝度は128(=64+64)となる。
【0088】
さらに、点(X,Y)のXまたはY座標が、例えば、ぞれぞれ1.0以上1.5未満または2.5以上3.0未満のときには、図13(C)に示すように、1乃至4回目の描画によって、座標(1,2),(1,3),(1,2),(1,3)で表される画素の描画がそれぞれ行われる。そして、この場合においては、座標(1,2)および(1,3)で表される画素に対して、いずれも、本来書き込むべき色情報の1/4の色情報が2回ずつ重ね書きされるから、いま、輝度が8ビットで表され、点(X,Y)の輝度が、最高値である255であるとすると、座標(1,2)および(1,3)で表される画素の輝度は、図13(B)における場合と同様に、いずれも、128となる。
【0089】
また、点(X,Y)のXまたはY座標が、例えば、ぞれぞれ1.0以上1.5未満または2.0以上2.5未満のときには、図13(D)に示すように、1乃至4回目の描画によって、いずれも、座標(1,2)で表される画素の描画が行われる。そして、この場合においては、座標(1,2)で表される画素に対して、いずれも、本来書き込むべき色情報の1/4の色情報が4回重ね書きされるから、いま、輝度が8ビットで表され、点(X,Y)の輝度が、最高値である255であるとすると、座標(1,2)で表される画素の輝度は、255となる。即ち、上述したことから、1回の描画は、64の輝度で行われるから、4回の描画が行われた画素の輝度は、本来ならば、256(=64+64+64+64)となるが、ここでは、輝度の最高値が255とされているため、これを越える値である256は、最高値である255にクリッピングされる。
【0090】
以上においては、点の描画について説明したが、次に、線分の描画について説明する。
【0091】
いま、描画対象の線分の始点または終点を、それぞれ(x1,y1,z1)または(x2,y2,z2)と表す。なお、この始点および終点は、透視変換(透視投影変換)後の画面座標系上の点であるとする。
【0092】
そして、例えば、いま、重ね書き回数を4回とするとととに、図14に示すように、1画素の横および縦を、いずれも4等分することにより、1画素について、16個のサブピクセルが想定されているとすると、GPU115は、線分の1乃至4回目の描画時における、画面座標系での描画位置のずらし量(dX,dY)を、例えば、サブピクセルの2倍(ここでは、1画素の1/2)の精度である(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)にそれぞれ設定する。
【0093】
その後、CPU115は、そのずらし量(dX,dY)にしたがって、描画位置をずらして、線分の描画を行う。
【0094】
即ち、1回目の描画においては、GPU115は、始点(x1,y1,z1)および(x2,y2,z2)を、いずれも、(0.0,0.0)だけずらし、さらに、後述するDDA(Digital Differntial Analize)演算によって、ずらした始点と終点との間を補間する、サブピクセル精度の点と、その点における色情報等を求める。そして、そのサブピクセル精度の点の集合を、点(X1s,Y1s,Z1s)乃至(Xns,Yns,Zns)と表すと、それらの点(X1s,Y1s,Z1s)乃至(Xns,Yns,Zns)に対応するサブピクセルを含む画素の位置に、色情報(上述したように、本来の色情報の1/4の色情報)が書き込まれる。
【0095】
なお、ここでは、例えば、線分を構成するサブピクセル精度の点に対応するサブピクセルを、2以上含む画素が描画の対象とされ、さらに、描画対象の画素には、色情報として、例えば、その画素に含まれるサブピクセルの色情報の平均値(の1/4)が書き込まれる。
【0096】
2乃至4回目の描画も、ずらし量が、それぞれ(0.5,0.0),(0.5,0.5),(0.0,0.5)とされることを除けば、1回目の描画における場合と同様に行われる。
【0097】
ここで、いま、描画対象の線分の始点または終点が、例えば、それぞれ点(1.6,1.3,z1)または点(4.6,4.3,z2)であったとすると、1回目の描画では、図14(A)に垂直方向の点線で示す部分の画素の描画が、2回目の描画では、図14(B)に水平方向の点線で示す部分の画素の描画が、3回目の描画では、図14(C)に右上がりの点線で示す部分の画素の描画が、4回目の描画では、図14(D)に左上がりの点線で示す部分の画素の描画が、それぞれ行われる。その結果、線分の描画結果は、図15に点線で示すようになる。
【0098】
次に、図14および図15では、1画素について、16個のサブピクセルを想定したが、その他、例えば、図16に示すように、1画素の横および縦を、いずれも2等分することにより、1画素について、4個のサブピクセルを想定した場合でも、同様の重ね書きが可能である。
【0099】
即ち、例えば、上述した場合と同様に、4回の重ね書きで、点(1.6,1.3,z1)または点(4.6,4.3,z2)をそれぞれ始点または終点とする線分を描画するときに、1乃至4回目の描画時における、画面座標系での描画位置のずらし量(dX,dY)として、例えば、サブピクセルの精度(ここでは、1画素の1/2の精度)である(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)がそれぞれ設定されたとすると、1回目の描画では、図16(A)に垂直方向の点線で示す部分の画素の描画が、2回目の描画では、図16(B)に水平方向の点線で示す部分の画素の描画が、3回目の描画では、図16(C)に右上がりの点線で示す部分の画素の描画が、4回目の描画では、図16(D)に左上がりの点線で示す部分の画素の描画が、それぞれ行われる。
【0100】
なお、ここでは、例えば、線分を構成するサブピクセル精度の点に対応するサブピクセルを、1以上含む画素が描画の対象とされ、さらに、そのようなサブピクセルを複数含む画素には、色情報として、例えば、その画素に含まれるサブピクセルの色情報の平均値(の1/4)が書き込まれるようになされている。
【0101】
以上のような重ね書きによる線分の描画結果は、図17(A)に点線で示すようになる。
【0102】
これに対して、同様の線分の描画を、1回の描画で行った場合、その描画結果は、図17(B)に斜線で示すようになる。図17から明らかなように、重ね書きを行うことで、エイリアシングは低減される。
【0103】
次に、図18のフローチャートを参照して、図5のゲーム機本体2において行われるポリゴンの描画処理について、さらに説明する。なお、ここでは、ポリゴンの描画に必要な、その形状に関するデータや、光源に関するデータなどは、例えば、メインCPU111によって、既に、CD−ROM51から読み出され、メインメモリ112に記憶されているものとする。
【0104】
描画処理では、まず最初に、ステップS1において、メインCPU111は、例えば、1フレームの3次元画像を構成するポリゴンを描画するためのデータを、メインバス101を介して、メインメモリ112から読み出し、GTE111に供給する。GTE111では、ステップS2において、3次元空間上の各ポリゴンに対して、視点に基づき、ジオメトリ処理が施され、さらに、ジオメトリ処理後のデータが透視変換される。ここで、視点は、例えば、ユーザが、操作装置17(図1)を操作することにより与えられる。
【0105】
その後、ステップS3に進み、メインCPU111において、透視変換後の画面座標系におけるポリゴンについて、輝度計算やテクスチャアドレスの計算が行われることにより、ポリゴンデータが求められ、メインバス101を介して、GPU115に供給される。
【0106】
ここで、ポリゴンデータとしては、例えば、X,Y,Z,R,G,B,α,S,T,Q,Fなどがある。
【0107】
ポリゴンデータX,Y,Z,R,G,B,α,S,T,Qのうち、X,Y,Zは、3角形のポリゴンの3頂点それぞれのX,Y,Z座標をそれぞれ表し、R,G,Bは、その3頂点それぞれにおける赤(Red)、緑(Green)、青(Blue)の輝度値を表している。
【0108】
αは、これから描画しようとする画素のRGB値と、既に描画されている画素のRGB値とをαブレンディングする場合の、そのブレンドの割合を表すブレンド(Blend)係数を表している。なお、αは、例えば、0以上1以下の実数で、これから描画しようとしている画素の画素値(RGB値)をFcとするとともに、既に描画されている画素の画素値をBcとするとき、これらのαブレンディング結果としての画素値Ccは、例えば、次式により与えられる。
Cc=αFc+(1−α)Bc
【0109】
S,T,Qは、3角形のポリゴンの3頂点それぞれにおけるテクスチャ座標(テクスチャについての同次座標)を表す。即ち、ここでは、テクスチャマッピング(texture mapping)によって、物体の表面に模様(テクスチャ)が付されるようになされており、S,T,Qは、このテクスチャマッピングにおいて用いられる。なお、S/Q,T/Qそれぞれに、テクスチャサイズ(Texture Size)を乗じた値がテクスチャアドレスとなる。
【0110】
Fは、これから描画しようとしている画素をぼやけさせる場合のそのぼやけの程度を表すフォグ(fog)値で、例えば、この値が大きいほど、ぼやけて表示される。
【0111】
ポリゴンデータが求められた後は、ステップS4に進み、メインCPU111において、1フレームの描画時間が推定される。即ち、メインCPU111は、ステップS1でデータを読み出したポリゴンの数、即ち、1フレームに描画するポリゴンの数から、その1フレームの描画を、例えば、1回だけ行うのに要する描画時間を推定する。そして、メインCPU111は、ステップS5において、ステップS4で推定した描画時間に基づき、重ね書き回数Nを決定し、メインバス101を介して、GPU115に供給する。
【0112】
ここで、重ね書きの回数は、図7乃至図17における場合には、4回として、固定の値としたが、重ね書きの回数を、固定の値とすると、1フレームを構成するポリゴンの数が膨大な数のときには、1フレームの時間で、描画が終了せず、処理が破綻してしまうことがある。一方、RGB値のダイナミックレンジや、サブピクセルの精度を考慮しなければ、重ね書きの回数は多いほど、解像度を向上させることができる。そこで、本実施の形態では、処理が破綻しない範囲で(ここでは、フレームレートを維持することができる範囲で)、できるだけ多くの回数の重ね書きを行うことができるように、1フレームの描画時間に基づいて、重ね書き回数Nが、適応的に決定されるようになされている。
【0113】
但し、1フレームを構成するポリゴンの数が限定されている場合などにおいては、重ね書きの回数は、処理が破綻することがないような固定値にしても良い。なお、重ね書きによる画質の向上という効果は、理論的には、1画素を構成するサブピクセルの数と同一の回数だけ重ね書きを行う場合に最大となり、その回数より多い回数の重ね書きを行っても、それ以上の効果は得られない。従って、装置の処理能力が十分であり、重ね書きの回数を、1画素を構成するサブピクセルの数以上としても、処理が破綻しない場合においては、重ね書きの回数は、いわば無駄な処理をせずに済むように、1画素を構成するサブピクセルの数と同一とするのが望ましい。同様の理由から、重ね書き回数を、上述のように、適応的に決定する場合も、その回数が、1画素を構成するサブピクセルの数よりも多くなったときには、1画素を構成するサブピクセルの数に制限するのが望ましい。
【0114】
重ね書き回数Nが決定されると、ステップS6に進み、メインCPU111において、その重ね書き回数Nだけ描画を行う場合の、各描画時に用いるずらし量(dX,dY)が設定され、メインバス101を介して、GPU115に供給される。なお、ずらし量は、サブピクセルの精度以上とし、かつ1画素の精度より小さくするのが望ましい。
【0115】
GPU115は、以上のようにしてメインCPU111から供給される1フレーム分のポリゴンデータ、重ね書き回数N、およびその重ね書き回数分のずらし量を受信すると、ステップS7において、Zソートを行うことにより、1フレームを構成するポリゴンを、その奥行き方向順に並べ替える。ここで、Zソートについては、例えば、特開平7−114654号公報などに、その詳細が開示されている。
【0116】
そして、GPU115は、ステップS8において、フレームバッファ141を、例えば、0にクリアし、ステップS9に進み、描画回数をカウントする変数nを、例えば、1に初期化する。そして、ステップS10に進み、GPU115は、各ポリゴンのn回目の描画に用いるずらし量を、その動きに基づいて補正する。
【0117】
ここで、ポリゴンデータには、上述したデータの他、ポリゴンの動きベクトルも含まれている。いま、あるポリゴンの動きベクトルが、(vx,vy)であり、そのポリゴンのn回目の描画に用いるずらし量として、(dXn,dYn)が設定されているとした場合、ずらし量(dXn,dYn)は、例えば、(dXn+vx/N,dYn+vy/N)に補正される。ずらし量を、このように補正して描画を行うことで、モーションブラーの効果を得ることができる。
【0118】
ずらし量の補正後は、ステップS11に進み、GPU115は、その補正されたずらし量だけ、各ポリゴンの頂点の座標をずらし、ステップS12に進む。ステップS12では、GPU115において、Zバッファ142が、例えば、+∞に初期化され(ここでは、Z値が、画面の奥側ほど大きくなるとする)、ステップS13に進む。ステップS13では、ポリゴンの頂点の座標が、サブピクセル精度化され、さらに、サブピクセル精度でDDA演算が行われることにより、ポリゴンの辺および内部を構成するサブピクセルのRGB値等が求められる。
【0119】
ここで、DDA演算とは、2点間において、線型補間により、その2点間を結ぶ線分を構成する画素についての各値(RGB値など)を求める演算である。即ち、例えば、2点のうちの一方を始点とするとともに、他方を終点とし、その始点および終点に、ある値が与えられているとき、終点に与えられている値と、始点に与えられている値との差分を、その始点と終点との間にある画素数で除算することで、始点および終点に与えられている値の変化分(変化の割合)が求められ、これを、始点から終点の方向に進むにつれて、始点に与えられている値に順次加算(積算)することで、始点と終点との間にある各画素における値が求められる。
【0120】
例えば、3角形のポリゴンについては、その3頂点として、サブピクセルp1,p2,p3が与えられているとするとき、サブピクセルp1とp2、サブピクセルp2とp3、およびサブピクセルp1とp3に対して、このようなDDA演算が、サブピクセル精度で施され、これにより、ポリゴンの3辺上にあるサブピクセルについてのポリゴンデータZ,R,G,B,α,S,T,Qが、さらには、そのポリゴン内部にあるサブピクセルについてのポリゴンデータZ,R,G,B,α,S,T,Qが、X,Y座標を変数として求められる。
【0121】
そして、ステップS14に進み、GPU115において、Zバッファ142を用いて、フレームバッファ141に、ポリゴンを構成する画素のRGB値を書き込む重ね書き処理が行われる。
【0122】
ここで、ステップS14においてフレームバッファ141に書き込まれる最終的なRGB値は、GPU115において、例えば、次のようにして求められるようになされている。
【0123】
即ち、GPU115は、DDA演算結果である、ポリゴンを構成する各サブピクセルについてのポリゴンデータX,Y,Z,R,G,B,α,S,T,Qに基づいてテクスチャマッピングを行う。具体的には、CPU115は、例えば、S,TそれぞれをQで除算することにより、テクスチャアドレスU( S/Q),V( T/Q)を算出し、必要に応じて各種のフィルタリング処理を行うことで、各サブピクセルのX,Y座標におけるテクスチャの色を算出する。即ち、GPU115は、テクスチャメモリ143から、テクスチャアドレスU,Vに対応するテクスチャデータ(Texture Color Data)を読み出す。さらに、GPU115は、このテクスチャデータとしてのRGB値と、DDA演算結果としてのRGB値とに各種のフィルタリング(Filtering)処理を施し、即ち、例えば、両者を所定の割合で混合し、さらに、あらかじめ設定された色を、フォグ値Fにしたがって混合し、ポリゴンを構成する各サブピクセルの最終的なRGB値を算出する。
【0124】
ステップS14では、以上のようにして求められたRGB値が、フレームバッファ141に書き込まれる。
【0125】
なお、フレームバッファ141への書き込みは、原則として、ステップS7におけるZソートによって奥行き方向に並べ替えられたポリゴンについて、視点に近いものから順に行われる。この理由については、後述する。
【0126】
また、1画素を構成するサブピクセルのうちの1つだけが、描画の対象となっている場合においては、そのサブピクセルのRGB値が、フレームバッファ141の、そのサブピクセルを含む画素に対応するアドレスに書き込まれるが、1画素を構成するサブピクセルのうちの複数が、描画の対象となっている場合においては、その複数のサブピクセルのRGB値の、例えば平均値などが書き込まれる。
【0127】
ステップS14において、フレームバッファ141への、1フレーム分のRGB値の書き込みが終了すると、ステップS15に進み、変数nが、重ね書き回数Nより大きいかどうかが判定され、大きくないと判定された場合、ステップS16に進み、変数nが1だけインクリメントされ、ステップS10に戻る。そして、ステップS10において、GPU115は、各ポリゴンのn回目の描画に用いるずらし量を、その動きに基づいて補正し、以下、ステップS15において、変数nが重ね書き回数Nよりも大きいと判定されるまで、ステップS10乃至S16の処理が繰り返される。これにより、重ね書きが行われる。
【0128】
一方、ステップS15において、変数nが重ね書き回数Nよりも大きいと判定された場合、即ち、1フレームについて、N回の重ね書きを行った場合、GPU115は、フレームバッファ141に記憶された1フレーム分のRGB値を読み出して、ディスプレイに出力し、ステップS1に戻る。そして、ステップS1において、メインCPU111は、次の1フレームの3次元画像を構成するポリゴンを描画するためのデータを、メインバス101を介して、メインメモリ112から読み出し、以下、同様の処理が繰り返され、これにより、動画の表示がなされる。
【0129】
次に、フレームバッファ141への書き込みは、上述したように、Zソートによって奥行き方向に並べ替えられたポリゴンについて、視点に近いものから順に行われるが、これは、フレームバッファ141へのRGB値の書き込みが、後述するように、フレームバッファ141に既に書き込まれているRGB値に加算されることで重ね書きされることに起因する。
【0130】
即ち、いま、図19(A)に示すように、フレームバッファ141に、例えば、ポリゴンAおよびBを含むフレームCの書き込みが、既にされており、そのような状態のフレームバッファ141に対して、さらに、ポリゴンAおよびBからなるフレームCを重ね書きすることを考える。なお、ポリゴンAは、ポリゴンBより奥側に位置し、ポリゴンAとBとは、その一部が互いに重なり合っているものとする。
【0131】
この場合、Zバッファ142は、図18のフローチャートで説明したように、ステップS14で重ね書き処理が行われる前に、ステップS12でクリアされるため、フレームバッファ141に、フレームCの全体が書き込まれた後は、Zバッファ142は、図19(B)に示すように、Z値として、無限遠(最も奥側)に対応する値が書き込まれた状態となっている。
【0132】
そして、いま、ポリゴンAまたはBのうちの、例えば、奥側にあるポリゴンBを先に書き込み、その後に、手前側にあるポリゴンAを書き込むとすると、ポリゴンBの描画時においては、Zバッファ142に記憶されたZ値は、無限遠を表しているから、ポリゴンBを、Zバッファ142を用いて描画することにより、即ち、ポリゴンBのRGB値が、既にフレームバッファ141に記憶されているRGB値に加算されることにより、図20(A)に示すように、既にフレームバッファ141に描画されているフレームCの、ポリゴンBの部分が重ね書きされる。この場合、Zバッファ142の、ポリゴンBに対応する部分には、ポリゴンBのZ値が書き込まれる。
【0133】
その後、ポリゴンAを、Zバッファ142を用いて、フレームバッファ141に書き込むと、ポリゴンBよりも手前にあるポリゴンAの描画は、Zバッファ142によっては妨げられず、従って、ポリゴンAは、その全体が、フレームバッファ141に書き込まれる。即ち、ポリゴンBのRGB値は、すべて、既にフレームバッファ141に記憶されているRGB値に加算される。その結果、ポリゴンAとBとの重なり部分(図20において影を付してある部分)については、本来は、ポリゴンAのみが描画されるべきであるのにもかかわらず、ポリゴンBの描画による影響が生じる。
【0134】
以上のように、重ね書きを行う(ポリゴンのRGB値を、既にフレームバッファ141に書き込まれているRGB値に加算する)場合には、手前にあるポリゴンよりも、奥側にあるポリゴンを先に描画すると、それらの重なり部分に、奥側にあるポリゴンの影響が生じ、本来、手前にあるポリゴンによって隠面消去されるはずの奥側にあるポリゴンが見えるようになる。
【0135】
そこで、このような隠面消去が行われないのを防止するため、図18で説明したように、本実施の形態では、ポリゴンの描画は、Zソートによって奥行き方向に並べ替えられたポリゴンについて、視点に近いものから順に行われるようになされている。
【0136】
即ち、例えば、上述の場合においては、ポリゴンAまたはBのうちの、手前側にあるポリゴンAが先に書き込まれ、その後に、奥側にあるポリゴンBが書き込まれる。この場合、ポリゴンAの描画時においては、Zバッファ142に記憶されたZ値は、無限遠を表しているから、ポリゴンAを、Zバッファ142を用いて描画することにより、即ち、ポリゴンAのRGB値が、既にフレームバッファ141に記憶されているRGB値に加算されることにより、図21(A)に示すように、既にフレームバッファ141に描画されているフレームCの、ポリゴンAの部分が重ね書きされる。この場合、Zバッファ142の、ポリゴンAに対応する部分には、ポリゴンAのZ値が書き込まれる。
【0137】
その後、ポリゴンBを、Zバッファ142を用いて、フレームバッファ141に書き込むと、ポリゴンAよりも奥前にあるポリゴンBの描画は、ポリゴンAとの重なり部分については、Zバッファ42によって妨げられ、従って、ポリゴンBの、ポリゴンAと重ならない部分はフレームバッファ141に重ね書きされるが、ポリゴンAと重なる部分はフレームバッファ141に重ね書きされない(描画されない)。その結果、ポリゴンAとBとの重なり部分については、手前側にあるポリゴンAのみが描画され、ポリゴンBの影響が生じることを防止することができる。即ち、隠面消去を確実に行うことができる。
【0138】
なお、重ね書きを行う場合の隠面消去は、以上のようなZソートとZバッファ142との組み合わせによって行う他、フレームバッファ141と同様のバッファ(以下、適宜、第2フレームバッファという)を設けて行うことも可能である。即ち、第2フレームバッファに対して、Zバッファ142を用いて描画を行い、その第2フレームバッファの描画結果を、フレームバッファ141に重ね書きするようにすれば良い。但し、この場合、Zソートを行う必要はなくなるが、フレームバッファ141と同容量の第2フレームバッファを設ける必要がある。
【0139】
また、ZソートとZバッファ142との組み合わせは、重ね書きを行う場合の隠面消去の他、例えば、半透明のポリゴンの描画を行う場合や、影の描画を行う場合などの、αブレンディングを伴う描画を行う場合において、自然な映像を生成するのに利用することができる(例えば、ZソートとZバッファとの組み合わせを利用した半透明のポリゴンの描画については、本件出願人が先に提案した特願平8−158145号などに開示されている)。但し、ZソートとZバッファとの組み合わせを利用した処理は、重ね書きの際の隠面消去を行う場合や、半透明のポリゴンの描画を行う場合などでそれぞれ異なるため、処理アルゴリズムは、場合に応じて切り替える必要がある。
【0140】
次に、図22のフローチャートを参照して、図18のステップS14における重ね書き処理の詳細について説明する。なお、ここでは、説明を簡単にするために、サブピクセルのことは考えず、既に、画素単位に、Z値やRGB値が与えられているものとする。また、左からx番目で、上からy番目の位置の画素を、p(x,y)と表すとともに、その画素p(x,y)のZ値をZ(x,y)と、Zバッファ142に記憶されている、画素p(x,y)に対応する記憶値をdepth(x,y)と、それぞれ表す。さらに、フレームバッファ141の、画素p(x,y)に対応する位置の記憶値をn(x,y)と表す。
【0141】
重ね書き処理では、まず最初に、ステップS21において、いま描画対象となっているフレームを構成する画素のうちの所定の画素p(x,y)が注目画素とされ、その注目画素p(x,y)のZ値Z(x,y)が、Zバッファ142の記憶値depth(x,y)以下であるかどうかが判定される。ステップS21において、Z値Z(x,y)が、記憶値depth(x,y)以下でないと判定された場合、即ち、注目画素p(x,y)を含んで構成されるポリゴンよりも手前にあるポリゴンが存在し、既にフレームバッファ141に書き込まれている場合、ステップS21に戻り、まだ、注目画素とされていない画素が、新たに注目画素とされ、以下、同様の処理を繰り返す。
【0142】
また、ステップS21において、Z値Z(x,y)が、記憶値depth(x,y)以下であると判定された場合、ステップS22に進み、輝度減少処理が行われる。即ち、注目画素p(x,y)のRGB値をM(x,y)とするとき、RGB値M(x,y)が、重ね書き回数Nで除算され、その除算値(但し、ここでは、小数点以下切り捨てとする)が、重ね書きすべきRGB値m(x,y)として求められる。
【0143】
なお、x/y以下の最大の整数を、INT[x/y]と表すこととすると、輝度減少処理では、式m(x,y)=INT[M(x,y)/N]で示される演算が行われることになる。
【0144】
ここで、M(x,y)/Nが整数になる場合は問題がないが、小数点以下を含む場合には、輝度の低下が生じる。即ち、例えば、輝度値の最高値が255である場合に、その最高値である255の輝度値の描画を、4回の重ね書きによって行うことを考えると、輝度減少処理により、1回あたりの描画の輝度値は、63(=INT[255/4])になる。従って、63の輝度値の描画を4回行っても、即ち、63を4回加算しても、252にしかならず、元の輝度値である255よりも低下する。
【0145】
そこで、輝度減少処理により得られる値INT[M(x,y)/N]のN倍が、元のRGB値M(x,y)より小さい場合においては、値INT[M(x,y)/N]に、所定の補正値Dを加算した値を、重ね書きすべきRGB値m(x,y)とするようにすることができる。
【0146】
補正値Dは、この補正値Dを、値INT[M(x,y)/N]に加算した加算値のN倍が、元のRGB値M(x,y)以上となるような値にする必要がある。具体的には、上述したように、最高値である255の輝度値の描画を、4回の重ね書きによって行う場合においては、補正値Dは、例えば、1とされる。この場合、1回あたりの描画の輝度値は、64(=63+1)となり、64の輝度値の描画を4回行った場合には、256となる。なお、ここでは、輝度値の最高値は255であり、これを越える値は、最高値である255にクリップされるものとする。
【0147】
輝度減少処理の後は、ステップS23において、フレームバッファ141から、注目画素p(x,y)に対応する記憶値n(x,y)が読み出され、ステップS24に進み、輝度減少処理後のRGB値m(x,y)と加算されることにより重ね書きされる。ここで、この加算結果を、v(x,y)と表す。
【0148】
ステップS24における加算結果、即ち、重ね書き結果v(x,y)は、ステップS25において、フレームバッファ141の、n(x,y)が記憶されていた位置(注目画素p(x,y)に対応する位置)に上書きされる。なお、このv(x,y)が、次に、画素p(x,y)の描画が行われるときに、記憶値n(x,y)として読み出されることになる。
【0149】
さらに、ステップS25では、Zバッファ142の記憶値depth(x,y)が、Z値Z(x,y)に書き換えられ、ステップS26に進み、描画対象のフレームを構成するすべての画素を、注目画素として処理を行ったかどうかが判定される。ステップS26において、描画対象のフレームを構成するすべての画素を、まだ、注目画素としていないと判定された場合、ステップS21に戻り、まだ、注目画素としていない画素を、新たに注目画素として、以下、同様の処理を繰り返す。
【0150】
一方、ステップS26において、描画対象のフレームを構成するすべての画素を、注目画素としたと判定された場合、リターンする。
【0151】
ここで、輝度減少処理は、αブレンディングを利用して行うことも可能である。即ち、m(x,y)は、ブレンド係数αを、1/Nに設定し、式m(x,y)=INT[α×M(x,y)]を演算することで求めることも可能である。即ち、いま、ブレンド係数αが、1.0を、例えば、128(=27)に対応させて、式α=Α→7で実現されているものとする。なお、Αは0乃至128の範囲の整数を表し、Α→7は、Αの7ビット右シフトを表す。
【0152】
この場合、例えば、上述のように、最高値である255の輝度値の描画を、4回の重ね書きによって行うには、Αを、1/4に対応する32として、式m(x,y)=INT[α×M(x,y)]を演算すれば良い。
【0153】
但し、この場合でも、上述した場合と同様に、輝度の低下が生じることがある。即ち、最高値である255の輝度値の描画を、4回の重ね書きによって行う場合において、Αを、1/4に対応する32として、式m(x,y)=INT[α×M(x,y)]を演算すると、その値m(x,y)は、63(=INT[(255×32)→7])となり、63の輝度値の描画を4回行っても(63を4回加算しても)、252にしかならず、元の輝度値である255よりも低下する。
【0154】
そこで、INT[α×M(x,y)]のN倍が、元のRGB値M(x,y)より小さい場合においては、INT[α×M(x,y)]のN倍が、元のRGB値M(x,y)以上となるように、Αを補正するようにする。具体的には、Αを、1/4に対応する32に対して、例えば、1を加算した33に補正すればよい。この場合、1回あたりの描画の輝度値は、65(=INT[(255×33)→7])となり、65の輝度値の描画を4回行った場合には、260となる。なお、上述したように、輝度値の最高値である255を越える値は、最高値である255にクリップされるものとする。
【0155】
以上のように、各画素のRGB値をフレームバッファ141に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定し、その複数のずらし量に対応する、フレームバッファ141の位置それぞれに、RGB値を描画することにより、画像を重ね書きするようにしたので、大容量かつ高速なフレームバッファやZバッファを用いなくても、効果的なアンチエイリアシングを施すことができる。
【0156】
即ち、以上のような重ね書きによるアンチエイリアシングの効果は、ポリゴンのエッジ部分だけでなく、その内部や、3次元形状どうしが交わっている部分などにも及ぶので、直線に生じるジャギーの低減は勿論のこと、画像全体の画質を向上させることができる。
【0157】
また、動きのあるポリゴンには、モーションブラーの効果を与えることができるので、ちらつきのないスムーズな動画像を表示することが可能となる。
【0158】
以上、本発明を、ビデオゲーム機に適用した場合について説明したが、本発明は、その他、画像に特殊効果を与えるエフェクタや、CADなどのコンピュータグラフィックス処理を行う装置に適用可能である。さらに、本発明は、例えば、ビデオカメラなどで撮影した自然画を符号化して記録再生し、または送受信する記録再生装置または伝送装置などにも適用可能である。即ち、将来、ビデオカメラなどで撮影した自然画を、ポリゴンで表現するような符号化を行った場合において、その再生をするときに、本発明による手法を用いることで、高画質の自然画を再生することが可能となる。
【0159】
なお、本実施の形態では、描画処理を、フレーム単位で行うようにしたが、描画処理は、フィールド単位で行うようにしても良い。
【0160】
また、本発明は、動画像および静止画像のいずれの描画にも適用可能である。
【0161】
さらに、本実施の形態では、3次元グラフィックスの描画について説明したが、本発明は、その他、例えば、2次元グラフィックスの描画にも適用可能である。
【0162】
また、ずらし量は、サブピクセル精度に限られるものではなく、それよりも大きくても、あるいは小さくても良い。
【0163】
さらに、本実施の形態では、上述のような描画処理を行うコンピュータプログラムを、CD−ROM51に記録して提供するようにしたが、コンピュータプログラムの提供は、CD−ROMや光磁気ディスクその他の記録媒体によって行う他、例えば、インターネットや衛星回線その他の伝送媒体によって行うことも可能である。
【0164】
また、描画処理は、コンピュータプログラムをプロセッサに実行させることにより行う他、それ専用のハードウェアに行わせることも可能である。
【0165】
さらに、本実施の形態では、3次元画像を、ディスプレイに表示するようにしたが、本発明は、その他、例えば、3次元画像をプリンタ(2次元出力装置)によって印刷する場合などにも適用可能である。
【0166】
また、本実施の形態では、1フレームの画像の描画を、X方向およびY方向の両方にずらして行うようにしたが、いずれか一方向にのみずらすようにすることも可能である。即ち、ずらし量(dX,dY)は、例えば、(0.0,−0.2),(0.0,−0.1),(0.0,0.1),(0.0,0.2)などとすることも可能である。
【0167】
さらに、ずらし量(dX,dY)は、例えば、重ね書き回数ごとに、あらかじめ決めておくことが可能である。
【0168】
なお、上述したように、重ね書きの回数は、多いほど解像度を向上させることができるが、重ね書きの回数が多くなるのに伴い、輝度減少処理により、1回に描画されるRGB値を表現するビット数が少なくなるため、画像の階調が悪化する。従って、重ね書きの回数は、解像度の観点からだけでなく、階調も考慮して決めるのが望ましい。
【0169】
【発明の効果】
本発明の描画装置および描画方法によれば、画素データを、画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量が設定され、その複数のずらし量に対応する、画素データ記憶手段の位置それぞれに、画素データを描画することにより、画像が重ね書きされる。また、本発明の提供媒体によれば、画素データを、メモリに描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定し、その複数のずらし量に対応する、メモリの位置それぞれに、画素データを描画することにより、画像を重ね書きするコンピュータプログラムが提供される。従って、画像に生じるエイリアシングを低減することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したビデオゲーム機の一実施の形態の構成例を示す平面図である。
【図2】図1のビデオゲーム機の正面図である。
【図3】図1のビデオゲーム機の側面図である。
【図4】CD−ROM51を示す平面図である。
【図5】図1のゲーム機本体2の電気的構成例を示すブロック図である。
【図6】図5のグラフィックメモリ118の詳細構成例を示すブロック図である。
【図7】点の重ね書きを説明するための図である。
【図8】点の重ね書き結果を示す図である。
【図9】2×2のサブピクセルで構成される画素を示す図である。
【図10】点を、重ね書きせずに、1回で描画したときの描画結果を示す図である。
【図11】点の重ね書きを説明するための図である。
【図12】点の重ね書き結果を示す図である。
【図13】描画対象の点の位置と、重ね書き結果との関係を説明するための図である。
【図14】直線の重ね書きを説明するための図である。
【図15】直線の重ね書き結果を示す図である。
【図16】直線の重ね書きを説明するための図である。
【図17】直線の重ね書き結果を示す図である。
【図18】図5のゲーム機本体2におけるポリゴンの描画処理を説明するためのフローチャートである。
【図19】視点に近いポリゴンから順に、描画を行う理由を説明するための図である。
【図20】視点に遠いポリゴンから順に、描画を行った場合を説明するための図である。
【図21】視点に近いポリゴンから順に、描画を行った場合を説明するための図である。
【図22】図18のステップS14の処理のより詳細を説明するためのフローチャートである。
【符号の説明】
2 ゲーム機本体, 3 ディスク装着部, 4 リセットスイッチ, 5 電源スイッチ, 6 ディスク操作スイッチ, 7A,7B 接続部, 8 記録挿入部, 9 シャッタ, 12 接続端子挿入部, 17 操作装置, 18,19 操作部, 20,21 支持部, 22 セレクトスイッチ, 23スタートスイッチ, 24,25 操作部, 26 接続端子部, 27 ケーブル, 38 記録装置, 51 CD−ROM, 101 メインバス, 102 サブバス, 111 メインCPU, 112 メインメモリ, 113 メインDMAC, 114 MDEC, 115 GPU, 116 バスコントローラ, 117 GTE, 118 グラフィックメモリ, 119 キャッシュメモリ, 121 サブCPU, 122 サブメモリ, 123 サブDMAC, 124 ROM, 125 SPU, 126 ATM通信部, 127 補助記憶装置, 128 入力デバイス用I/F, 129 サウンドメモリ, 141 フレームバッファ, 142 Zバッファ, 143 テクスチャメモリ

Claims (7)

  1. 画像を描画する描画装置における描画方法であって、
    前記描画装置は、前記画像を出力する2次元出力装置に出力させる画素データを記憶する画素データ記憶手段を備え、
    前記画素データを、前記画素データ記憶手段に描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定ステップと、
    前記複数のずらし量に対応する、前記画素データ記憶手段の位置それぞれに、前記画素データを描画することにより、前記画像を重ね書きする描画ステップと、
    前記描画ステップにおいて前記画像を重ね書きする重ね書き回数を決定する回数決定ステップと、
    前記描画ステップにおいて1画面分の前記画素データを前記画素データ記憶手段に描画するのにかかる描画時間を、前記画像の重ね書きに先立って、1画面に描画するポリゴンの数から推定する推定ステップと、を備え、
    前記回数決定ステップにおいて、前記推定ステップで推定された前記描画時間に基づいて、前記重ね書き回数を決定すること
    を特徴とする描画方法。
  2. 前記画像が動画像である場合において、前記動画像の動きに基づいて、前記ずらし量を補正する補正ステップをさらに備えること
    を特徴とする請求項1に記載の描画方法。
  3. 前記画像が、単位図形の組合せにより定義される3次元画像である場合において、前記単位図形を、その奥行き方向順に並べ替える並べ替えステップをさらに備え、
    前記描画ステップにおいて、前記単位図形を、視点に近いものから順に描画すること
    を特徴とする請求項1に記載の描画方法。
  4. 前記描画装置は、所定の入力を与えるときに操作される操作手段をさらに備え、記録媒体に記録されているデータを読み込み、当該データを用いて、前記操作手段からの入力に基づき、所定の演算を行う演算ステップと、
    前記演算ステップにおける演算結果に基づいて、前記画素データを求める画素データ生成ステップと、をさらに備えること
    を特徴とする請求項1に記載の描画方法。
  5. コンピュータに、
    画像を出力する2次元出力装置に出力させる画素データを、メモリに描画するときの描画位置を、1画素より細かい精度でずらすための複数のずらし量を設定するずらし量設定ステップと、
    前記複数のずらし量に対応する、前記メモリの位置それぞれに、前記画素データを描画することにより、前記画像を重ね書きする描画ステップと
    前記描画ステップにおいて、1画面分の前記画素データを前記メモリに描画するのにかかる描画時間を、前記画像の重ね書きに先立って、1画面に描画するポリゴンの数から推定する推定ステップと、
    前記描画ステップにおいて、前記画像を重ね書きする重ね書き回数を、前記推定ステップで推定された前記描画時間に基づいて決定する回数決定ステップと、
    を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
  6. 前記プログラムは、前記コンピュータに、
    前記画像が動画像である場合において、前記動画像の動きに基づいて、前記ずらし量を補正する補正ステップをさらに実行させること
    を特徴とする請求項5に記載のコンピュータ読取可能な記録媒体。
  7. 前記プログラムは、前記コンピュータに、
    前記画像が、単位図形の組合せにより定義される3次元画像である場合において、前記単位図形を、その奥行き方向順に並べ替える並べ替えステップをさらに実行させ、
    前記描画ステップにおいて、前記単位図形を、視点に近いものから順に描画させること
    を特徴とする請求項5に記載のコンピュータ読取可能な記録媒体。
JP2003056079A 2003-03-03 2003-03-03 描画装置および描画方法、並びに提供媒体 Expired - Lifetime JP4074531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003056079A JP4074531B2 (ja) 2003-03-03 2003-03-03 描画装置および描画方法、並びに提供媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003056079A JP4074531B2 (ja) 2003-03-03 2003-03-03 描画装置および描画方法、並びに提供媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP08537598A Division JP3639108B2 (ja) 1998-03-31 1998-03-31 描画装置および描画方法、並びに提供媒体

Publications (3)

Publication Number Publication Date
JP2003303352A JP2003303352A (ja) 2003-10-24
JP2003303352A5 JP2003303352A5 (ja) 2005-09-15
JP4074531B2 true JP4074531B2 (ja) 2008-04-09

Family

ID=29398129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003056079A Expired - Lifetime JP4074531B2 (ja) 2003-03-03 2003-03-03 描画装置および描画方法、並びに提供媒体

Country Status (1)

Country Link
JP (1) JP4074531B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6066755B2 (ja) 2013-02-07 2017-01-25 株式会社ソニー・インタラクティブエンタテインメント 描画処理装置および描画処理方法
CN109087371B (zh) * 2018-07-16 2023-06-30 深圳市智能机器人研究院 一种控制机器人画像的方法及系统

Also Published As

Publication number Publication date
JP2003303352A (ja) 2003-10-24

Similar Documents

Publication Publication Date Title
JP3639108B2 (ja) 描画装置および描画方法、並びに提供媒体
US6480192B1 (en) Recording medium, apparatus and method for processing images
US20060046844A1 (en) Video game device and image processing program
KR20030081107A (ko) Z-버퍼 이미지 데이터 및 알파 융합을 사용하는 필드심도를 갖는 이미지
JP2006318389A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4917346B2 (ja) ゲーム画像処理プログラムおよびゲーム画像処理装置
US7212215B2 (en) Apparatus and method for rendering an antialiased image
JP4804120B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4305903B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4749198B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4502678B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3990258B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4074531B2 (ja) 描画装置および描画方法、並びに提供媒体
JP4447000B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006252426A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2002157604A (ja) テクスチャ描画方法、エンタテインメント装置および記録媒体
NZ500121A (en) Reduction of aliasing in 3D images by multiple small shifts of pixel values.
JP4447417B2 (ja) ゲーム装置、プログラム及びコンピュータの制御方法
JP4563070B2 (ja) ゲーム装置及びゲームプログラム
MXPA99011024A (en) Image drawing device, image drawing method, and providing medium
JP4680670B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006277490A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006252427A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006323513A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2006244011A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050331

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050331

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080125

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

Free format text: PAYMENT UNTIL: 20110201

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140201

Year of fee payment: 6

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

EXPY Cancellation because of completion of term