(57)【要約】【課題】 半透明の部分を含む画像を正しく描画する。【解決手段】 アルファテストの条件が満たされなかった場合において実行される描画モードが、複数の描画モードの中から、ユーザの選択に対応して、CPUにより設定される。アルファテスト回路５１は、画像のアルファデータの値と定数を比較する。そして、その比較結果が条件に合致するか否かが判定され、その判定の結果、比較結果が条件に合致しなかったと判定された場合、アルファテスト回路５１は、設定された描画モードに対応して、描画処理を実行する。【選択図】      図１
2004246930.tif 000002
【特許請求の範囲】
【請求項１】
描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、及びこの画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報を、前記画素データを書き込むための領域、及び前記付加情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている描画手段を備えた画像処理装置であって、
前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、
前記描画手段は、前記判定手段により前記付加情報が前記条件に合致すると判定された場合には、前記画素データ、及び前記付加情報を前記ＶＲＡＭに新たに書き込むように、前記判定手段により前記付加情報が前記条件に合致しないと判定された場合には、前記画素データのみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ及び前記付加情報を前記ＶＲＡＭへ新たに書き込まないようにされてなる、
画像処理装置。
【請求項２】
描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、この画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報、及び前記ポリゴンを描画する際に用いられる当該ポリゴンの深さについての情報である深さ情報を、前記画素データを書き込むための領域、前記付加情報を書き込むための領域、及び前記深さ情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている描画手段を備えた画像処理装置であって、
前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、
前記描画手段は、前記判定手段により前記付加情報が前記条件に合致すると判定された場合には、前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭに新たに書き込むように、前記判定手段により前記付加情報が前記条件に合致しないと判定された場合には、前記画素データ、及び前記付加情報のみを前記ＶＲＡＭに新たに書き込むか、前記深さ情報のみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭへ新たに書き込まないようにされてなる、
画像処理装置。
【請求項３】
描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、及びこの画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報を、前記画素データを書き込むための領域、及び前記付加情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている制御手段を備えた画像処理装置にて実行される方法であって、
前記制御手段が、
前記付加情報が所定の条件に合致しているか否かを判定するステップ、
前記付加情報が前記条件に合致すると判定された場合に、前記画素データ、及び前記付加情報を前記ＶＲＡＭに新たに書き込むステップ、
前記付加情報が前記条件に合致しないと判定された場合に、前記画素データのみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ及び前記付加情報を前記ＶＲＡＭへ新たに書き込まないようにするステップ、
を実行する画像処理方法。
【請求項４】
描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、この画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報、及び前記ポリゴンを描画する際に用いられる当該ポリゴンの深さについての情報である深さ情報を、前記画素データを書き込むための領域、前記付加情報を書き込むための領域、及び前記深さ情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている制御手段を備えた画像処理装置にて実行される方法であって、
前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、
前記制御手段が、
前記付加情報が前記条件に合致すると判定した場合に、前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭに新たに書き込むステップ、
前記付加情報が前記条件に合致しないと判定した場合には、前記画素データ、及び前記付加情報のみを前記ＶＲＡＭに新たに書き込むか、前記深さ情報のみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭへ新たに書き込まないようにするステップ、
を実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びに伝送媒体に関し、特に、複数の描画モードの中から所定のものを設定し、設定された描画モードに対応して描画処理を行うようにした、画像処理装置および方法、並びに伝送媒体に関する。
【背景技術】
【０００２】
コンピュータゲーム機等の画像処理装置においては、所定の画像は、複数のポリゴンの組み合わせにより規定されており、ポリゴンを単位として描画することで、オブジェクト全体を描画するようになされている。そして、このような画像処理装置は、仮想空間内におかれたポリゴンを様々な状態に変化させてモニタ上に表示することができる。
【０００３】
図８は、このような画像処理装置の構成例を示すブロック図である。この例においては、CPU１１は、座標変換、光源計算、またはベクトル演算等の各種演算を行うとともに、各部を制御するようになされている。また、CPU１１には、データ転送を比較的高速に行うメインバス１２と、比較的低速に行うサブバス１３が接続されており、これらを介してデータの授受を行うことができる。サブバス１３には、CD-ROMドライブ１４が接続されており、CPU１１の命令により、それに装着された記録媒体としてのCD-ROMから各種のデータまたはプログラムを読みだすことができるようになされている。
【０００４】
メインバス１２には、メインメモリ１５、およびGPU（Graphic Processing Unit）１６が接続されている。メインメモリ１５は、CD-ROMドライブ１４から読みだされたデータや、CPU１１の演算結果としてのデータ等を記憶する。GPU１６は、メインメモリ１５から適宜データを読み出してレンダリング処理を行い、処理された画素データをVRAM（Video Random Access Memory）１７に格納する。GPU１６はまた、VRAM１７に格納されている画素データを読み出し、Ｄ／Ａコンバータ１８に供給する。Ｄ／Ａコンバータ１８は、GPU１６から供給される画素データを、デジタル信号からアナログ信号に変換し、ビデオ信号として図示せぬモニタに出力するようになされている。
【０００５】
このような画像処理装置において、２種類の画像を重ね合わせて、合成画像を描画する場合、どちらか一方の画像に半透明の領域（ポリゴン）が存在するとき、対象となる画像の画素データ（色データ）に付加されているアルファデータを用いて、２つの画像の画素データが合成（ブレンド）される。このアルファデータは、０．０乃至１．０の範囲の値をとる係数であり、不透明のポリゴンに対しては値１．０が、透明のポリゴンに対しては値０．０が、半透明のポリゴンに対しては０．０乃至１．０（値０．０に近いほど、より透明になり、値１．０に近いほど、より不透明になる）の間のいずれかの値が、それぞれ付加されている。
【０００６】
例えば、不透明な画像Ｆに半透明な画像Ｇを重ね合わせる場合、画像Ｆの画素データとアルファデータをそれぞれＣｄとＡｄとし、画像Ｇの画素データおよびアルファデータをそれぞれＣｓおよびＡｓとすると、ブレンド後の画素データＣｂは次式で表される。
Ｃｂ＝Ａｓ×Ｃｓ＋（１−Ａｓ）×Ｃｄ・・・・（１）
【０００７】
このような処理をアルファブレンディングと称する。
【０００８】
図９は、このようなアルファブレンディング処理を行う回路としてのGPU１６とVRAM１７のより詳細な構成例を示すブロック図である。この例においては、GPU１６は、補間回路２１およびアルファブレンディング回路２２により構成され、VRAM１７は、Ｚバッファ３１およびフレームバッファ３２を有している。
【０００９】
補間回路２１は、図８のメインメモリ１５から読み出された所定のポリゴンに対して補間処理を行い、補間されたポリゴンの画素データＣｓをアルファブレンディング回路２２に供給するとともに、深さデータＺｓとアルファデータＡｓをVRAM１７、及びアルファブレンディング回路２２に供給するようになされている。アルファブレンディング回路２２は、補間回路２１から供給されるアルファデータＡｓを用いて、VRAM１７に記憶されているポリゴンの画素データＣｄと補間回路２１から供給される画素データＣｓをブレンドして、画素データＣｂを生成する。そして、アルファブレンディング回路２２は、生成した画素データＣｂをVRAM１７に出力する。
【００１０】
Ｚバッファ３１は、GPU１６の補間回路２１から供給されるポリゴンの深さデータＺｓのうち、値がより大きいもの（すなわち、画像の位置がより手前にあることを示すもの）を記憶するようになされており、フレームバッファ３２は、モニタ上に表示する画像の画素データを記憶するようになされている。また、VRAM１７は、補間回路２１から供給されるアルファデータＡｓを所定の領域に記憶するようになされている。
【００１１】
図１０は、図９のアルファブレンディング回路２２を用いて２つの画像を重ね合わせて合成された画像を描画する処理例を説明する図である。この例においては、画像１１０の画素データＣｄとアルファデータＡｄは予めVRAM１７に格納されているものとし、この上に画像１２０が重ね合わされるものとする。各画像の図において左側に示されているものは、それぞれの画像を規定しているポリゴンの画素データであり、また、図の右側に示されているものは、それに対応するアルファデータの値を表している。
【００１２】
この例においては、画像１１０の領域１１２（ポリゴン）は不透明とされており、それに対応するアルファデータＡｄの値は１．０である。画像１２０の領域１２２は、半透明とされており、そのアルファデータＡｓの値は０．５である。また、画像１１０の領域１１１と画像１２０の領域１２１は透明とされており、それぞれのアルファデータＡｄとＡｓの値はともに０．０である。
【００１３】
アルファブレンディング回路２２は、画像１２０のアルファデータＡｓを用いて画像１１０，１２０の画素データＣｄ，Ｃｓをブレンドして画素データＣｂを生成する（（１）式参照）。そして、生成された画素データＣｂ、アルファデータＡｓが画像１３０としてVRAM１７に描画される（書き込まれる）。なお、描画された画像のアルファデータを、新たにＡｂと称する。画像１３０の画素データＣｂの値は、領域１３１と領域１３２では画像１１０の画素Ｃｄと等しくなり、領域１３３では（０．５×Ｃｓ＋０．５×Ｃｄ）となる。
【００１４】
この場合、画素データＣｂは正しくブレンドされているが、アルファデータＡｂは、画像１２０のアルファデータＡｓの値がそのまま描画されている。いまの場合、不透明な領域１１２と半透明な領域１２２が重ね合わされたので、領域１３２と領域１３３に対応するアルファデータＡｂの値は、正しくは、不透明を示す値１．０でなくてはならない。従って、この場合の描画処理は正しく行われていない。
【００１５】
ところで、このような画像の描画処理に、アルファテストと呼ばれる方法が用いられることがある。図１１は、アルファテストを行うための回路を備えたGPU１６およびVRAM１７の構成例を示すブロック図であり、図９に示した場合と対応する部分には、同一の符号が付されており、その説明を適宜省略する。この例においては、補間回路２１とVRAM１７の間に、アルファテスト回路２３が設けられている。このアルファテスト回路２３には所定の定数Ｃ（constant）が設定されており、アルファテスト回路２３は、補間回路２１から供給されるアルファデータＡｓの値とこの定数Ｃの値とを比較し、その比較結果が所定の条件に合致するか否かを判定するようになされており、この判定結果に対応して、アルファブレンディング回路２２によりブレンドされた画素データＣｂとアルファデータＡｓをVRAM１７に描画するか否かを選択するようになされている。
【００１６】
図１２は、例えば、図１１のアルファテスト回路２３の定数Ｃの値を１．０とし、条件をEQUAL（等しい）とした場合における合成画像の描画処理例を説明する図であり、図１０に示した場合と対応する部分には同一の符号を付してあり、その説明を適宜省略する。この例においては、アルファテスト回路２３により、画像１２０のアルファデータＡｓの値と定数Ｃの値が比較され、両者が等しいか否かが判定される。いまの場合、画像１２０の領域１２１と１２２に対応するアルファデータＡｓの値は、それぞれ０．０と０．５であるので、定数Ｃの値１．０と等しいアルファデータＡｓは存在しない。従って、比較の結果、条件EQUAL（１．０）が充足されないので、アルファテスト回路２３は、VRAM１７にライトディセーブルの命令ＷＤを与え、アルファブレンディング回路２２によりブレンドされた画素データＣｂとアルファデータＡｓをVRAM１７に描画しないようにする。そのため、合成後の画像１４０は、画像１１０と同一となる。従って、この場合の合成画像の描画処理は正確に行われていないことになる。
【００１７】
図１３は、例えば、図１１のアルファテスト回路２３の定数Ｃの値を０．０とし、条件をNOT-EQUAL（等しくない）とした場合における画像の描画処理を説明する図であり、図１０に示した場合と対応する部分には同一の符号を付してあり、その説明を適宜省略する。アルファテスト回路２３は、画像１２０のアルファデータＡｓの値と定数Ｃの値を比較し、いまの場合、領域１２２に対応するアルファデータＡｓの値が条件NOT-EQUALに合致するので、VRAM１７にライトイネーブルの命令ＷＥを与えることにより、アルファブレンディング回路２２によりブレンドされた画素データＣｂと領域１２２に対応するアルファデータＡｓの値０．５を画像１５０としてVRAM１７に描画する。
【００１８】
描画された画像１５０の領域１５２および領域１５３は、画像１１０の不透明な領域１１２と画像１２０の半透明の領域１２２を重ね合わせたものであるから、これに対応するアルファデータＡｂは、不透明を示す値１．０でなければならないが、この場合、半透明を示す値０．５が描画されており、正しい描画処理が行われていない。
【００１９】
次に、図１４を参照して、画像の深さを考慮した場合の画像の描画処理例を説明する。これは、各画素に付加されている深さデータに基づいて画素ごとにその深さデータの値を比較し、複数の画素が重なる場合、いちばん手前にある画素のみを描画し、奥にある画素を描画しないものとする、Ｚバッファ法と呼ばれる処理である。各画像の図において左端に示されているものは、その画素データであり、中央に示されているものは、それに対応するアルファデータの値であり、また、右端に示されているものは、深さデータの値である。この深さデータの値が大きくなるほど、画素が仮想空間内においてより手前に位置し、値が０に近づくほど、より奥に位置することになる。
【００２０】
この例においては、画像１６０の領域１６１と領域１６２のアルファデータのＡｄの値は、それぞれ不透明を示す値１．０と半透明を示す値０．５であり、画像１７０の領域１７１と領域１７２のアルファデータのＡｓの値は、それぞれ不透明を示す値１．０とされている。また、画像１６０と画像１７０の深さデータＺｄとＺｓの値は、それぞれ１００．０と５０．０であり、これにより、画像１６０は、画像１７０よりも手前に位置することになる。
【００２１】
まず、画像１６０の各データが、VRAM１７に描画される。次に、画像１６０に対して画像１７０の画素データがブレンドされる。ところが、Ｚバッファ３１に格納されている画像１６０の深さデータＺｄの値と、画像１７０の深さデータＺｓの値とが比較されると、画像１７０の深さデータＺｓの値が、画像１６０の深さデータＺｄの値に較べて小さく、画像１７０の方が奥にあることを示しているので、画像１７０の各データのVRAM１７への描画が禁止されてしまう。そのため、合成結果としての画像１８０は、正しくは、画像１６０の半透明の領域１６２ごしに画像１７０の画像が見えるような画像とならなけらばならないが、この場合、画像１６０のままとなってしまい、画像の描画処理が正しく行われていないことになる。
【００２２】
次に、画像の所定の不透明の領域（ポリゴン）を透明物体として描画する処理例を図１５を参照して説明する。この例においては、VRAM１７に予め画像４００が格納されているものとする。この画像４００のアルファデータＡｄの値と深さデータＺｄの値は、ともに０．０とされている。画像３１０-Ａの領域３１１と領域３１２の画素データＣｓに対応する深さデータＺｓの値は、それぞれ１００．０と０．０であり、領域３１１と領域３１２のアルファデータＡｓは、それぞれ不透明を表す値１．０と透明を表す値０．０である。この不透明の領域３１１を透明物体として使用したいものとする。また、画像３２０のアルファデータＡｓの値は１．０、深さデータＺｓの値は５０．０とされている。
【００２３】
なお、いまの場合、アルファブレンディング処理とアルファテスト処理は行われないものとする。まず、画像３１０-Ａの画素データＣｓ、アルファデータＡｓ、および深さデータＺｓがVRAM１７に描画されると、画像３１０-Ｂが得られる。次に、描画された画像３１０-Ｂの上に、画像３２０の画素データＣｓ、アルファデータＡｓ、および深さデータＺｓが描画される。ただし、Ｚバッファ３１に格納されている画像３１０-Ｂの領域３１１に対応する深さデータＺｄの値１００．０は、画像３２０の深さデータＺｓの値５０．０に比較して大きいので、この領域における画像３２０の描画が禁止される。このようにして合成された画像５００の領域５０１のアルファデータＡｂは、不透明を表す値１．０となり、透明物体として表現することができない。この領域を透明にするには、画像３１０-Ａの領域３１１に対応するアルファデータの値を０．０にしなくてはならない。すなわち、領域３１１を透明色としなければならない。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
以上のようにして、半透明の部分を含む画像の描画処理が行われるが、従来の画像処理装置においては、合成された画像の画素データとアルファデータの値が、正しく対応しない課題があった。
【００２５】
また、Ｚバッファ法により、画像が手前にあるものと奥にあるものを重ね合わせて描画処理を行う場合、VRAM１７に描画する順序によっては、半透明の部分を含む画像を描画することができない課題があった。
【００２６】
さらに、所定の不透明のポリゴンを透明のポリゴンとして使用する場合、対応するアルファデータの値を、透明を表す値０．０に変換しなくてはならないので、同一のデータを使いまわすことができない課題があった。
【００２７】
本発明はこのような状況に鑑みてなされたものであり、アルファテストを用いて、画像の描画処理を正しく行えるようにするものである。
【課題を解決するための手段】
【００２８】
上述の課題を解決する発明は、以下のようなものである。
本発明は、画像処理装置、画像処理方法として具現化される。
本発明の画像処理装置は、描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、及びこの画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報を、前記画素データを書き込むための領域、及び前記付加情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている描画手段を備えた画像処理装置であって、前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、前記描画手段は、前記判定手段により前記付加情報が前記条件に合致すると判定された場合には、前記画素データ、及び前記付加情報を前記ＶＲＡＭに新たに書き込むように、前記判定手段により前記付加情報が前記条件に合致しないと判定された場合には、前記画素データのみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ及び前記付加情報を前記ＶＲＡＭへ新たに書き込まないようにされてなる。
【００２９】
他の本発明の画像処理装置は、描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、この画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報、及び前記ポリゴンを描画する際に用いられる当該ポリゴンの深さについての情報である深さ情報を、前記画素データを書き込むための領域、前記付加情報を書き込むための領域、及び前記深さ情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている描画手段を備えた画像処理装置であって、前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、前記描画手段は、前記判定手段により前記付加情報が前記条件に合致すると判定された場合には、前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭに新たに書き込むように、前記判定手段により前記付加情報が前記条件に合致しないと判定された場合には、前記画素データ、及び前記付加情報のみを前記ＶＲＡＭに新たに書き込むか、前記深さ情報のみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭへ新たに書き込まないようにされてなる。
【００３０】
本発明の画像処理方法は、描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、及びこの画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報を、前記画素データを書き込むための領域、及び前記付加情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている制御手段を備えた画像処理装置にて実行される方法であって、前記制御手段が、前記付加情報が所定の条件に合致しているか否かを判定するステップ、前記付加情報が前記条件に合致すると判定された場合に、前記画素データ、及び前記付加情報を前記ＶＲＡＭに新たに書き込むステップ、前記付加情報が前記条件に合致しないと判定された場合に、前記画素データのみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ及び前記付加情報を前記ＶＲＡＭへ新たに書き込まないようにするステップ、を実行する画像処理方法である。
他の本発明の画像処理方法は、描画対象となるポリゴンの不透明な状態での色彩を表す画素データ、この画素データに付加されている、前記ポリゴンを描画する際に用いられる当該ポリゴンの透明度についての情報である付加情報、及び前記ポリゴンを描画する際に用いられる当該ポリゴンの深さについての情報である深さ情報を、前記画素データを書き込むための領域、前記付加情報を書き込むための領域、及び前記深さ情報を書き込むための領域を有するＶＲＡＭに書き込むようになっている制御手段を備えた画像処理装置にて実行される方法であって、前記付加情報が所定の条件に合致しているか否かを判定する判定手段を備えているとともに、前記制御手段が、前記付加情報が前記条件に合致すると判定した場合に、前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭに新たに書き込むステップ、前記付加情報が前記条件に合致しないと判定した場合には、前記画素データ、及び前記付加情報のみを前記ＶＲＡＭに新たに書き込むか、前記深さ情報のみを前記ＶＲＡＭに新たに書き込むか、又は前記画素データ、前記付加情報、及び前記深さ情報を前記ＶＲＡＭへ新たに書き込まないようにするステップ、を実行する画像処理方法である。
【発明を実施するための最良の形態】
【００３１】
以下に本発明の実施の形態を説明する。
【００３２】
本発明を適用した画像処理装置は、図８に示した場合と同様の構成となるので、その説明は適宜省略する。図１は、本発明の画像処理装置におけるGPU１６とVRAM１７の詳細な構成例を示しており、図１１に示した場合と対応する部分には、同一の符号を付してあり、その説明を適宜省略する。この例においては、予め、ユーザの選択入力に対応して、CPU１１（図８）により、描画モードが設定される。この描画モードとして、例えば本発明の実施の形態においては、画素データおよびアルファデータのどちらもVRAM１７に描画しないものとするKEEPモード（第１の描画モード）と、画素データのみを描画し、アルファデータは描画しないとするRGB-ONLYモード（第２の描画モード）の２種類が用意されている。
【００３３】
また、画像の深さデータの値を考慮した描画処理の場合、描画モードとして、画素データ、アルファデータ、および深さデータのいずれも描画しないとするKEEPモード（第１の描画モード）、画素データおよびアルファデータを描画し、深さデータは描画しないものとするFB-ONLYモード（第２の描画モード）、または深さデータのみを描画し、画素データおよびアルファデータは描画しないものとするZB-ONLYモード（第３の描画モード）、の３種類が用意されている。
【００３４】
アルファテスト回路５１は、補間回路２１から供給されるアルファデータＡｓの値が所定の定数Ｃ（constant）を含む所定の条件に合致するか否かを判定し、予め選択された描画モードに対応して画像の描画処理を実行するようになされている。
【００３５】
図２は、２種類の画像を重ね合わせて合成された画像を描画する処理例を説明する図である。この例においては、VRAM１７に予め格納されている画像１１０の領域１１２は不透明とされており、それに対応するアルファデータＡｄの値は１．０である。画像１２０の領域１２２は、半透明とされており、そのアルファデータＡｓの値は０．５である。また、画像１１０の領域１１１と画像１２０の領域１２１は透明とされており、それぞれのアルファデータＡｄとＡｓの値はともにに０．０である。そして、アルファテスト回路５１の定数Ｃの値は１．０とされ、条件はEQUALとされている。この場合、図３に示すフローチャートの処理が実行される。
【００３６】
まず、ステップＳ１１において、CPU１１は、アルファテスト回路５１において、条件が満足されない場合の描画モードとして、モードの選択指令に対応して、いまの場合、RGB-ONLYモードを設定する。続いて、ステップＳ１２において、アルファブレンディング回路２２は、画像１２０のアルファデータＡｓを用いて、画像１１０の画素データＣｄと、画像１２０の画素データＣｓをブレンドし、画素データＣｂを生成する。
【００３７】
ステップＳ１３において、アルファテスト回路５１は、画像１２０のアルファデータＡｓの値と定数Ｃの値を比較し、ステップＳ１４に進み、ステップＳ１３における比較結果が、条件EQUALに合致するか否かを判定する。ステップＳ１４において、比較結果が条件に合致すると判定された場合、ステップＳ１５に進み、アルファテスト回路５１は、画素データＣｂを描画する命令WE-RGBと、アルファデータＡｓを描画する命令WE-AをVRAM１７に与えることにより、アルファブレンディング回路２２によりブレンドされた画素データＣｂとアルファデータＡｓをVRAM１７に描画するが、いまの場合、画像１２０の領域１２１と１２２のアルファデータＡｓの値は、それぞれ０．０と０．５であり、条件に合致しないので、ステップＳ１５の処理は実行されない。
【００３８】
ステップＳ１４において、ステップＳ１３における比較結果が条件EQUALに合致しないと判定された場合、ステップＳ１６において、アルファテスト回路５１は、ステップＳ１１において選択、設定されたRGB-ONLYモードに対応して、画素データＣｂのみを描画し、アルファデータＡｓは描画しないものとする命令RGB-ONLYをVRAM１７に与えることにより、ブレンドされた画素データＣｂをVRAM１７に描画する。これにより、合成後の画像２１０は、領域２１２と領域２１３（不透明の画素と、半透明の画素がブレンドされた領域）に対応するアルファデータＡｂの値は１．０となり、正しく対応することになる。
【００３９】
次に、図４を参照して、深さデータの値を考慮した場合の描画処理例を説明する。この例においては、定数Ｃの値は１．０とされ、条件はEQUALとされ、その条件が満たされなかった場合の描画モードはFB-ONLYに設定される。なお、Ｚバッファ３１の初期値は、０．０であるものとする。画像２２０-１の領域２２１と領域２２２のアルファデータＡｄは、それぞれ不透明を示す値１．０と半透明を示す値０．５である。画像２３０の領域２３１と領域２３２のアルファデータＡｓは、ともに不透明を示す値１．０とされている。また、画像２２０-１と画像２３０の深さデータＺｄとＺｓの値は、それぞれ１００．０と５０．０であり、この場合、画像２２０-１は、画像２３０よりも手前にあることになる。この場合、図５のフローチャートに示す描画処理が実行される。
【００４０】
まず、ステップＳ２１において、CPU１１は、アルファテストの条件が満たされなかった場合において実行される描画モードとして、ユーザの選択に対応して、いまの場合、FB-ONLYモードを設定する。続いて、ステップＳ２２において、アルファテスト回路５１は、画像２２０-１のアルファデータＡｄの値と定数Ｃの値とを比較する。そして、ステップＳ２３において、比較結果が条件EQUALに合致するか否かが判定されるが、いまの場合、領域２２１のアルファデータＡｄの値１．０と定数Ｃの値１．０との比較結果が条件に合致するのでステップＳ２４に進み、領域２２２のアルファデータＡｄの値０．５と定数Ｃの値１．０との比較結果は条件に合致しないのでステップＳ２５に進む。
【００４１】
ステップＳ２４において、アルファテスト回路５１は、領域２２１の画素データＣｄとアルファデータＡｄを描画する命令WE-FBと領域２２１の深さデータＺｄを描画する命令WE-ZBをVRAM１７に与えることにより、領域２２１の画素データＣｄ、アルファデータＡｄ、および深さデータＺｄをVRAM１７に描画する。ステップＳ２５では、アルファテスト回路５１は、ステップＳ２１で設定されたFB-ONLYモードに対応して、領域２２２の画素データＣｄとアルファデータＡｄを描画する命令WE-FBをVRAM１７に与えることにより、領域２２２の画素データＣｄとアルファデータＡｄのみをVRAM１７に描画する。これにより、VRAM１７には、画像２２０-２が格納されることになる。
【００４２】
次に、ステップＳ２６において、アルファブレンディング回路２２は、画像２３０のアルファデータＡｓに対応して、画像２２０-２の画素データＣｄと、画像２３０の画素データＣｓをブレンドし、画素データＣｂを生成する。
【００４３】
アルファテスト回路５１は、ステップＳ２７において、画像２３０のアルファデータＡｓの値と定数Ｃの値を比較し、ステップＳ２８において、ステップＳ２７における比較結果が、条件EQUALに合致するか否かを判定する。いまの場合、画像２３０の領域２３１と領域２３２に対応するアルファデータＡｓの値は、ともに１．０であり、定数Ｃの値と等しいので、条件EQUALに合致する。従って、ステップＳ２９に進み、アルファテスト回路５１は、画素データＣｂとアルファデータＡｓを描画する命令WE-FBと、深さデータＺｓを描画する命令WE-ZBをVRAM１７に与えることにより、画素データＣｂ、アルファデータＡｓ、および深さデータＺｓをVRAM１７に描画する。ただし、Ｚバッファ３１に格納されている画像２２０-２の領域２２１に対応する深さデータＺｄの値１００．０は、画像２３０の深さデータＺｓの値５０．０に比較して大きいので、この領域の部分には深さデータＺｄは描画されない。
【００４４】
ステップＳ２８において、比較結果が条件に合致しないと判定された場合は、ステップＳ３０において、アルファテスト回路５１は、ステップＳ２１で設定されたFB-ONLYモードに対応して、画素データＣｂ及びアルファデータAsを描画する命令WE-FBをVRAM１７に与え、画素データCb及びアルファデータAsをVRAM１７に描画するが、いまの場合、この処理は実行されない。
【００４５】
これにより、合成後の画像２４０は、画像２３０が、画像２２０-２の半透明の領域２２２ごしに見えるように描画される。このように、描画の順序に関係なく、半透明の部分を含んだ画像を描画することができる。
【００４６】
次に、画像の所定の不透明の領域（ポリゴン）を透明物体として描画する処理例を図６を参照して説明する。この例においては、VRAM１７に予め画像４００が格納されているものとする。この画像４００のアルファデータＡｄの値と深さデータＺｄの値は、ともに０．０とされている。画像３１０-１の領域３１１と領域３１２の画素データＣｄに対応する深さデータＺｄの値は、それぞれ１００．０と０．０であり、領域３１１と領域３１２のアルファデータＡｄは、それぞれ不透明を表す値１．０と透明を表す値０．０である。このように、領域３１１は不透明の物体であるが、これを透明物体として使用したいものとする。なお、画像３２０の全ての領域のアルファデータＡｓの値は１．０、深さデータＺｓの値は５０．０とされている。
【００４７】
ここで、定数Ｃ＝０．０、かつ条件をEQUALとして描画処理を行うものとする。この場合の描画処理を図７のフローチャートを参照して説明すると以下のようになる。
【００４８】
まず、ステップＳ４１において、CPU１１は、アルファテストの条件が満たされなかった場合において実行される描画モードとして、ZB-ONLYモードを設定する。続いて、ステップＳ４２において、アルファテスト回路５１は、画像３１０-１のアルファデータＡｓの値と定数Ｃの値とを比較する。そして、ステップＳ４３において、比較結果が条件EQUALに合致するか否かが判定されるが、いまの場合、領域３１２のアルファデータＡｓの値０．０と定数Ｃの値０．０の比較結果は等しい（EQUAL）となり、条件EQUALに合致するので、ステップＳ４４に進む。一方、領域３１１のアルファデータＡｓの値１．０と定数Ｃの値０．０との比較結果は等しくない（NOT-EQUAL）となり、条件EQUALに合致しないのでステップＳ４５に進む。
【００４９】
ステップＳ４４において、アルファテスト回路５１は、命令WE-FBと命令WE-ZBをVRAM１７に与えることにより、領域３１２に対応する画素データＣｓ、アルファデータＡｓ、および深さデータＺｓをVRAM１７に描画する。ステップＳ４５において、アルファテスト回路５１は、ステップＳ４１で設定されたZB-ONLYモードに対応して、命令WE-ZBをVRAM１７に与えることにより、領域３１２に対応する深さデータＺｓのみをVRAM１７に描画する。
【００５０】
これにより、VRAM１７には、画像３１０-２が描画されたことになる。そして、この画像３１０-２に、画像３２０が合成されるものとする。ここで、ユーザの選択に対応して、CPU１１は、新たに条件をNOT-EQUALに設定する。
【００５１】
アルファテスト回路５１は、ステップＳ４６において、画像３２０のアルファデータＡｓの値と定数Ｃの値を比較し、ステップＳ４７において、ステップＳ４６における比較結果が、条件NOT-EQUALに合致するか否かを判定する。いまの場合、領域３２１と領域３２２に対応するアルファデータＡｓの値は、ともに１．０であるので、定数Ｃの値０．０に等しくない（NOT-EQUAL）。従って条件NOT-EQUALに合致するので、ステップＳ４８に進み、アルファテスト回路５１は、命令WE-FBと、命令WE-ZBをVRAM１７に与えることにより、画像３２０の全ての領域の画素データＣｓ、アルファデータＡｓ、および深さデータＺｓをVRAM１７に描画する。
【００５２】
ただし、Ｚバッファ３１に格納されている画像３１０-２の領域３１１に対応する深さデータＺｓの値１００．０は、画像３２０の深さデータＺｓの値５０．０に比較して大きいので、この領域における画像３２０の画素データＣｓと深さデータＺｓの描画が禁止される。なお、いまの場合、ステップＳ４９の処理は考慮しないものとする。
【００５３】
これにより、描画された画像６００の領域６０１に対応するアルファデータＡｂは、透明を示す値０．０となり、透明の物体として表現することができる。
【００５４】
このように、例えば、不透明な画像も、以上に示したような処理を行うことにより、透明の画像として描画することができる。すなわち、同一の画像データを、不透明の画像データとしても、透明の画像データとしても利用することが可能となり、その分のメモリ容量の節約となる。
【００５５】
なお、上記したような処理を行うプログラムを伝送する伝送媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明を適用した画像処理装置のGPUとVRAMの詳細な構成例を示す図である。
【図２】２種類の画像を重ね合わせて合成画像を描画する処理を説明する図である。
【図３】図２の処理を説明するフローチャートである。
【図４】画像の深さを考慮して合成画像を描画する処理を説明する図である。
【図５】図４の処理を説明するフローチャートである。
【図６】画像の不透明の領域を透明物体として描画する処理例を説明する図である。
【図７】図６の処理を説明するフローチャートである。
【図８】画像処理装置の構成例を示すブロック図である。
【図９】図８のGPUとVRAMのより詳細な構成例を示すブロック図である。
【図１０】２種類の画像を重ね合わせて合成画像を描画する処理例を説明する図である。
【図１１】図９のGPUとVRAMにアルファテスト回路を設けた場合における構成例を示すブロック図である。
【図１２】２種類の画像を重ね合わせて合成画像を描画する処理例を説明する図である。
【図１３】２種類の画像を重ね合わせて合成画像を描画する他の処理例を説明する図である。
【図１４】画像の深さを考慮した場合の合成画像の描画処理例を説明する図である。
【図１５】画像の不透明の領域を透明物体として描画する処理例を説明する図である。
【符号の説明】
【００５７】
１６ GPU，１７ VRAM，２１ 補間回路，２２ アルファブレンディング回路，５１ アルファテスト回路，３１ Ｚバッファ，３２ フレームバッファ
【図１】
2004246930.tif 000003
【図２】
2004246930.tif 000004
【図３】
2004246930.tif 000005
【図４】
2004246930.tif 000006
【図５】
2004246930.tif 000007
【図６】
2004246930.tif 000008
【図７】
2004246930.tif 000009
【図８】
2004246930.tif 000010
【図９】
2004246930.tif 000011
【図１０】
2004246930.tif 000012
【図１１】
2004246930.tif 000013
【図１２】
2004246930.tif 000014
【図１３】
2004246930.tif 000015
【図１４】
2004246930.tif 000016
【図１５】
2004246930.tif 000017