ゲーム画像処理プログラムおよびゲーム画像処理装置
【構成】 ビデオゲーム装置12はCPU36を含み、CPU36はゲーム画像処理プログラムに従ってゲーム画像の解像度を変換する。CPU36の指示の下、GPU42は、オリジナルのゲーム画像をフレームバッファ48に描画する。これをオリジナルテクスチャとしてメインメモリ40に保存しておき、2倍に拡大したオリジナルテクスチャをフレームバッファ48に描画する。次に、右下方向および右上方向に隣接する2つのテクセルが同じ色である場合に、半透明で当該色のテクセルを描画する。つまり、ジャギー補間処理が施される。
【効果】 画素数の少ないゲーム画像であってもジャギーを効果的に低減して、ゲーム画面の画質を向上させることができる。
【効果】 画素数の少ないゲーム画像であってもジャギーを効果的に低減して、ゲーム画面の画質を向上させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム画像処理プログラムおよびゲーム画像処理装置に関し、特にたとえば、ゲーム画像の解像度を変換して出力する、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来のこの種のゲーム画像処理装置の一例が特許文献1に開示される。この特許文献1には、ジャギーが生じている画像に対して構成画素数を増やす補間処理を行う際に、なるべくジャギーが生じないようにすることを目的として、以下のような画像データ補間方法が記載される。特許文献1の画素データ補間方法によれば、先工程で処理された画像データを補間処理の元画像データとして取得する元画像データ取得工程A1と、同画像データに基づいて各画素でエッジ方向を検出するエッジ方向検出工程A2と、エッジ方向い沿って当該エッジ部分を平滑化するエッジ平滑化工程A3と、この平滑化の後で本来の補間処理を実行する画素補間工程A4と、補間後の各画素データを次工程へ受け渡す画像データ出力工程A5を順次実行する。ただし、元画像は、スキャナ、デジタルスチルカメラ、ビデオカメラなどから入力されるような多階調の画像であり、出力する画像はカラープリンタなどに入力される高解像度の画像を対象としている。
【特許文献1】特開2000−123162号
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載の画像データ補間方法は、フィルタを用いてエッジを検出するものであり、或る程度階調が多く、エッジ部分の画素数の多い高解像度の画像に適用することを目的としている。したがって、この背景技術は、たとえばゲーム画像における、いわゆるドット絵のように特徴部分の画素数が少なく、1つ1つのドットによって画像の特徴が表現されているような画像に適用する場合には、エッジ方向の検出やエッジに対する平滑化を適切に行うことができず、良好な画像を得ることができないという問題がある。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲーム画像処理プログラムおよびゲーム画像処理装置を提供することである。
【0005】
また、この発明の他の目的は、ゲーム画像の解像度を高解像度に変換する際に、特徴部分の大きさが比較的小さな画像に対しても良好にジャギーを低減できる、ゲーム画像処理プログラムおよびゲーム画像処理装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
請求項1の発明は、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置のコンピュータで実行されるゲーム画像処理プログラムである。ゲーム画像処理プログラムは、解像度変換手段、比較手段、補間手段および出力手段として、コンピュータを機能させる。解像度変換手段は、第1の解像度の低解像度画像を第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。出力手段は、補間手段によって更新された高解像度画像を出力する。
【0008】
請求項1の発明では、ゲーム画像処理プログラムは、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置(12)のコンピュータ(36,42)で実行される。このゲーム画像処理プログラムは、コンピュータを、解像度変換手段(36,42,S9,S11,S13)、比較手段(36,42,S17,S19)、補間手段(36,42,S17,S19)、および出力手段(36,42,62,S5)として機能させる。解像度変換手段は、第1の解像度の低解像度画像(100)を第2の解像度になるように変換した高解像度画像(200)を生成し、記憶手段(40,404)に記憶させる。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値(同じ色)となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。たとえば、解像度を2倍に変換する場合には、m=1に設定され、半透明の画素を含む画像は1画素分ずらして高解像度画像に重ねられる。また、たとえば、解像度を3倍にする場合には、m=1,2に設定され、半透明の画素を含む画像は1画素分または2画素分ずらして高解像度画像に重ねられる。したがって、ジャギーが低減される。出力手段は、補間手段によって更新された高解像度画像をゲーム画面として出力する。
【0009】
請求項1の発明によれば、高解像度画像に変換した後、斜め方向に隣接する画素の間に画素を補間するので、画素数の少ないゲーム画像であってもジャギーを低減して、ゲーム画面を見易くすることができる。つまり、ゲーム画像の解像度を良好に変換することができる。
【0010】
請求項2の発明は請求項1に従属し、比較手段は、任意の画素と当該画素の右下に隣接する画素との画素値を比較する第1の画素値比較手段と、任意の画素と当該画素の右上に隣接する画素との画素値を比較する第2の画素値比較手段とを含み、補間手段は、第1の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右下方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第1の画素補間手段と、第2の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右上方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第2の画素補間手段とを含む。
【0011】
請求項2の発明では、第1の画素比較手段(36,42,S17)は、任意の画素と当該画素の右下に隣接する画素との画素値を比較する。第2の画素比較手段(36,42,S19)は、任意の画素と当該画素の右上に隣接する画素との画素値を比較する。第1の画素補間手段(36,42,S17)は、第1の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該が素に対応する高解像度画像の画素の右下方向にm画素分ずらして半透明で重ねることによって、当該高解像度画像を更新する。つまり、右下方向のジャギー補間処理が施される。また、同様に、第2の画素補間手段(36,42,S19)は、第2の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右上方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する。つまり、右上方向のジャギー補間処理が施される。
【0012】
請求項2の発明によれば、右下方向および右上方向のジャギーを低減することができる。つまり、ゲーム画像の全体に渡ってジャギーが低減される。
【0013】
請求項3の発明は請求項1または2に従属し、ゲーム画像処理プログラムは、コンピュータを、低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する第3の画素値比較手段、および第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、第2の解像度で、当該画素を当該画素に対応する高解像度画像に半透明で重ねることによって当該高解像度画像を更新する第3の画素値補間手段としてさらに機能させる。
【0014】
請求項3の発明では、第3の画素値比較手段(36,42,S23)は、低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する。第3の画素値補間手段(36,42,S23)は、第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、第2の解像度で、当該画素を当該画素に対応する高解像度画像に半透明で重ねることによって当該高解像度画像を更新する。たとえば、上下または左右の一方が同一画素値である場合には、不透明度を50%に設定し、上下および左右の両方が同一画素値である場合には、不透明度を100%に設定し、上下および左右の両方が同一画素値でない場合には、不透明度を0%に設定する。ただし、上下および左右の両方が同一画素値でない場合には、何ら画素を描画しない。
【0015】
請求項3の発明によれば、1点や1本の線で表される特徴部分がぼけて見え難くなるのを防止することができる。つまり、色を強調して、見易くすることができる。
【0016】
請求項4の発明は、請求項1ないし請求項3のいずれかに記載のゲーム画像処理プログラムを記録した記録媒体である。
【0017】
請求項4の発明では、上述のゲーム画像処理プログラムは、記録媒体(18)に記録され、この記録媒体からゲーム画像処理装置にロードされる。
【0018】
請求項4の発明においても、請求項1の発明と同様に、画素数の少ないゲーム画像であってもジャギー補間して、ゲーム画面を見易くすることができる。
【0019】
請求項5の発明は、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置である。このゲーム画像処理装置は、変換手段、記憶手段、比較手段、補間手段、および出力手段を備える。解像度変換手段は、第1の解像度の低解像度画像を第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる。記憶手段は、高解像度画像を記憶する。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。出力手段は、補間手段によって更新された高解像度画像を出力する。
【0020】
請求項5の発明においても、請求項1の発明と同様に、画素数の少ないゲーム画像であってもジャギー補間して、ゲーム画面を見易くすることができる。
【発明の効果】
【0021】
この発明によれば、画素数の少ないゲーム画像であってもジャギーを低減して、ゲーム画面を見易くすることができる。つまり、ゲーム画像の解像度を良好に変換することができる。
【0022】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0023】
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置12を含む。ビデオゲーム装置12は、ハウジング14を含み、ハウジング14の上端には光ディスクドライブ16が設けられる。光ディスクドライブ16には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が装着される。ハウジング14の前面には複数の(実施例では4つの)コネクタ20が設けられる。これらコネクタ20は、ケーブル24によって、コントローラ22をビデオゲーム装置12に接続するためのものであり、この実施例では最大4つのコントローラ22をビデオゲーム装置12に接続することができる。
【0024】
コントローラ22には、その上面,下面,或いは側面などに、操作部(操作スイッチ)26が設けられる。操作部26は、たとえば2つのアナログジョイスティック,1つの十字キー,複数のボタンスイッチ等を含む。1つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤオブジェクト(プレイヤがコントローラ22によって操作可能な動画オブジェクト)の移動方向および/または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動等を制御するために用いられる。十字スイッチは、アナログジョイスティックに代えてプレイヤオブジェクトの移動方向等を指示するために用いられる。ボタンスイッチは、プレイヤオブジェクトの動作を指示するために利用されたり、3次元画像の仮想カメラの視点を切り換えたり、プレイヤオブジェクトの移動スピード調節等に用いられたりする。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動等の制御に用いられる。
【0025】
なお、この実施例ではコントローラ22がそれと一体的に設けられるケーブル24によってビデオゲーム装置12に接続された。しかしながら、コントローラ22は、他の方法、たとえば電磁波(たとえば電波または赤外線)を介してワイヤレスで、ビデオゲーム装置12に接続されてもよい。また、コントローラ22の操作部26の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは1つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
【0026】
ビデオゲーム装置12のハウジング14の前面であり、コネクタ20の下方には、1つまたは複数の(この実施例では2つの)メモリスロット28が設けられる。このメモリスロット28にはメモリカード30が挿入される。メモリカード30は、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。
【0027】
ビデオゲーム装置12のハウジング14の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル32を通してビデオゲーム装置12にモニタ34を接続する。このモニタ34は典型的にはカラーテレビジョン受像機であり、AVケーブル32は、ビデオゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)のビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【0028】
このゲームシステム10において、ユーザまたはゲームプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずビデオゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク18を選択し、その光ディスク18をビデオゲーム装置12のディスクドライブ16にローディングする。応じて、ビデオゲーム装置12がその光ディスク18にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、操作部26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部26の他のものを動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
【0029】
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。ビデオゲーム装置12には、中央処理ユニット(以下、「CPU」という。)36が設けられる。このCPU36は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置12の全体的な制御を担当する。CPU36ないしコンピュータは、ゲームプロセサとして機能し、このCPU36には、バスを介して、メモリコントローラ38が接続される。メモリコントローラ38は主として、CPU36の制御の下で、バスを介して接続されるメインメモリ40の書込みや読出しを制御する。このメモリコントローラ38にはGPU(Graphics Processing Unit) 42が接続される。
【0030】
GPU42は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ38を介してCPU36からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット44およびレンダリングユニット46によって3Dのゲーム画像を生成する。つまり、ジオメトリユニット44は、3次元座標系の各種オブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット46は、各種オブジェクトの各ポリゴンにテクスチャを貼り付けるなどの画像生成処理を施す。したがって、GPU42によって、ゲーム画面上に表示すべき3D画像データが作成され、その画像データがフレームバッファ48内に記憶される。2Dゲームを実行する際には、ゲーム処理によって生成された2次元画像をテクスチャとして、ゲーム空間内の所定位置の矩形領域に貼り付け、当該領域を所定の仮想カメラから見た画像をフレームバッファ48に記憶することによって、3D処理によって2Dゲーム画像を表示することが可能である。
【0031】
なお、GPU42が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU42がメモリコントローラ38を介して、メインメモリ40から入手する。
【0032】
フレームバッファ48は、たとえばラスタスキャンモニタ34の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU42によって1フレーム毎に書き換えられる。具体的には、フレームバッファ48は、1画素(ピクセル)毎に、画像の色情報(画素値)を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのAデータである。なお、Aデータは、いわゆるアルファデータやマスクデータとして利用されるデータであり、本実施例ではアルファチャンネルすなわち透明から不透明までの透明度を表すために当該ピクセルに重ねる色とのブレンド率を示すデータとして利用される。後述のビデオI/F58がメモリコントローラ38を介してフレームバッファ48のデータを読み出すことによって、モニタ34の画面上に3Dのゲーム画像が表示される。
【0033】
また、Zバッファ50は、フレームバッファ48に対応する画素数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ48の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
【0034】
なお、フレームバッファ48およびZバッファ50は、ともにメインメモリ40の一部を用いて構成されてもよく、また、これらはGPU42の内部に設けられてもよい。
【0035】
メモリコントローラ38はまた、DSP(Digital Signal Processor)52を介して、オーディオ用のRAM(以下、「ARAM」という。)54に接続される。したがって、メモリコントローラ38は、メインメモリ40だけでなく、サブメモリとしてのARAM54の書込みおよび/または読出しを制御する。
【0036】
DSP52は、サウンドプロセサとして働き、メインメモリ40に記憶されたサウンドデータ(図示せず)を用いたり、ARAM54に書き込まれている音波形データ(図示せず)を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【0037】
メモリコントローラ38は、さらに、バスによって、各インタフェース(I/F)56,58,60,62および64に接続される。コントローラI/F56は、ビデオゲーム装置12に接続されるコントローラ22のためのインタフェースであり、コントローラ22の操作部26の操作信号または操作データを、メモリコントローラ38を通してCPU36に与える。ビデオI/F58は、フレームバッファ48にアクセスし、GPU42で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル32(図1)を介してモニタ34に与える。
【0038】
外部メモリI/F60は、ビデオゲーム装置12の前面に挿入されるメモリカード30(図1)をメモリコントローラ38に連係させる。それによって、メモリコントローラ38を介して、CPU36がこのメモリカード30にデータを書込み、またはメモリカード30からデータを読み出すことができる。オーディオI/F62は、メモリコントローラ38を通してDSP52から与えられるオーディオデータまたは光ディスク18から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ34のスピーカ34aに与える。
【0039】
そして、ディスクI/F64は、ディスクドライブ16をメモリコントローラ38に接続し、したがって、CPU36がディスクドライブ16を制御する。このディスクドライブ16によって光ディスク18から読み出されたプログラムデータやテクスチャデータ等が、CPU36の制御の下で、メインメモリ40に書き込まれる。
【0040】
図3は、図2に示したメインメモリ40のメモリマップの例である。この図3を参照して、メインメモリ40は、プログラム記憶領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、ゲームプログラムが記憶され、このゲームプログラムは、ゲームメイン処理プログラム402a、画像生成プログラム402b、ジャギー補間プログラム402c、色強調プログラム402dおよび画像表示プログラム402eなどで構成される。なお、画像生成プログラム402b、ジャギー補間プログラム402cおよび色強調プログラム402dなどによって、ゲーム画像処理プログラムが構成される。
【0041】
ゲームメイン処理プログラム402aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム402bは、後述する画像データ404aを用いて、仮想ゲームに登場するプレイヤオブジェクトや敵オブジェクトのような動画オブジェクト、アイテムオブジェクトまたは背景オブジェクトなどを含むゲーム画像を生成するためのプログラムである。
【0042】
ジャギー補間プログラム402cは、ゲーム画像の解像度を所定倍例えば2倍にする場合に、元の画像(オリジナルのゲーム画像)についての任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値(この実施例では、色)が一致する部分の画素の解像度を2倍(すなわち、1画素を4画素にする)に変換して、その画素(4画素分)に対応するフレームバッファ48に描画された高解像度画像の画素(4画素分)に半透明でありかつずらして重ねて描画するためのプログラムである。なお、以下の説明において低解像度の画像を高解像度の画像に単に変換することを画像を拡大という。また、具体的なジャギー補間(右下方向ジャギー補間、右上方向ジャギー補間)処理については、後で詳細に説明する。
【0043】
なお、本実施例においては解像度を2倍にする例について説明するが、本願発明では所定倍であればよく、2倍以上の倍率で変換を行う場合であっても本発明を適用することができる。
【0044】
色強調プログラム402dは、ゲーム画像の解像度を2倍の解像度に変換する場合に、オリジナルのゲーム画像の各画素の上下および左右に隣接する画素の色が同じであるか否かをそれぞれ比較し、同じ色となる画素の解像度を2倍に変換し、高解像度画像の対応する画素に半透明で重ねて描画するためのプログラムである。具体的な色強調処理については、後で詳細に説明する。
【0045】
画像表示プログラム402eは、画像生成プログラム402bに従って生成されたオリジナルのゲーム画像、または、ゲーム画像を2倍に拡大してジャギー補間および色強調を施された画面、或いは、ゲーム画像を2倍に拡大してジャギー補間のみを施された画面を、モニタ34に表示するためのプログラムである。
【0046】
なお、図示は省略するが、プログラム記憶領域402には、音出力プログラムやバックアッププログラムなども記憶される。音出力プログラムは、BGM、プレイヤオブジェクトの音声(擬声音)または効果音など、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、ゲームデータ(ゲームの途中データや結果データ)をメモリカード30に保存するためのプログラムである。
【0047】
データ記憶領域404には、画像データ404a、オリジナルテクスチャ404b、ジャギー補間フラグ404cおよび色強調フラグ404dなどが記憶される。
【0048】
画像データ404aは、ゲーム画像を生成するためのデータ(ポリゴン、テクスチャなど)である。オリジナルテクスチャ404bは、ゲーム画像の解像度を2倍に変換する場合に、つまり低解像度画像を高解像度画像に変換する場合に、当該オリジナルのゲーム画像をテクスチャとしたものである。
【0049】
ジャギー補間フラグ404cは、ジャギー補間処理を施すか否かを判別するためのフラグである。たとえば、ジャギー補間フラグ404cは、1ビットのレジスタで構成され、当該フラグがオン(成立)されると、レジスタにデータ値「1」が設定され、当該フラグがオフ(不成立)されると、レジスタにデータ値「0」が設定される。ただし、ジャギー補間フラグ404cは、ジャギー補間処理を施す場合にオンされ、ジャギー補間処理を施さない場合にはオフされる。
【0050】
色強調フラグ404dは、色強調の処理を施すか否かを判別するためのフラグである。この色強調フラグ404dもまた、1ビットのレジスタで構成され、当該フラグがオンされると、レジスタにデータ値「1」が設定され、当該フラグがオフされると、レジスタにデータ値「0」が設定される。ただし、色強調フラグ404dは、色強調処理を施す場合にオンされ、色強調処理を施さない場合にはオフされる。また、この実施例では、色強調処理は、ジャギー補間処理が施された場合にのみ実行されるため、ジャギー補間フラグ404cがオフされると、色強調フラグ404dもオフされる。
【0051】
なお、詳細な説明は省略するが、ジャギー補間処理および色強調処理を実行するか否か、または、ジャギー補間処理のみを実行するか否かはプレイヤが必要に応じて設定することができる。したがって、プレイヤの設定に応じて、ジャギー補間フラグ404cおよび色強調フラグ404dがオン/オフされる。
【0052】
また、図示は省略するが、データ記憶領域404には、ゲームデータや音データが記憶されたり、他のフラグが記憶されたりする。
【0053】
このような構成のシステム10(ビデオゲーム装置12)では、従来のゲーム機用のゲームソフトをエミュレータなどによってそのまま実行したり、また或いはストーリなどの一部を改変したリメイクソフトによってプレイしたりすることができる。従来のゲーム機例えばファミリーコンピュータ(登録商標)やスーパーファミコン(登録商標)やゲームボーイ(登録商標)などは、CPUやGPUなどのハードウェアの性能が低かったので、これら用のゲームソフトでは、オブジェクトが例えばテレビの走査線数よりも低い低解像度(少ない画素数)のドット絵で描画されていた。また、従来はテレビ画面も小さかったため低解像度の画像であっても見た目もあまり気にならなかった。
【0054】
一方、近年ではテレビが大型化しているとともに本ビデオゲーム装置12のような近年のゲーム装置はリッチなCPUやGPUなどのハードウェアを積んでいるため、テレビの走査線数に対して十分に高解像度のオブジェクトを描画しても、ゲーム処理に遅延が発生するなどの不都合は生じなくなっている。
【0055】
このような近年のゲーム機によって従来のゲームソフトを処理する場合、従来のゲームソフトのオリジナルのゲーム画像を単純に高解像度で拡大して表示すると、オリジナルのゲーム画像の画素数が少ないため、従来の低解像度状態がそのまま拡大された状態でモニタ34に表示される。このため、ジャギーが発生してしまい、ゲーム画像の見た目が良くないという問題があった。
【0056】
これを解決すべく、この実施例では、低解像度のゲーム画像を高解像度のゲーム画像に変換する場合には、従来のゲーム画像に適したジャギー補間処理や色強調処理を施すことにより、従来のゲーム画像の画質を向上させる。
【0057】
本実施例の処理の概要を説明すると次の通りである。まず、低解像度画像のゲーム画像を高解像度画像に変換して、フレームバッファ48に取り込む(図6参照)。そして、低解像度画像における各画素と当該画素に斜め方向に隣接する画素を比較する。その比較によって同一の画素値となる画素を第2の解像度で斜め方向にずらして半透明で重ねる(図7参照)。
【0058】
具体的には、CPU36およびGPU42等が協調動作して実現されるコンピュータ(以下の説明では単に「CPU36」として説明する)が図4および図5に示すゲーム全体処理を実行する。図4に示すように、CPU36は、ゲーム全体処理を開始すると、ステップS1で、ゲーム初期化処理を実行する。ここでは、仮想ゲームを最初から開始する場合には、メインメモリ40のバッファ領域、フレームバッファ48およびZバッファ50をクリアしたり、各フラグ(404c,404d)を初期設定したりする。たとえば、ジャギー補間フラグ404cおよび色強調フラグ404dは、プレイヤの設定に応じてオン/オフされる。
【0059】
続くステップS3では、ゲーム計算処理を実行する。たとえば、CPU36は、プレイヤオブジェクトの3次元位置をプレイヤの操作入力に従って更新したり、敵オブジェクトの3次元位置を更新したりする。また、必要に応じて、CPU36は、仮想カメラ(視点)を切り換える。次のステップS5では、フレームバッファ48に記憶されているゲーム画像を出力して、モニタ34にゲーム画面を表示させる。または、モニタ34に表示されたゲーム画面が更新される。
【0060】
そして、ステップS7では、ゲーム終了かどうかを判断する。ここでは、プレイヤがゲーム終了を指示したり、ゲームオーバになったりしたかどうかを判断する。ステップS7で“YES”であれば、つまりゲーム終了であれば、そのままゲーム全体処理を終了する。一方、ステップS7で“NO”でれば、つまりゲーム終了でなければ、ステップS9で、オリジナルのゲーム画像をフレームバッファ48に描画して、ステップS11に進む。つまり、ステップS9では、オリジナルのゲーム画像100を生成する。具体的には、図6(A)に示すように、オリジナルのゲーム画像100がフレームバッファ48に描画される。
【0061】
ここで、フレームバッファ48は、縦(LWY)×横(LWX)の大きさを有している。ただし、LWXおよびLWYは数値であり、その単位はドットである。したがって、フレームバッファ48は、その左上の頂点を原点O(0,0)とした場合に、原点O〜右下の頂点P(LWX−1,LWY−1)までの範囲の画像を記憶することができる。ただし、図面の右方向がX軸正方向であり、図面の下方向がY軸正方向である。以下、同じ。また、図6(A)からも分かるように、オリジナルのゲーム画像100は、原点O〜点Q(SWX−1,SWY−1)の範囲に記憶される。
【0062】
ただし、この実施例では、フレームバッファ48の大きさ(LWX×LWY)は、オリジナルのゲーム画像100の大きさ(SWX×SWY)の2×2倍である。つまり、数1に示す関係を有する。
【0063】
[数1]
LWX=SWX×2
LWY=SWY×2
図4に戻って、ステップS11では、ジャギー補間を行うかどうかを判断する。具体的には、CPU36は、ジャギー補間フラグ404cがオンであるかどうかを判断する。ステップS11で“NO”であれば、つまりオリジナルのゲーム画像100をジャギー補間なしで表示する場合には、そのままステップS3に戻る。一方、ステップS11で“YES”であれば、つまりオリジナルのゲーム画像100の解像度を2倍に拡大する際にジャギー補間を行って表示する場合には、ステップS13で、フレームバッファ48に描画したオリジナルのゲーム画像100をオリジナルテクスチャ404bとして、メインメモリ40に保存(一時記憶)する。オリジナルテクスチャ404bの画像サイズはゲーム画像100と同様、SWX×SWYであって、画像内の位置に関してテクスチャ座標(u,v)が、一般的には0.0〜1.0の範囲で定義される。
【0064】
続いて、ステップS15では、オリジナルテクスチャ404bを使用して、2倍のサイズになるように貼り付けて描画を行い(以下、「拡大ゲーム画像200」と呼ぶ。)、フレームバッファ48に記憶して、図5に示すステップS17に進む。図6(B)に示すように、拡大ゲーム画像200は、フレームバッファ48の原点O(0,0)から頂点P(LWX−1,LWY−1)の間に描画される。
【0065】
なお、オリジナルのゲーム画像100は、低解像度であり、少ないドットで描画されているため、図6(B)からも分かるように、オリジナルのゲーム画像100を単に拡大した場合には、ジャギーが顕著に現れる。つまり、単に拡大したオリジナルのゲーム画像100をゲーム画面として表示すると、見た目の悪いものとなってしまう。
【0066】
次に、ステップS17では、右下方向のジャギー補間処理を行う。ここでは、オリジナルテクスチャを、そのままのテクスチャ座標を用いたものと、斜め右下のテクセルを拾うようにずらしたテクスチャ座標とを用いたものとの2枚重ねにして、フレームバッファ座標(1,1)〜(LWX,LWY)の範囲に2倍のサイズで拡大描画する。具体的には、オリジナルテクスチャにおける、(0,0)〜(SWX−1,SWY−1)の領域に対応するテクスチャ座標と、(1,1)〜(SWX,SWY)の領域に対応するテクスチャ座標とを指定し、当該領域がそれぞれフレームバッファ座標の(1,1)〜(LWX,LWY)の範囲に貼り付けられるように描画を行う。なお、オリジナルテクスチャにおける座標値X=SWXまたはY=SWYの位置は、対応するテクスチャ座標uまたはvが1を超える範囲であって、画像の外側の領域であるので、当該部分の画像については、貼り付けが行われなかったり、隣接テクセルを貼り付けたり、テクスチャ貼り付けの際に適宜はみ出しに対応する処理が行われる。一方、貼り付け先のフレームバッファ48に対しても、テクスチャ画像がはみ出しているが、当該はみ出しについても、はみ出した部分は描画されないことになる。
【0067】
さらに、このとき、2枚重ねにしたテクスチャのテクセルの色が、同じ貼り付け位置において同じ画素値であるときにのみ、半透明で当該色のテクセルがフレームバッファ48の当該位置に、前記拡大ゲーム画像200に対して上書き描画され、それ以外の場合にはテクスチャの上書き描画は行われない。つまり、ステップS17において、実際にフレームバッファ48に描画されるのは、半透明のテクセルだけである。このような比較による貼り付け画素の選択は、テクスチャの貼り付けの際のオプションとして、GPU42に対する命令として与えることが可能なものであるので、本実施例においては、上記のような処理を行うことによって高速な処理を可能としている。
【0068】
上記のようなテクスチャの上書き描画処理を行うことによって、右下方向のジャギーを補間する場合には、以下のような画像が得られる。図7(A)および図7(B)において、1つの升目がフレームバッファ48の1画素を表し、オリジナルのゲーム画像100における1画素は、縦横それぞれ2倍に拡大して貼り付けられているため、図7の斜線部で示されるような4画素分の大きさとなり、この4画素分の領域をオリジナル画素と呼ぶこととする。図7(A)に示すように、右下方向に隣接する2つのオリジナル画素の色が同じ場合には、図7(B)に示すように、その間(中間)に半透明で当該色のテクセルが描画される。このような処理が、各オリジナル画素に関して実行されることにより、ゲーム画像の全体に渡って、右下方向のジャギーを低減することができる。
【0069】
ここで、具体的な右下方向のジャギー補間処理について説明する。図8(A)に示すように、フレームバッファ48の原点Oから所定の画素数だけ右斜め下に(この実施例では、縦(下)および横(右)に1画素(ドット))ずらして、フレームバッファ48と同じ大きさの矩形のポリゴンが描かれる。このポリゴンに、オリジナルテクスチャが2回、それぞれ2倍のサイズに拡大されるように重ねて貼り付けられる。ただし、2回の貼り付けについては、それぞれ異なるテクスチャ座標で指定される、同じテクスチャの異なる部分が貼り付けられる。
【0070】
図9(A)に示すように、一方の貼り付け処理では、そのままのテクスチャ座標でポリゴンに貼り付けられる。つまり、オリジナルテクスチャの左上の頂点がポリゴンの左上の頂点と一致するように、オリジナルテクスチャはポリゴンに貼り付けられる。また、図9(B)に示すように、他方の貼り付け処理では、テクスチャ座標を、1テクセル分右下にずらした位置を指定して貼り付けられる。つまり、オリジナルテクスチャの左上から1テクセル分右下にずれた位置が、ポリゴンの左上の頂点と一致するように、オリジナルテクスチャはポリゴンに貼り付けられる。
【0071】
この2枚のテクスチャを重ねたとき、同じ貼り付け位置で重なるテクセル同士の色が同じ場合に、対応するフレームバッファ48の位置(ドット)に、半透明で当該色のテクセルを描画する。上述したように、ポリゴンは、フレームバッファ48に対して右下に1ドットずらして描いているため、テクスチャの描画が、図7(B)のように、オリジナル画素同士の間の部分に対して行われ、右下方向のジャギー補間が施されるのである。したがって、図6(B)に示した拡大ゲーム画像200は、図10(A)に示すように変化される。
【0072】
図5に戻って、ステップS19では、右上方向のジャギー補間処理を行う。オリジナルテクスチャを、そのままテクスチャ座標と、斜め右上のテクセルを拾うようにずらしたテクスチャ座標との2枚重ねにして、フレームバッファ座標(1,−1)〜(LWX,LWY−2)の範囲に2倍のサイズで拡大描画する。ただし、このとき、2枚重ねにしたテクスチャのテクセルの色が同じドットのみが描画される。描画されるテクセルの色は半透明にされる。このステップS19の右上方向のジャギー補間処理は、ステップS17の右下方向のジャギー補間処理と画像のずらし方向以外については略同じであるため、簡単に説明することにする。
【0073】
この右上方向のジャギー補間処理では、図8(B)に示すように、フレームバッファ48に対して右斜め上向きに1ドットずらしてポリゴンが描かれる。このポリゴンに対して、オリジナルテクスチャが異なるテクスチャ座標で指定される範囲で2回貼り付けられるように重ねられる。一方の貼り付け処理では、そのままのテクスチャ座標で貼り付けられる。他方の貼り付け処理では、右上に1テクセル分ずらしたテクスチャ座標を指定して貼り付けられる。この2枚のテクスチャを重ねたとき、重なるテクセル同士の色が同じ場合に、対応するフレームバッファ48の位置(ドット)に、半透明で当該色のテクセルを上書き描画する。したがって、図10(A)に示した、右下方向のジャギー補間処理が施された拡大ゲーム画像200に、さらに右上方向のジャギー補間処理が施され、図10(B)に示すように、拡大ゲーム画像200は変化され、斜め方向のジャギーが軽減される。
【0074】
図5に戻って、ステップS21では、色強調するかどうかを判断する。ジャギー補間処理を行うと、図10(B)のようにジャギー部分がぼかされて滑らかになった画像が生成させるが、オリジナルのゲーム画像100がゲームのドット絵のように、1つだけの画素による点や、1画素分の幅しかない線で描画が行われている部分を含む画像の場合には、画像がぼかされることによって見えにくくなってしまう場合がある。そこで、必要に応じて当該部分のみをを強調するための色強調処理が行われる。具体的には、CPU36は、ユーザの必要に応じて設定されている色強調フラグ404dがオンであるかどうかを判断する。ステップS21で“NO”であれば、つまり色強調しない場合には、そのまま図4に示したステップS3に戻る。一方、ステップS21で“YES”であれば、つまり色強調する場合には、ステップS23で、色強調処理を行う。
【0075】
ステップS23の色強調処理においては、上記ステップS17やステップS19と同様の手法を用いて、上下左右にテクスチャ座標をずらした場合に重なるテクセルについて画素値が同一かどうか判定し、同一の場合に、当該位置にずらさないで貼り付けるオリジナルテクスチャのテクセルを所定の不透明度で上書き描画する。具体的には、フレームバッファ座標(0,0)〜(LWX−1,LWY−1)の範囲に対して、オリジナルテクスチャの(0,0)〜(SWX−1,SWY−1)の範囲、(0,1)〜(SWX−1,SWY)の範囲、(0,−1)〜(SWX−1,SWY−2)の範囲、(1,0)〜(SWX,SWY−1)の範囲、(−1,0)〜(SWX−2,SWY−1)の範囲にそれぞれ対応するテクスチャ座標を指定して、5回の貼り付け処理を行う。すなわち、オリジナルテクスチャを、そのまま2倍に拡大して張り付ける処理と、上下左右にそれぞれずらして貼り付ける処理が行われる。この際に、上のずらしたものと下にずらしたものとで、同じ貼り付け位置のテクセル同士の画素値を比較する。同様に左右にずらしたものについても比較する。上記比較の結果に応じた不透明度で、ずらさずにそのまま拡大したテクスチャの当該貼り付け位置のテクセルが上書き描画される。描画時の不透明度は、上記比較結果に応じて、例えば上下または左右のいずれかが同一の画素値の場合には不透明度α(たとえば、50%)とし、上下および左右がそれぞれ同一の画素値の場合には不透明度α+αとする。いずれの比較結果も同一の画素値とならなかった場合には不透明度は0とし、当該貼り付け箇所の画像は更新されない。
【0076】
つまり、図11に示すように、オリジナルのゲーム画像100において、着目するオリジナル画素に関して、その上下および左右の画素値をそれぞれ比較し、同一の画素値であった場合には、当該着目画素が、1画素の点または1画素分の幅の線であると判定されるので、当該オリジナル画素に対応する位置にテクセルを重ねて描画し、強調する。したがって、ステップS23の処理によって、所定の条件を満たす画像の色が強調され、図12に示すように、変化される。そして、ステップS5において、ジャギー補間および色強調された拡大ゲーム画像200がフレームバッファ48から読み出され、ゲーム画面がモニタ34に表示される。
【0077】
なお、厳密に言うと、図4および図5に示したステップS9,S13,S15,S17,S19およびS23の処理は、CPU36の指示に従って、GPU42によって実行される画像処理であって、上記のように表示する画像をテクスチャとして扱うことによって処理が高速に実行される。
【0078】
なお、上記実施例においては、3Dの画像処理が可能なGPU42を用いて効果的に処理を実行するため、3Dのテクスチャ貼り付け処理を用いて行ったが、2次元の画像処理によって処理を行う構成としてもよいことは言うまでも無い。
【0079】
この実施例によれば、ジャギー補間のみならず、補間を行うことによって色ぼけした部分を強調するので、ゲーム画面の画質を向上させることができる。つまり、画素数の少ないゲーム画像であっても、効果的にジャギーを低減させることができる。
【0080】
なお、この実施例では、ビデオゲーム装置とモニタとが別個独立に設けられたゲームシステムについて説明したが、モニタが一体的に設けられたゲーム装置にも適用できることは言うまでもない。
【0081】
また、この実施例では、解像度を2倍にするため、フレームバッファ48に対して右下方向のジャギー補間処理においては、右下方向に1ドットだけポリゴンをずらすようにした。これは、図7に示したように、1ドット右斜め下向きにずらした位置にジャギー補間のテクセルを描画するためである。したがって、たとえば、解像度を3倍にする場合には、図13(A)に示すように、補間するテクセルは、右下方向に1ドットだけずらして、または、図13(B)に示すように、右下方向に2ドットだけずらして、描画するようにすれば、ジャギー低減の効果が得られる。また、解像度を4倍にする場合には、図14に示すように、補間するテクセルは、右下方向に2ドットだけずらして描画すれば、右下方向に隣接する2つのテクセルの中間に、描画することができる。ただし、図示は省略するが、補間するテクセルは、右下方向に1ドットまたは3ドットずらして描画するようにしても、2つのテクセルの間をある程度補間することができる。右上方向のジャギー補間処理についても同様である。つまり、画像の解像度をn(2以上の整数)倍する場合には、補間する画素は、m(1≦m≦n−1)画素(ドット)ずらして描画するようにすればよい。
【図面の簡単な説明】
【0082】
【図1】図1はこの発明の実施例のゲームシステムを示す図解図である。
【図2】図2は図1に示すゲームシステムの電気的な構成を示すブロック図である。
【図3】図3は図2に示すメインメモリのメモリマップを示す図解図である。
【図4】図4は図2に示すCPUのゲーム全体処理の一部を示すフロー図である。
【図5】図5は図2に示すCPUのゲーム全体処理の他の一部であって、図4に後続するフロー図である。
【図6】図6はゲーム画像の解像度を2倍の解像度に変換する場合のオリジナルのゲーム画像および拡大ゲーム画像を示す図解図である。
【図7】図7は右下方向のジャギー補間を説明するための図解図である。
【図8】図8はジャギー補間する場合に、フレームバッファに対して描かれる、オリジナルテクスチャを貼り付けるためのポリゴンを示す図解図である。
【図9】図9はポリゴンにオリジナルテクスチャを貼り付けた様子を示す図解図である。
【図10】図10は右下方向のジャギー補間処理を施した後の拡大ゲーム画像と、さらに右上方向のジャギー補間処理を施した拡大画像とを示す図解図である。
【図11】図11は色強調処理を説明するための図解図である。
【図12】図12は図10に示した右上方向のジャギー補間処理を施した拡大画像に対して色強調処理を施した場合の変化を示す図解図である。
【図13】図13はゲーム画像の解像度を3倍の解像度に変換する場合の右下方向のジャギー補間処理を説明するための図解図である。
【図14】図14はゲーム画像の解像度を4倍の解像度に変換する場合の右下方向のジャギー補間処理を説明するための図解図である。
【符号の説明】
【0083】
10 …ゲームシステム
12 …ビデオゲーム装置
18 …光ディスク
22 …コントローラ
34 …モニタ
34a …スピーカ
36 …CPU
38 …メモリコントローラ
40 …メインメモリ
42 …GPU
52 …DSP
54 …ARAM
62 …オーディオI/F
【技術分野】
【0001】
この発明はゲーム画像処理プログラムおよびゲーム画像処理装置に関し、特にたとえば、ゲーム画像の解像度を変換して出力する、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来のこの種のゲーム画像処理装置の一例が特許文献1に開示される。この特許文献1には、ジャギーが生じている画像に対して構成画素数を増やす補間処理を行う際に、なるべくジャギーが生じないようにすることを目的として、以下のような画像データ補間方法が記載される。特許文献1の画素データ補間方法によれば、先工程で処理された画像データを補間処理の元画像データとして取得する元画像データ取得工程A1と、同画像データに基づいて各画素でエッジ方向を検出するエッジ方向検出工程A2と、エッジ方向い沿って当該エッジ部分を平滑化するエッジ平滑化工程A3と、この平滑化の後で本来の補間処理を実行する画素補間工程A4と、補間後の各画素データを次工程へ受け渡す画像データ出力工程A5を順次実行する。ただし、元画像は、スキャナ、デジタルスチルカメラ、ビデオカメラなどから入力されるような多階調の画像であり、出力する画像はカラープリンタなどに入力される高解像度の画像を対象としている。
【特許文献1】特開2000−123162号
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載の画像データ補間方法は、フィルタを用いてエッジを検出するものであり、或る程度階調が多く、エッジ部分の画素数の多い高解像度の画像に適用することを目的としている。したがって、この背景技術は、たとえばゲーム画像における、いわゆるドット絵のように特徴部分の画素数が少なく、1つ1つのドットによって画像の特徴が表現されているような画像に適用する場合には、エッジ方向の検出やエッジに対する平滑化を適切に行うことができず、良好な画像を得ることができないという問題がある。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲーム画像処理プログラムおよびゲーム画像処理装置を提供することである。
【0005】
また、この発明の他の目的は、ゲーム画像の解像度を高解像度に変換する際に、特徴部分の大きさが比較的小さな画像に対しても良好にジャギーを低減できる、ゲーム画像処理プログラムおよびゲーム画像処理装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
請求項1の発明は、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置のコンピュータで実行されるゲーム画像処理プログラムである。ゲーム画像処理プログラムは、解像度変換手段、比較手段、補間手段および出力手段として、コンピュータを機能させる。解像度変換手段は、第1の解像度の低解像度画像を第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。出力手段は、補間手段によって更新された高解像度画像を出力する。
【0008】
請求項1の発明では、ゲーム画像処理プログラムは、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置(12)のコンピュータ(36,42)で実行される。このゲーム画像処理プログラムは、コンピュータを、解像度変換手段(36,42,S9,S11,S13)、比較手段(36,42,S17,S19)、補間手段(36,42,S17,S19)、および出力手段(36,42,62,S5)として機能させる。解像度変換手段は、第1の解像度の低解像度画像(100)を第2の解像度になるように変換した高解像度画像(200)を生成し、記憶手段(40,404)に記憶させる。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値(同じ色)となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。たとえば、解像度を2倍に変換する場合には、m=1に設定され、半透明の画素を含む画像は1画素分ずらして高解像度画像に重ねられる。また、たとえば、解像度を3倍にする場合には、m=1,2に設定され、半透明の画素を含む画像は1画素分または2画素分ずらして高解像度画像に重ねられる。したがって、ジャギーが低減される。出力手段は、補間手段によって更新された高解像度画像をゲーム画面として出力する。
【0009】
請求項1の発明によれば、高解像度画像に変換した後、斜め方向に隣接する画素の間に画素を補間するので、画素数の少ないゲーム画像であってもジャギーを低減して、ゲーム画面を見易くすることができる。つまり、ゲーム画像の解像度を良好に変換することができる。
【0010】
請求項2の発明は請求項1に従属し、比較手段は、任意の画素と当該画素の右下に隣接する画素との画素値を比較する第1の画素値比較手段と、任意の画素と当該画素の右上に隣接する画素との画素値を比較する第2の画素値比較手段とを含み、補間手段は、第1の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右下方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第1の画素補間手段と、第2の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右上方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第2の画素補間手段とを含む。
【0011】
請求項2の発明では、第1の画素比較手段(36,42,S17)は、任意の画素と当該画素の右下に隣接する画素との画素値を比較する。第2の画素比較手段(36,42,S19)は、任意の画素と当該画素の右上に隣接する画素との画素値を比較する。第1の画素補間手段(36,42,S17)は、第1の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該が素に対応する高解像度画像の画素の右下方向にm画素分ずらして半透明で重ねることによって、当該高解像度画像を更新する。つまり、右下方向のジャギー補間処理が施される。また、同様に、第2の画素補間手段(36,42,S19)は、第2の画素値比較手段における比較結果が同一画素値となる画素を、第2の解像度で、当該画素に対応する高解像度画像の画素の右上方向にm画素分ずらして半透明で重ねることによって当該高解像度画像を更新する。つまり、右上方向のジャギー補間処理が施される。
【0012】
請求項2の発明によれば、右下方向および右上方向のジャギーを低減することができる。つまり、ゲーム画像の全体に渡ってジャギーが低減される。
【0013】
請求項3の発明は請求項1または2に従属し、ゲーム画像処理プログラムは、コンピュータを、低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する第3の画素値比較手段、および第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、第2の解像度で、当該画素を当該画素に対応する高解像度画像に半透明で重ねることによって当該高解像度画像を更新する第3の画素値補間手段としてさらに機能させる。
【0014】
請求項3の発明では、第3の画素値比較手段(36,42,S23)は、低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する。第3の画素値補間手段(36,42,S23)は、第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、第2の解像度で、当該画素を当該画素に対応する高解像度画像に半透明で重ねることによって当該高解像度画像を更新する。たとえば、上下または左右の一方が同一画素値である場合には、不透明度を50%に設定し、上下および左右の両方が同一画素値である場合には、不透明度を100%に設定し、上下および左右の両方が同一画素値でない場合には、不透明度を0%に設定する。ただし、上下および左右の両方が同一画素値でない場合には、何ら画素を描画しない。
【0015】
請求項3の発明によれば、1点や1本の線で表される特徴部分がぼけて見え難くなるのを防止することができる。つまり、色を強調して、見易くすることができる。
【0016】
請求項4の発明は、請求項1ないし請求項3のいずれかに記載のゲーム画像処理プログラムを記録した記録媒体である。
【0017】
請求項4の発明では、上述のゲーム画像処理プログラムは、記録媒体(18)に記録され、この記録媒体からゲーム画像処理装置にロードされる。
【0018】
請求項4の発明においても、請求項1の発明と同様に、画素数の少ないゲーム画像であってもジャギー補間して、ゲーム画面を見易くすることができる。
【0019】
請求項5の発明は、第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置である。このゲーム画像処理装置は、変換手段、記憶手段、比較手段、補間手段、および出力手段を備える。解像度変換手段は、第1の解像度の低解像度画像を第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる。記憶手段は、高解像度画像を記憶する。比較手段は、低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する。補間手段は、比較手段における比較結果が同一画素値となる画素を第2の解像度で、当該画素に対応する高解像度画像の画素の斜め方向にm(1≦m≦n−1)画素分ずらしかつ半透明で重ねることによって当該高解像度画像を更新する。出力手段は、補間手段によって更新された高解像度画像を出力する。
【0020】
請求項5の発明においても、請求項1の発明と同様に、画素数の少ないゲーム画像であってもジャギー補間して、ゲーム画面を見易くすることができる。
【発明の効果】
【0021】
この発明によれば、画素数の少ないゲーム画像であってもジャギーを低減して、ゲーム画面を見易くすることができる。つまり、ゲーム画像の解像度を良好に変換することができる。
【0022】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0023】
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置12を含む。ビデオゲーム装置12は、ハウジング14を含み、ハウジング14の上端には光ディスクドライブ16が設けられる。光ディスクドライブ16には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が装着される。ハウジング14の前面には複数の(実施例では4つの)コネクタ20が設けられる。これらコネクタ20は、ケーブル24によって、コントローラ22をビデオゲーム装置12に接続するためのものであり、この実施例では最大4つのコントローラ22をビデオゲーム装置12に接続することができる。
【0024】
コントローラ22には、その上面,下面,或いは側面などに、操作部(操作スイッチ)26が設けられる。操作部26は、たとえば2つのアナログジョイスティック,1つの十字キー,複数のボタンスイッチ等を含む。1つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤオブジェクト(プレイヤがコントローラ22によって操作可能な動画オブジェクト)の移動方向および/または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動等を制御するために用いられる。十字スイッチは、アナログジョイスティックに代えてプレイヤオブジェクトの移動方向等を指示するために用いられる。ボタンスイッチは、プレイヤオブジェクトの動作を指示するために利用されたり、3次元画像の仮想カメラの視点を切り換えたり、プレイヤオブジェクトの移動スピード調節等に用いられたりする。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動等の制御に用いられる。
【0025】
なお、この実施例ではコントローラ22がそれと一体的に設けられるケーブル24によってビデオゲーム装置12に接続された。しかしながら、コントローラ22は、他の方法、たとえば電磁波(たとえば電波または赤外線)を介してワイヤレスで、ビデオゲーム装置12に接続されてもよい。また、コントローラ22の操作部26の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは1つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
【0026】
ビデオゲーム装置12のハウジング14の前面であり、コネクタ20の下方には、1つまたは複数の(この実施例では2つの)メモリスロット28が設けられる。このメモリスロット28にはメモリカード30が挿入される。メモリカード30は、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。
【0027】
ビデオゲーム装置12のハウジング14の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル32を通してビデオゲーム装置12にモニタ34を接続する。このモニタ34は典型的にはカラーテレビジョン受像機であり、AVケーブル32は、ビデオゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)のビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【0028】
このゲームシステム10において、ユーザまたはゲームプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずビデオゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク18を選択し、その光ディスク18をビデオゲーム装置12のディスクドライブ16にローディングする。応じて、ビデオゲーム装置12がその光ディスク18にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、操作部26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部26の他のものを動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
【0029】
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。ビデオゲーム装置12には、中央処理ユニット(以下、「CPU」という。)36が設けられる。このCPU36は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置12の全体的な制御を担当する。CPU36ないしコンピュータは、ゲームプロセサとして機能し、このCPU36には、バスを介して、メモリコントローラ38が接続される。メモリコントローラ38は主として、CPU36の制御の下で、バスを介して接続されるメインメモリ40の書込みや読出しを制御する。このメモリコントローラ38にはGPU(Graphics Processing Unit) 42が接続される。
【0030】
GPU42は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ38を介してCPU36からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット44およびレンダリングユニット46によって3Dのゲーム画像を生成する。つまり、ジオメトリユニット44は、3次元座標系の各種オブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット46は、各種オブジェクトの各ポリゴンにテクスチャを貼り付けるなどの画像生成処理を施す。したがって、GPU42によって、ゲーム画面上に表示すべき3D画像データが作成され、その画像データがフレームバッファ48内に記憶される。2Dゲームを実行する際には、ゲーム処理によって生成された2次元画像をテクスチャとして、ゲーム空間内の所定位置の矩形領域に貼り付け、当該領域を所定の仮想カメラから見た画像をフレームバッファ48に記憶することによって、3D処理によって2Dゲーム画像を表示することが可能である。
【0031】
なお、GPU42が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU42がメモリコントローラ38を介して、メインメモリ40から入手する。
【0032】
フレームバッファ48は、たとえばラスタスキャンモニタ34の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU42によって1フレーム毎に書き換えられる。具体的には、フレームバッファ48は、1画素(ピクセル)毎に、画像の色情報(画素値)を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのAデータである。なお、Aデータは、いわゆるアルファデータやマスクデータとして利用されるデータであり、本実施例ではアルファチャンネルすなわち透明から不透明までの透明度を表すために当該ピクセルに重ねる色とのブレンド率を示すデータとして利用される。後述のビデオI/F58がメモリコントローラ38を介してフレームバッファ48のデータを読み出すことによって、モニタ34の画面上に3Dのゲーム画像が表示される。
【0033】
また、Zバッファ50は、フレームバッファ48に対応する画素数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ48の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
【0034】
なお、フレームバッファ48およびZバッファ50は、ともにメインメモリ40の一部を用いて構成されてもよく、また、これらはGPU42の内部に設けられてもよい。
【0035】
メモリコントローラ38はまた、DSP(Digital Signal Processor)52を介して、オーディオ用のRAM(以下、「ARAM」という。)54に接続される。したがって、メモリコントローラ38は、メインメモリ40だけでなく、サブメモリとしてのARAM54の書込みおよび/または読出しを制御する。
【0036】
DSP52は、サウンドプロセサとして働き、メインメモリ40に記憶されたサウンドデータ(図示せず)を用いたり、ARAM54に書き込まれている音波形データ(図示せず)を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【0037】
メモリコントローラ38は、さらに、バスによって、各インタフェース(I/F)56,58,60,62および64に接続される。コントローラI/F56は、ビデオゲーム装置12に接続されるコントローラ22のためのインタフェースであり、コントローラ22の操作部26の操作信号または操作データを、メモリコントローラ38を通してCPU36に与える。ビデオI/F58は、フレームバッファ48にアクセスし、GPU42で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル32(図1)を介してモニタ34に与える。
【0038】
外部メモリI/F60は、ビデオゲーム装置12の前面に挿入されるメモリカード30(図1)をメモリコントローラ38に連係させる。それによって、メモリコントローラ38を介して、CPU36がこのメモリカード30にデータを書込み、またはメモリカード30からデータを読み出すことができる。オーディオI/F62は、メモリコントローラ38を通してDSP52から与えられるオーディオデータまたは光ディスク18から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ34のスピーカ34aに与える。
【0039】
そして、ディスクI/F64は、ディスクドライブ16をメモリコントローラ38に接続し、したがって、CPU36がディスクドライブ16を制御する。このディスクドライブ16によって光ディスク18から読み出されたプログラムデータやテクスチャデータ等が、CPU36の制御の下で、メインメモリ40に書き込まれる。
【0040】
図3は、図2に示したメインメモリ40のメモリマップの例である。この図3を参照して、メインメモリ40は、プログラム記憶領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、ゲームプログラムが記憶され、このゲームプログラムは、ゲームメイン処理プログラム402a、画像生成プログラム402b、ジャギー補間プログラム402c、色強調プログラム402dおよび画像表示プログラム402eなどで構成される。なお、画像生成プログラム402b、ジャギー補間プログラム402cおよび色強調プログラム402dなどによって、ゲーム画像処理プログラムが構成される。
【0041】
ゲームメイン処理プログラム402aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム402bは、後述する画像データ404aを用いて、仮想ゲームに登場するプレイヤオブジェクトや敵オブジェクトのような動画オブジェクト、アイテムオブジェクトまたは背景オブジェクトなどを含むゲーム画像を生成するためのプログラムである。
【0042】
ジャギー補間プログラム402cは、ゲーム画像の解像度を所定倍例えば2倍にする場合に、元の画像(オリジナルのゲーム画像)についての任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値(この実施例では、色)が一致する部分の画素の解像度を2倍(すなわち、1画素を4画素にする)に変換して、その画素(4画素分)に対応するフレームバッファ48に描画された高解像度画像の画素(4画素分)に半透明でありかつずらして重ねて描画するためのプログラムである。なお、以下の説明において低解像度の画像を高解像度の画像に単に変換することを画像を拡大という。また、具体的なジャギー補間(右下方向ジャギー補間、右上方向ジャギー補間)処理については、後で詳細に説明する。
【0043】
なお、本実施例においては解像度を2倍にする例について説明するが、本願発明では所定倍であればよく、2倍以上の倍率で変換を行う場合であっても本発明を適用することができる。
【0044】
色強調プログラム402dは、ゲーム画像の解像度を2倍の解像度に変換する場合に、オリジナルのゲーム画像の各画素の上下および左右に隣接する画素の色が同じであるか否かをそれぞれ比較し、同じ色となる画素の解像度を2倍に変換し、高解像度画像の対応する画素に半透明で重ねて描画するためのプログラムである。具体的な色強調処理については、後で詳細に説明する。
【0045】
画像表示プログラム402eは、画像生成プログラム402bに従って生成されたオリジナルのゲーム画像、または、ゲーム画像を2倍に拡大してジャギー補間および色強調を施された画面、或いは、ゲーム画像を2倍に拡大してジャギー補間のみを施された画面を、モニタ34に表示するためのプログラムである。
【0046】
なお、図示は省略するが、プログラム記憶領域402には、音出力プログラムやバックアッププログラムなども記憶される。音出力プログラムは、BGM、プレイヤオブジェクトの音声(擬声音)または効果音など、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、ゲームデータ(ゲームの途中データや結果データ)をメモリカード30に保存するためのプログラムである。
【0047】
データ記憶領域404には、画像データ404a、オリジナルテクスチャ404b、ジャギー補間フラグ404cおよび色強調フラグ404dなどが記憶される。
【0048】
画像データ404aは、ゲーム画像を生成するためのデータ(ポリゴン、テクスチャなど)である。オリジナルテクスチャ404bは、ゲーム画像の解像度を2倍に変換する場合に、つまり低解像度画像を高解像度画像に変換する場合に、当該オリジナルのゲーム画像をテクスチャとしたものである。
【0049】
ジャギー補間フラグ404cは、ジャギー補間処理を施すか否かを判別するためのフラグである。たとえば、ジャギー補間フラグ404cは、1ビットのレジスタで構成され、当該フラグがオン(成立)されると、レジスタにデータ値「1」が設定され、当該フラグがオフ(不成立)されると、レジスタにデータ値「0」が設定される。ただし、ジャギー補間フラグ404cは、ジャギー補間処理を施す場合にオンされ、ジャギー補間処理を施さない場合にはオフされる。
【0050】
色強調フラグ404dは、色強調の処理を施すか否かを判別するためのフラグである。この色強調フラグ404dもまた、1ビットのレジスタで構成され、当該フラグがオンされると、レジスタにデータ値「1」が設定され、当該フラグがオフされると、レジスタにデータ値「0」が設定される。ただし、色強調フラグ404dは、色強調処理を施す場合にオンされ、色強調処理を施さない場合にはオフされる。また、この実施例では、色強調処理は、ジャギー補間処理が施された場合にのみ実行されるため、ジャギー補間フラグ404cがオフされると、色強調フラグ404dもオフされる。
【0051】
なお、詳細な説明は省略するが、ジャギー補間処理および色強調処理を実行するか否か、または、ジャギー補間処理のみを実行するか否かはプレイヤが必要に応じて設定することができる。したがって、プレイヤの設定に応じて、ジャギー補間フラグ404cおよび色強調フラグ404dがオン/オフされる。
【0052】
また、図示は省略するが、データ記憶領域404には、ゲームデータや音データが記憶されたり、他のフラグが記憶されたりする。
【0053】
このような構成のシステム10(ビデオゲーム装置12)では、従来のゲーム機用のゲームソフトをエミュレータなどによってそのまま実行したり、また或いはストーリなどの一部を改変したリメイクソフトによってプレイしたりすることができる。従来のゲーム機例えばファミリーコンピュータ(登録商標)やスーパーファミコン(登録商標)やゲームボーイ(登録商標)などは、CPUやGPUなどのハードウェアの性能が低かったので、これら用のゲームソフトでは、オブジェクトが例えばテレビの走査線数よりも低い低解像度(少ない画素数)のドット絵で描画されていた。また、従来はテレビ画面も小さかったため低解像度の画像であっても見た目もあまり気にならなかった。
【0054】
一方、近年ではテレビが大型化しているとともに本ビデオゲーム装置12のような近年のゲーム装置はリッチなCPUやGPUなどのハードウェアを積んでいるため、テレビの走査線数に対して十分に高解像度のオブジェクトを描画しても、ゲーム処理に遅延が発生するなどの不都合は生じなくなっている。
【0055】
このような近年のゲーム機によって従来のゲームソフトを処理する場合、従来のゲームソフトのオリジナルのゲーム画像を単純に高解像度で拡大して表示すると、オリジナルのゲーム画像の画素数が少ないため、従来の低解像度状態がそのまま拡大された状態でモニタ34に表示される。このため、ジャギーが発生してしまい、ゲーム画像の見た目が良くないという問題があった。
【0056】
これを解決すべく、この実施例では、低解像度のゲーム画像を高解像度のゲーム画像に変換する場合には、従来のゲーム画像に適したジャギー補間処理や色強調処理を施すことにより、従来のゲーム画像の画質を向上させる。
【0057】
本実施例の処理の概要を説明すると次の通りである。まず、低解像度画像のゲーム画像を高解像度画像に変換して、フレームバッファ48に取り込む(図6参照)。そして、低解像度画像における各画素と当該画素に斜め方向に隣接する画素を比較する。その比較によって同一の画素値となる画素を第2の解像度で斜め方向にずらして半透明で重ねる(図7参照)。
【0058】
具体的には、CPU36およびGPU42等が協調動作して実現されるコンピュータ(以下の説明では単に「CPU36」として説明する)が図4および図5に示すゲーム全体処理を実行する。図4に示すように、CPU36は、ゲーム全体処理を開始すると、ステップS1で、ゲーム初期化処理を実行する。ここでは、仮想ゲームを最初から開始する場合には、メインメモリ40のバッファ領域、フレームバッファ48およびZバッファ50をクリアしたり、各フラグ(404c,404d)を初期設定したりする。たとえば、ジャギー補間フラグ404cおよび色強調フラグ404dは、プレイヤの設定に応じてオン/オフされる。
【0059】
続くステップS3では、ゲーム計算処理を実行する。たとえば、CPU36は、プレイヤオブジェクトの3次元位置をプレイヤの操作入力に従って更新したり、敵オブジェクトの3次元位置を更新したりする。また、必要に応じて、CPU36は、仮想カメラ(視点)を切り換える。次のステップS5では、フレームバッファ48に記憶されているゲーム画像を出力して、モニタ34にゲーム画面を表示させる。または、モニタ34に表示されたゲーム画面が更新される。
【0060】
そして、ステップS7では、ゲーム終了かどうかを判断する。ここでは、プレイヤがゲーム終了を指示したり、ゲームオーバになったりしたかどうかを判断する。ステップS7で“YES”であれば、つまりゲーム終了であれば、そのままゲーム全体処理を終了する。一方、ステップS7で“NO”でれば、つまりゲーム終了でなければ、ステップS9で、オリジナルのゲーム画像をフレームバッファ48に描画して、ステップS11に進む。つまり、ステップS9では、オリジナルのゲーム画像100を生成する。具体的には、図6(A)に示すように、オリジナルのゲーム画像100がフレームバッファ48に描画される。
【0061】
ここで、フレームバッファ48は、縦(LWY)×横(LWX)の大きさを有している。ただし、LWXおよびLWYは数値であり、その単位はドットである。したがって、フレームバッファ48は、その左上の頂点を原点O(0,0)とした場合に、原点O〜右下の頂点P(LWX−1,LWY−1)までの範囲の画像を記憶することができる。ただし、図面の右方向がX軸正方向であり、図面の下方向がY軸正方向である。以下、同じ。また、図6(A)からも分かるように、オリジナルのゲーム画像100は、原点O〜点Q(SWX−1,SWY−1)の範囲に記憶される。
【0062】
ただし、この実施例では、フレームバッファ48の大きさ(LWX×LWY)は、オリジナルのゲーム画像100の大きさ(SWX×SWY)の2×2倍である。つまり、数1に示す関係を有する。
【0063】
[数1]
LWX=SWX×2
LWY=SWY×2
図4に戻って、ステップS11では、ジャギー補間を行うかどうかを判断する。具体的には、CPU36は、ジャギー補間フラグ404cがオンであるかどうかを判断する。ステップS11で“NO”であれば、つまりオリジナルのゲーム画像100をジャギー補間なしで表示する場合には、そのままステップS3に戻る。一方、ステップS11で“YES”であれば、つまりオリジナルのゲーム画像100の解像度を2倍に拡大する際にジャギー補間を行って表示する場合には、ステップS13で、フレームバッファ48に描画したオリジナルのゲーム画像100をオリジナルテクスチャ404bとして、メインメモリ40に保存(一時記憶)する。オリジナルテクスチャ404bの画像サイズはゲーム画像100と同様、SWX×SWYであって、画像内の位置に関してテクスチャ座標(u,v)が、一般的には0.0〜1.0の範囲で定義される。
【0064】
続いて、ステップS15では、オリジナルテクスチャ404bを使用して、2倍のサイズになるように貼り付けて描画を行い(以下、「拡大ゲーム画像200」と呼ぶ。)、フレームバッファ48に記憶して、図5に示すステップS17に進む。図6(B)に示すように、拡大ゲーム画像200は、フレームバッファ48の原点O(0,0)から頂点P(LWX−1,LWY−1)の間に描画される。
【0065】
なお、オリジナルのゲーム画像100は、低解像度であり、少ないドットで描画されているため、図6(B)からも分かるように、オリジナルのゲーム画像100を単に拡大した場合には、ジャギーが顕著に現れる。つまり、単に拡大したオリジナルのゲーム画像100をゲーム画面として表示すると、見た目の悪いものとなってしまう。
【0066】
次に、ステップS17では、右下方向のジャギー補間処理を行う。ここでは、オリジナルテクスチャを、そのままのテクスチャ座標を用いたものと、斜め右下のテクセルを拾うようにずらしたテクスチャ座標とを用いたものとの2枚重ねにして、フレームバッファ座標(1,1)〜(LWX,LWY)の範囲に2倍のサイズで拡大描画する。具体的には、オリジナルテクスチャにおける、(0,0)〜(SWX−1,SWY−1)の領域に対応するテクスチャ座標と、(1,1)〜(SWX,SWY)の領域に対応するテクスチャ座標とを指定し、当該領域がそれぞれフレームバッファ座標の(1,1)〜(LWX,LWY)の範囲に貼り付けられるように描画を行う。なお、オリジナルテクスチャにおける座標値X=SWXまたはY=SWYの位置は、対応するテクスチャ座標uまたはvが1を超える範囲であって、画像の外側の領域であるので、当該部分の画像については、貼り付けが行われなかったり、隣接テクセルを貼り付けたり、テクスチャ貼り付けの際に適宜はみ出しに対応する処理が行われる。一方、貼り付け先のフレームバッファ48に対しても、テクスチャ画像がはみ出しているが、当該はみ出しについても、はみ出した部分は描画されないことになる。
【0067】
さらに、このとき、2枚重ねにしたテクスチャのテクセルの色が、同じ貼り付け位置において同じ画素値であるときにのみ、半透明で当該色のテクセルがフレームバッファ48の当該位置に、前記拡大ゲーム画像200に対して上書き描画され、それ以外の場合にはテクスチャの上書き描画は行われない。つまり、ステップS17において、実際にフレームバッファ48に描画されるのは、半透明のテクセルだけである。このような比較による貼り付け画素の選択は、テクスチャの貼り付けの際のオプションとして、GPU42に対する命令として与えることが可能なものであるので、本実施例においては、上記のような処理を行うことによって高速な処理を可能としている。
【0068】
上記のようなテクスチャの上書き描画処理を行うことによって、右下方向のジャギーを補間する場合には、以下のような画像が得られる。図7(A)および図7(B)において、1つの升目がフレームバッファ48の1画素を表し、オリジナルのゲーム画像100における1画素は、縦横それぞれ2倍に拡大して貼り付けられているため、図7の斜線部で示されるような4画素分の大きさとなり、この4画素分の領域をオリジナル画素と呼ぶこととする。図7(A)に示すように、右下方向に隣接する2つのオリジナル画素の色が同じ場合には、図7(B)に示すように、その間(中間)に半透明で当該色のテクセルが描画される。このような処理が、各オリジナル画素に関して実行されることにより、ゲーム画像の全体に渡って、右下方向のジャギーを低減することができる。
【0069】
ここで、具体的な右下方向のジャギー補間処理について説明する。図8(A)に示すように、フレームバッファ48の原点Oから所定の画素数だけ右斜め下に(この実施例では、縦(下)および横(右)に1画素(ドット))ずらして、フレームバッファ48と同じ大きさの矩形のポリゴンが描かれる。このポリゴンに、オリジナルテクスチャが2回、それぞれ2倍のサイズに拡大されるように重ねて貼り付けられる。ただし、2回の貼り付けについては、それぞれ異なるテクスチャ座標で指定される、同じテクスチャの異なる部分が貼り付けられる。
【0070】
図9(A)に示すように、一方の貼り付け処理では、そのままのテクスチャ座標でポリゴンに貼り付けられる。つまり、オリジナルテクスチャの左上の頂点がポリゴンの左上の頂点と一致するように、オリジナルテクスチャはポリゴンに貼り付けられる。また、図9(B)に示すように、他方の貼り付け処理では、テクスチャ座標を、1テクセル分右下にずらした位置を指定して貼り付けられる。つまり、オリジナルテクスチャの左上から1テクセル分右下にずれた位置が、ポリゴンの左上の頂点と一致するように、オリジナルテクスチャはポリゴンに貼り付けられる。
【0071】
この2枚のテクスチャを重ねたとき、同じ貼り付け位置で重なるテクセル同士の色が同じ場合に、対応するフレームバッファ48の位置(ドット)に、半透明で当該色のテクセルを描画する。上述したように、ポリゴンは、フレームバッファ48に対して右下に1ドットずらして描いているため、テクスチャの描画が、図7(B)のように、オリジナル画素同士の間の部分に対して行われ、右下方向のジャギー補間が施されるのである。したがって、図6(B)に示した拡大ゲーム画像200は、図10(A)に示すように変化される。
【0072】
図5に戻って、ステップS19では、右上方向のジャギー補間処理を行う。オリジナルテクスチャを、そのままテクスチャ座標と、斜め右上のテクセルを拾うようにずらしたテクスチャ座標との2枚重ねにして、フレームバッファ座標(1,−1)〜(LWX,LWY−2)の範囲に2倍のサイズで拡大描画する。ただし、このとき、2枚重ねにしたテクスチャのテクセルの色が同じドットのみが描画される。描画されるテクセルの色は半透明にされる。このステップS19の右上方向のジャギー補間処理は、ステップS17の右下方向のジャギー補間処理と画像のずらし方向以外については略同じであるため、簡単に説明することにする。
【0073】
この右上方向のジャギー補間処理では、図8(B)に示すように、フレームバッファ48に対して右斜め上向きに1ドットずらしてポリゴンが描かれる。このポリゴンに対して、オリジナルテクスチャが異なるテクスチャ座標で指定される範囲で2回貼り付けられるように重ねられる。一方の貼り付け処理では、そのままのテクスチャ座標で貼り付けられる。他方の貼り付け処理では、右上に1テクセル分ずらしたテクスチャ座標を指定して貼り付けられる。この2枚のテクスチャを重ねたとき、重なるテクセル同士の色が同じ場合に、対応するフレームバッファ48の位置(ドット)に、半透明で当該色のテクセルを上書き描画する。したがって、図10(A)に示した、右下方向のジャギー補間処理が施された拡大ゲーム画像200に、さらに右上方向のジャギー補間処理が施され、図10(B)に示すように、拡大ゲーム画像200は変化され、斜め方向のジャギーが軽減される。
【0074】
図5に戻って、ステップS21では、色強調するかどうかを判断する。ジャギー補間処理を行うと、図10(B)のようにジャギー部分がぼかされて滑らかになった画像が生成させるが、オリジナルのゲーム画像100がゲームのドット絵のように、1つだけの画素による点や、1画素分の幅しかない線で描画が行われている部分を含む画像の場合には、画像がぼかされることによって見えにくくなってしまう場合がある。そこで、必要に応じて当該部分のみをを強調するための色強調処理が行われる。具体的には、CPU36は、ユーザの必要に応じて設定されている色強調フラグ404dがオンであるかどうかを判断する。ステップS21で“NO”であれば、つまり色強調しない場合には、そのまま図4に示したステップS3に戻る。一方、ステップS21で“YES”であれば、つまり色強調する場合には、ステップS23で、色強調処理を行う。
【0075】
ステップS23の色強調処理においては、上記ステップS17やステップS19と同様の手法を用いて、上下左右にテクスチャ座標をずらした場合に重なるテクセルについて画素値が同一かどうか判定し、同一の場合に、当該位置にずらさないで貼り付けるオリジナルテクスチャのテクセルを所定の不透明度で上書き描画する。具体的には、フレームバッファ座標(0,0)〜(LWX−1,LWY−1)の範囲に対して、オリジナルテクスチャの(0,0)〜(SWX−1,SWY−1)の範囲、(0,1)〜(SWX−1,SWY)の範囲、(0,−1)〜(SWX−1,SWY−2)の範囲、(1,0)〜(SWX,SWY−1)の範囲、(−1,0)〜(SWX−2,SWY−1)の範囲にそれぞれ対応するテクスチャ座標を指定して、5回の貼り付け処理を行う。すなわち、オリジナルテクスチャを、そのまま2倍に拡大して張り付ける処理と、上下左右にそれぞれずらして貼り付ける処理が行われる。この際に、上のずらしたものと下にずらしたものとで、同じ貼り付け位置のテクセル同士の画素値を比較する。同様に左右にずらしたものについても比較する。上記比較の結果に応じた不透明度で、ずらさずにそのまま拡大したテクスチャの当該貼り付け位置のテクセルが上書き描画される。描画時の不透明度は、上記比較結果に応じて、例えば上下または左右のいずれかが同一の画素値の場合には不透明度α(たとえば、50%)とし、上下および左右がそれぞれ同一の画素値の場合には不透明度α+αとする。いずれの比較結果も同一の画素値とならなかった場合には不透明度は0とし、当該貼り付け箇所の画像は更新されない。
【0076】
つまり、図11に示すように、オリジナルのゲーム画像100において、着目するオリジナル画素に関して、その上下および左右の画素値をそれぞれ比較し、同一の画素値であった場合には、当該着目画素が、1画素の点または1画素分の幅の線であると判定されるので、当該オリジナル画素に対応する位置にテクセルを重ねて描画し、強調する。したがって、ステップS23の処理によって、所定の条件を満たす画像の色が強調され、図12に示すように、変化される。そして、ステップS5において、ジャギー補間および色強調された拡大ゲーム画像200がフレームバッファ48から読み出され、ゲーム画面がモニタ34に表示される。
【0077】
なお、厳密に言うと、図4および図5に示したステップS9,S13,S15,S17,S19およびS23の処理は、CPU36の指示に従って、GPU42によって実行される画像処理であって、上記のように表示する画像をテクスチャとして扱うことによって処理が高速に実行される。
【0078】
なお、上記実施例においては、3Dの画像処理が可能なGPU42を用いて効果的に処理を実行するため、3Dのテクスチャ貼り付け処理を用いて行ったが、2次元の画像処理によって処理を行う構成としてもよいことは言うまでも無い。
【0079】
この実施例によれば、ジャギー補間のみならず、補間を行うことによって色ぼけした部分を強調するので、ゲーム画面の画質を向上させることができる。つまり、画素数の少ないゲーム画像であっても、効果的にジャギーを低減させることができる。
【0080】
なお、この実施例では、ビデオゲーム装置とモニタとが別個独立に設けられたゲームシステムについて説明したが、モニタが一体的に設けられたゲーム装置にも適用できることは言うまでもない。
【0081】
また、この実施例では、解像度を2倍にするため、フレームバッファ48に対して右下方向のジャギー補間処理においては、右下方向に1ドットだけポリゴンをずらすようにした。これは、図7に示したように、1ドット右斜め下向きにずらした位置にジャギー補間のテクセルを描画するためである。したがって、たとえば、解像度を3倍にする場合には、図13(A)に示すように、補間するテクセルは、右下方向に1ドットだけずらして、または、図13(B)に示すように、右下方向に2ドットだけずらして、描画するようにすれば、ジャギー低減の効果が得られる。また、解像度を4倍にする場合には、図14に示すように、補間するテクセルは、右下方向に2ドットだけずらして描画すれば、右下方向に隣接する2つのテクセルの中間に、描画することができる。ただし、図示は省略するが、補間するテクセルは、右下方向に1ドットまたは3ドットずらして描画するようにしても、2つのテクセルの間をある程度補間することができる。右上方向のジャギー補間処理についても同様である。つまり、画像の解像度をn(2以上の整数)倍する場合には、補間する画素は、m(1≦m≦n−1)画素(ドット)ずらして描画するようにすればよい。
【図面の簡単な説明】
【0082】
【図1】図1はこの発明の実施例のゲームシステムを示す図解図である。
【図2】図2は図1に示すゲームシステムの電気的な構成を示すブロック図である。
【図3】図3は図2に示すメインメモリのメモリマップを示す図解図である。
【図4】図4は図2に示すCPUのゲーム全体処理の一部を示すフロー図である。
【図5】図5は図2に示すCPUのゲーム全体処理の他の一部であって、図4に後続するフロー図である。
【図6】図6はゲーム画像の解像度を2倍の解像度に変換する場合のオリジナルのゲーム画像および拡大ゲーム画像を示す図解図である。
【図7】図7は右下方向のジャギー補間を説明するための図解図である。
【図8】図8はジャギー補間する場合に、フレームバッファに対して描かれる、オリジナルテクスチャを貼り付けるためのポリゴンを示す図解図である。
【図9】図9はポリゴンにオリジナルテクスチャを貼り付けた様子を示す図解図である。
【図10】図10は右下方向のジャギー補間処理を施した後の拡大ゲーム画像と、さらに右上方向のジャギー補間処理を施した拡大画像とを示す図解図である。
【図11】図11は色強調処理を説明するための図解図である。
【図12】図12は図10に示した右上方向のジャギー補間処理を施した拡大画像に対して色強調処理を施した場合の変化を示す図解図である。
【図13】図13はゲーム画像の解像度を3倍の解像度に変換する場合の右下方向のジャギー補間処理を説明するための図解図である。
【図14】図14はゲーム画像の解像度を4倍の解像度に変換する場合の右下方向のジャギー補間処理を説明するための図解図である。
【符号の説明】
【0083】
10 …ゲームシステム
12 …ビデオゲーム装置
18 …光ディスク
22 …コントローラ
34 …モニタ
34a …スピーカ
36 …CPU
38 …メモリコントローラ
40 …メインメモリ
42 …GPU
52 …DSP
54 …ARAM
62 …オーディオI/F
【特許請求の範囲】
【請求項1】
第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置のコンピュータで実行されるゲーム画像処理プログラムであって、
前記コンピュータを、
第1の解像度の低解像度画像を前記第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる解像度変換手段、
前記低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する比較手段、
前記比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の前記斜め方向に沿ってm(1≦m≦n−1)画素分ずらして半透明で重ねることによって当該高解像度画像を更新する補間手段、および
前記補間手段によって更新された高解像度画像を出力する出力手段として機能させる、ゲーム画像処理プログラム。
【請求項2】
前記比較手段は、前記任意の画素と当該画素の右下に隣接する画素との画素値を比較する第1の画素値比較手段と、前記任意の画素と当該画素の右上に隣接する画素との画素値を比較する第2の画素値比較手段とを含み、
前記補間手段は、前記第1の画素値比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の右下方向に前記m画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第1の画素補間手段と、前記第2の画素値比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の右上方向に前記m画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第2の画素補間手段とを含む、請求項1記載のゲーム画像処理プログラム。
【請求項3】
前記コンピュータを、
前記低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する第3の画素値比較手段、および
前記第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、前記第2の解像度で、当該画素を当該画素に対応する前記高解像度画像に半透明で重ねることによって当該高解像度画像を更新する第3の画素値補間手段としてさらに機能させる、請求項1または2記載のゲーム画像処理プログラム。
【請求項4】
請求項1ないし請求項3のいずれかに記載のゲーム画像処理プログラムを記録した記録媒体。
【請求項5】
第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置であって、
第1の解像度の低解像度画像を前記第2の解像度の高解像度画像に変換する変換手段、
前記高解像度画像を記憶する記憶手段、
前記低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する比較手段、
前記比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の前記斜め方向に沿ってm(1≦m≦n−1)画素分ずらして、半透明で当該第2の解像度に変換後の画素を重ねることによって前記高解像度画像記憶手段に記憶されている高解像度画像を更新する補間手段、および
前記補間手段によって更新された後の高解像度画像を出力する出力手段を備える、ゲーム画像処理装置。
【請求項1】
第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置のコンピュータで実行されるゲーム画像処理プログラムであって、
前記コンピュータを、
第1の解像度の低解像度画像を前記第2の解像度になるように変換した高解像度画像を生成し、記憶手段に記憶させる解像度変換手段、
前記低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する比較手段、
前記比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の前記斜め方向に沿ってm(1≦m≦n−1)画素分ずらして半透明で重ねることによって当該高解像度画像を更新する補間手段、および
前記補間手段によって更新された高解像度画像を出力する出力手段として機能させる、ゲーム画像処理プログラム。
【請求項2】
前記比較手段は、前記任意の画素と当該画素の右下に隣接する画素との画素値を比較する第1の画素値比較手段と、前記任意の画素と当該画素の右上に隣接する画素との画素値を比較する第2の画素値比較手段とを含み、
前記補間手段は、前記第1の画素値比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の右下方向に前記m画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第1の画素補間手段と、前記第2の画素値比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の右上方向に前記m画素分ずらして半透明で重ねることによって当該高解像度画像を更新する第2の画素補間手段とを含む、請求項1記載のゲーム画像処理プログラム。
【請求項3】
前記コンピュータを、
前記低解像度画像の任意の画素について、上および下に隣接する画素の画素値と、左および右に隣接する画素の画素値とをそれぞれ比較する第3の画素値比較手段、および
前記第3の画素値比較手段における比較結果が、上下および左右の少なくとも一方が同一画素値となる画素を、前記第2の解像度で、当該画素を当該画素に対応する前記高解像度画像に半透明で重ねることによって当該高解像度画像を更新する第3の画素値補間手段としてさらに機能させる、請求項1または2記載のゲーム画像処理プログラム。
【請求項4】
請求項1ないし請求項3のいずれかに記載のゲーム画像処理プログラムを記録した記録媒体。
【請求項5】
第1の解像度のゲーム画像を当該第1の解像度のn倍の第2の解像度に変換して出力するゲーム画像処理装置であって、
第1の解像度の低解像度画像を前記第2の解像度の高解像度画像に変換する変換手段、
前記高解像度画像を記憶する記憶手段、
前記低解像度画像における任意の画素について、当該画素と、当該画素に斜め方向に隣接する画素との画素値を比較する比較手段、
前記比較手段における比較結果が同一画素値となる画素を、前記第2の解像度で、当該画素に対応する前記高解像度画像の画素の前記斜め方向に沿ってm(1≦m≦n−1)画素分ずらして、半透明で当該第2の解像度に変換後の画素を重ねることによって前記高解像度画像記憶手段に記憶されている高解像度画像を更新する補間手段、および
前記補間手段によって更新された後の高解像度画像を出力する出力手段を備える、ゲーム画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図13】
【図14】
【図10】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図13】
【図14】
【図10】
【図12】
【公開番号】特開2007−296218(P2007−296218A)
【公開日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願番号】特願2006−128217(P2006−128217)
【出願日】平成18年5月2日(2006.5.2)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願日】平成18年5月2日(2006.5.2)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]