JP3642593B2 - 画像合成装置及び画像合成方法 - Google Patents
画像合成装置及び画像合成方法 Download PDFInfo
- Publication number
- JP3642593B2 JP3642593B2 JP33855094A JP33855094A JP3642593B2 JP 3642593 B2 JP3642593 B2 JP 3642593B2 JP 33855094 A JP33855094 A JP 33855094A JP 33855094 A JP33855094 A JP 33855094A JP 3642593 B2 JP3642593 B2 JP 3642593B2
- Authority
- JP
- Japan
- Prior art keywords
- translucent
- display object
- buffer
- point
- polygon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
Description
【産業上の利用分野】
本発明は、Zバッファを用いて描画処理を行う画像合成装置及び画像合成方法に関する。
【0002】
【従来の技術】
従来より、3次元ゲーム装置、3次元シミュレータ等に使用される画像合成装置として種々のものが知られている。このような画像合成装置においては半透明表現の実現が望まれている。そして、半透明表現を行う場合には、得られる画像をよりリアルなものとするために、半透明表示物の厚みを反映した半透明表現が望まれる。例えば、特開平5−314241号には、体積データバッファを用意し、この体積(ピクセル)データバッファに少なくともカラー属性、深度値、不透明度の重み値、勾配値を記憶し、これらの記憶されたデータを用いて半透明表示物の厚みを反映した半透明表現を行う従来技術が開示されている。
【0003】
【発明が解決しようとする課題】
しかしながら、この従来技術には、まず第1に体積データバッファと呼ばれるメモリが新たに必要になるという問題がある。このように新たなメモリを用意すると、ハードウェア規模が増大化し、また制御が複雑になる。また、第2に、この従来技術は戦車等の搭乗員のトレーニングのためのシミュレータに用いられるものであり、煙、霧、爆弾の破裂等の体積効果を現実世界とほとんど同等に表現するものである。このため、かなり複雑な演算処理が必要であり、低コストが要求される3次元ゲーム装置等には不向きの画像合成技術である。
【0004】
一方、従来より、陰面消去のための1手法としてZバッファ法と呼ばれるものが知られている。このZバッファ法は、視点からの距離を表す奥行き情報を表示画面上の各ピクセルに対応づけて格納するZバッファを用意し、このZバッファに格納される奥行き情報Z値を参照しながら描画処理を行う手法である。この手法によれば陰面消去を簡易に高速に実現できるため、この手法は画像合成分野において広く一般的に使用されている。
【0005】
しかしながら、このZバッファ法を用いて、半透明表示物の厚みを反映した半透明表現を行う技術については知られていない。
【0006】
本発明は以上のような技術的課題を達成するためになされたものであり、その目的とするところは、半透明表示物の厚みを反映した半透明表現を、Zバッファ法を利用して実現できる画像合成装置及び画像合成方法を提供することにある。
【課題を解決するための手段及び作用】
上記課題を解決するために、請求項1の本発明は、視点からの距離を表す奥行き情報を表示画面上の各ピクセルに対応づけて格納するZバッファを用いて画像合成処理を行う画像合成装置であって、
処理対象ピクセルについて前記Zバッファに既に格納されている奥行き情報ZBを参照し、該ZBと該処理対象ピクセルについて新たに得られた奥行き情報ZPとを比較しながら描画処理を行う描画処理手段を含み、
前記描画処理手段が、前記ZBと前記ZPとの差分値を演算する差分演算手段と、半透明表示物の厚みを表現するために前記差分値を用いて半透明演算を行う半透明演算手段とを含むことを特徴とする。
【0007】
また、請求項7の発明は、視点からの距離を表す奥行き情報を表示画面上の各ピクセルに対応づけて格納するZバッファを用いて行う画像合成方法であって、
処理対象ピクセルについて前記Zバッファに既に格納されている奥行き情報ZBを参照するステップと、
参照された前記ZBと、該処理対象ピクセルについて新たに得られた奥行き情報ZPとを比較しながら描画処理を行う描画処理ステップを含み、
前記描画処理ステップが、前記ZBと前記ZPとの差分値を演算するステップと、半透明表示物の厚みを表現するために前記差分値を用いて半透明演算を行うステップとを含むことを特徴とする。
【0008】
請求項1又は7の発明によれば、Zバッファに格納されるZBと新たに得られるZPとに基づいて各ピクセルに対する描画処理が行われると共に、このZBとZPとの差分値が求められる。そして、この差分値を用いて半透明演算が行われる。即ち、本発明によれば、体積データバッファ等の新たなメモリを用意することなく、描画処理に既に存在するZバッファを利用して、半透明表示物の厚みが反映された半透明演算を実現できる。
【0009】
また、請求項2の発明は、請求項1において、
前記半透明演算手段が、前記処理対象ピクセルに対応した前記半透明表示物上の点であり視点から見て手前側の点を第1の点とし視点から見て奥側の点を第2の点とし、前記処理対象ピクセルに対応した不透明表示物上の点を第3の点とした場合において、該第1、第2の点についての奥行き情報の差分である前記差分値と、該第1〜第3の点における色情報とに基づいて前記半透明演算を行うことを特徴とする。
【0010】
請求項2の発明によれば、半透明表示物上の第1、第2の点の色情報と、不透明表示物上の第3の点の色情報と、第1、第2の点の奥行き情報の差分値とに基づいて半透明演算が行われる。この場合の半透明演算は、例えば、第1、第2の点の色情報と、第3の点の色情報と、半透明係数とに基づいて行われ、この半透明係数を例えば差分値の関数とすることで実現される。
【0011】
また、請求項3の発明は、請求項2において、
前記描画処理手段により得られた色情報と、前記第1、第2の点を1組とした場合に組に属する他の1点が既に描画された否かを示す組フラグとを含む画像情報を表示画面上の各ピクセルに対応づけて格納するフィールドバッファを含み、前記半透明演算手段が、前記組フラグにより他の1点が描画されていないと判断した場合には、前記ZBと前記ZPを比較しZバッファに格納される前記ZBの更新を行い、前記組フラグにより他の1点が描画されていると判断した場合には、前記更新された前記ZBと新たに得られた前記ZPとの差分値に基づき前記半透明演算を行うことを特徴とする。
【0012】
請求項3の発明によれば、組フラグにより他の1点が描画されていないと判断した場合には前記ZBの更新が行われ、描画されていると判断された場合には、ZBとZPとの差分値に基づいて半透明演算が行われる。例えば第1の点、第2の点の順で描画された場合を例にとると、Zバッファには、まず第1の点のZBが格納される。そして、第2の点を描画する際にこのZBが読み出され、このZBと第2の点についてのZPとの差分値が求められ、半透明演算が行われる。第2の点、第1の点の順で描画処理が行われた場合も同様である。
【0013】
また、請求項4の発明は、請求項2において、
半透明表示物を構成する半透明ポリゴンが裏ポリゴンであるか表ポリゴンであるかを判定する裏表判定手段を含み、
前記描画処理手段が、前記裏表判定手段により裏ポリゴンと判定された半透明ポリゴンについて前記ZBと前記ZPを比較し前記Zバッファに格納される前記ZBの更新を行い、前記裏表判定手段により表ポリゴンと判定された半透明ポリゴンについて前記更新された前記ZBと新たに得られた前記ZPとの差分値に基づき前記半透明演算を行うことを特徴とする。
【0014】
請求項4の発明によれば、まず、裏表判定手段により裏ポリゴン(視点から見て奥側のポリゴン)と判定された半透明ポリゴンについて描画処理が行われ、そのZBがZバッファに格納される。次に、表ポリゴン(視点から見て手前側のポリゴン)と判定された半透明ポリゴンについての描画処理が行われる。そして、この場合、裏ポリゴンについてZバッファに格納されたZBと、表ポリゴンについてのZPの差分に基づいて半透明演算が行われる。
【0015】
また、請求項5の発明は、請求項1乃至4のいずれかにおいて、
前記描画処理手段が、1フィールドに表示される表示物の中の全ての不透明表示物の描画処理を行った後に半透明表示物の描画処理を行うことを特徴とする。
請求項5の発明によれば、初めに全ての不透明表示物の描画処理を行った後に、半透明表示物の描画処理が行われる。従って、描画処理を行う際に、半透明表示物に関するものなのか、不透明表示物に関するものなのかを判断する必要がなくなる。
【0016】
また、請求項6の発明は、請求項1乃至4のいずれかにおいて、
前記描画処理手段が、同一の半透明表示物を構成するポリゴンに対して他の半透明表示物を構成するポリゴンに優先して順次描画処理を施すことを特徴とする。
【0017】
請求項6の発明によれば、例えば1の半透明表示物を構成する全てのポリゴンに対する描画処理を行った後に、他の半透明表示物を構成する全てのポリゴンに対する描画処理が行われることになる。
【0018】
【実施例】
以下、本発明の好適な実施例について図面に基づき説明する。
【0019】
図1には、本実施例の画像合成装置を3次元ゲーム装置等の3次元シミュレータに適用した場合の全体構成の一例が示される。この実施例は、操作部12、仮想3次元空間演算部100、画像供給部210、画像合成部230を含んでいる。仮想3次元空間演算部100は、操作部12から入力される操作情報に基づいて仮想3次元空間を形成するための演算を行う。画像供給部210は、形成された仮想3次元空間の所定の視点位置において見える画像を形成するための座標変換処理、クリッピング処理、透視投影変換等の演算処理を行う。この場合、仮想3次元空間を構成する表示物は複数のポリゴンの集合により表されており、画像供給部210は、これらのポリゴンの情報(頂点座標、頂点テクスチャ座標等)を画像合成部230に出力する。画像合成部230では、入力されたポリゴン情報からポリゴン内のピクセルを描画する処理、即ち各ピクセルの画像情報を求める処理が行われ、これによりディスプレイ10への画像表示が可能となる。
【0020】
さて、通常、この種の描画処理を行う際に、ポリゴンとポリゴンとに重なりが生じた場合、視点から見て奥側にある部分(陰面)を消去し、手前側にある部分のみをディスプレイ上に表示する必要がある。このような陰面消去手法として、Zバッファ法と呼ばれる手法が知られている。このZバッファ法については、例えば情報処理VOL.24 NO.4(情報処理学会1983年4月15日発行)に記載されている。
【0021】
本実施例は、このZバッファ法を用いて陰面消去を行うものである。このため、画像合成部230は、描画処理部232、Zバッファ260、フィールドバッファ262を含んでいる。ここで、Zバッファ260は、表示画面上の全てのピクセルに対応した格納エリアを有するメモリであり、各格納エリアには視点からの距離を表す奥行き情報であるZ値が格納されている。また、描画処理部232は、処理対象ピクセルについてZバッファに格納される奥行き情報を参照し、参照された奥行き情報と、該処理対象ピクセルについて新たに得られた奥行き情報とを比較しながら描画処理を行うものであり、その具体的な構成は図2に示される。また、フィールドバッファ262は、Zバッファ260と同様に示画面上の全てのピクセルに対応した格納エリアを有するメモリであり、描画処理部232により得られた色情報等の画像情報を格納するものである。この格納された画像情報に基づいてディスプレイ10上に表示する画像が得られる。
【0022】
まず、図3(A)、(B)を用いてZバッファ法について説明する。なお、以下では視点から近いほどZバッファに格納されるZ値が小さい場合を例にとり説明するが、これとは逆に視点から近いほどZ値が大きい場合にも本発明の原理は当然に適用できる。図3(A)に示すように、三次元表示物300、301を構成するポリゴンX、Yは、スクリーン306上に透視投影変換されている。そして、図3(B)に示す手順により描画処理が行われる。Zバッファ260には、初期値としてZ値の最大値M(通常は無限大値)が書き込まれている。そして、例えばポリゴンXを描画する場合、ポリゴンXの各ピクセルのZ値がZバッファ260に格納されている各ピクセルのZ値よりも小さいか否かかが判断される。そして、小さいと判断された場合には、描画処理部232により当該ピクセルについての描画処理が行われ、更に、Zバッファ260の当該ピクセルについてのZ値も更新される。具体的には、対応する部分のZ値は、全てMからX1〜X12に更新される。
【0023】
ポリゴンYを描画する場合も、描画する全てのピクセルについてZバッファ260が参照され、上記と同様の手順により描画処理と、Zバッファ260の更新が行われる。具体的には、X7、X8、X11、X12がY1、Y2、Y5、Y6に更新され、ポリゴンYが描画される部分のMの値がY3、Y4、Y7、Y8〜Y12に更新される。即ち、この場合は、ポリゴンYの方がポリゴンXよりも手前にあるため、重なっている部分は、ポリゴンYのZ値へと置き変わることとなる。描画処理部232は、以上のような手法により各ポリゴンについての描画処理を行う。
【0024】
図2には、本実施例の主要部である描画処理部232の詳細な構成が示される。この描画処理部232によれば半透明表示物の厚みが反映された半透明演算を実現できる。この描画処理部232は、ピクセル描画部234、比較&差分演算部238、書き込み制御部240、半透明演算部242を含む。
【0025】
ピクセル描画部236は、画像供給部210からのポリゴン情報に基づいてポリゴン内の各ピクセルについての描画処理を行う。例えば、ポリゴン情報としては、色情報、ポリゴンの頂点座標等が入力される。また、テクスチャマッピングを行う場合には、頂点テクスチャ座標が入力され、グーローシェーディング等のシェーディング演算を行う場合には頂点輝度情報、頂点法線ベクトル情報等が入力される。そして、頂点座標、頂点テクスチャ座標、頂点輝度情報、頂点法線ベクトル情報等を補間処理することにより、ポリゴン内の各ピクセルのX、Y、Z座標、テクスチャ座標、輝度情報、法線ベクトル情報等が求められる。求められたX、Y座標は、ピクセルアドレスとしてZバッファ260、フィールドバッファ262に出力される。また、Z座標は、新たに得られたピクセルの奥行き情報ZPとして比較&差分演算部238に出力される。また、テクスチャマッピングを行う場合には、求められた各ピクセルのテクスチャ座標に基づいてテクスチャ情報記憶部236からテクスチャ情報が読み出され、これにより色情報等が得られる。そして、各ピクセルの色情報、輝度情報、法線ベクトル情報を含む画像情報は、半透明演算部242、フィールドバッファ262に出力される。
【0026】
更に、ピクセル描画部234は、ポリゴンの表裏を判定する表裏判定部237を含む。
【0027】
比較&差分演算部238には、ピクセル描画部234から処理対象ピクセルの新たに得られた奥行き情報ZPが入力される。また、処理対象ピクセルのピクセルアドレス(X、Y座標)はZバッファ260に入力され、これにより該ピクセルについて前回にZバッファ260に格納された奥行き情報ZBが読み出され、このZBも比較&差分演算部238に入力される。比較&差分演算部238は、ZPとZBとを比較するとと共に、ZPとZBの差分値を演算する。
【0028】
ZPとZBの比較結果は書き込み制御部240に出力される。そして、ZP<ZBの場合には、書き込み制御部240の制御により、Zバッファ260の該ピクセルアドレスで指定される位置に格納されるZ値がZBからZPに書き換えられる。また、フィールドバッファ262の該ピクセルアドレスで指定される位置に格納される画像情報が、ピクセル描画部234で得られた画像情報(色情報CP等)に書き換えられる。
【0029】
半透明演算部242は、ピクセル描画部234からの画像情報と、半透明係数と、フィールドバッファ262に格納される画像情報とに基づいて半透明演算を行う。そして、本実施例では、半透明演算部242に、比較&差分演算部238で演算されたZPとZBの差分値Dも入力され、これにより半透明表示物の厚みが反映された半透明演算が実現される。
【0030】
図4には、半透明表示物の厚みを反映せずに半透明演算を行う場合の描画処理部233の構成の一例が示される。図2と異なるのは、比較部239が差分演算を行わない点、これにより半透明演算部243には差分値Dが入力されず半透明表示物の厚みを反映した半透明演算が行われない点、及び、フィールドバッファ部263に格納される画像情報の種類が異なる点等である。
【0031】
まず、図4の構成で行う半透明演算の一例について説明する。半透明演算は、例えば次式のようにして行われる。
【0032】
CQ=K1×CP+K2×CB …(1)
ここで、K1、K2は、半透明演算を行うための係数であり、ピクセル描画部234から入力される。また、CBはフィールドバッファ部263から読み出された色情報であり、この色情報は半透明表示物の後景となる不透明表示物の色情報である。また、CPは、ピクセル描画部234で求められた色情報であり、この色情報は半透明表示物の色を表すものである。また、CQは半透明演算部243で更新された色情報であり、このCQはフィールドバッファ263に書き込まれる。もちろん、このCQは、ZP<ZBの場合にのみ更新される。
【0033】
例えば、不透明表示物の色が白で、半透明表示物の色が青の場合には、得られる半透明の色は青となり、どのような青となるかは上式(1)にしたがって決められる。即ち、半透明係数K1、K2の値により決められる。
【0034】
しかしながら、図4の構成による半透明演算では半透明表示物の厚みが反映されていない。即ち、半透明表示物の厚みの如何にかかわらず半透明演算部243から出力される結果は同じになる。
【0035】
これに対して、図2に示す構成では、比較&差分演算部238で演算された差分値に基づいて、半透明演算部242は、半透明表示物の厚みが反映された半透明演算を行っている。しかも、本実施例では、この差分値はピクセル描画部234から出力されるZPと、Zバッファ260に格納されるZBとにより得られるため、特開平5−314241の従来技術のように体積データバッファ等を新たに設ける必要がない。即ち、本実施例の最大の特徴は、Zバッファ法ではZ値の比較により陰面消去する点に着目し、このZバッファ法で使用されるZ値を利用して半透明表示物の厚みが反映された半透明演算を行う点にある。このように本実施例ではZバッファ法に必要とされる構成を利用しているため、新たに必要なハードウェアは、差分演算部238(例えば減算回路)の追加と、半透明演算部242における積和回路の追加等ですみ、ハードウェアの大規模化を最小限に抑えることができる。
【0036】
例えば、図5で、半透明表示物20を表示する場合を考える。この半透明表示物20は半透明ポリゴン24、26、28、30等で構成される。また、半透明表示物20の後方には不透明ポリゴン(不透明表示物)38が位置している。ここで、視点22及び点Eを結んだ線分と半透明表示物20との交点をA、Bとし、視点22及び点Fを結んだ線分と半透明表示物20との交点をC、Dとする。また、半透明表示物の色を例えば「青」とし、不透明ポリゴン38の色を白とする。すると、点C、D間の距離L2は点A、B間の距離L1よりも大きいため、視点22から見た場合に、点Cの部分の方が点Aの部分よりも、より深い青(濃い青)に見えるはずである。しかしながら、図4の構成であると、半透明表示物の厚みが反映されないため、Cの部分もAの部分も同じ濃さの青に見え、半透明表示物20の厚みを表現できない。これに対して本実施例によれば、L1とL2を反映した半透明演算が行われるため、半透明表示物の厚みを表現でき、立体感を向上させることができる。
【0037】
また、図6では、海(半透明表示物)40の中に岩(不透明表示物)42がある場合の例が示される。この場合も、本実施例では、I、J間の距離L3と、K、L間の距離L4とを反映して半透明演算が行われるため、海の深さを表現でき、表示画像の品質を向上できる。
【0038】
例えば、図5の場合の半透明演算は以下の式のようになる。
CG=F(CAB、CE、L1) …(2)
=K1(L1)×CAB+K2(L1)×CE …(3)
ここで、CABは半透明表示物20のA点、B点(あるいはA、B間)における色情報であり、CEは不透明ポリゴン38のE点における色情報であり、CGは処理対象ピクセルである点Gに描画される色情報である。即ち、CGは、CAB、CE、L1の関数(関数F)となる。これは、上式(3)のように半透明係数K1、K2が距離L1の関数であると考えることもできる。
【0039】
同様に、H点の色情報CHは、
となる。
【0040】
但し、半透明演算の手法は上記したものに限らず種々のものを採用できる。
【0041】
例えば、フィルタリング手法として、
R=RY×KFR
G=GY×KFG
B=BY×KFB …(5)
という半透明演算が考えられる。ここで、R、G、Bは半透明演算後の色情報のRGB成分であり、RY、GY、BYは不透明表示物の色情報である。また、KFR、KFG、KFBはフィルタリング手法における半透明係数である。
【0042】
また、加算手法として、
R=RY+KAR×RPLUS
G=GY+KAG×GPLUS
B=BY+KAB×BPLUS …(6)
という半透明演算が考えられる。ここで、RPLUS、GPLUS、BPLUSは色情報の加算値であり、KAR、KAG、KABは加算手法における半透明係数である。
【0043】
また、上式(1)〜(4)を一般化したものであるブレンディング手法として、
R=(1−KBR)×RX+KBR×RY
G=(1−KBG)×GX+KBG×GY
B=(1−KBB)×BX+KBB×BY …(7)
という半透明演算が考えられる。ここで、RX、GX、BXは半透明表示物の色情報である。また、KBR、KBG、KBBはブレンディング手法における半透明係数であり、この係数によりブレンディングの割合が決まる。例えば、KBR=KBG=KBB=1/2の場合には、1/2ずつの割合で色情報がブレンドされる。
【0044】
上記のいずれの手法を採用するかは任意であり、例えばフィルタリング手法、加算手法によればハードウェアの規模を小さくでき、ブレンディング手法によれば、より繊細な半透明演算が可能となる。
【0045】
次に、本実施例の動作の一例について図7に示すフローチャートに基づいて説明する。本実施例では、まずステップS1で全ての不透明表示物(不透明ポリゴン)を描画してしまう。これにより、その後は、描画しようとするピクセルが半透明か不透明かを区別する必要がなくなり、処理の簡易化が図れる。もちろん、本発明においては必ずしも不透明表示物をはじめに全て描画する必要はない。例えば、半透明フラグというフラグを導入し、フィールドバッファに格納される画像情報にこの半透明フラグを含める。そして、描画処理の際にこの半透明フラグを用いて半透明か不透明かを判断すれば、ステップS1に示す処理は必ずしも必要なくなる。
【0046】
次にステップS2で、表示されるべき複数の半透明表示物のソーティング処理を行う。これは複数の半透明表示物の重なりを可能にするために行われる。これにより、複数の半透明表示物を多重に透かして奥の物体が見えるような映像効果を得ることができる。但し、このような半透明表示物の重なりによる映像効果が必要がない場合には、ソーティング処理は必要なく、先描き優先となるように描画処理を行えばよい。
【0047】
次に、ステップS3で半透明ポリゴンについてのピクセル毎の描画データを求める処理がピクセル描画部234により行われる。
【0048】
さて、本実施例では、フィールドバッファの格納エリアに格納される画像情報には、カラー情報のみならず組フラグが含まれる。例えば、半透明表示物上の点であり、処理対象ピクセル(例えば図5の点H)に対応する点の、視点から見て手前側の点(図5の点C)と、奥側の点(図5の点D)とを1組とする。この時、組フラグは組に属する他の1点が既に描かれたか否かを示すフラグとなる。図5で、組となる手前側の点Cと奥側の点Dのいずれもが、まだ描画されていない場合には組フラグは例えば0になる。一方、点C、点Dのいずれかが描画されている場合には組フラグは1となる。
【0049】
ステップS4では、この組フラグの判断が行われる。他の一点が描画されていない場合(組フラグ=0)には、ステップS11に移行し、ステップS3で求まった半透明ポリゴンのピクセルの奥行き情報ZPと、そのピクセルに対応し、Zバッファに格納されている前回の奥行き情報ZBとの比較を行う。この比較処理は、比較&差分演算部238にて行われる。ZP<ZBと判定された場合には、ステップS12で組フラグ=1にセットしステップS9に移行する。ZP≧ZBの場合には、このピクセルでの処理は終了しステップS13に移行する。
【0050】
一方、ステップS4で他の一点が描画されている(組フラグ=1)と判断された場合、ステップS5に移行し、ZPとZBとの差分値Dが比較&差分演算部238により演算される。この時、Zバッファ260の格納エリアには、他の一点のZ値ZBが格納されている。例えば、図5でポリゴン30、24の順で描画処理が行われ、点D、点Cの順に処理された場合、Zバッファに格納されているZBはD点のZ値であり、ピクセル描画部234から出力されるZPはC点のZ値である。一方、点C、点Dの順に処理された場合、Zバッファに格納されているZBはC点のZ値であり、ピクセル描画部234から出力されるZPはD点のZ値である。従って、どちらの場合も、ZBとZPの差分値を求めることでC点とD点のZ値の差分値Dを求めることができる。
【0051】
ステップS6では、求められた差分値Dと、ピクセル描画部234からのカラー情報CPと、フィールドバッファ262から読み出されたカラー情報CBとに基づく半透明演算が半透明演算部242により行われる。この場合の半透明演算は例えば次式のように表される。
CQ=F(CP、CB、D) …(8)
=K1(D)×CP+K2(D)×CB …(9)
そして、得られたカラー情報CQはフィールドバッファ262に書き戻される。この処理は書き込み制御部240の制御に基づき行われる。これにより、ステップS7でフィールドバッファ262に格納される色情報が更新される。
【0052】
その後、ステップS8で組みフラグ=0にクリアする。半透明表示物の表面にテクスチャマッピングを施す場合は、ステップS9にてテクスチャマッピング処理が行われる。次に、ステップS10でZバッファの更新が行われる。次にステップS13で、一連のピクセル描画の処理が終わったので、次に描画するものが無ければ全処理終了となり、描画するものがあればステップS3に戻り処理続行となる。
【0053】
以上により、半透明表示物の厚みを考慮した半透明演算が実現される。
【0054】
次に、本実施例の動作の他の例について図8に示すフローチャートに基づいて説明する。まずステップT1で全ての不透明表示物(不透明ポリゴン)を描画する処理が行われる。次に、ステップT2でポリゴンの裏表判定が表裏判定部237(図2参照)により行われる。このポリゴンの裏表判定は、ポリゴンの頂点座標(X、Y)の外積を計算し、この外積のZ座標成分の正負を求めることで実現される。ここで、表ポリゴンとは、視点から見て表向きのポリゴンをいい、裏ポリゴンとは、視点から見て裏向きのポリゴンをいう。例えば図5において、半透明ポリゴン24、28は表ポリゴンであり、半透明ポリゴン26、30は裏ポリゴンである。この場合、半透明ポリゴン24、28の法線ベクトルn1、n2のZ座標成分は負であり、半透明ポリゴン26、30の法線ベクトルn3、n4のZ座標成分は正である。
【0055】
このようにして表裏判定を行った後、ステップT3で、半透明の裏ポリゴンのピクセル描画データを求める処理が行われる。次に、ステップT4でZP<ZBが判断され、ZP≧ZBの場合はステップT6に移行する。ZP<ZBの場合には、ステップT5でZバッファ260のZ値が更新される。ステップT6で、一連のピクセル描画処理が終了したので、次に描画すべき半透明の裏ポリゴンがなければステップT7に移行し、あればステップT3に戻り処理続行となる。
【0056】
ステップT7では、半透明の表ポリゴンのピクセル描画データが求められる。次に、ステップT8でピクセル描画部234で得られるZPとZバッファ260からのZBとに基づいて差分値が演算される。その後、この差分値と、色情報CP、CBとに基づいてステップT9で半透明演算が行われ、ステップT10でフィールドバッファ262の更新が行われる。次にステップT11でZバッファが更新される。ステップT11で、一連のピクセル描画処理が終了したので、次に描画すべき半透明の表ポリゴンがなければ終了となり、あればステップT7に戻り処理続行となる。
【0057】
このように、表裏判定部237によりポリゴンの表裏を判定する手法によれば、例えば図5において半透明ポリゴン26、30を描画した後に、半透明ポリゴン24、28が描画できるため、処理を非常に簡易にできる。
【0058】
また、同一の半透明表示物を構成するポリゴンに対して、他の半透明表示物を構成するポリゴンに優先して描画処理を行えば、処理を更に簡易にすることができると共に、半透明演算を確実に行うことが可能となる。例えば、図5において、半透明表示物20を構成するポリゴンを順次描画し、その後、次の半透明表示物を構成するポリゴンを順次描画する。これにより、処理を確実なものとすることができる。
【0059】
なお、本発明は上記実施例に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
【0060】
例えば、本実施例では図7、図8に示すような処理の流れで半透明演算を行っているが、本発明はこれに限られるものではなく、少なくともZバッファ法に用いられるZ値の差分値を利用して、半透明表示物の厚みを反映した半透明演算を行うものであればよい。例えば、組フラグとは異なるフラグを用いて半透明演算を行ってもよい。
【0061】
また、本実施例では、まずはじめに全ての不透明表示物の描画処理を行った後に、半透明表示物の描画処理を行ったが、本発明はこれに限らず、不透明表示物と半透明表示物とを混在させて描画処理することも可能である。
【0062】
また、半透明表示物の色は一色である必要はなく、場所により異なるようにすることも可能である。
【0063】
また、上記実施例では、ポリゴン毎に描画処理を行う場合について主に説明したが、本発明はこれに限らず、スキャンラインアルゴリズム等を用いてポリゴンに無関係にピクセル毎に処理を行う場合にも適用できる。
【0064】
また、上記実施例では、視点から遠いほど奥行き情報が大きくなるとして説明を行ったが、視点から遠いほど奥行き情報が小さくなる場合も当然に本発明の均等な範囲に含まれる。
【0065】
また、描画処理部の構成、画像合成部の構成、画像合成装置の全体構成も、上記実施例で説明したものに限らず種々の構成を採用できる。
【0066】
また、本発明の画像合成装置、画像合成方法は、業務用のゲーム機、家庭用のゲーム装置、フライトシミュレータ、教習所等で使用されるドライビングシミュレータ等の種々のものに適用できる。特に、本発明の原理は、家庭用ゲーム装置、パーソナルコンピュータに使用されるゲームカートリッジ、CD−ROM、フロッピーディスクに格納されるゲームプログラムのアルゴリズム等にも当然に適用できる。更に、多数のプレーヤが参加する大型アトラクション型のゲーム装置、シミュレーション装置にも適用できる。
【0067】
また、ゲーム装置に適用する場合には、レーシングカーゲーム、対戦ゲーム、ロールプレイングゲーム、3次元的にマップが形成された宇宙船ゲーム等の種々のゲーム装置に本発明は適用できる。
【0068】
また、本発明において画像合成部、描画処理部等で行われる演算処理は、専用の画像合成デバイスを用いて処理してもよいし、汎用のマイクロコンピュータ、DSP等を利用してソフトウェア的に処理してもよい。
【0069】
【発明の効果】
請求項1又は7の発明によれば、体積データバッファ等の新たなメモリを用意することなく、半透明表示物の厚みが反映された半透明演算を実現できる。従って、ハードウェアの小規模化を図りながらも高品質の画像を得ることができる。また、請求項2の発明によれば、第1、第2、第3の点の色情報と、差分値との基づいて半透明演算が行われ、半透明係数等を差分値の関数とすることで、半透明表示物の厚みが反映された半透明演算を実現できる。
【0070】
また、請求項3の発明によれば、フィールドバッファに組フラグを格納し、この組みフラグを用いることで、第1、第2の点の処理順序に依存せずに、半透明表示物の厚みが反映された半透明演算を実現できる。
【0071】
また、請求項4の発明によれば、裏表判定手段を設けることで、第2の点についての描画処理を行った後に、第1の点についての描画処理を行うことが可能となる。これにより描画処理を簡易化できる。
【0072】
また、請求項5の発明によれば、描画処理を行う際に、半透明表示物に関するものなのか、不透明表示物に関するものなのかを判断する必要がなくなるため、描画処理を簡易化できる。
【0073】
また、請求項6の発明によれば、半透明表示物の単位で描画処理が行われるため、確実な描画処理が可能となる。
【0074】
【図面の簡単な説明】
【図1】本実施例を3次元シミュレータに適用した場合の全体構成を示すブロック図である。
【図2】描画処理部の具体的な構成を示すブロック図である。
【図3】図3(A)、(B)は、Zバッファ法について説明するための図である。
【図4】半透明表示物の厚みを反映せずに半透明演算を行う場合の描画処理部の構成を示すブロック図である。
【図5】半透明表示物の厚みを反映させた半透明演算について説明するための図である。
【図6】半透明表示物の厚みを反映させた半透明演算について説明するための図である。
【図7】本実施例の動作の一例を説明するためのフローチャート図である。
【図8】本実施例の動作の他の例を説明するためのフローチャート図である。
【符号の説明】
10 ディスプレイ
12 操作部
100 仮想3次元空間演算部
210 画像供給部
230 画像合成部
232 描画処理部
234 ピクセル描画部
236 テクスチャ情報記憶部
237 裏表判定部
238 比較&差分演算部
240 書き込み制御部
260 Zバッファ
262 フィールドバッファ
Claims (7)
- 視点からの距離を表す奥行き情報を表示画面上の各ピクセルに対応づけて格納するZバッファを用いて画像合成処理を行う画像合成装置であって、
処理対象ピクセルについて前記Zバッファに既に格納されている奥行き情報ZBを参照し、該ZBと該処理対象ピクセルについて新たに得られた奥行き情報ZPとを比較しながら描画処理を行う描画処理手段を含み、
前記描画処理手段が、前記ZBと前記ZPとの差分値を演算する差分演算手段と、半透明表示物の厚みを表現するために前記差分値を用いて半透明演算を行う半透明演算手段とを含むことを特徴とする画像合成装置。 - 請求項1において、
前記半透明演算手段が、
前記処理対象ピクセルに対応した前記半透明表示物上の点であり視点から見て手前側の点を第1の点とし視点から見て奥側の点を第2の点とし、前記処理対象ピクセルに対応した不透明表示物上の点を第3の点とした場合において、該第1、第2の点についての奥行き情報の差分である前記差分値と、該第1〜第3の点における色情報とに基づいて前記半透明演算を行うことを特徴とする画像合成装置。 - 請求項2において、
前記描画処理手段により得られた色情報と、前記第1、第2の点を1組とした場合に組に属する他の1点が既に描画された否かを示す組フラグとを含む画像情報を表示画面上の各ピクセルに対応づけて格納するフィールドバッファを含み、
前記半透明演算手段が、前記組フラグにより他の1点が描画されていないと判断した場合には、前記ZBと前記ZPを比較し前記Zバッファに格納される前記ZBの更新を行い、前記組フラグにより他の1点が描画されていると判断した場合には、前記更新された前記ZBと新たに得られた前記ZPとの差分値に基づき前記半透明演算を行うことを特徴とする画像合成装置。 - 請求項2において、
半透明表示物を構成する半透明ポリゴンが裏ポリゴンであるか表ポリゴンであるかを判定する裏表判定手段を含み、
前記描画処理手段が、前記裏表判定手段により裏ポリゴンと判定された半透明ポリゴンについて前記ZBと前記ZPを比較し前記Zバッファに格納される前記ZBの更新を行い、前記裏表判定手段により表ポリゴンと判定された半透明ポリゴンについて前記更新された前記ZBと新たに得られた前記ZPとの差分値に基づき前記半透明演算を行うことを特徴とする画像合成装置。 - 請求項1乃至4のいずれかにおいて、
前記描画処理手段が、1フィールドに表示される表示物の中の全ての不透明表示物の描画処理を行った後に半透明表示物の描画処理を行うことを特徴とする画像合成装置。 - 請求項1乃至4のいずれかにおいて、
前記描画処理手段が、同一の半透明表示物を構成するポリゴンに対して他の半透明表示物を構成するポリゴンに優先して順次描画処理を施すことを特徴とする画像合成装置。 - 視点からの距離を表す奥行き情報を表示画面上の各ピクセルに対応づけて格納するZバッファを用いて行う画像合成方法であって、
処理対象ピクセルについて前記Zバッファに既に格納されている奥行き情報ZBを参照するステップと、
参照された前記ZBと、該処理対象ピクセルについて新たに得られた奥行き情報ZPとを比較しながら描画処理を行う描画処理ステップを含み、
前記描画処理ステップが、前記ZBと前記ZPとの差分値を演算するステップと、半透明表示物の厚みを表現するために前記差分値を用いて半透明演算を行うステップとを含むことを特徴とする画像合成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33855094A JP3642593B2 (ja) | 1994-12-30 | 1994-12-30 | 画像合成装置及び画像合成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33855094A JP3642593B2 (ja) | 1994-12-30 | 1994-12-30 | 画像合成装置及び画像合成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08185543A JPH08185543A (ja) | 1996-07-16 |
JP3642593B2 true JP3642593B2 (ja) | 2005-04-27 |
Family
ID=18319232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33855094A Expired - Fee Related JP3642593B2 (ja) | 1994-12-30 | 1994-12-30 | 画像合成装置及び画像合成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3642593B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6489967B1 (en) | 1998-09-02 | 2002-12-03 | Namco Limited | Image formation apparatus and image formation method |
JP4188463B2 (ja) | 1998-09-03 | 2008-11-26 | 株式会社バンダイナムコゲームス | 画像生成装置、画像生成方法および記憶媒体 |
GB2343600B (en) * | 1998-11-06 | 2003-03-12 | Videologic Ltd | Depth sorting for use in 3-dimensional computer shading and texturing systems |
JP3448536B2 (ja) | 1999-12-31 | 2003-09-22 | 株式会社スクウェア・エニックス | 三次元コンピュータ画像処理のプログラムを記録したコンピュータ読み取り可能な記録媒体、ぼかし描画処理方法およびビデオゲーム装置 |
AT503743B1 (de) * | 2002-10-09 | 2008-05-15 | Vrvis Zentrum Fuer Virtual Rea | Verfahren zur rechnergestützten darstellung von objekten |
JP6351647B2 (ja) * | 2016-02-24 | 2018-07-04 | 株式会社カプコン | ゲームプログラムおよびゲームシステム |
-
1994
- 1994-12-30 JP JP33855094A patent/JP3642593B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08185543A (ja) | 1996-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6285378B1 (en) | Method and apparatus for span and subspan sorting rendering system | |
JP2763499B2 (ja) | 画像合成装置及び画像合成方法 | |
US6744430B1 (en) | Image processing method and its apparatus | |
JP3705739B2 (ja) | 情報記憶媒体及びゲーム装置 | |
WO1997005576A9 (en) | Method and apparatus for span and subspan sorting rendering system | |
JPH1166340A (ja) | 画像処理装置、画像処理方法及び画像処理プログラムを記録した記録媒体 | |
US5280568A (en) | Method and apparatus for drawing a surface model by assigning a drawing priority to each primitive surface model which provides a portion of the surface model | |
JP3642593B2 (ja) | 画像合成装置及び画像合成方法 | |
JP5916764B2 (ja) | 仮想環境における隠蔽の推定方法 | |
US6828969B2 (en) | Game system, program and image generating method | |
JPH09245191A (ja) | 透明度変換方法及びその装置、画像処理装置 | |
JP2883523B2 (ja) | 画像合成装置及び画像合成方法 | |
JP2001084396A (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするためのプログラムを格納したコンピュータ読み取り可能な記録媒体 | |
JP5253118B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
KR100848687B1 (ko) | 3차원 그래픽 처리 장치 및 그것의 동작 방법 | |
JP5481751B2 (ja) | 隠蔽処理プログラム、可視化処理方法及び装置 | |
JP4188463B2 (ja) | 画像生成装置、画像生成方法および記憶媒体 | |
JPH02132572A (ja) | 画像表示装置 | |
JP2952585B1 (ja) | 画像生成方法 | |
JPH08249479A (ja) | 画像合成装置及び画像合成方法 | |
JP4313892B2 (ja) | 描画装置および描画方法、記録媒体 | |
JPH11203486A (ja) | 半透明オブジェクトの表示方法及び、これを用いる画像表示装置 | |
JP2003091746A (ja) | ゲーム情報、情報記憶媒体、およびゲーム装置 | |
JP2001014484A (ja) | 3次元可視化装置 | |
JP2006004363A (ja) | プログラム、情報記憶媒体、及び画像生成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050113 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050125 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110204 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110204 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |