(57)【特許請求の範囲】
【請求項１】
色データとディスティネーション混合係数とソース混合係数とを有した複数のポリゴンに対する所定のブレンディング処理を行って、表示すべき画像データを生成する画像処理装置であって、
表示画面内のポリゴンを手前から順に並べた時のｎ番目までのポリゴンのソース混合係数SR1〜SRnの累積値Ｘnと、前記手前側からｎ番目まで処理したときに表示すべき画像データＤnと、を算出するレンダリング処理部を有し、
前記レンダリング処理部は、ｎ枚目のポリゴンの色データＴn を、前記ディスティネーション混合係数DEn と、手前に位置するn−1枚のポリゴンのソース混合係数SR1〜SRn−1の累積値Ｘn−1 とに応じて、n−1枚目までの画像データＤn−1 に加算して、前記画像データＤnを求め、さらに、前記累積値Ｘnが、０または所定の最小値より小さい場合は、ｎ番目以降のポリゴンに対する処理を省略する
ことを特徴とする画像処理装置。
【請求項２】
色データとディスティネーション混合係数とソース混合係数とを有した複数のポリゴンに対する所定のブレンディング処理を行って、表示すべき画像データを生成する画像処理方法であって、
表示画面内のポリゴンを手前から順に並べた時のｎ番目までのポリゴンのソース混合係数SR1〜SRnの累積値Ｘnと、前記手前側からｎ番目まで処理したときに表示すべき画像データＤnと、を算出するレンダリング処理工程を有し、
前記レンダリング処理工程は、ｎ枚目のポリゴンの色データＴn を、前記ディスティネーション混合係数DEn と、手前に位置するn−1枚のポリゴンのソース混合係数SR1〜SRn−1の累積値Ｘn−1 とに応じて、n−1枚目までの画像データＤn−1 に加算して、前記画像データＤnを求め、さらに、前記累積値Ｘnが、０または所定の最小値より小さい場合は、ｎ番目以降のポリゴンに対する処理を省略する
ことを特徴とする画像処理方法。
【請求項３】
色データとディスティネーション混合係数とソース混合係数とを有した複数のポリゴンに対する所定のブレンディング処理を行って、表示すべき画像データを生成する画像処理手順をコンピュータに実行させるプログラムを記録した記録媒体であって、
表示画面内のポリゴンを手前から順に並べた時のｎ番目までのポリゴンのソース混合係数SR1〜SRnの累積値Ｘnと、前記手前側からｎ番目まで処理したときに表示すべき画像データＤnと、を算出するレンダリング処理手順を有し、
前記レンダリング処理手順は、ｎ枚目のポリゴンの色データＴn を、前記ディスティネーション混合係数DEn と、手前に位置するn−1枚のポリゴンのソース混合係数SR1〜SRn−1の累積値Ｘn−1 とに応じて、n−1枚目までの画像データＤn−1 に加算して、前記画像データＤnを求め、さらに、前記累積値Ｘnが、０または所定の最小値より小さい場合は、ｎ番目以降のポリゴンに対する処理を省略する
ことを特徴とする画像処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半透明ポリゴンを含む複数のポリゴンに対する画像処理装置及びその方法にかかり、特に、半透明ポリゴンの場合でも表示画面内の手前から順にポリゴンデータを画像データに変換処理することができる画像処理装置及びその方法に関する。更に、本発明は、複数のポリゴンに対するブレンディング処理を表示画面内の手前から順にポリゴンデータに対して行うことができる画像処理装置及びその方法に関する。
【０００２】
【従来の技術】
ゲーム装置やシミュレーション装置において、操作入力に応じてキャラクタ等を構成する複数のポリゴンの位置を求め、それらのポリゴンのうち表示されるポリゴンに対してレンダリング処理を行って画像データを生成し、それらを表示することが行われる。
【０００３】
半透明ポリゴンに対するレンダリング処理は、不透明ポリゴンと異なり、その後方（奥側）に位置する他のポリゴンとのブレンディング処理を伴い、従来は、表示画面内の奥側の半透明ポリゴンから順にブレンディング処理を含むレンダリング処理を行うことが必要である。
【０００４】
一方、不透明のポリゴンに対するレンダリング処理は、表示画面内の奥行きを示すＺ値を利用した陰面消去処理を行うことで、複数のポリゴンのレンダリングの順番に制約を課すことなく、重なり合う部分の処理が行われる。また、不透明ポリゴンと半透明ポリゴンとが混在する場合は、上記のＺ値を利用した陰面消去処理によって不透明ポリゴンを任意の順番で処理し、その後、半透明ポリゴンを奥側から順に処理する方法が一般的である。
【０００５】
【発明が解決しようとする課題】
ところが、レンダリング処理において、処理すべきポリゴン数が多くなると、決められたフレーム間の時間内でレンダリング処理が完了しない場合がある。その場合、画像処理の質を重視すると全ての半透明ポリゴンのレンダリング処理が終了するまで待たなければならず、表示中のキャラクタの動きが停止することになり、ゲーム装置あるいはシュミレーション装置において不都合である。また、キャラクタの動きを重視するとフレーム間の時間内で処理されないポリゴンが存在することになる。その場合、半透明ポリゴンのレンダリング処理が、より奥側のポリゴンから処理されるので、画像内で最も重要なキャラクタの一つである手前側のポリゴンの処理が切り捨てられることになる。
【０００６】
更に、不透明ポリゴンと半透明ポリゴンのレンダリング処理は、上記した通り、それぞれの効率を重視すると、それらのポリゴンを分けて別々に処理する必要があり、画像処理の負担を増大させる。かかる負担の増大は、上記と同様にフレーム間の時間内での画像処理の完了を困難にさせる。
【０００７】
更に、半透明ポリゴンに対する不透明度を利用したブレンディング処理に限定されず、一般的なブレンディング処理においても、表示画面のより奥側のポリゴンの色データを先に求め、その色データと次の処理するポリゴンの色データに対して所定のソース混合計数とディスティネーション混合計数とによりブレンディング処理することが提案されている。この場合も、表示画面の奥側のポリゴンから順番に処理することが要求され、半透明ポリゴンの場合と同様の課題を有する。
【０００８】
そこで、本発明の目的は、半透明ポリゴンの画像処理において、フレーム間の時間内により手前側のポリゴンのレンダリング処理を確実に行うことができる画像処理装置、その方法及びそれをコンピュータに実行させるプログラムを記録した記録媒体を提供することにある。
【０００９】
更に、本発明の目的は、不透明ポリゴンと半透明ポリゴンが混在したポリゴンの画像処理において、両ポリゴンを区別することなくレンダリング処理することができ、更に処理効率を高めた画像処理装置、その方法及びそれをコンピュータに実行させるプログラムを記録した記録媒体を提供することにある。
【００１０】
更に、本発明の目的は、一般的なブレンディング処理において、処理効率を高めた画像処理装置、その画像処理方法及びそれをコンピュータに実行させるプログラムを記録した記録媒体を提供することにある。
【００１１】
【課題を解決するための手段】
上記の目的を達成する為に、本発明は、半透明ポリゴンのレンダリング処理を、表示画面内の手前側のポリゴンから順に行うことを特徴とする。そのために、表示画面内の手前側から順に並べた時のｎ番目のポリゴンに、色データＴn と不透明度αn とが与えられる場合、ワークデータＸn として、
Ｘn ＝（１−αn ）・Ｘn-1 
を求め、更に画像データＤn として、
Ｄn ＝Ｄn-1 ＋Ｔn ・αn ・Ｘn-1 
を求め、ワークデータＸn 及び画像データＤn を求める上記の演算処理を全てのポリゴンに対して行う。そして、最後の画像データＤn を、表示用の画像データとして利用する。上記において、ワークデータＸn の初期値Ｘ0 は、例えば１が好ましい。また、画像データＤn の初期値Ｄ0 は、例えば０が好ましい。
【００１２】
上記の画像処理によれば、半透明ポリゴンを手前側から順に処理することができるので、フレーム間の時間が短い場合でも表示画面内の重要度の高いより手前側に位置するポリゴンのレンダリング処理が省略されることがない。従って、ポリゴンで構成される重要なキャラクタの動きを止めることなく、スムーズな動きの画像を再現することができる。
【００１３】
上記のワークデータＸn は、ｎ枚の半透明ポリゴンの透明度（１−α）が累積された値を意味する。そして、複数のポリゴンが重なり合う場合は、手前側のポリゴンから順番にレンダリング処理し、それぞれのポリゴンのレンダリング処理では、奥側のポリゴンの色データＴn を、それより手前のｎ−１枚のポリゴンの透明度を累積した値Ｘn-1 に応じて、手前のｎ−１枚のポリゴンが重ねられた画像データＤn-1 に加える。
【００１４】
従って、本発明では、手前側のポリゴンから順番に上記のレンダリング処理しながら、重ね合わせたポリゴンの透明度の累積された値を、各ピクセル毎に求めて記録しておくことが必要である。
【００１５】
更に、それぞれのポリゴンのレンダリング処理では、処理中のポリゴンの透明度に応じて、その色データＴn を加えることが望ましい。即ち、処理中のポリゴンの不透明度αn に応じた色データＴn の成分を、それより手前のｎ−１枚のポリゴンの透明度（１−α）の累積された値Ｘn-1 に応じて、ｎ−１枚重なったポリゴンの画像データＤn-1 に加えることが望ましい。
【００１６】
上記の目的を達成する為に、本発明は、半透明ポリゴンを含む複数のポリゴンに対する画像処理を行って、表示すべき画像データを生成する画像処理装置において、
表示画面内の手前側から順に並べた時のｎ番目のポリゴンに、色データＴn と、不透明度αn または透明度（１−αn ）とが与えられ、
前記手前側から順に前記ポリゴンの色データＴn と不透明度αn または透明度（１−αn ）が供給され、ｎ枚目のポリゴンの色データＴn を、手前に位置するｎ−１枚のポリゴンの透明度の累積値Ｘn-1 に応じて、ｎ−１枚目までの画像データＤn-1 に加えるレンダリング処理部を有することを特徴とする。
【００１７】
更に、好ましくは、上記の発明において、
前記レンダリング処理部は、ｎ枚目のポリゴンの色データＴn の内、当該ポリゴンの不透明度αn 分の成分を、手前に位置するｎ−１枚のポリゴンの透明度の累積値Ｘn-1 に応じて、ｎ−１枚目までの画像データＤn-1 に加えることを特徴とする。
【００１８】
上記の発明によれば、複数の半透明ポリゴンを手前から順番にレンダリング処理することができる。従って、フレーム間の時間内に全てのポリゴンの処理を終了しなくても、画像データの品質を損なうことはない。
【００１９】
更に、上記の発明において、
前記ポリゴンは、前記半透明ポリゴンと不透明ポリゴンとを有し、前記半透明ポリゴンの不透明度αn は１＞αn ＞０に、前記不透明ポリゴンの不透明度αn はαn ＝１に、それぞれ設定されることを特徴とする。この発明によれば、不透明ポリゴンと半透明ポリゴンとを区別することなく、手前から順番に一緒にレンダリング処理することができる。
【００２０】
更に、上記の発明において、
前記レンダリング処理部は、ｎ番目のポリゴンに対する処理において、前記透明度の累積値が透明度なしまたは所定の最小値Ｘmin より小さい場合は、ｎ番目以降のポリゴンに対する処理を省略することを特徴とする
上記の構成により、不透明ポリゴンの背面側（より奥側）に重なるポリゴンの処理や、不透明度αの高い半透明ポリゴンの背面側（より奥側）に重なるポリゴンの処理を省略することができ、レンダリング処理の効率を上げることができる。
【００２１】
更に、上記の目的を達成するために、本発明の別の側面では、一般的なブレンディング処理に対しても表示画面の手前側のポリゴンから順に処理する。この発明は、複数のポリゴンに対する所定のブレンディング処理を行って、表示すべき画像データを生成する画像処理装置において、
表示画面内の手前側から順に並べた時のｎ番目のポリゴンに、色データＴn と、ディスティネーション混合係数DEn 及びソース混合係数SRn についてのデータが与えられ、
前記手前側から順に前記ポリゴンの色データＴn と前記ディスティネーション混合係数DEn 及びソース混合係数SRnが供給され、ｎ枚目のポリゴンの色データＴn を、前記ディスティネーション混合係数DEn と、手前に位置するｎ−１枚のポリゴンのソース混合係数SR1〜SRn-1の累積値Ｘn-1 とに応じて、ｎ−１枚目までの画像データＤn-1 に加えるレンダリング処理部を有することを特徴とする。
【００２２】
上記の発明において、ディスティネーション混合係数DEn 及びソース混合係数SRnを適宜選択することにより、様々なブレンディング処理を行うことができ、汎用的なブレンディング処理を行うレンダリング処理部を提供することができる。
【００２３】
更に、本発明は、上記の画像処理方法、その画像処理方法をコンピュータに実行させるプログラムを記録した記録媒体を提供する。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲がその実施の形態に限定されるものではない。
【００２５】
図１は、半透明ポリゴンの重なり例を説明する図である。この例では、３枚の半透明ポリゴンＰ１，Ｐ２，Ｐ３と、１枚の不透明ポリゴンＰ４とが、表示画面内の奥行き方向（Ｚ値）について手前から順に重なっている。従って、領域Ｃ４の画像データＣ4 は、不透明ポリゴンＰ４のテクスチャデータから環境光等に応じて形成される色データＴ4 そのままである。
【００２６】
本明細書において、ポリゴンの色データＴは、例えばポリゴン自体の色データ、模様を含む色データであるテクスチャデータ、更に、テクスチャデータやポリゴン自体の色データにシェーディング処理した後の色データ等を含む。それらのいずれかの色データを代表して、ポリゴンの色データＴと称する。また、ブレンディング処理などにより求められた色データは、表示に利用される画像データＣである。従って、画像データＣも一種の色データである。
【００２７】
即ち、Ｃ4 ＝Ｔ4                             （１）
また、領域Ｃ３は、不透明ポリゴンＰ４上に半透明ポリゴンＰ３が重なっているので、その画像データは、半透明ポリゴンＰ３の不透明度α3 （α3 ＝１で不透明、α3 ＝０で透明、１＞α3 ＞０で半透明）及び色データＴ3 に従って、ポリゴンＰ４，Ｐ３の色データをブレンディングした色データとなる。即ち、従来の一般的なレンダリング方法によれば、領域Ｃ３の色データは、
Ｃ3 ＝α3 Ｔ3 ＋（１−α3 ）Ｃ4             （２）
で求められる。
【００２８】
同様に、領域Ｃ２の画像データＣ2 も、半透明ポリゴンＰ２の不透明度α2 及び色データＴ2と領域Ｃ３の色データＣ3 とから、
Ｃ2 ＝α2 Ｔ2 ＋（１−α2 ）Ｃ3             （３）
で求められ、更に、領域Ｃ１の画像データＣ1 も、
Ｃ1 ＝α1 Ｔ1 ＋（１−α1 ）Ｃ2             （４）
で求められる。
【００２９】
以上の通り、半透明ポリゴンに対するレンダリング処理は、他のポリゴンとの重なり合う領域において、より奥側の画像データＣn+1 を再帰的に参照してブレンディング処理を行う必要があり、表示画面内の奥側から順にポリゴンのレンダリング処理を行うのが一般的である。
【００３０】
そこで、本発明は、上記した従来の課題を解決するために、表示画面内の手前側から順にポリゴンのレンダリング処理を行うことを特徴とする。本発明によれば、上記の式（２）、（３）、（４）から、Ｃ1 について開くと、
Ｃ1 ＝α1 Ｔ1 ＋（１−α1 ）｛α2 Ｔ2 ＋（１−α2 ）［α3 Ｔ3 ＋（１−α3 ）Ｃ4 ］｝
となり、更に、Ｔn についてまとめると、
Ｃ1 ＝Ｔ1 α1 ＋Ｔ2 α2 （１−α1 ）＋Ｔ3 α3 （１−α1 ）（１−α2 ）
＋Ｃ4 （１−α1 ）（１−α2 ）（１−α3 ）              （５）
ここで、ポリゴンＰ４が不透明ポリゴンであり、不透明度データα4 ＝１とし、更に、任意のワークデータＸn として、
Ｘn ＝（１−α1 ）（１−α2 ）....（１−αn ）
＝Ｘn-1 （１−αn ）                                      （６）
と定義するとする。但し、Ｘ0 ＝１とする。
【００３１】
上記式（６）を式（５）に挿入すると、
Ｃ1 ＝Ｔ1 α1 Ｘ0 ＋Ｔ2 α2 Ｘ1 ＋Ｔ3 α3 Ｘ2 ＋Ｃ4 Ｘ3 
＝Ｔ1 α1 Ｘ0 ＋Ｔ2 α2 Ｘ1 ＋Ｔ3 α3 Ｘ2 ＋Ｔ4 α4 Ｘ3 
となり、各々のＴn αn Ｘn-1 に着目すれば、
Ｄn ＝Ｄn-1 ＋Ｔn αn Ｘn-1                                   （７）
とすることができる。但し、Ｄ0 ＝０である。その結果、ｎ＝４の場合は、
Ｄ4 ＝Ｃ1 
が成立する。
【００３２】
即ち、従来のブレンディング処理と同じ処理を、上記の式（６）と（７）を利用することで、表示画面内の手前側から順にポリゴンのデータとして、色データＴn とその不透明度αn を与えて、全ての重なり合うポリゴンに対する演算処理を行うことにより、最終的に得られる画像データＤn は、図１の領域Ｃ１の画像データＣ1 と同じになる。従って、新たに定義したワークデータＸn を利用して、画像データＤn ＝Ｄn-1 ＋Ｔn αn Ｘn-1 を求めることができる。これらの数式のインデックスから明らかな通り、これらの演算において、より奥側のポリゴンのデータを再帰的に呼び出す必要はなくなる。
【００３３】
図２は、上記の演算を利用する本発明のレンダリング処理を、図１の例に適用した時の演算式を示す図表である。図２（１）に、本発明の場合を、図２（２）に従来例の場合をそれぞれ示す。
【００３４】
図２の図表から明らかな通り、従来例のレンダリング処理によれば、半透明のポリゴンに対して、奥側のポリゴンＰ4 の色データＴ4 と不透明度α4 と初期値Ｃ5 を利用して、領域Ｃ４の画像データＣ4 が求められ、更に、一つ手前のポリゴンＰ3 の色データＴ3 と不透明度α3 と初期値Ｃ4 を利用して、領域Ｃ３の画像データＣ3 が求められる。更に、領域Ｃ２の画像データＣ2 及び領域Ｃ１の画像データＣ1 が順に求められる。
【００３５】
それに対して、本発明によれば、上記の式（６）、（７）を利用することで、最初に最も手前に位置するポリゴンＰ１の色データＴ1 と不透明度α1 と初期値Ｘ0 とＤ0 を利用して、途中の画像データＤ1 が求められ、更に、一つ奥側のポリゴンＰ2 の色データＴ2 と不透明度α2 と上記の途中の画像データＤ1 を利用して、次の途中の画像データＤ2 が求められる。更に、同様にして次の途中の画像データＤ3 、Ｄ4 が求められる。そして、全てのポリゴンのデータに対する処理が終了した最終画像データＤ4 が、領域Ｃ１の画像データＣ1 として利用される。
【００３６】
従って、本発明によれば、半透明ポリゴンに対するレンダリング処理は、手前側のポリゴンに対するデータ（色データＴと不透明度データα）を利用して次々に演算処理することができる。更に、後述する具体例で明らかになるが、より奥側のポリゴンに対するレンダリング処理では、ワークデータＸn-1 が小さくなる傾向にあり、そのワークデータＸn-1 を利用して求められる途中の画像データＤn も変化が少なくなる傾向にある。従って、ある程度ワークデータＸn-1 が小さくなると、あるいは０になると、それ以降の奥側のポリゴンのデータに対するレンダリング処理を省略しても、表示される画像への影響は殆どないことが理解される。
【００３７】
更に、上記のレンダリング処理の演算において、不透明ポリゴンに対しては、単に不透明度αn を１（不透明）とすれば、上記の演算をそのまま適用して処理することができる。即ち、不透明度αn ＝１の場合は、ワークデータＸn ＝０となり、それより奥側のポリゴンのレンダリング処理の結果に変化はなくなり、実質的にそれらの奥側のポリゴンに対するレンダリングは不要になる。従って、本発明のレンダリング処理を利用することにより、半透明ポリゴンと不透明ポリゴンとを混在させても、より手前側のポリゴンから順に、半透明と不透明を区別なく処理することができる。
【００３８】
上記したワークデータＸn は、物理的には、ｎ枚のポリゴンを重ねた時の透明度（１−α）の累積された値を意味する。即ち、上記の式（６）から明らかな通り、ワークデータＸnは、各ポリゴンの透明度（１−α）が全て積算された値である。つまり、透明度の高いポリゴン、例えばαが０に近いポリゴンが重ねられる場合は、その奥側に位置するｎ枚目のポリゴンの色データＴnを追加する場合は、それより手前のｎ−１枚の重なったポリゴンの透明度の累積値に応じて、画像データＤn-1 に影響を与える。そして、望ましくは、ｎ枚目のポリゴンの不透明度αnに応じた色データＴn が、加えられる。ｎ枚目のポリゴン自身が透明なポリゴン（αn ＝０）の場合は、その色データＴnは加えられるべきではないからである。
【００３９】
以上の様に、上記の式（７）
Ｄn ＝Ｄn-1 ＋Ｔn αn Ｘn-1 
によるレンダリング処理は、第１に、処理しようとする奥側のポリゴンの色データＴn を、それより手前のｎ−１枚のポリゴンの透明度を累積した値Ｘn-1 に応じて、手前のｎ−１枚のポリゴンが重ねられた画像データＤn-1 に加える処理である。
【００４０】
第２に、上記の式（７）によるレンダリング処理は、処理中のポリゴンの透明度に応じて、その色データＴn を加えることを行う。即ち、処理中のポリゴンの不透明度αn に応じた色データＴn の成分を、それより手前のｎ−１枚のポリゴンの透明度の累積された値Ｘn-1 に応じて、ｎ−１枚重なったポリゴンの画像データＤn-1 に加えることを意味する。
【００４１】
そして、透明度の累積値Ｘn の初期値Ｘ0 ＝１の意味は、最初のポリゴンより手前には、別のポリゴンが存在しないので、透明度は最大であることを意味する。従って、最初のポリゴンの色データＴ1 は、そのまま画像データＤ1 として利用される。但し、最初のポリゴン自身の不透明度α1 に応じた色データＴ1 の成分が画像データＤ1 として利用される。尚、画像データＤn の初期値Ｄ0 ＝０の意味は、輝度値が０であることを意味し、何ら色の成分がない真っ黒の状態を意味する。画像データの初期値Ｄ0 は、必ずしも真っ黒である必要はない。
【００４２】
図３は、図２に示したレンダリング処理の演算を具体例に適用した例を示す図表である。ここでの具体例は、図１の各ポリゴンＰ１〜Ｐ４の色データ（テクスチャ、環境光、等を考慮して得られる色データ）Ｔ1 〜Ｔ4 及び不透明度α1 〜α4 が、
Ｔ1 ＝赤・・・Ｒ＝１．０，  Ｇ＝０，      Ｂ＝０，      α1 ＝０．５
Ｔ2 ＝青・・・Ｒ＝０，      Ｇ＝０，      Ｂ＝１．０，  α2 ＝０．５
Ｔ3 ＝黄色・・Ｒ＝１．０，  Ｇ＝１．０，  Ｂ＝０，      α3 ＝０．５
Ｔ4 ＝黒色・・Ｒ＝０，      Ｇ＝０，      Ｂ＝０，      α4 ＝１．０
の場合である。これらのポリゴンデータがそれぞれの左側の図表に順番が逆に示され、それらのポリゴンデータを利用したレンダリング結果が、右側の図表に示される。
【００４３】
このレンダリング結果に示される通り、最終的に得られた画像データＤ4 は、従来のレンダリング演算により求めた画像データＣ1 と同じになっていることが理解される。
【００４４】
図３に示した本発明のレンダリング処理を、物理的な意味で解説すると、１枚目のポリゴン（ｎ＝１）については、その不透明度α1 に応じた色データＴ1 の成分が、そのまま画像データＤ1 となる。次に、２枚目のポリゴン（ｎ＝２）については、その不透明度α2 に応じた色データＴ2 の成分が、それより手前の１枚目のポリゴンの透明度（１−α1 ）に応じて、画像データＤ1 に加えられる。つまり、２枚目のポリゴンの青Ｂの色データ１．０００のうち、それ自身の不透明度α 2＝０．５に応じた成分０．５が、それより手前の１枚目のポリゴンの透明度１−α1 ＝０．５に応じて、１枚目までの青Ｂのデータ０．０に加えられて、０．２５となる。
【００４５】
更に、３枚目のポリゴンの赤Ｒと緑Ｇの色データ１．０は、その透明度α 3＝０．５分の成分が、１枚目と２枚目のポリゴンの透明度の累積値Ｘ2 ＝０．５×０．５＝０．２５に応じて、２枚目までの赤Ｒと緑Ｇの画像データ、０．５及び０．０にそれぞれ加えられる。従って、それぞれ０．１２５だけ加えられる。最後に、４枚目のポリゴンは、不透明度α4 ＝１であるが、色データＴ4 が全て０であるので、最終的な画像データに変化はない。
【００４６】
以上の通り、図３の例のレンダリング処理は、手前のポリゴンから順に処理し、次の奥側のポリゴンに対するレンダリング処理は、処理中のポリゴンの色データの不透明度に応じた成分を、それより手前の重なり合ったポリゴンの透明度の累積された値に応じて、画像データに加える処理である。
【００４７】
図３に示した本発明のレンダリング結果の図表から理解される通り、手前側のポリゴンから順にレンダリング演算が行われる場合、そのワークデータＸn は、徐々に小さくなる。そして、Ｘ4 ＝０になると、図示されないが、その後の演算によっても画像データＤn は変化しない。また、図示されないが、ワークデータＸn-1 が小さくなると、次に求められる画像データＤn は、
Ｄn ＝Ｄn-1 ＋Ｔn αn Ｘn-1 
の式から明らかな通り、それほどその前の画像データＤn-1 と変わらない。
【００４８】
従って、フレーム間の時間内の限られた演算時間において、後回しにされているより奥側のポリゴンに対するレンダリング処理がカット、省略されても、表示される画像データにそれほど大きな影響を与えることはない。
【００４９】
上記にかかる物理的な意味を説明すると、重なり合うポリゴンの透明度の累積値であるワークデータＸn-1 が小さくなるとは、透明度が悪くなることを意味し、その場合は、それより奥側のポリゴンは、画像データにほとんど影響を与えないことを意味する。
【００５０】
図４は、本発明の画像処理装置にかかるゲーム装置の概略構成例を示す図である。図４に示されたゲーム装置では、ＣＰＵ２０がゲームプログラムを実行し、ゲームの進行に同期して変化する画像を生成するための描画コマンドを発生する。この描画コマンドには、例えば、ポリゴンの頂点座標とその頂点のテクスチャ座標や不透明度データが含まれる。また、ＣＰＵ２０は、ゲームプログラムの実行時に使用するためのワークＲＡＭ２２とバス２４を介して接続される。
【００５１】
バス２４は、ＣＰＵ２０ともっぱら画像の描画を行うレンダラ３４との間のインターフェースとなるシステムコントローラ２６に接続される。システムコントローラ２６は、ＣＰＵ２０により発行される描画コマンドや、その他のコマンドをレンダラ３４に転送する。また、システムコントローラ２６は、外部インターフェース２８に接続され、ゲームプログラムやゲームに必要なオブジェクトのデータが記録されたＣＤＲＯＭ等の様な外部記憶媒体３０と、操作入力を入力するためのコントロールパット３２に接続される。
【００５２】
画像の描画を行うレンダラ３４は、例えばビデオデジタルプロセッサで構成され、バス３８を介してフレームバッファ４０と、Ｚデータバッファ４２と、テクスチャバッファメモリ４４と、Ｘバッファメモリ４５とに接続される。レンダラ３４は、システムコントローラ２６を経由してＣＰＵ２０から送られる描画コマンド及びその他のコマンドに応答して、テクスチャデータをテクスチャバッファ４４から読み出され、また、レンダリング処理を行って、描画すべき画像データをフレームバッファ４０に格納する。また、レンダラ３４は、その描画されるピクセルの表示画面内の奥行きを示すＺデータをＺデータバッファ４２内の対応する位置に格納する。そして、１フレーム分の画像データをフレームバッファ４０内に格納し終わると、レンダラ３４は、その画像データを図示しないモニタに転送しモニタ画面にゲームの画像を表示させる。
【００５３】
ゲーム装置のプレーヤによって入力される操作入力は、コントロールパット３２からシステムコントローラ２６を経由してワークＲＡＭ２２に格納される。この操作入力に応答して、ＣＰＵ２０はゲームプログラムを実行し、リアルタイムに生成されるオブジェクトの描画コマンドを発行する。この描画コマンドには上記の通りポリゴンデータが含まれるが、事前に奥行きを示すＺデータに従ってソート処理を行うことにより、描画コマンドは表示画面の手前側のポリゴンから順に、レンダラ３４に供給される。
【００５４】
図５は、本発明の実施の形態例におけるレンダラの構成図である。図５には、図４で示したＺ値バッファ４２とテクスチャバッファ４４と共に、レンダラ３４内部の一部の構成が示される。即ち、制御ブロック３４１は、システムコントローラ２６とバス３６を介して接続され、更にバス３８を介してテクスチャバッファ４４，Ｚ値バッファ４２と接続される。制御ブロック３４１は、ＣＰＵ２０が発行する描画コマンドを受信し、テクスチャバッファ４４からテクスチャデータ（一種の色データ）を読み出し、またＺ値バッファ内のＺ値に従って所定の処理を行い、更に、レンダラ３４内のレンダリング処理演算を制御する。図５の実施の形態例では、ポリゴンの色データとしてテクスチャデータを利用するので、前述してきたポリゴンの色データＴは、テクスチャデータＴと置き換えられる。
【００５５】
制御ブロック３４１は、更に、ワークデータＸn を所定のピクセル毎に格納するＸバッファメモリ３４２と、画像データＤn を所定のピクセル毎に格納するＤバッファメモリ３４３とも接続され、それらのバッファメモリ３４２，３４３に初期値を与えると共に、演算結果をそれぞれ格納する。尚、Ｘバッファメモリ３４２、Ｄバッファメモり３４３は、図４のＸバッファ４５、フレームバッファ４０とそれぞれ同等であり、それに代わるバッファメモリである。
【００５６】
乗算器３４４は、Ｘバッファ３４２からのワークデータＸn-1 と描画コマンドと共に供給された処理中のポリゴン内の処理ピクセルの不透明度αn とから、それらの乗算値αn Ｘn-1 を生成する。また、減算器３４５は、その乗算値αn Ｘn-1 とワークデータＸn-1 とから、それらの減算値Ｘn-1 （１−αn ）を生成し、Ｘバッファ３４２内のもとのピクセルに対応する領域に、新たなワークデータＸn として、減算値Ｘn-1 （１−αn ）を記録する。
【００５７】
一方、乗算器３４６は、乗算器３４４が生成した乗算値αn Ｘn-1 と処理中のポリゴン内の処理ピクセルに対応するテクスチャデータ（色データ）Ｔn との乗算値Ｔn αn Ｘn-1 を生成する。また、加算器３４７は、その乗算値Ｔn αn Ｘn-1 とＤバッファ３４３内の画像データＤn-1 との加算値Ｄn-1 ＋Ｔn αn Ｘn-1 を生成し、処理済の画像データＤn として、Ｄバッファメモリ３４３の対応するピクセルの領域内に記憶される。
【００５８】
制御ブロック３４１は、フレーム間の時間内で上記のレンダリング処理を完了し、最後に累積されたＤバッファメモリ３４３内の画像データＤを、図示しない表示装置に供給し、画像を表示させる。また、制御ブロック３４１は、Ｘバッファ３４２内のワークデータＸn の値を監視し、ワークデータＸn-1 が所定の最小値Ｘmin より小さい、あるいはワークデータＸn-1 が０の場合は、それ以降のレンダリング処理演算を中止すべく、Ｘバッファ３４２及びＤバッファ３４３からのデータＸn-1 とＤn-1 の出力を行わず、また、描画コマンドから得られるあるいは生成されるテクスチャデータＴn 及び不透明度データαn の供給を行わない。この様に、制御ブロック３４１は、レンダリング処理演算の開始と終了を制御する。
【００５９】
図６は、本実施の形態例の画像処理のフローチャート図である。図６に従って、１つのフレームに対する画像処理の流れを説明する。まず、コントロールパッド３２から供給される操作入力に応答して、ＣＰＵ２０がＲＡＭ２２内のゲームプログラムを実行し、表示すべきポリゴンデータを生成する。このポリゴンデータは、表示画面内の奥行き方向の手前から順にソーティングされる（Ｓ１０）。このポリゴンには、半透明ポリゴンと不透明ポリゴンが含まれる。ポリゴンデータは、例えば、頂点座標とそれら頂点の不透明度データ、色データ、テクスチャ座標データ等が含まれる。
【００６０】
ポリゴンのテクスチャデータは、予めテクスチャバッファ４４内に記録される。そして、描画コマンドに含まれるポリゴンのテクスチャ座標から処理対象のピクセルのテクスチャ座標が求められ、テクスチャバッファ４４内のテクスチャデータが読み出される。このテクスチャデータと、上記のポリゴンの属性データである白色光での色データ及び環境光の色データ等から、ポリゴンのピクセルの色データが求められる。この色データを、本明細書では総称してテクスチャデータと称する。
【００６１】
レンダラ３４内の制御ブロックは、最初にレンダラ内のＸバッファ３４２とＤバッファ３４３とに初期値Ｘ0 ＝１、Ｄ0 ＝０を記録する（Ｓ１２）。そして、手前から順に描画コマンドがポリゴンデータと共に発行される（Ｓ１４）。このポリゴンデータから、制御ブロック３４１は、テクスチャバッファ４４を参照して、処理中のピクセルに対するテクスチャデータ（色データ）Ｔn を生成する。また、ポリゴンデータから、処理中のピクセルに対する不透明度データαn を生成する。
【００６２】
そして、図５に示した乗算器３４４，３４６，減算器３４５及び加算機３４６を利用して、ワークデータＸn と途中の画像データＤn とを求め、それらのデータＸn 、Ｄn を新たにＸバッファ３４２及びＤバッファ３４３に記録する（Ｓ１８）。即ち、工程Ｓ１８のレンダリング処理は、ｎ枚目のポリゴンを重ねた時の透明度の累積された値Ｘn を求めると共に、ｎ枚目のポリゴンのテクスチャデータ（色データ）Ｔn のうち、ｎ枚目のポリゴンの不透明度αn に応じた成分が、手前に位置するｎ−１枚のポリゴンの透明度の累積値Ｘn-1 に応じて、ｎ−１枚目までの画像データＤn-1 に加えられる処理である。
【００６３】
上記のピクセルのワークデータＸ、画像データＤの生成は、ポリゴン内の全てのピクセルについて繰り返し行われる（Ｓ２０）。但し、レンダリング演算の結果得られたワークデータＸn-1 が０になるか、或いはワークデータＸn-1 が予め設定した最小値Ｘmin 未満になると、それ以降のより奥側のポリゴンに対するピクセルのレンダリング演算の処理は省略され、次のピクセルのレンダリング処理が行われる（Ｓ１６）。
【００６４】
１つのポリゴン内のピクセルについてのレンダリング処理が終了すると、次のより奥側のポリゴンに対するレンダリング処理が引き続き行われる（Ｓ２２）。そして、最後にＤバッファ３４３内に記録された画像データＤが、表示装置に供給され、その画像が表示される。
【００６５】
上記のフレームの画像データの生成において、フレーム間の時間を経過する場合は、それ以降のより奥側のポリゴンに対するレンダリング処理を中止することもできる。即ち、制御ブロック３４１が、フレーム間の時間を管理し、レンダリングすべきポリゴンの数が多く、時間内に処理完了しない場合は、そのフレームのレンダリング処理を強制的に終了することができる。そのような強制的な終了をしても、表示される画像内の比較的重要な手前に位置するポリゴンの処理は完了しているので、画像のスムーズな動きを乱すようなことはない。
【００６６】
尚、ポリゴンの形状、位置によっては、２つのポリゴンが奥行き方向で交差する場合もある。かかる場合は、一方のポリゴンの一部が他方のポリゴンの一部よりも手前側に位置し、一方のポリゴンの残りの部分が他方のポリゴンの残りの部分より奥側に位置する。そのような場合でも、上記のレンダリング処理では、より手前側のピクセルを最初に処理することが必要になる。従って、その場合は、処理中のピクセルのＺ値とＺ値バッファ内の記録済のピクセルのＺ値とを比較し、処理中のピクセルのＺ値がより奥側に位置する場合は、上記のレンダリング演算処理を行うようにすることが有効である。
【００６７】
上記の実施の形態例では、フローチャートにおいて、不透明ポリゴンと半透明ポリゴンとが混在する場合も、一緒に処理することができることを説明したが、従来の通り、不透明ポリゴンと半透明ポリゴンとを区別して処理する場合に、半透明ポリゴンの処理に上記のレンダリング処理を利用してもよい。その場合でも、一定の時間内に処理できるポリゴン数が処理すべきポリゴン数よりも少ない場合でも、再生される画像に大きな影響を与えることなく、画像のスムーズな動きを維持して再生することができる。
【００６８】
［汎用的なブレンド処理への適用］
上記の実施の形態例では、半透明ポリゴンの色とその奥側に位置するポリゴンの色とを不透明度αで混合ブレンディング処理する場合に、手前側のポリゴンから順番に処理する例を説明した。しかしながら、一般的なコンピュータを利用したグラフィックライブラリには、例えばオープンＧＬ（Graphic Library）で規格化されているように、多用なブレンディング処理ができるようになっている。その一般化されたブレンディング処理は、以前処理して求めたフレームバッファ内の色データＦＢm-1と今回処理中のピクセルの色データPIXｍとを、それぞれソース混合係数ＳＲｍとディスティネーション混合係数ＤＥｍとでブレンディングすることにある。即ち、演算式で表すと、今回の処理で求められてフレームバッファ内に格納される色データＦＢｍは、
ＦＢｍ＝PIXｍ＊DEｍ＋ＦＢm-1＊SRｍ（８）
となる。但し、ｍは整数であり、小さいほど先に処理される（＊は積を表す。以下同様）。
【００６９】
上記のブレンディング演算式において、ソース混合計数ＳＲｍとディスティネーション混合計数ＤＥｍとは、次の１１種類のうちから適宜選択される。
【００７０】
０、FBn-1、PIXｎ、PIXｎ*α、FBn-1*α、１、１−FBn-1、１−PIXｎ、１−PIXｎ*α、１−FBn-1*α、（FB1-n*α、１−PIXｎ*α）のうちいずれか小さい方上記の式（８）から理解される通り、一般的なブレンディング処理は、描画前のフレームバッファの色データを必要とし、また演算結果も描画順序に依存している。従って、一般的なコンピュータ・グラフィックにおいては、ブレンディング処理の必要なポリゴンは奥側より順に描画するのが通例である。
【００７１】
図７は、半透明ポリゴンの混合ブレンディング処理を示す図である。手前側の半透明ポリゴンＰＧｍと、奥側のポリゴンＰＧm-1が一部重なっていて、手前側の半透明ポリゴンＰＧｍの不透明度がαの場合である。この場合は、従来例で説明した通り、奥側のポリゴンＰＧm-1の色データＦＢm-1が先に求められ、それに手前側の半透明ポリゴンＰＧｍの色データが、不透明度αｍと透明度（１−αｍ）によって、混合ブレンディング処理される。即ち、その演算式は、図示される通り、
ＦＢｍ＝PIXｍ＊αｍ＋ＦＢm-1＊（１−αｍ）        （９）
即ち、上記式（９）は、一般式（８）において、ディスティネーション混合係数DEｍ＝αｍで、ソース混合係数SRｍ＝（１−αｍ）にした場合に対応する。
【００７２】
図８は、補助フィルタ処理の具体例を示す図である。汎用的なグラフィックライブラリには、ブレンド処理として補助フィルタ処理がある。この処理は、図７の半透明ポリゴンの混合ブレンディング処理と異なり、奥側のポリゴンＰＧm-1の色データがその手前側のポリゴンＰＧｍの混合係数αｍにかかわらず、そのまま減衰することなく残される処理である。
【００７３】
例えば、手前側のポリゴンＰＧｍが炎に対応するポリゴンであり、奥側のポリゴンＰＧm-1が所定の不透明ポリゴンの場合を想定する。この場合は、視点からは炎のポリゴンＰＧｍを通して不透明ポリゴンＰＧm-1を見ていることになる。その場合は、炎ポリゴンＰＧｍの色は加算されるが、奥側のポリゴンＰＧm-1の色データが減衰することはない。
【００７４】
その場合は、炎ポリゴンＰＧｍの色データPIXｍに対してディスティネーション混合係数DEｍ＝αｍ、ソース混合係数SRｍ＝１にすることにより、上記の一般式（８）を利用することができる。その結果、補助フィルタ処理の演算式は、図示される通り、
ＦＢｍ＝PIXｍ＊αｍ＋ＦＢm-1＊１        （１０）
となる。即ち、前回の処理で求めたポリゴンＰＧm-1の色データＦＢm-1をそのまま残し、今回処理中のポリゴンＰＧｍの色データPIXｍに混合係数αｍ分だけ加算する処理である。
【００７５】
この補助フィルタ処理は、上記の炎ポリゴンの例以外に、例えば赤い光源からの光がポリゴンＰＧm-1に照射されている場合も、同様の処理が適用される。
【００７６】
図９は、更に、カラーフィルタ処理を示す図である。カラーフィルタ処理では、例えば、背景にあるポリゴンＰＧm-1の特定の色成分だけを抽出するために、手前側にそれ自身は色成分を持たないカラーフィルタポリゴンＰＧｍを配置させる。そして、このブレンディング処理演算では、特定の色成分だけを抽出させるために、背景のポリゴンＰＧm-1の色データＦＢm-1にカラーフィルタポリゴンＰＧｍの色抽出データPIXｍを乗算する。
【００７７】
即ち、その演算式は、図示される通り、
ＦＢｍ＝PIXｍ＊０＋ＦＢm-1＊PIXｍ          （１１）
となる。この演算式は、一般式（８）に対して、カラーフィルタポリゴンＰＧｍの色抽出データPIXｍに対してディスティネーション混合係数DEｍ＝０、前回求めた色データＦＢm-1に対してソース混合係数SRｍ＝PIXｍにすることにより得られる。
【００７８】
以上の通り、半透明ポリゴンの混合ブレンディング処理以外に、補色フィルタ処理やカラーフィルタ処理などの様々なブレンディング処理は、一般式（８）に、適宜選択したディスティネーション混合係数DEｍとソース混合係数SRｍと適用して演算処理することができる。通常のコンピュータ・グラフィック処理装置は、上記の一般式（８）に適用できるように構成され、その結果、ディスティネーション混合係数DEｍとソース混合係数SRｍとを適宜選択して行うことにより、様々なブレンディング処理が可能になる。
【００７９】
そこで、上記の一般的なブレンディング処理に対して、視点側から（手前側）ポリゴンを順番に処理することができる方法、処理装置について、以下に説明する。
【００８０】
図１の場合と同様に、４枚のポリゴンが手前側から重なっていると仮定する。その場合、一般式（８）に対して、ｍ＝１〜４により、次の４つの演算式が導かれる。
【００８１】
ＦＢ1＝PIX1＊DE1＋ＦＢ0＊SR1         （２１）
ＦＢ2＝PIX2＊DE2＋ＦＢ1＊SR2         （２２）
ＦＢ3＝PIX3＊DE3＋ＦＢ2＊SR3         （２３）
ＦＢ4＝PIX4＊DE4＋ＦＢ3＊SR4         （２４）
ここで、留意すべき点は、上記ブレンディング処理は、奥側のポリゴンを先に処理してその色データがフレームバッファに記録されているので、ｍが大きいほど手前のポリゴンを意味し、ｍが小さいほど奥側のポリゴンを意味することである。
【００８２】
そこで、上記の（２１）〜（２４）について、式（５）（６）（７）で行ったように、最も手前のポリゴンの色データをＦＢ4からＤ1に、最も奥側のポリゴンの色データをＦＢ1からＤ4にそれぞれ置き換え、処理中のピクセルの色データPIXをテクスチャーデータ（色データ）Ｔに置き換えると、次の通りである。つまり、Ｄ4＝ＦＢ1〜Ｄ1＝ＦＢ4とし、PIX4＝Ｔ1〜PIX1＝Ｔ4すると、
Ｄ4＝Ｔ4＊DE4＋Ｄ5＊SR4           （３１）
Ｄ3＝Ｔ3＊DE3＋Ｄ4＊SR3           （３２）
Ｄ2＝Ｔ2＊DE2＋Ｄ3＊SR2           （３３）
Ｄ1＝Ｔ1＊DE1＋Ｄ2＊SR1           （３４）
そこで、ワークデータＸn（但しＸ0＝１）を、
Ｘn＝SRｎ＊Ｘn-1＝SRn＊SRn-1＊SRn-2＊…＊SR1       （３５）
とすると、式（３４）は、次の通り展開される。
【００８３】
Ｄ1＝Ｔ1＊DE1＊Ｘ0＋Ｔ2＊DE2＊Ｘ1＋Ｔ3＊DE3＊Ｘ2＋Ｔ4＊DE4＊Ｘ3であるから、各Ｔｎ＊DEｎ＊Ｘn-1に注目すると、
Ｄｎ＝Ｄn-1＋Ｔｎ＊DEｎ＊Ｘn-1 （３６）
と一般化することができる。この場合上記の置き換えにより、ｎが小さいほど手前のポリゴンを意味しているので、より手前のポリゴンから順番にブレンディング処理を行うことができることを意味している。即ち、より手前に位置するポリゴンの処理結果Ｄn-1を利用して、次の奥側に位置するポリゴンのデータＤnを求めることができるのである。そして、上記の式（３５）と（３６）において、SRｎ＝（１−αｎ）、DEｎ＝αｎと置き換えると、半透明ポリゴンの処理で示した式（６）（７）と同じになることが理解される。
【００８４】
上記の式（３５）によれば、ワークデータＸnは、ソース混合係数SRｎの累積値である。また、上記の式（３６）によれば、視点からｎ枚目のポリゴンを処理した結果の色データＤnは、ｎ枚目のポリゴンのテクスチャデータ（色データ）Ｔn を、ディスティネーション混合係数DEn と、手前に位置するｎ−１枚のポリゴンのソース混合係数SR1〜SRn-1の累積値Ｘn-1 とに応じて、ｎ−１枚目までの画像データＤn-1 に加えるレンダリング処理により求められる。しかも、ワークデータＸnが所定の最低値よりも小さくなると、その後のポリゴンの処理を省略しても表示される色データに大きな影響を与えないことは、半透明ポリゴンのブレンド処理と同じである。
【００８５】
図１０は、一般的なグラフィック・ライブラリでのブレンディング処理に利用される汎用レンダラの構成図である。図５のレンダラの構成を汎用化したものであり、図４のレンダラ３４に適用される。図１０の各構成の引用番号は、図５の対応する構成と同じ引用番号を与えた。
【００８６】
図１０のレンダラは、図５のレンダラと異なり、ディスティネーション混合係数生成部３４８と、ソース混合係数生成部３４９とが設けられ、更に、乗算器は、Ｘｎ乗算器３４４Ｘと、Ｄｎ乗算器３４４Ｄとが設けられる。また、制御ブロック３４１は、描画コマンド３６として、テクスチャー座標（Ｔｘ、Ｔｙ）と、不透明度αと、混合係数生成情報ｉＤＥ、ｉＳＲを受信する。それ以外の構成は、図５の場合と同じである。
【００８７】
混合係数生成情報ｉＤＥ、ｉＳＲは、一般化されたブレンド処理の中から選択される所定の処理に対応して、ディスティネーション混合係数ＤＥとソース混合係数ＳＲをどれにすべきかを指示する情報を含む。従って、この混合係数生成情報ｉＤＥ、ｉＳＲは、それぞれの混合係数生成部３４８，３４９に与えられ、それらの生成部３４８，３４９が、ディスティネーション混合係数ＤＥとソース混合係数ＳＲを生成して、Ｘｎ乗算器３４４ＸとＤｎ乗算器３４４Ｄとに供給する。
【００８８】
制御ブロック３４１は、描画コマンドに含まれるテクスチャー座標（Ｔｘ、Ｔｙ）に従って、テクスチャーバッファ４４から対応するテクスチャデータを読み出し、テクスチャデータ（色データ）Ｔｎとして、Ｄｎ乗算器３４４Ｄに供給する。また、制御ブロックは、Ｘバッファ３４２とフレームバッファであるＤバッファ３４３に対して、処理中のピクセルに対応するアドレスへのアクセスを指示し、それらの読み出されたデータＸn-1とＤn-1は、それぞれＸｎ乗算器３４４Ｘと、加算器３４７に供給される。
【００８９】
上記の汎用レンダラにより、視点に対してより手前側のポリゴンから順番にブレンディング処理が行われる。そして、ｎ番目のポリゴンの処理において、Ｘｎ乗算器３４４Ｘは、前回処理してＸバッファ３４２内に記録していたワークデータＸn-1と今回のソース混合係数ＳＲｎとから、ワークデータＸｎを求める。更に、Ｄｎ乗算器３４４Ｄと加算器３４７とは、前回処理してＸバッファ３４２内に記録していたワークデータＸn-1、今回のディスティネーション混合係数ＤＥｎ、及び前回処理してＤバッファ３４３内に記録していた色データＤn-1とから、今回の色データＤｎ＝Ｄn-1＋Ｔn＊DEｎ＊Ｘn-1を求める。それぞれ求められたワークデータＸｎと色データＤｎとは、それぞれＸバッファ３４２とＤバッファ（フレームバッファ）３４３に記録される。
【００９０】
図１０の汎用レンダラでは、次の様に混合係数を選択することで、上記した３つの処理を行うことができる。
【００９１】
半透明ポリゴンの混合ブレンディング処理：DEｎ＝αｎ、SRｎ＝１−αｎ
補助フィルタ処理                      ：DEｎ＝αｎ、SRｎ＝１
カラーフィルタ処理                    ：DEｎ＝０  、SRｎ＝Ｔn
上記の例以外にも、種々の混合係数を選択することができる。例えば、０、Ｔｎ＊αｎ、１、１−Ｔｎ、１−Ｔｎ＊αｎ等を適宜選択することができる。但し、データＦＢn-1、即ち、後で処理して求められる色データＤn+1を含む混合係数を選択することはできない。
【００９２】
汎用レンダラの場合は、好ましくは、図１０に設けられた構成をＲＧＢの色毎に有する。但し、ＲＧＢ各色成分に同一の混合係数、例えば０、α、１、１−α、のみを使用する場合は、共通のＸバッファ３４２と各色成分のＤバッファ３４３で構成することができる。また、色成分で異なる混合係数、例えばＴｎ、１−Ｔｎ、を含む場合は、各色成分毎のＸバッファ３４２とＤバッファ３４３で構成することが必要になる。
【００９３】
そして、上記の汎用レンダラでも、ｎ番目のポリゴンに対するブレンディング処理において、ソース混合係数SRnの累積値が所定の最小値Ｘmin より小さい場合は、ｎ番目以降のポリゴンに対する処理を省略することができ、全体のブレンディング処理の効率を上げることができる。
【００９４】
上記の汎用レンダラの如きハードウエアでなく、ソフトウエアを利用して、上記の処理を行うことも可能である。その場合は、汎用のパーソナルコンピュータやワークステーションに、上記のブレンド処理プログラムを実行させることにより実現される。
【００９５】
【発明の効果】
以上説明した通り、本発明によれば、半透明ポリゴンの画像処理において、表示画面の奥行き方向について手前側のポリゴンから順に処理することができ、処理すべき全てのポリゴンを処理しない場合でも、再生される画像のスムーズな動きに大きな影響を与えることはないので、高速処理を可能にする。
【００９６】
また、本発明によれば、不透明ポリゴンの処理と区別することなく半透明ポリゴンの処理を行っても、不透明ポリゴンの処理効率を高くすることができ、また、区別する必要がないのでその分処理の負担を軽減することができる。
【００９７】
更に、本発明によれば、一般的なブレンディング処理を行うことができる汎用レンダラを提供することができ、そのディスティネーション混合係数やソース係数を適宜選択することで、種々のブレンディング処理を、視点に対して手前側のポリゴンから順番に処理することができる。
【図面の簡単な説明】
【図１】半透明ポリゴンの重なり例を説明する図である。
【図２】本発明及び従来例のレンダリング処理を、図１の例に適用した時の演算式を示す図表である。
【図３】図２に示したレンダリング処理の演算を具体例に適用した例を示す図表である。
【図４】本発明の画像処理装置にかかるゲーム装置の概略構成例を示す図である。
【図５】本発明の実施の形態例におけるレンダラの構成図である。
【図６】本実施の形態例の画像処理のフローチャート図である。
【図７】半透明ポリゴンの混合ブレンディング処理を示す図である。
【図８】補助フィルタ処理の具体例を示す図である。
【図９】カラーフィルタ処理を示す図である。
【図１０】一般的なグラフィック・ライブラリでのブレンディング処理に利用される汎用レンダラの構成図である。
【符号の説明】
３４        レンダラ、レンダリング処理部
３４２      Ｘバッファ、ワークデータバッファ
３４３      Ｄバッファ、画像データバッファ
Ｔn         色データ、テクスチャデータ
Ｄn         画像データ
αn         不透明度データ
Ｐ１〜Ｐ４  ポリゴン
【図１】
0004399910.tif 000002
【図２】
0004399910.tif 000003
【図３】
0004399910.tif 000004
【図４】
0004399910.tif 000005
【図５】
0004399910.tif 000006
【図６】
0004399910.tif 000007
【図７】
0004399910.tif 000008
【図８】
0004399910.tif 000009
【図９】
0004399910.tif 000010
【図１０】
0004399910.tif 000011