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