本発明は、画像を描画する描画処理技術に関する。
近年、プロセッサやメモリ等の高集積化、高速化等が進んでおり、その結果として、様々な画像効果を施したデジタル画像(以下、単に画像という)をリアルタイムに生成し、画面上に精細且つリアリティ性の高い画像を描画することが可能なテレビゲーム機やパーソナルコンピュータが開発されている。
例えば、特許文献1に記載の描画処理装置は、視点からの距離に応じて、ポリゴンに異なる色、絵柄或いは模様、αプレーンを割り当てることにより、テレビゲームやコンピュータグラフィックにおけるオブジェクトの色、絵柄或いは模様等を、距離に応じて変化させることが可能である。このような描画処理装置によれば、例えば、テレビゲームにおいて、ゲーム画像の様々な部分の色を変化させたり、オブジェクトの色、絵柄或いは模様等を変化させたりするなどの様々なシーンを実現することで、ゲーム内容に変化を持たせ、複雑で且つ意外性のあるゲームを実現することができる。
このような描画処理装置において、例えば、テレビゲームのあるシーンにおいて、このシーンを表す画像(以下、第1のシーン画像という)から色表現のみが異なる同一シーンを表す画像(以下、第2のシーン画像という)に切り換えて表示する場合がある。この場合、描画処理装置は、第1のシーン画像及び第2のシーン画像それぞれについて、ポリゴンの頂点座標値などを含む図形データを用いて、ジオメトリ演算やレンダリングなどの一連の描画処理を行う。そして、描画処理の結果、描画処理装置は、それぞれ異なる色が表現された第1のシーン画像及び第2のシーン画像を得て、これらの画像を所定のタイミングに応じて表示する。
このように、従来の描画処理装置においては、色表現のみが異なる同一シーンを表す画像についてもそれぞれ、ジオメトリ演算やレンダリングなどの一連の描画処理を行わなければならない。このため、描画処理装置に負担がかかったり、描画処理に時間がかかったりするという問題が生じる恐れがある。
そこで、本発明は、上記実情に鑑みてなされたものであって、処理負担や処理時間をかけることなく、様々な色表現や様々なシーンの画像を実現可能とする描画処理技術を提供することを目的とする。
本発明は、所定の選択条件に従って、画像を構成する複数の画素のうち少なくとも1つの画素に対して、所定のテクスチャを選択し、選択したテクスチャに基づいて、上記1つの画素に対応するテクセル色を少なくとも1つ求める。そして、求めたテクセル色を用いて、上記1つの画素に対応する色彩を決定し、決定した色彩を用いて、上記1つの画素を描画する。
本発明によれば、処理負担や処理時間をかけることなく、様々な色彩表現や様々なシーンの画像を実現可能とする。
以下、図面を参照して本発明の実施例について説明する。なお、各図において共通する部分には、同一の符号が付されている。また、かかる実施例は本発明の一態様を示すものであり、この発明を限定するものではなく、本発明の範囲で任意に変更可能である。
(1)構成
<描画処理装置の構成>
描画処理装置1のハードウェア構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における描画処理装置1の外観を示している。
図1に示されるように描画処理装置1には、モニタ装置10とコントローラ20とが接続される。コントローラ20は、ユーザにより操作される操作ボタン23L,23R、モード選択スイッチ33、セレクトボタン25、スタートボタン24、方向指示キー21〜22、アナログ操作部31,32等の操作子や点灯表示部34等を備える。モニタ装置10は、ゲーム内容や映画等を表示するスクリーン11と、音を出力するスピーカ(図示せず)とを備える。
描画処理装置1は、メモリカードスロット8A,8B、コントローラポート7A,7B、ディスクトレイ3、ボタン4,9、IEEE(Institute of Electrical and Electronics Engineers)1394接続端子6、USB(Universal Serial Bus)接続端子5等を備えている。メモリカードスロット8A,8Bは、半導体メモリであるメモリカード26を着脱自在に構成されている。コントローラポート7A,7Bは、上記コントローラ20に接続されたケーブル13のコネクタ12が着脱自在に構成されている。ディスクトレイ3は、DVD−ROMやCD−ROM等の光ディスクが装填可能に構成されている。ボタン9は、ディスクトレイ3をオープン/クローズさせるオープン/クローズボタンである。ボタン4は、電源のオンやスタンバイ、ゲームのリセットを行うためのオン/スタンバイ/リセットボタンである。また、図示は省略するが、当該描画処理装置1の背面側には、電源スイッチ、音響映像出力端子(AVマルチ出力端子)、PCカードスロット、光ディジタル出力端子、AC電源入力端子などが設けられている。
次に、図2を参照して、描画処理装置1の電気的構成について説明する。図2は、描画処理装置1の主要部の概略的な電気的構成の一例を示すブロック図である。
描画処理装置1は、CPU(Central Processing Unit)41及びその周辺装置等からなる制御系40と、描画処理を行なうGPU(Graphic Processing Unit)52等からなるグラフィックシステム50と、音声処理を行うSPU(Sound Processing Unit)61等からなるサウンドシステム60と、光ディスクの制御を行なう光ディスク制御部70と、通信部80と、上記の各部が接続されているバス等を備えて構成されている。
サウンドシステム60は、制御系40の制御の下、楽音、効果音等を発生するSPU61と、このSPU61により、波形データ等が記録されるサウンドバッファ62とを備えている。
SPU61は、例えば16ビットの音声データを4ビットの差分信号として適応予測符号化(ADPCM:Adaptive Differential PCM)された音声データを再生するADPCM復号機能と、サウンドバッファ62に記憶されている波形データを再生することにより、効果音等を発生する再生機能と、サウンドバッファ62に記憶されている波形データを変調させて再生する変調機能等を備えている。
光ディスク制御部70は、CD(Compact Disk),DVD(Digital Versatile Disk)等の光ディスクに記録されたプログラムやデータ等を再生する光ディスク装置71と、例えばエラー訂正符号(ECC:Error Correction Code)が付加されて記録されているプログラム、データ等を復号するデコーダ72と、光ディスク装置71からのデータを一時的に記憶することにより、光ディスクからのデータの読み出しを高速化するバッファ73とを備えている。上記のデコーダ72には、サブCPU74が接続されている。
通信部80は、制御系40の制御の下、外部装置とのデータ通信を制御する。外部装置と通信部80とは、例えば、アナログ公衆電話回線や通信衛星回線、ADSL(Asymmetric Digital Subscriber Line)やLAN(Local Area Network)、CATV(Community Antenna Television)網、ISDN(総合ディジタル通信網)などの通信手段を介してデータ通信を行う。
グラフィックシステム50は、ジオメトリトランスファエンジン(GTE:Geometry Transfer Engine)51と、GPU52と、フレームバッファ53と、画像デコーダ54と、表示制御部55とを備えている。
GTE51は、例えば複数の演算を並列に実行する並列演算機構を備え、制御系40からの演算要求に応じて、メインメモリ42に格納された後述の図形データを読み出し、該図形データを2次元のスクリーン座標系の描画データに変換する処理を行う。具体的には、例えば、図形データに対して、アフィン変換、スクリーン座標への投影変換、頂点に対する光源計算、座標変換、行列あるいはベクトルの演算、テクセル座標の演算などのジオメトリ演算を高速に行う。そして、これらのジオメトリ演算を行うことにより、GTE51は、各ポリゴンの頂点座標値(X,Y,Z)、頂点カラー値(R,G,B)、輝度値(L)、透明度(α値)、法線、接線、光源、テクスチャマッピングに用いるテクスチャ、テクセル座標(S,T,Q)などを求め、描画データを得る。この描画データは、描画命令と共に、制御系40によりGPU52に送られる。
GPU52は、制御系40からの描画命令に従い、GTE51から送られた描画データを用いて、ポリゴン等の描画処理を行なう。GPU52が行う描画処理には、ポリゴンの法線ベクトルと光源との角度から各ポリゴンの色を算出するフラットシェーディング、オブジェクトの各頂点の法線ベクトルを求め、頂点間を一次補間してポリゴン内の各ピクセル(画素)の色を算出するグーローシェーディング、グーローシェーディングにおける光沢の不自然さを改善するフォンシェーディング、フレームバッファ53のテクスチャ領域に記憶されているテクスチャをポリゴンに張り付けるテクスチャマッピング、ラスタライジング、ピクセル毎に行うアルファブレンディングなどがある。GPU52は、このような描画処理を行い、該描画データによって表される画像を構成する各ピクセルに対するピクセルデータを生成し、これらの各ピクセルデータをフレームバッファ53に供給する。このようにして、各ピクセルを描画する。
ピクセルデータは、ピクセル毎の赤、緑、青の3原色の各要素の輝度を表すR値,G値,B値(これらをまとめてピクセルカラー値という)と、半透明度係数のA値(α値)とを含んでいる。ピクセル毎の輝度(L値)は、算式(1)を用いてR,G,Bの各値から算出する。
L=0.299×R+0.587×G+0.114×B・・・算式(1)
尚、本実施例においては、カラー値のR,G,Bの各値、A値(α値)、L値はそれぞれ、「0」〜「255」のいずれかで表される1バイト(8ビット)の値とする。
また、ピクセルデータには、モニタ装置10のスクリーン上の2次元座標(以下、スクリーン座標という)の座標値(x、y)が対応付けられている。
フレームバッファ53は、描画処理が行われて生成されたピクセルデータをフレーム単位で記憶する。また、フレームバッファ53は、いわゆるデュアルポートRAMからなり、GPU52の描画あるいはメインメモリ42からの転送と、表示のための読み出しとを同時に行なうことができる。また、このフレームバッファ53には、ビデオ出力として出力される表示領域の他に、GPU52がポリゴン等の描画を行なう際に参照するカラールックアップテーブル(CLUT:Color Lock Up Table)が記憶されるCLUT領域と、描画時に座標変換されGPU52によって描画されるポリゴン等の中にマッピングされるテクスチャが記憶されるテクスチャ領域が設けられている。これらのCLUT領域とテクスチャ領域は、表示領域の変更等に従って動的に変更される。
テクスチャ領域には、テクスチャが記憶されており、各テクスチャのテクセル座標に対応して各テクセルカラーのR,G,B値(これらをまとめてテクセルカラー値という)とA値(α値)とが記憶されている。
これらのテクスチャは、例えばCD−ROMやDVD−ROM、半導体メモリ等の各種記録媒体や、有線或いは無線による通信媒体、伝送媒体等を介して予め取り込まれたものである。
表示制御部55は、制御系40の制御の下、モニタ装置10を表示駆動させる。表示制御部55には、フレームバッファ53に記憶されたピクセルデータが制御系40から供給される。表示制御部55は、モニタ装置10の水平同期信号、垂直同期信号などを生成すると共に、モニタ装置10の表示タイミングに従い、制御系40から供給されたピクセルデータのピクセルカラー値を走査単位毎に取り出す。この結果、取り出されたピクセルカラー値によって表現される2次元画像が、モニタ装置10のスクリーン11に画像が表示される。
画像デコーダ54は、上記の制御系40からの制御により、メインメモリ42に記憶され、離散コサイン変換等の直交変換により圧縮されて符号化された静止画あるいは動画の画像データを復号してメインメモリ42に記憶させる。
制御系40は、CPU41と、RAM(Random Access Memory)からなるメインメモリ42と、ROM(Read Only Memory)43と、IOプロセッサ(IOP)44とを備えている。
ROM43には、描画処理装置1の各部を制御するためのオペレーティングシステム等のプログラムが記憶されている。CPU41は、ROM43に記憶されているオペレーティングシステムをメインメモリ42に読み出し、読み出したオペレーティングシステムを実行することにより、この描画処理装置1各部の動作を制御する。また、ROM43には、ピクセルデータに基づいてテクスチャを選択し、このテクスチャを用いてピクセルカラー値を変更する処理(以下、ピクセルカラー変更処理という)をCPU41が行うための各種プログラムが記憶されている。
尚、以降の説明では、ピクセルカラー変更処理において使用するテクスチャを変更用テクスチャとする。本実施例においては、変更用テクスチャとして、図3に示されるような変更用テクスチャHT1〜HT4を用いる。これらの変更用テクスチャHT1〜HT4は、それぞれテクスチャ領域に記憶されている。尚、変更用テクスチャには、任意のテクスチャを用いれば良く、様々な色や模様を表すテクスチャを用いれば良い。また、変更用テクスチャの数も任意の数で良い。
メインメモリ42には、ピクセルカラー変更処理においてCPU41によって参照される選択条件テーブルJTBL1が記憶されている。図4に示されるように、選択条件テーブルJTBL1には、ピクセルデータに含まれるピクセルカラー値から算出される輝度(L値)の値の範囲と、変更用テクスチャHT1〜HT4のうちいずれかを特定する情報とが対応付けられて記憶されている。本実施例においては、変更用テクスチャHT1〜HT4のうちいずれかを特定する情報として、変更用テクスチャHT1〜HT4の各参照用アドレスを用いる。尚、変更用テクスチャHT1〜HT4の参照用アドレスとは、変更用テクスチャHT1〜HT4がフレームバッファ53のテクスチャ領域に各々記憶されている場所を示す情報である。
選択条件テーブルJTBL1においては、具体的には、「0」以上「63」以下のL値に対して、変更用テクスチャHT1の参照用アドレスが対応付けられ、L値の値が「63」より大きく「127」以下のL値に対して、変更用テクスチャHT2の参照用アドレスが対応付けられており、L値の値が「127」より大きく「191」以下のL値に対して、変更用テクスチャHT3の参照用アドレスが対応付けられており、L値の値が「191」より大きく「255」以下のL値に対して、変更用テクスチャHT4の参照用アドレスが対応付けられている。即ち、選択条件テーブルJTBL1においては、L値の値に対して、変更用テクスチャHT1〜HT4のうちいずれかが選択対象として特定される。
また、メインメモリ42には、上述のピクセルカラー変更処理においてCPU41によって参照される合成条件フラグが記憶されている。合成条件フラグは、上記ピクセルカラー変更処理で求められたテクセルカラー値と、当該処理前のピクセルカラー値とを合成するか否かを示すフラグである。合成するか否かは予め適宜設定され、合成条件フラグには、合成する場合には「1」が、合成しない場合「0」が予めセットされる。
更に、メインメモリ42には、3次元モデリング座標系のポリゴンなどの図形データが記憶される。図形データは、例えばポリゴンについての頂点座標値(X,Y,Z)、頂点カラー値(R,G,B)、ベクトル値、マップ座標値、頂点同士の接続状況を表す連結情報などを含んでいる。この図形データは、例えばCD−ROMやDVD−ROM、半導体メモリ等の各種記録媒体や、有線或いは無線による通信媒体、伝送媒体等を介して予め取り込まれたものである。
IOP44は、ROM43に記憶されているIOP用のオペレーティングシステムプログラムを実行することにより、プレイヤの操作に応じたコントローラ20からの操作信号や、メモリカード26からのデータなどの入出力、USB接続端子5やIEEE1394接続端子6等におけるデータの入出力を制御する。
<機能的構成>
次に、描画処理装置1の機能的構成について説明する。図17は、本実施例に係る描画処理装置1の機能的構成を模式的に示した機能ブロック図である。
本実施例においては、ROM43に記憶された上述の各種プログラムをCPU41が実行してピクセルカラー変更処理を行い、この処理の実行過程においてCPU41の制御命令に従ってGPU52等の描画処理装置1各部が各種処理を行うことにより、以下の各手段の機能が実現される。
GPU52により描画処理が行われフレームバッファ53に供給された各ピクセルデータに対して、選択手段K1は、当該ピクセルデータに含まれるピクセルカラー値に基づいて、メインメモリ42に記憶された選択条件テーブルJTBL1を参照して、使用する変更用テクスチャを選択する。次いで、求色手段K2は、選択した変更用テクスチャにおけるテクセル座標を求め、このテクセル座標に基づいて、テクセルカラー値を求める。そして、決定手段K3は、求めたテクセルカラー値と、メインメモリ42に記憶された合成条件フラグとに基づいて、各ピクセルデータのピクセルカラー値を決定する。次いで、描画手段K4は、決定したピクセルカラー値を含むピクセルデータを生成し、生成したピクセルデータをフレームバッファ53に供給する。
(2)動作
次に、本願実施例に係る動作について説明する。
尚、描画処理装置1の図示しない電源が投入され、ROM43に記憶されたオペレーションシステムなどのプログラムがCPU41によってメインメモリ42に読み出されて実行され、ユーザによってそれぞれ指示が入力されることにより、ROM43からメインメモリ42に読み出された各種プログラムがCPU41によって実行され、上述の構成欄で述べた機能が実現される。
図5は、本願実施例に係る動作の流れを示すフローチャートである。
まず、CPU41は、例えば、図形データが記憶された光ディスクから光ディスク装置71を介して該図形データを読み取り、読み取った図形データをメインメモリ42に書き込む。次に、CPU41は、この図形データに基づく演算命令をGTE51に対して行う。GTE51は、CPU41からの演算命令に従い、メインメモリ42に書き込まれた図形データを読み出し、その図形データに対して、アフィン変換、スクリーン座標への投影変換、頂点に対する光源処理などのジオメトリ演算、透視変換処理等の演算処理を行う。そして、これらの演算処理を行うことにより、GTE51は、各ポリゴンの頂点座標値(X,Y,Z),頂点カラー値(R,G,B)、輝度(L値)、半透明係数A値(α値)、法線、接線、光源、テクスチャマッピングに用いるテクスチャ、テクセル座標(S,T,Q)などを求め、2次元画面座標系での描画データを得る。この描画データをGTE51はCPU41に供給し、CPU41は、供給された描画データを描画命令と共にGPU52に供給する。
GPU52は、CPU41からの描画命令に従い、供給された描画データを用いて、上述の構成欄で説明したポリゴン等の描画処理を行なう。そして、描画データによって表される画像を構成する各ピクセルの各ピクセルカラー値を算出し(ステップS1)、このピクセルカラー値を含むピクセルデータを生成する。そして、生成したピクセルデータをフレームバッファ53に供給する。この結果、例えば、図6に示されるような画像G1がフレームバッファ53に描画される。
次に、CPU41は、フレームバッファ53に供給されたピクセルデータについて1つずつ、本実施例に係るピクセルカラー変更処理を行う。まず、CPU41は、メインメモリ42に記憶された選択条件テーブルJTBL1を参照して、使用する変更用テクスチャを選択する(ステップS2)。具体的には、処理対象のピクセルデータに対して上述のステップS1において算出された各ピクセルカラー値から、上述の構成欄で説明した算式(1)を用いて輝度(L値)を算出した後、算出した輝度(L値)が「0」以上「63」以下である場合には、選択条件テーブルJTBL1において変更用テクスチャHT1の参照用アドレスが示されているため、使用するテクスチャとして変更用テクスチャ1を選択する。同様にして、輝度(L値)が「63」より大きく「127」以下である場合には、変更用テクスチャHT2を選択し、「127」より大きく「191」以下である場合には、変更用テクスチャHT3を選択し、「191」より大きく「255」以下である場合には、変更用テクスチャHT4を選択する。
例えば、図6に示される画像G1を構成するピクセルデータのうち、その輝度(L値)が「0」以上「63」以下の範囲にあるピクセルデータから構成される画像の領域を領域AR1とすると、当該領域AR1に含まれる各ピクセルデータに対して、変更用テクスチャHT1が選択される。また、図6に示される画像を構成するピクセルデータのうち、その輝度(L値)が「63」より大きく「127」以下の範囲にあるピクセルデータから構成される画像の領域を領域AR2とし、輝度(L値)が「127」より大きく「191」以下の範囲にあるピクセルデータから構成される画像の領域を領域AR3とし、輝度(L値)が「191」より大きく「255」以下の範囲にあるピクセルデータから構成される画像の領域を領域AR4とする。このとき、領域AR2に含まれる各ピクセルデータに対して、変更用テクスチャHT2が選択され、領域AR3に含まれる各ピクセルデータに対して、変更用テクスチャHT3が選択され、領域AR4に含まれる各ピクセルデータに対して、変更用テクスチャHT4が選択される。
以上のようにして、CPU41は、ピクセルデータの輝度(L値)に応じて、使用する変更用テクスチャを選択する。次に、ステップS3において、変更用テクスチャが選択されたか否かを判定する。ここでは、この判定結果は肯定的となるため、次にステップS4に進む。ステップS4では、まず、CPU41は、選択した変更用テクスチャの参照用アドレスに基づいて、テクセル座標を求める。尚、テクセル座標は、任意の演算によって求めれば良く、例えば、当該ピクセルデータがモニタ装置10のスクリーン11上に表示される位置、即ちピクセルデータに対応するスクリーン座標の座標値(x,y)を用いて算出する。具体的には、例えば、変更用テクスチャHT1のサイズが8×8(ピクセル)である場合、ピクセルデータに対応する上記座標値(x,y)のx値及びy値をそれぞれ8で割り、その余りの値MOD(x,8),MOD(y,8)をテクセル座標の座標値とする。そして、CPU41は、当該テクセル座標に対応してフレームバッファ53に記憶されているテクセルカラー値を求める。
続いてステップS5に進み、ステップS5では、CPU41は、ステップS4で求められたテクセルカラー値が複数あるか否かを判定する。本実施例においては、求められるテクセルカラー値は、1つであるため、ステップS5の判定結果は否定的となり、ステップS7に進む。ステップS7においては、CPU41は、メインメモリ42に記憶された合成条件フラグを参照して、当該処理対象のピクセルデータに対してステップS1で求められたピクセルカラーと、ステップS3で求められたテクセルカラーとを合成するか否かを判定する。ここでは、合計条件フラグは「0」であり、ピクセルカラーとテクセルカラーとを合成しないものとする。このため、ステップS7における判定結果が否定的となり、ステップS9に進む。ステップS9において、CPU41は、ステップS4で求められたテクセルカラーの値をピクセルデータの新たなピクセルカラー値とする。そして、新たなピクセルカラー値を含むピクセルデータを生成するようGPU52に対して命令する。GPU52は、当該命令に従ってピクセルデータを生成し、これをフレームバッファ53に供給する。
このようにして、全てのピクセルデータについて、ステップS2〜S5,S7,S9の処理を行い、ピクセル毎の新たなピクセルカラー値を求めて、新たなピクセルデータを生成し、生成したピクセルデータをフレームバッファ53に供給する。これにより、これらのピクセルデータから構成される画像がフレームバッファ53に描画される。
そして、上記描画データに対する全てのピクセルデータについて上記処理が完了すると、ステップS10の判定結果が肯定的となり、ピクセルカラー変更処理は終了する。次いで、CPU41は、フレームバッファ53に描画されたピクセルカラー変更処理後の画像を表示制御部55へ供給する。表示制御部55は、CPU41から供給された画像をモニタ装置10のスクリーン11上に表示させる。この結果、モニタ装置10のスクリーン11上に、例えば図7に示されるような画像G2が表示される。
画像G2は、図6に示される画像G1に表される物体と同一形状の物体を表し、そのカラー表現のみが画像G1と異なる画像である。画像G2の領域AR21は、画像G1の領域AR1に対応しており、同様に、領域AR22は領域AR2に対応しており、領域AR23は領域AR3に対応しており、領域AR24は領域AR4に対応している。そして、画像G1の領域AR1〜AR4に対応する画像G2の領域AR21〜AR24には、画像G1の領域AR1〜AR4において表現されたカラーと異なるカラーが、それぞれ次のように表現される。領域AR21には、変更用テクスチャHT1におけるカラーが表現され、領域AR22には、変更用テクスチャHT2におけるカラーが表現され、領域AR23には、変更用テクスチャHT3におけるカラーが表現され、領域AR24には、変更用テクスチャHT4におけるカラーが表現される。また、各領域AR21〜AR24において各変更用テクスチャHT〜HT4におけるカラーが表現されることにより、各変更用テクスチャにおける模様が再現され得る。
尚、メインメモリ42に記憶された合成条件フラグが「1」である場合には、上述のステップS7の判定結果が肯定的となり、ステップS8に進む。ステップS8においては、当該処理対象のピクセルデータに対してステップS1で求められたピクセルカラーと、ステップS4で求められたテクセルカラーとを合成する。
尚、ピクセルカラーとテクセルカラーとの合成は、ピクセルカラー値とテクセルカラー値とを用いて任意の方法で新たな値を算出することにより行えば良く、加算合成、減算合成、乗算合成などの種々の合成方法を用いればよい。例えば、R,G,Bの各要素の値をそれぞれ加算した値を新たな値としたり、加算してからその平均の算出してその平均値を新らたな値としたり、大きい方の値又は小さい方の値を新たな値としても良い。更に、カラーの合成の結果、算出した各値が「255」以上の場合には、「255」の値に再設定し、「0」以下の場合には「0」に再設定するクランプ処理や、カラー値の補正処理などの処理を行うようにしても良い。
ステップS8の処理後は、ステップS9に進み、CPU41は、ステップS8で合成されたカラーの値を新たなピクセルカラー値とする。そして、新たなピクセルカラー値を含むピクセルデータを生成するようGPU52に対して命令する。GPU52は、当該命令に従ってピクセルデータを生成し、これをフレームバッファ53に供給する。そして、上述と同様にして、全てのピクセルデータについてステップS2〜S5,S7〜S9の処理が完了すると、ステップS10の判定結果が肯定的となり、CPU41は、フレームバッファ53に描画されたピクセルカラー変更処理後の画像を表示制御部55へ供給する。この結果、モニタ装置10のスクリーン11上に、例えば図8に示されるような画像G3が表示される。
上述の画像G2と同様に、画像G3の領域AR31は、画像G1の領域AR1に対応しており、同様に、領域AR32は領域AR2に対応しており、領域AR33は領域AR3に対応しており、領域AR34は領域AR4に対応している。そして、領域AR31には、変更用テクスチャHT1におけるカラーと画像G1の領域AR1におけるカラーとが合成されたカラーが表現され、領域AR32には、変更用テクスチャHT2におけるカラーと画像G1の領域AR2におけるカラーとが合成されたカラーが表現され、領域AR33には、変更用テクスチャHT3におけるカラーと画像G1の領域AR3におけるカラーとが合成されたカラーが表現され、領域AR34には、変更用テクスチャHT4におけるカラーと画像G1の領域AR4におけるカラーとが合成されたカラーが表現される。また、各領域AR31〜AR34において各変更用テクスチャHT〜HT4におけるカラーが表現されることにより、各変更用テクスチャにおける模様をも再現され得る。
以上のようにして、本実施例においては、描画処理後のピクセルデータに対して、変更用テクスチャを用いて各ピクセルデータのピクセルカラー値を変更することにより、同一の図形データに対して、カラー表現が異なる様々な画像を提供することが可能となる。また、様々な変更用テクスチャを用いることにより、より様々なカラー表現を実現可能である。
即ち、本実施例においては、大きな記憶容量を必要としないテクスチャを用いることで、描画処理装置1を複雑な構成や高価な構成にすることなく、また描画処理装置1における処理時間や処理負担を掛けることなく、複雑なカラー表現を実現可能である。
次に、上記ピクセルカラー変更処理において、1つのピクセルデータに対し、複数の変更用テクスチャを選択し、複数のテクセルカラー値を求める実施例について説明する。以下、上記実施例1と共通する部分については、その説明を省略したり、同一の符号を使用して説明したりする。
(1)構成
本実施例においては、図9に示されるような選択条件テーブルJTBL2がメインメモリ42に記憶されている。選択条件テーブルJTBL2には、ピクセルデータに含まれるR値の範囲と、変更用テクスチャHT1〜HT2のうちいずれかの参照用アドレスとが対応付けられており、更に、ピクセルデータに含まれるG値の範囲と、変更用テクスチャHT1〜HT4のうちいずれかの参照用アドレスとが対応付けられて記憶されている。具体的には、「0」以上「191」以下のR値に対して、変更用テクスチャHT1の参照用アドレスが対応付けられ、「191」より大きく「255」以下のR値に対して、変更用テクスチャHT2の参照用アドレスが対応付けられている。また、「0」以上「63」以下のG値に対して、変更用テクスチャHT3の参照用アドレスが対応付けられており、「63」より大きく「255」以下のG値に対して、変更用テクスチャHT4の参照用アドレスが対応付けられている。
また、メインメモリ42には、上述の実施例1と同様の合成条件フラグが記憶されている。
ROM43には、本実施例に係るピクセルカラー変更処理をCPU41が行うための各種プログラムが記憶されている。
本実施例においては、CPU41が当該プログラムを実行し、この実行過程においてCPU41の制御命令に従ってGPU52等の描画処理装置1各部が各種処理を行うことにより、以下の各手段の機能が実現される。この機能は、上述の実施例1と同様に、図17において模式的に示される。
GPU52により描画処理が行われフレームバッファ53に供給された各ピクセルデータに対して、選択手段K1は、当該ピクセルデータに含まれるピクセルカラー値に基づいて、メインメモリ42に記憶された上述の選択条件テーブルJTBL2を参照して、使用する変更用テクスチャを選択する。このとき、ピクセルデータのR値に対応する変更用テクスチャと、G値に対応する変更用テクスチャとをそれぞれ選択する。そして、求色手段K2は、選択した各変更用テクスチャに基づいて各々テクセル座標を算出し、算出した各テクセル座標に基づいて、各テクセルカラー値を求める。そして、このとき求めた2つのテクセルカラー値を合成して、1つのテクセルカラー値を求める。そして、決定手段K3は、合成したテクセルカラー値と、合成条件フラグとに基づいて、各ピクセルデータのピクセルカラー値を決定する。
その他の構成については、上述の実施例1と同様である。
(2)動作
次に、本願実施例に係る動作について図5を参照しながら説明する。
上述の実施例1と同様に、CPU41から描画命令がなされたGPU52は、図形データに基づいて生成された描画データを用いて描画処理を行ない、各ピクセルの各ピクセルカラー値を算出する(ステップS1)。そして、このピクセルカラー値を含むピクセルデータを生成し、これをフレームバッファ53に供給する。
次に、CPU41は、フレームバッファ53に供給された各ピクセルデータについて、ステップS2以降の処理を行う。ステップS2では、処理対象のピクセルデータに対して、選択条件テーブルJTBL2を参照して、変更用テクスチャを選択する。本実施例においては、CPU41は、ピクセルデータのR値の範囲に対応する変更用テクスチャと、G値の範囲に対応する変更用テクスチャとをそれぞれ選択する。具体的には、ピクセルデータのR値が「0」以上「191」以下である場合には、変更用テクスチャHT1を選択し、「191」より大きく「255」以下である場合には、変更用テクスチャHT2を選択する。そして、ピクセルデータのG値が「0」以上「63」以下である場合には、変更用テクスチャHT3を選択し、「63」より大きく「255」以下である場合には、変更用テクスチャHT4を選択する。
例えば、図6に示される画像G1を構成するピクセルデータのうち、R値及びG値がそれぞれ「0」以上「63」以下の範囲にあるピクセルデータから構成される画像の領域が領域AR1であり、R値及びG値がそれぞれ「63」より大きく「127」以下の範囲にあるピクセルデータから構成される画像の領域が領域AR2であり、R値及びG値がそれぞれ「127」より大きく「191」以下の範囲にあるピクセルデータから構成される画像の領域が領域AR3であり、R値及びG値がそれぞれ「191」より大きく「255」以下の範囲にあるピクセルデータから構成される画像の領域が領域AR4であるとする。このとき、領域AR1に含まれるピクセルデータに対して、変更用テクスチャHT1及びHT3が選択され、領域AR2及びAR3に含まれる各ピクセルデータに対して、変更用テクスチャHT1及びHT4が選択され、領域AR4に含まれる各ピクセルデータに対して、変更用テクスチャHT2及びHT4が選択される。
そして、CPU41は、選択した各変更用テクスチャの参照用アドレスに基づいて、各テクセル座標と、各テクセル座標に対応するテクセルカラー値とを求める。テクセル座標の算出方法は、上述の実施例1と同様である。この結果、本実施例においては、1つのピクセルカラー値に対し、R値に基づいて求められたテクセルカラー値と、G値に基づいて求められたテクセルカラー値との2つのテクセルカラーの値を得る。このとき、ステップS5の判定結果が肯定的となり、ステップS6へ進む。ステップS6では、CPU41は、ステップS4で求められた2つのテクセルカラーを合成する。カラーの合成は、上述のピクセルカラーとテクセルカラーとの合成と同様に、任意の方法で行えば良い。
そして、更に、CPU41は、メインメモリ42に記憶された合成条件フラグを参照して、当該処理対象のピクセルデータに対してステップS1で求められたピクセルカラーと、ステップS6において合成されたテクセルカラーの値とを合成するか否かを判定する。本実施例においては、合計条件フラグは「0」であり、ピクセルカラーとテクセルカラーとを合成しないものとする。このため、ステップS7における判定結果が否定的となり、ステップS7に進む。ステップS7において、CPU41は、ステップS3で合成されたテクセルカラーの値をピクセルデータの新たなピクセルカラー値とする。そして、新たなピクセルカラー値を含むピクセルデータを生成するようGPU52に対して命令する。GPU52は、当該命令に従ってピクセルデータを生成し、これをフレームバッファ53に供給する。
そして上記描画データに対する全てのピクセルデータについてステップS2〜S7,S9の処理が完了すると、ステップS10の判定結果が肯定的となり、本実施例に係るピクセルカラー変更処理は終了する。次いで、CPU41は、フレームバッファ53に描画されたピクセルカラー変更処理後の画像を表示制御部55へ供給する。表示制御部55は、CPU41から供給された画像をモニタ装置10のスクリーン11上に表示させる。この結果、モニタ装置10のスクリーン11上に、例えば図10に示されるような画像G4が表示される。
画像G4は、図6に示される画像G1に表される物体と同一形状の物体を表し、そのカラー表現のみが画像G1と異なる画像である。画像G4の領域AR41は、画像G1の領域AR1に対応しており、領域AR42は領域AR2及びAR3に対応しており、領域AR43は領域AR4に対応している。そして、領域AR41には、変更用テクスチャHT1におけるカラーと変更用テクスチャHT3におけるカラーとが合成されたカラーが表現され、領域AR42には、変更用テクスチャHT1におけるカラーと変更用テクスチャHT4におけるカラーとが合成されたカラーが表現され、領域AR43には、変更用テクスチャHT2におけるカラーと変更用テクスチャHT4におけるカラーとが合成されたカラーが表現される。
以上のような構成によって、本実施例においては、1つのピクセルデータのピクセルカラーに対して複数のテクセルカラーを求めてこれらを合成したり、ピクセルデータのピクセルカラーを変更するための選択条件を様々に設定したりすることにより、様々なカラー表現が可能となる。
次に、上記ピクセルカラー変更処理において、輝度(L値)が所定の範囲のピクセルデータについて、1つの変更用テクスチャを選択し、選択した変更用テクスチャから複数のテクセル座標を求め、各テクセル座標に対応する各テクセルカラー値を算出する実施例について説明する。以下、上記実施例1又は実施例2と共通する部分については、その説明を省略したり、同一の符号を使用して説明したりする。
(1)構成
本実施例においては、図11に示されるような選択条件テーブルJTBL3がメインメモリ42に記憶されている。選択条件テーブルJTBL3には、ピクセルデータのカラー値から算出される輝度(L値)の値の範囲と、変更用テクスチャHT1の参照用アドレスとが対応付けられて記憶されている。具体的には、「0」以上「63」以下のL値に対して、変更用テクスチャHT1の参照用アドレスが対応付けられている。
更に、メインメモリ42には、図12に示されるようなテクセル座標テーブルZTBL1が記憶されている。テクセル座標テーブルZTBL1には、ピクセルデータに含まれるB値の値の範囲と、テクセル座標を算出する際の算出方法とが対応付けられおり、ピクセルデータに含まれるA値の値の範囲と、テクセル座標を算出する際の算出方法とが対応付けられて記憶されている。具体的には、「0」以上「127」以下のB値に対して、算出方法SH1が対応付けられており、「127」より大きく「255」以下のB値に対して、算出方法SH2が対応付けられており、「0」以上「127」以下のA値に対して、算出方法SH3が対応付けられている。
尚、これら算出方法SH1〜SH3は、テクセル座標を算出する際のそれぞれ異なる算出方法を示すものであり、上述の実施例1の動作欄で説明したように、任意の演算を用いて算出する方法で良い。具体的にこれらの算出方法SH1〜SH3は、ROM43に記憶されるプログラムのサブモジュールによって又はプログラムに組み込まれて実現される。
また、メインメモリ42には、上述の実施例1と同様の合成条件フラグが記憶されている。
本実施例においては、CPU41が当該プログラムを実行し、この実行過程においてCPU41の制御命令に従ってGPU52等の描画処理装置1各部が各種処理を行うことにより、以下の各手段の機能が実現される。この機能は、上述の実施例1と同様に、図17において模式的に示される。
GPU52により描画処理が行われフレームバッファ53に供給された各ピクセルデータに対し、選択手段K1は、当該ピクセルデータに含まれるピクセルカラー値に基づいて、メインメモリ42に記憶された上述の選択条件テーブルJTBL3を参照して、L値の値に基づいて、使用する変更用テクスチャを選択する。そして、求色手段K2は、変更用テクスチャHT1を選択することを決定した場合、更に、テクセル座標テーブルZTBL1を参照して、テクセル座標を算出し、算出したテクセル座標に基づいて、テクセルカラー値を求める。そして、このとき求めたテクセルカラー値が複数ある場合、これらを合成して、1つのテクセルカラー値を求める。そして、決定手段K3は、求めたテクセルカラー値と、合成条件フラグとに基づいて、ピクセルデータの新たなピクセルカラー値を決定する。尚、変更用テクスチャHT1を選択しないと決定した場合には、ピクセルデータのピクセルカラー値を変更せずに用いる。
その他の構成については、上述の実施例1と同様である。
(2)動作
次に、本願実施例に係る動作について図5を参照しながら説明する。
上述の実施例1と同様に、CPU41から描画命令がなされたGPU52は、図形データに基づいて生成された描画データを用いて描画処理を行ない、各ピクセルの各ピクセルカラー値を算出し(ステップS1)、このピクセルカラー値を含むピクセルデータを生成し、これをフレームバッファ53に供給する。
次に、CPU41は、フレームバッファ53に供給された各ピクセルデータについて、ステップS2以降の処理を行う。ステップS2では、処理対象のピクセルデータに対して、選択条件テーブルJTBL3を参照して、使用する変更用テクスチャを選択する(ステップS2)。本実施例においては、CPU41は、ピクセルデータの各カラー値から算出した輝度(L値)の値が「0」以上「63」以下である場合に、変更用テクスチャHT1を選択し、「「63」より大きい場合、変更用テクスチャの選択を行わない。
例えば、図6に示される画像G1の各領域AR1〜AR4は、上述の実施例1と同様の輝度値(L値)を各々有するピクセルデータから構成されるものとする。このとき、領域AR1に含まれる各ピクセルデータに対して、変更用テクスチャHT1が選択され、領域AR1〜AR4に含まれる各ピクセルデータに対しては、変更用テクスチャは選択されない。
そして、CPU41は、変更用テクスチャHT1を選択した場合、ステップS3の判定結果が肯定的となるため、次に、ステップS4の処理を行う。ステップS4では、CPU41は、ピクセルデータのB値及びA値に基づいて、選択した変更用テクスチャHT1の参照用アドレスと、テクセル座標テーブルZTBL1とを用いて、テクセル座標を算出する。具体的には、ピクセルデータのB値の値が「0」以上「127」以下である場合、算出方法SH1を用いてテクセル座標(テクセル座標Z1とする)を算出し、B値の値が「127」より大きく「255」以下である場合、算出方法SH2を用いてテクセル座標(テクセル座標Z2とする)を算出する。更に、ピクセルデータのA値の値が「0」以上「127」以下である場合、算出方法SH3を用いてテクセル座標(テクセル座標Z3とする)を算出する。
即ち、ピクセルデータのL値が「0」以上「63」以下であり、B値の値が「0」以上「127」以下であり且つA値の値が「0」以上「127」以下である場合、テクセル座標Z1と、テクセル座標Z3とが算出される。ピクセルデータのL値が「0」以上「63」以下であり、B値の値が「127」より大きく「255」以下であり且つA値の値が「0」以上「127」以下である場合、テクセル座標Z2と、テクセル座標Z3とが算出される。ピクセルデータのL値が「0」以上「63」以下であり、B値の値が「0」以上「127」以下であり且つA値の値が「0」以上「127」以下である場合、テクセル座標Z1と、テクセル座標Z3とが算出される。ピクセルデータのL値が「0」以上「63」以下であり、B値の値が「0」以上「127」以下であり且つA値の値が「127」より大きく「225」以下である場合、テクセル座標Z1が算出される。ピクセルデータのL値が「0」以上「63」以下であり、B値の値が「127」より大きく「255」以下であり且つA値の値が「127」より大きく「225」以下である場合、テクセル座標Z2が算出される。
以上のようにして算出されたテクセル座標に対して、それぞれ対応するテクセルカラー値を求める。そして、ステップS5において、CPU41は、上述のようにして、テクセルカラー値が複数求められた場合には(ステップS5:YES)、ステップS6の処理を行った後ステップS7に進み、1つのテクセルカラー値のみが求められた場合には(ステップS5:NO)、ステップS7に進む。ステップS7以降の処理については、上述の実施例1と同様であるため、その説明を省略する。
尚、ステップS2において、変更用テクスチャHT1を選択しない場合、ステップS3の判定結果は否定的となり、ステップS9に進む。ステップS9では、CPU41は、当該処理対象のピクセルデータに対してステップS1で求められたピクセルカラー値を新たなピクセルカラー値とする。そして、新たなピクセルカラー値を含むピクセルデータを生成するようGPU52に対して命令する。GPU52は、当該命令に従ってピクセルデータを生成し、これをフレームバッファ53に供給する。
そして、上述の実施例と同様にして、ステップS2〜S10の処理後にフレームバッファ53に描画された画像が表示制御部55を介してモニタ装置10のスクリーン11上に表示される。この結果、モニタ装置10のスクリーン11上に、例えば図13に示されるような画像G5が表示される。
画像G5は、図6に示される画像G1に表される物体と同一形状の物体を表し、そのカラー表現のみが画像G1と異なる画像である。画像G5の領域AR51は、画像G1の領域AR1に対応しており、領域AR52は領域AR2に対応しており、領域AR53は領域AR3に対応しており、領域AR54は領域AR4に対応している。領域AR51に含まれるピクセルについては、変更用テクスチャHT1が選択されるため、領域AR51においては、変更用テクスチャHT1におけるカラーを用いた新たなカラーが表現される。領域AR52〜AR54に含まれるピクセルについては、ステップS2において変更用テクスチャが選択されず、従って、ステップS3〜S8の処理が行われず、当該各ピクセルに対してステップS1で求められたピクセルカラー値が新たなカラー値としてステップS9において決定されている。従って、領域AR52においては、画像G1の領域AR2におけるカラーと同様のカラーが表現され、領域AR53においては、画像G1の領域AR3におけるカラーと同様のカラーが表現され、領域AR54においては、画像G1の領域AR4におけるカラーと同様のカラーが表現される。
以上のような構成によって、本実施例においては、フレームバッファ53に描画された画像のうち、一部のカラーのみを変更した画像を提供可能である。このように、特定のカラーを有する部分のみ他のカラーに変更することにより、例えば、その部分を強調表示させることが可能となる。
また、1つのピクセルデータに対するテクセル座標を複数算出することにより、複数のテクセルカラーを求めることができ、求めたテクセルカラーを合成することにより、1つの変更用テクスチャのみを用いることによっても、様々なカラー表現を実現させることが可能である。テクセル座標の算出方法やテクセルカラーの合成方法は様々な方法を用いることが可能であり、この結果、複雑で繊細なカラー表現を実現させることが可能である。
[変形例]
<変形例1>
上述の各実施例においては、描画処理装置1は、モニタ装置10やコントローラ20とは別体に構成した。しかし、本発明においてはこれに限らず、描画処理装置1を、モニタ装置10やコントローラ20と一体的に構成するようにしても良い。
また、描画処理装置1は、テレビゲーム機やパーソナルコンピュータや、携帯端末を含む各種の情報処理装置により実現可能である。
<変形例2>
上述各の実施例においては、上記各ピクセルカラー変更処理は、CPU41がROM43に記憶されたプログラムを実行することにより実現されるように構成した。しかし、本発明においてはこれに限らず、当該プログラムは、当該プログラムが記憶されたCD−ROMやDVD−ROM、半導体メモリ等の各種記録媒体や、インターネットなどのネットワークから通信部80を介して当該プログラムを取得するように構成しても良い。
また、上記実施例1においては、CPU41は、図5のフローチャートに示されるような処理の流れに従って、動作するように構成した。しかし、本発明においてはこれに限らず、例えば、CPU41が、ステップS3,S5,S7の判定処理を行わずに、ステップS1,S2,S4,S9,S10の処理を行うように構成しても良い。
同様にして、上記実施例1においても、例えば、CPU41が、ステップS3,S7の判定処理を行わずにステップS1,S2,S4〜S6,S9,S10の処理を行うように構成しても良い。
<変形例3>
上記各実施例においては、ステップS1において生成したピクセルデータについて、フレームバッファ53に画像を描画した後に、ステップS2〜S11のピクセルカラー変更処理を行うように構成した。しかし、本発明においてはこれに限らず、ステップS1において算出した各ピクセルの値に基づいて、フレームバッファ53に画像を描画せずに、ピクセルカラー変更処理を行うように構成しても良い。また、例えば、ステップS1において、ステップS2以降のピクセルカラー変更処理に用いる値(例えば、実施例2においては、R,G値)を算出した後、ピクセルデータの他の値(例えば、実施例2においては、B値等)を算出する前に、ステップS2〜S11のピクセルカラー変更処理を行うように構成しても良い。
また、ステップS1の処理とステップS2の処理とを並行して行うように構成しても良い。
また、上述の各実施例におけるステップS1において生成した各ピクセルデータを、ステップS4において生成したピクセルカラー変更処理が施された各ピクセルデータに書き換えるように構成しても良い。
<変形例4>
上記各実施例におけるピクセルカラー変更処理おいては、、ステップS4において処理対象のピクセルデータに対して複数のテクセルカラーが求められた場合、テクセルカラー同士を合成した後(ステップS6)、合成されたテクセルカラーと、当該処理対象のピクセルデータに対してステップS1で求められたピクセルカラーとを合成する(ステップS8)ように構成した。しかし、本発明においてはこれに限らず、ステップS4において求められた複数の各々のテクセルカラーと、上記ピクセルカラーとを各々合成するようにしても良い。即ち、当該複数のテクセルカラーを1つずつ当該ピクセルカラーと合成し、各テクセルカラーとピクセルカラーとを合成して得られた複数の各カラーを更に合成して1つのカラーとする。そして、このカラーの値をピクセルデータの新たなピクセルカラー値として用いて描画するように構成しても良い。又は、複数のテクセルカラーのうち1つ目のテクセルカラーとピクセルカラーとを合成した後、当該合成したカラーと2つ目のテクセルカラーと合成するというように、複数のテクセルカラーのうち1つのテクセルカラーとピクセルカラーとを合成した後は、合成したカラーに対して複数のテクセルカラーのうち合成していない残りのテクセルカラーを1つずつ合成するようにしても良い。
<変形例5>
上述の各実施例においては、選択条件テーブルJTBL1〜JTBL3に示されるような選択条件に基づいて、ピクセルカラー変更処理を行うように構成した。しかし、本発明においてはこれに限らず、ピクセルデータのカラー値を変更するための選択条件は、ピクセルデータのカラー値、輝度(L値)、A値(α値)のうち少なくとも1つ以上について、これらの値の範囲や、これらの値を用いた所定の算式によって算出される値の範囲や、これらの値と算出された値とを含む少なくとも2つ以上を組み合わせた値の範囲等のピクセルデータの条件に対して、所定の変更用テクスチャや、当該テクスチャのテクセル座標等を対応付ける等の任意の様々な選択条件であっても良い。
また、上述の実施例2又は実施例3のように、1つのピクセルデータに対して、複数の変更用テクスチャが特定されるような選択条件を用いる場合、上述のピクセルカラー変更処理のステップS2において、当該選択条件によって特定される変更用テクスチャのうち少なくとも1つを任意に又は所定の選択方法によって選択するように構成しても良い。
また、例えば、図14に示される選択条件テーブルJTBL4に表されるような選択条件を用いるように構成しても良い。このような構成においては、ステップS1で求めた輝度(L値)の値が「0」以上「132」以下の場合、変更用テクスチャHT2のみを選択し、輝度(L値)の値が「124」以上「255」以下の場合、変更用テクスチャHT4のみを選択する。また、輝度(L値)の値が「124」より大きく「132」未満の場合、変更用テクスチャHT2と変更用テクスチャHT4とを選択する。即ち、輝度(L値)の値に応じて、選択する変更用テクスチャを異ならせると共に、選択する変更用テクスチャの数も異ならせるように構成する。
このような構成おいて、2つの変更用テクスチャを選択した場合、上述のステップS6におけるテクセルカラーを合成する際には、更に、各変更用テクスチャから求められた各テクセルカラーを50%ずつの割合で合成するように構成しても良い。各色を合成する割合は、メインメモリ42に予め記憶させておけば良い。
又は、2つの変更用テクスチャを選択した場合、上述のステップS6においてテクセルカラーを合成する際には、各変更用テクスチャから求めた各テクセルカラーを、ステップS1で求めたピクセルデータに含まれる少なくとも1つの値に応じて又はピクセルデータ含まれる少なくとも1つの値を用いて算出される値に応じて、線形的に合成するように構成しても良い。具体的には、例えば、各ピクセルデータについて、上述の実施例1と同様にして算出された輝度(L値)の値に応じてテクセルカラーを合成する場合、輝度(L値)の値が「124」以上「132」以下の場合、輝度(L値)の値と、変更用テクスチャHT2から求めるテクセルカラー(TCL1とする)と、変更用テクスチャHT4から求めるテクセルカラー(TCL2とする)との合成割合は、図15のグラフに示されるような関係となるよう構成する。尚、このグラフにおける横軸は、輝度(L値)の値を表し、縦軸はTCL2の合成割合を表している。具体的には、例えば、輝度(L値)の値を用いて合成割合を算出するような所定の算式を用いて構成する。このような構成において、例えば、輝度(L値)の値が「124」の場合には、TCL2の合成割合は0%となり、輝度(L値)の値が「126」の場合には、TCL2の合成割合は25%となり、輝度(L値)の値が「138」の場合には、TCL2の合成割合は50%となり、輝度(L値)の値が「130」の場合には、TCL2の合成割合は75%となり、輝度(L値)の値が「132」の場合には、TCL2の合成割合は100%となる。
このような構成によって、例えば、図16に示されるような画像G6を描画可能となる。
画像G6においては、画像G1の領域AR2と領域AR3との境界付近の領域が領域AR62に対応しており、また、領域AR62は、画像G6の領域AR61と領域AR62との境界付近にも対応している。この領域において、変更用テクスチャHT2におけるカラーと変更用テクスチャHT2におけるカラーとが上述したように線形的に合成されて表現される。
このような構成によって、例えば、画像の領域と領域との境界付近における色差に対する違和感を低減させることが可能となる。
また、同様にして、ステップS6において、ステップS4で求めたテクセルカラーと、ステップS1で求めたピクセルカラーとを合成する際も、当該ピクセルデータの値、例えば、輝度(L値)に応じて、線形的に合成するように構成しても良い。
<変形例6>
上述の各実施例においては、ピクセルデータは、3原色からなるカラー値(R,G,B)やA値(α値)を有するものとした。しかし、本発明においてはこれに限らず、ピクセルデータは、これらの値のうちいずれか1つ以上を含むものであっても良い。また、カラー値としてY,Cb,Cr等の各値を有する他の形式で表現されるカラー値を用いても良い。
また、上述の各実施例においては、ピクセルデータの有するピクセルカラー値から輝度の値を算式(1)を用いて算出するようにした。しかし、本発明においてはこれに限らず、ピクセルデータに、輝度の値を予め含むものであっても良いし、算式(1)以外の他の算式を用いて算出するものであっても良い。
また、ステップS1において描画処理される画像は白黒の画像であり、この画像を構成するピクセルデータが、ピクセルカラー値を有さず、明るさのみを表す輝度(L値)を有するものであっても良い。このようなピクセルデータに対しても、例えば、上述の実施例1と同様に、輝度値の値の範囲に対して変更用テクスチャを対応付け、各ピクセルデータの輝度値に応じて変更用テクスチャを選択し、テクセルカラー値を求めて、これを新たなピクセルカラー値とするように構成する。このような構成によって、白黒の画像から、様々なカラーの画像を生成することが可能となる。
また、変更用テクスチャが、例えば白黒の2色で表される様々な模様などを画像であっても良い。このような構成によれば、カラーの画像から白黒の様々な模様が表現される画像を生成可能となる。
また、上述の各実施例に係る各ピクセルカラー変更処理を行う対象の画像は、上述したポリゴンなどの3次元空間から構成される3次元画像を2次元座標に表した画像に限定されず、様々な画像であっても良い。例えば、スキャナなどから取り込んだ平面画像であっても良いし、又、静止画像、動画像のいずれの画像であっても良い。
また、上述の各実施例に係る各ピクセルカラー変更処理を行う対象の画像のうち、特定のオブジェクトや、特定の画像領域にのみ、上述の各実施例に係る各ピクセルカラー変更処理を行うように構成しても良い。このような構成においては、例えば、ステップS1の処理後に、処理対象となるオブジェクトや画像領域を所定の条件に従って特定し、特定したオブジェクトや画像領域に対して、ステップS2以降の処理を行うようにすれば良い。
<変形例7>
上述の各実施例及び変形例においては、選択条件テーブルJTBL1〜JTBL4において、選択対象の変更用テクスチャを特定する情報として、参照用アドレスを用いた。しかし、本発明においてはこれに限らず、例えば、変更用テクスチャと対応付けられているフラグやID情報などの他の情報を用いても良い。
<変形例8>
上述の各実施例に係る各ピクセルカラー変更処理を行い描画した画像に対して、再度、ピクセルカラー変更処理を行なうようにしても良い。即ち、該画像を構成するピクセルデータに対し、ステップS2〜S10の処理を再度行い、新たなピクセルカラー値を算出し、新たなピクセルカラー値を有するピクセルデータを生成し、このピクセルデータから構成される画像を描画するようにしても良い。このように、ピクセルカラー変更処理を複数回行うようにしても良い。このような構成の場合、更に、1回目のピクセルカラー変更処理に用いる選択条件テーブルと変更用テクスチャと、2回目以降のピクセルカラー変更処理に用いる選択条件テーブルと変更用テクスチャとが異なるように構成しても良い。例えば、1回目用の選択条件テーブルと変更用テクスチャと、2回目用の選択条件テーブルと変更用テクスチャとをそれぞれメインメモリ43に予め記憶させる。また、ピクセルカラー変更処理の処理回数を示す処理回数フラグをメインメモリ42に予め記憶させる。そして、上記ピクセルカラー変更処理において、例えば、ステップS10の後に、当該処理回数を計数して、処理回数フラグを更新し、処理回数フラグを参照することにより、当該処理に用いる選択条件テーブルと変更用テクスチャとを決定するよう構成すれば良い。
<変形例9>
上述の各実施例においては、テクセル座標は、当該ピクセルデータがモニタ装置10のスクリーン11上に表示される位置、即ちピクセルデータに対応するスクリーン座標の座標値(x、y)を用いて算出した。しかし、本発明においてはこれに限らず、例えば、乱数を発生させ、その値に基づいて、テクセル座標を算出するようにしても良い。具体的には、例えば、変更用テクスチャHT1のサイズが8×8(ピクセル)である場合、「1」から「8」までの乱数を2つ発生させるようにし、発生させた乱数をテクセル座標(U,V)のそれぞれの座標値とする。このような構成によれば、より複雑で意外性のあるカラー表現が可能となる。
また、その他任意の方法でテクセル座標を算出しても良く、また、これらの任意の算出方法と上述の実施例における算出方法とを組み合わせても良い。
<変形例10>
上述の各実施例においては、上述のピクセルカラー変更処理が施された画像をモニタ装置10のスクリーン11上に表示させるようにした。しかし、本発明においてはこれに限らず、それぞれ別の図形データから生成され上述のピクセルカラー変更処理が施された画像同士を組み合わせた画像や、ピクセルカラー変更処理が施された画像と、当該ピクセルカラー変更処理が施されていない画像とを組み合わせた画像を同時に、モニタ装置10のスクリーン11に表示するようにしても良い。
また、トゥーンレンダリングや、他のレンダリング手法において、上述のピクセルカラー変更処理を行ったり、他の画像効果と組み合わせて、上述のピクセルカラー変更処理を行うように構成しても良い。
<変形例11>
上述の各実施例に係るピクセルカラー変更処理を、例えば、ユーザのコントローラ20における操作入力に応じて、行うようにしても良い。また、例えば、コンピュータゲームプログラムにおいて、当該プログラムの実行時に用いる画像に対して、ゲームの進行具合や、ゲームにおいて発生するイベントやそのイベントの結果に応じて、又は、所定のタイミングに応じて、ピクセルカラー変更処理を行うようにして良い。このようなコンピュータゲームプログラムは、描画処理装置1のメインメモリ42やROM43に予め記憶されるものであっても良いし、又、メモリカード26や通信部80を介して描画処理装置1が取得するものであって良い。
<変形例12>
上述の各実施例に係るピクセルカラー変更処理において、ユーザのコントローラ20における操作入力に応じて、所望の変更用テクスチャを選択したり、ユーザ自身が所望のテクスチャを変更用テクスチャとして設定したり又は設定された変更用テクスチャを変更したり、上述の選択条件テーブルTBL1〜3に示されるような選択条件を、ユーザが設定したり又は設定された情報を変更したりできるようにしても良い。上述の各実施例に係る合計条件フラグについても同様である。
上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
本発明は、描画処理装置に用いて好適である。
本発明の実施例1における描画処理装置の外観を示す図である。
同実施例における描画処理装置の主要部の概略的な電気的構成の一例を示すブロック図である。
同実施例に係るピクセルカラー変更処理において用いる選択条件テーブルを例示する図である。
同実施例に係るピクセルカラー変更処理において用いる選択条件テーブルを例示する図である。
同実施例に係る動作の流れを示すフローチャートである。
同実施例に係るフレームバッファに描画される画像を例示する図である。
同実施例に係るモニタ装置のスクリーンに表示される画像を例示する図である。
同実施例に係るモニタ装置のスクリーンに表示される画像を例示する図である。
本発明の実施例2に係るピクセルカラー変更処理において用いる選択条件テーブルを例示する図である。
同実施例に係るモニタ装置のスクリーンに表示される画像を例示する図である。
本発明の実施例3に係るピクセルカラー変更処理において用いる選択条件テーブルを例示する図である。
同実施例に係るピクセルカラー変更処理において用いられるテクスチャ座標テーブルを例示する図である。
同実施例に係るモニタ装置のスクリーンに表示される画像を例示する図である。
本発明の変形例に係るピクセルカラー変更処理において用いる選択条件テーブルを例示する図である。
本発明の変形例に係るテクセルカラーの合成割合を説明するためのグラフである。
同変形例に係るモニタ装置のスクリーンに表示される画像を例示する図である。
本発明の各実施例に係る描画処理装置の機能的構成を示す機能ブロック図である。
符号の説明
1・・・描画処理装置、10・・・モニタ装置、11・・・スクリーン、20・・・コントローラ、40・・・制御系、41・・・CPU、42・・・メインメモリ、43・・・ROM、44・・・IOP、50・・・グラフィックシステム、51・・・GTE、52・・・GPU、53・・・フレームバッファ、60・・・サウンドシステム、61・・・SPU、62・・・サウンドバッファ、70・・・光ディスク制御部、71・・・光ディスク装置、72・・・デコーダ、73・・・バッファ、74・・・サブCPU、80・・・通信部、HT1〜HT4・・・変更用テクスチャ、JTBL1〜JTBL4・・・選択条件テーブル、K1・・・選択手段、K2・・・求色手段、K3・・・決定手段、K4・・・描画手段、ZTBL1・・・テクセル座標テーブル