JP2002298152A - 画像の描画方法及びそれに用いるプログラム - Google Patents
画像の描画方法及びそれに用いるプログラムInfo
- Publication number
- JP2002298152A JP2002298152A JP2001103083A JP2001103083A JP2002298152A JP 2002298152 A JP2002298152 A JP 2002298152A JP 2001103083 A JP2001103083 A JP 2001103083A JP 2001103083 A JP2001103083 A JP 2001103083A JP 2002298152 A JP2002298152 A JP 2002298152A
- Authority
- JP
- Japan
- Prior art keywords
- drawn
- opaque
- depth
- area
- translucent
- 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.)
- Pending
Links
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 ソート処理を行わうことなく、視点に一番近
い半透明オブジェクトをその背後の不透明オブジェクト
に正しく重ねて描画する。 【解決手段】 不透明オブジェクトPg2,3,5の奥
行きに関する情報を奥行き情報記憶領域4に記憶しつ
つ、それらを第1の描画領域2に描画する。描画後は、
半透明オブジェクトPg1,4のそれぞれの奥行きと奥
行き情報記憶領域4に記憶された情報に基づいて特定さ
れる奥行きとを対比して、既に描かれているオブジェク
トよりも視点に近い半透明オブジェクトのみを不透明オ
ブジェクトとして第2の描画領域4に描画する。また、
奥行き情報記憶領域4に記憶されている情報を、その新
たに描画されたオブジェクトの奥行きに関する情報によ
って更新する。第2の描画領域3に描かれたオブジェク
トを、その元となった半透明オブジェクトの透明度に従
って、第1の描画領域2の不透明オブジェクト上に描画
する。
い半透明オブジェクトをその背後の不透明オブジェクト
に正しく重ねて描画する。 【解決手段】 不透明オブジェクトPg2,3,5の奥
行きに関する情報を奥行き情報記憶領域4に記憶しつ
つ、それらを第1の描画領域2に描画する。描画後は、
半透明オブジェクトPg1,4のそれぞれの奥行きと奥
行き情報記憶領域4に記憶された情報に基づいて特定さ
れる奥行きとを対比して、既に描かれているオブジェク
トよりも視点に近い半透明オブジェクトのみを不透明オ
ブジェクトとして第2の描画領域4に描画する。また、
奥行き情報記憶領域4に記憶されている情報を、その新
たに描画されたオブジェクトの奥行きに関する情報によ
って更新する。第2の描画領域3に描かれたオブジェク
トを、その元となった半透明オブジェクトの透明度に従
って、第1の描画領域2の不透明オブジェクト上に描画
する。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータグラ
フィックス技術を利用して3次元画像を描画する方法に
関する。
フィックス技術を利用して3次元画像を描画する方法に
関する。
【0002】
【従来の技術】コンピュータグラフィックス技術を利用
して描画される3次元画像の質感を高める手法の一つと
して、アルファブレンディングと呼ばれる描画方法が知
られている。この描画方法は、背景としての画像の前面
に半透明のオブジェクトが重なった様子を表現する際に
使用されるものである。すなわち、アルファブレンディ
ング法では、背景としてのオブジェクトの特定のピクセ
ル上におけるRGB各色の値をDest、同一ピクセル上に
重ね合わされるべきオブジェクトのRGB各色の値をSr
c、そのオブジェクトの透明度をα、としたとき、
して描画される3次元画像の質感を高める手法の一つと
して、アルファブレンディングと呼ばれる描画方法が知
られている。この描画方法は、背景としての画像の前面
に半透明のオブジェクトが重なった様子を表現する際に
使用されるものである。すなわち、アルファブレンディ
ング法では、背景としてのオブジェクトの特定のピクセ
ル上におけるRGB各色の値をDest、同一ピクセル上に
重ね合わされるべきオブジェクトのRGB各色の値をSr
c、そのオブジェクトの透明度をα、としたとき、
【0003】
【数1】計算式:Src・α+Dest(1−α)=(Src−De
st)α+Dest により、ピクセル上のRGB各色の値を決定している。
st)α+Dest により、ピクセル上のRGB各色の値を決定している。
【0004】また、仮想3次元空間に配置されたオブジ
ェクトを視点からみたときの前後関係を正しく表現する
ための方法として、Zバッファを使用する方法が知られ
ている。この方法は、仮想3次元空間に配置されたオブ
ジェクトを構成するポリゴンの頂点座標を、仮想カメラ
からの撮影方向をZ軸方向と一致させた視点座標系の頂
点座標に変換した上で、最初に描くオブジェクト上の各
点のZ座標をZバッファに記憶し、その後にオブジェク
トを重ねて描画する必要が生じた場合、これから描画し
ようとするオブジェクト上の各点のZ座標とZバッファ
のZ値とを比較し、描こうとするオブジェクトのZ値が
小さい(つまり、視点に近い)ピクセルについてのみ、
新たなオブジェクトの描画を許可するというものであ
る。
ェクトを視点からみたときの前後関係を正しく表現する
ための方法として、Zバッファを使用する方法が知られ
ている。この方法は、仮想3次元空間に配置されたオブ
ジェクトを構成するポリゴンの頂点座標を、仮想カメラ
からの撮影方向をZ軸方向と一致させた視点座標系の頂
点座標に変換した上で、最初に描くオブジェクト上の各
点のZ座標をZバッファに記憶し、その後にオブジェク
トを重ねて描画する必要が生じた場合、これから描画し
ようとするオブジェクト上の各点のZ座標とZバッファ
のZ値とを比較し、描こうとするオブジェクトのZ値が
小さい(つまり、視点に近い)ピクセルについてのみ、
新たなオブジェクトの描画を許可するというものであ
る。
【0005】
【発明が解決しようとする課題】上述したZバッファ法
はオブジェクトの描画順序を問わずに前後関係を正しく
描画できる利点がある。しかし、アルファブレンディン
グ法を利用して、複数の半透明オブジェクトを重ねる場
合に問題が生じる。上式から理解できるように、先に描
かれる半透明オブジェクトのRGB値には、その半透明
オブジェクトに対して設定されている透明度と、後から
描かれる半透明オブジェクトの透明度とが重ねて掛け合
わされる。これに対して後から描かれる半透明オブジェ
クトのRGB値にはその半透明オブジェクトについて設
定された透明度しか掛け合わされない。従って、最終的
に得られる画像には、後から描いた半透明オブジェクト
のRGB値の影響が先に描いた半透明オブジェクトの影
響よりも強く現れる。このため、本来は手前に配置され
るべき半透明オブジェクトを先に描いた場合、得られる
画像の色が不自然になることがある。
はオブジェクトの描画順序を問わずに前後関係を正しく
描画できる利点がある。しかし、アルファブレンディン
グ法を利用して、複数の半透明オブジェクトを重ねる場
合に問題が生じる。上式から理解できるように、先に描
かれる半透明オブジェクトのRGB値には、その半透明
オブジェクトに対して設定されている透明度と、後から
描かれる半透明オブジェクトの透明度とが重ねて掛け合
わされる。これに対して後から描かれる半透明オブジェ
クトのRGB値にはその半透明オブジェクトについて設
定された透明度しか掛け合わされない。従って、最終的
に得られる画像には、後から描いた半透明オブジェクト
のRGB値の影響が先に描いた半透明オブジェクトの影
響よりも強く現れる。このため、本来は手前に配置され
るべき半透明オブジェクトを先に描いた場合、得られる
画像の色が不自然になることがある。
【0006】こうした不都合を防止するためには、予め
各オブジェクトの前後関係を調査し、奥から手前へ順に
オブジェクトが描かれるように描画順序を設定する必要
がある(これをソート処理という)。大量のポリゴンで
構成されたオブジェクトを半透明に描く場合、大量のポ
リゴンをすべてソートしなければならず、その処理の負
荷は極めて大きくなる。このような処理が不可能な場合
には、描画順序を問わない加算半透明処理等により半透
明状態を表現するしかないが、その場合には表現の制約
を受ける。
各オブジェクトの前後関係を調査し、奥から手前へ順に
オブジェクトが描かれるように描画順序を設定する必要
がある(これをソート処理という)。大量のポリゴンで
構成されたオブジェクトを半透明に描く場合、大量のポ
リゴンをすべてソートしなければならず、その処理の負
荷は極めて大きくなる。このような処理が不可能な場合
には、描画順序を問わない加算半透明処理等により半透
明状態を表現するしかないが、その場合には表現の制約
を受ける。
【0007】そこで、本発明は、面倒なソート処理を行
わなくても、視点に一番近い半透明オブジェクトをその
背後の不透明オブジェクトに正しく重ねて描画すること
が可能な画像の描画方法及びその方法の実現に使用する
コンピュータプログラムを提供することを目的とする。
わなくても、視点に一番近い半透明オブジェクトをその
背後の不透明オブジェクトに正しく重ねて描画すること
が可能な画像の描画方法及びその方法の実現に使用する
コンピュータプログラムを提供することを目的とする。
【0008】
【課題を解決するための手段】以下、本発明について説
明する。なお、本発明の理解を容易にするために添付図
面の参照符号を括弧書きにて付記するが、それにより本
発明が図示の形態に限定されるものではない。
明する。なお、本発明の理解を容易にするために添付図
面の参照符号を括弧書きにて付記するが、それにより本
発明が図示の形態に限定されるものではない。
【0009】本発明の画像の描画方法は、コンピュータ
(10)に設けられたメモリ(15)上に、仮想3次元
空間(1)に配置される少なくとも一つの不透明オブジ
ェクト(Pg2,Pg3,Pg5)に対する第1の描画
領域(2)と、前記仮想3次元空間に前記不透明オブジ
ェクトと重ねて配置されるべき複数の半透明オブジェク
ト(Pg1,Pg4)に対する第2の描画領域(3)
と、前記第1及び第2の描画領域に対して共用され、所
定の視点からのオブジェクトの奥行きに関する情報を記
録するための奥行き情報記憶領域(4)とをそれぞれ用
意し、前記不透明オブジェクトの奥行きに関する情報を
前記奥行き情報記憶領域に記憶しつつ、前記不透明オブ
ジェクトを前記第1の描画領域に描画する手順と、前記
第1の描画領域への描画の終了後、前記複数の半透明オ
ブジェクトのそれぞれの奥行きと、前記奥行き情報記憶
領域に記憶された前記情報に基づいて特定される奥行き
とを対比して、既に描かれているオブジェクトよりも前
記視点に近い半透明オブジェクトのみを不透明オブジェ
クトとして前記第2の描画領域に描画するとともに、前
記奥行き情報記憶領域に記憶されている情報を、その新
たに描画されたオブジェクトの前記奥行きに関する情報
によって更新する手順と、前記第2の描画領域に描かれ
たオブジェクトを、その元となった半透明オブジェクト
に対して設定されている透明度に従って、前記第1の描
画領域に描かれた不透明オブジェクト上に半透明オブジ
ェクトとして描画する手順と、を前記コンピュータによ
り実行するものである。
(10)に設けられたメモリ(15)上に、仮想3次元
空間(1)に配置される少なくとも一つの不透明オブジ
ェクト(Pg2,Pg3,Pg5)に対する第1の描画
領域(2)と、前記仮想3次元空間に前記不透明オブジ
ェクトと重ねて配置されるべき複数の半透明オブジェク
ト(Pg1,Pg4)に対する第2の描画領域(3)
と、前記第1及び第2の描画領域に対して共用され、所
定の視点からのオブジェクトの奥行きに関する情報を記
録するための奥行き情報記憶領域(4)とをそれぞれ用
意し、前記不透明オブジェクトの奥行きに関する情報を
前記奥行き情報記憶領域に記憶しつつ、前記不透明オブ
ジェクトを前記第1の描画領域に描画する手順と、前記
第1の描画領域への描画の終了後、前記複数の半透明オ
ブジェクトのそれぞれの奥行きと、前記奥行き情報記憶
領域に記憶された前記情報に基づいて特定される奥行き
とを対比して、既に描かれているオブジェクトよりも前
記視点に近い半透明オブジェクトのみを不透明オブジェ
クトとして前記第2の描画領域に描画するとともに、前
記奥行き情報記憶領域に記憶されている情報を、その新
たに描画されたオブジェクトの前記奥行きに関する情報
によって更新する手順と、前記第2の描画領域に描かれ
たオブジェクトを、その元となった半透明オブジェクト
に対して設定されている透明度に従って、前記第1の描
画領域に描かれた不透明オブジェクト上に半透明オブジ
ェクトとして描画する手順と、を前記コンピュータによ
り実行するものである。
【0010】本発明の描画方法によれば、第1の描画領
域には不透明オブジェクトが、第2の描画領域には半透
明オブジェクトがそれぞれ分けて描画される。半透明オ
ブジェクトを不透明オブジェクトとして第2の描画領域
に描くようにしたので、半透明オブジェクトの描画順序
については視点からの奥行きに対応したものでなくても
よく、いわゆるZソートを行う必要はない。すなわち、
一般のZバッファ法に従って、先に描いているオブジェ
クトよりも視点に近い部分のみを描くようにして、視点
からの前後関係を正しく維持しながら各半透明オブジェ
クトを描けばよい。
域には不透明オブジェクトが、第2の描画領域には半透
明オブジェクトがそれぞれ分けて描画される。半透明オ
ブジェクトを不透明オブジェクトとして第2の描画領域
に描くようにしたので、半透明オブジェクトの描画順序
については視点からの奥行きに対応したものでなくても
よく、いわゆるZソートを行う必要はない。すなわち、
一般のZバッファ法に従って、先に描いているオブジェ
クトよりも視点に近い部分のみを描くようにして、視点
からの前後関係を正しく維持しながら各半透明オブジェ
クトを描けばよい。
【0011】また、第1の描画領域に対して不透明オブ
ジェクトを描いた後に不透明オブジェクトを描くように
しているから、奥行き情報記憶領域にはその第1の描画
領域に描かれた不透明オブジェクトに関する奥行き情報
が記憶された状態で第2の描画領域に対する描画が開始
される。このため、第1の描画領域に描かれた不透明オ
ブジェクトの背後に隠れる半透明オブジェクトは第2の
描画領域に描かれない。つまり、本発明の描画方法にお
いて、「既に描かれているオブジェクト」は第1の描画
領域に描かれているオブジェクト、及び第2の描画領域
に描かれているオブジェクトの双方を含む概念である。
ジェクトを描いた後に不透明オブジェクトを描くように
しているから、奥行き情報記憶領域にはその第1の描画
領域に描かれた不透明オブジェクトに関する奥行き情報
が記憶された状態で第2の描画領域に対する描画が開始
される。このため、第1の描画領域に描かれた不透明オ
ブジェクトの背後に隠れる半透明オブジェクトは第2の
描画領域に描かれない。つまり、本発明の描画方法にお
いて、「既に描かれているオブジェクト」は第1の描画
領域に描かれているオブジェクト、及び第2の描画領域
に描かれているオブジェクトの双方を含む概念である。
【0012】以上から、第2の描画領域には、第1の描
画領域に描かれた不透明オブジェクトよりも視点に近
く、かつ他の半透明オブジェクトによって隠されない半
透明オブジェクトのみが不透明オブジェクトとして描か
れることになる。この第2の描画領域に描画されたオブ
ジェクトを、その元となった半透明オブジェクトに設定
されている透明度に従って、第1の描画領域に描画され
たオブジェクト上に描画することにより、視点からみて
最も手前に位置している半透明オブジェクトが正しく不
透明オブジェクト上にブレンドされた画像が得られる。
画領域に描かれた不透明オブジェクトよりも視点に近
く、かつ他の半透明オブジェクトによって隠されない半
透明オブジェクトのみが不透明オブジェクトとして描か
れることになる。この第2の描画領域に描画されたオブ
ジェクトを、その元となった半透明オブジェクトに設定
されている透明度に従って、第1の描画領域に描画され
たオブジェクト上に描画することにより、視点からみて
最も手前に位置している半透明オブジェクトが正しく不
透明オブジェクト上にブレンドされた画像が得られる。
【0013】なお、不透明オブジェクトの手前に複数の
半透明オブジェクトが重なっている部分では2番目以降
の半透明オブジェクトの色や透明度が反映されないが、
各半透明オブジェクトを誤った順序で描く場合と比較し
てその影響は小さく、最も手前に配置される半透明オブ
ジェクトの色や透明度を正しく反映させるという目的は
十分に達成される。
半透明オブジェクトが重なっている部分では2番目以降
の半透明オブジェクトの色や透明度が反映されないが、
各半透明オブジェクトを誤った順序で描く場合と比較し
てその影響は小さく、最も手前に配置される半透明オブ
ジェクトの色や透明度を正しく反映させるという目的は
十分に達成される。
【0014】本発明の描画方法においては、前記第1の
描画領域に描画すべき不透明オブジェトが複数存在し、
前記第1の描画領域に描画する手順では、前記複数の不
透明オブジェクトのそれぞれの奥行きと、前記奥行き情
報記憶領域に記憶された前記情報に基づいて特定される
奥行きとを対比して、既に描かれているオブジェクトよ
りも前記視点に近い不透明オブジェクトのみを前記第1
の描画領域に描画するとともに、前記奥行き情報記憶領
域に記憶されている情報を、その新たに描画されたオブ
ジェクトの前記奥行きに関する情報によって更新し、前
記第1の描画領域に対する全ての不透明オブジェトの描
画を終了した後に前記第2の描画領域に対する前記不透
明オブジェクトの描画を行うようにしてもよい。この場
合には、第1の描画領域に関する不透明オブジェクトも
いわゆるZバッファ法に従って行うことができ、処理が
高速化される。
描画領域に描画すべき不透明オブジェトが複数存在し、
前記第1の描画領域に描画する手順では、前記複数の不
透明オブジェクトのそれぞれの奥行きと、前記奥行き情
報記憶領域に記憶された前記情報に基づいて特定される
奥行きとを対比して、既に描かれているオブジェクトよ
りも前記視点に近い不透明オブジェクトのみを前記第1
の描画領域に描画するとともに、前記奥行き情報記憶領
域に記憶されている情報を、その新たに描画されたオブ
ジェクトの前記奥行きに関する情報によって更新し、前
記第1の描画領域に対する全ての不透明オブジェトの描
画を終了した後に前記第2の描画領域に対する前記不透
明オブジェクトの描画を行うようにしてもよい。この場
合には、第1の描画領域に関する不透明オブジェクトも
いわゆるZバッファ法に従って行うことができ、処理が
高速化される。
【0015】前記第2の描画領域に描かれたオブジェク
トは、アルファブレンディング法により前記第1の描画
領域に描かれた不透明オブジェクト上に描画されてもよ
い。また、本発明の画像描画用のプログラムは、コンピ
ュータ(10)に設けられたメモリ(15)上に、仮想
3次元空間(1)に配置される少なくとも一つの不透明
オブジェクト(Pg2,Pg3,Pg5)に対する第1
の描画領域(2)と、前記仮想3次元空間に前記不透明
オブジェクトと重ねて配置されるべき複数の半透明オブ
ジェクト(Pg1,Pg4)に対する第2の描画領域
(3)と、前記第1及び第2の描画領域に対して共用さ
れ、所定の視点からのオブジェクトの奥行きに関する情
報を記録するための奥行き情報記憶領域(4)とをそれ
ぞれ用意させるとともに、前記不透明オブジェクトの奥
行きに関する情報を前記奥行き情報記憶領域に記憶しつ
つ、前記不透明オブジェクトを前記第1の描画領域に描
画する手順と、前記第1の描画領域への描画の終了後、
前記複数の半透明オブジェクトのそれぞれの奥行きと、
前記奥行き情報記憶領域に記憶された前記情報に基づい
て特定される奥行きとを対比して、既に描かれているオ
ブジェクトよりも前記視点に近い半透明オブジェクトの
みを不透明オブジェクトとして前記第2の描画領域に描
画するとともに、前記奥行き情報記憶領域に記憶されて
いる情報を、その新たに描画されたオブジェクトの前記
奥行きに関する情報によって更新する手順と、前記第2
の描画領域に描かれたオブジェクトを、その元となった
半透明オブジェクトに対して設定されている透明度に従
って、前記第1の描画領域に描かれた不透明オブジェク
ト上に半透明オブジェクトとして描画する手順と、を前
記コンピュータに実行させるように構成されたものであ
る。
トは、アルファブレンディング法により前記第1の描画
領域に描かれた不透明オブジェクト上に描画されてもよ
い。また、本発明の画像描画用のプログラムは、コンピ
ュータ(10)に設けられたメモリ(15)上に、仮想
3次元空間(1)に配置される少なくとも一つの不透明
オブジェクト(Pg2,Pg3,Pg5)に対する第1
の描画領域(2)と、前記仮想3次元空間に前記不透明
オブジェクトと重ねて配置されるべき複数の半透明オブ
ジェクト(Pg1,Pg4)に対する第2の描画領域
(3)と、前記第1及び第2の描画領域に対して共用さ
れ、所定の視点からのオブジェクトの奥行きに関する情
報を記録するための奥行き情報記憶領域(4)とをそれ
ぞれ用意させるとともに、前記不透明オブジェクトの奥
行きに関する情報を前記奥行き情報記憶領域に記憶しつ
つ、前記不透明オブジェクトを前記第1の描画領域に描
画する手順と、前記第1の描画領域への描画の終了後、
前記複数の半透明オブジェクトのそれぞれの奥行きと、
前記奥行き情報記憶領域に記憶された前記情報に基づい
て特定される奥行きとを対比して、既に描かれているオ
ブジェクトよりも前記視点に近い半透明オブジェクトの
みを不透明オブジェクトとして前記第2の描画領域に描
画するとともに、前記奥行き情報記憶領域に記憶されて
いる情報を、その新たに描画されたオブジェクトの前記
奥行きに関する情報によって更新する手順と、前記第2
の描画領域に描かれたオブジェクトを、その元となった
半透明オブジェクトに対して設定されている透明度に従
って、前記第1の描画領域に描かれた不透明オブジェク
ト上に半透明オブジェクトとして描画する手順と、を前
記コンピュータに実行させるように構成されたものであ
る。
【0016】このプログラムをコンピュータで読み取っ
て実行することにより、本発明の画像の描画方法を実施
することができる。
て実行することにより、本発明の画像の描画方法を実施
することができる。
【0017】なお、本発明のプログラムは、上述した描
画方法の好ましい態様を備えることができる。すなわ
ち、前記第1の描画領域に描画すべき不透明オブジェト
が複数存在する場合に、前記第1の描画領域に描画する
手順では、前記複数の不透明オブジェクトのそれぞれの
奥行きと、前記奥行き情報記憶領域に記憶された前記情
報に基づいて特定される奥行きとを対比して、既に描か
れているオブジェクトよりも前記視点に近い不透明オブ
ジェクトのみを前記第1の描画領域に描画するととも
に、前記奥行き情報記憶領域に記憶されている情報を、
その新たに描画されたオブジェクトの前記奥行きに関す
る情報によって更新し、前記第1の描画領域に対する全
ての不透明オブジェトの描画を終了した後に前記第2の
描画領域に対する前記不透明オブジェクトの描画を行う
ようにしてもよい。
画方法の好ましい態様を備えることができる。すなわ
ち、前記第1の描画領域に描画すべき不透明オブジェト
が複数存在する場合に、前記第1の描画領域に描画する
手順では、前記複数の不透明オブジェクトのそれぞれの
奥行きと、前記奥行き情報記憶領域に記憶された前記情
報に基づいて特定される奥行きとを対比して、既に描か
れているオブジェクトよりも前記視点に近い不透明オブ
ジェクトのみを前記第1の描画領域に描画するととも
に、前記奥行き情報記憶領域に記憶されている情報を、
その新たに描画されたオブジェクトの前記奥行きに関す
る情報によって更新し、前記第1の描画領域に対する全
ての不透明オブジェトの描画を終了した後に前記第2の
描画領域に対する前記不透明オブジェクトの描画を行う
ようにしてもよい。
【0018】前記第2の描画領域に描かれたオブジェク
トが、アルファブレンディング法により前記第1の描画
領域に描かれた不透明オブジェクト上に描画されてもよ
い。
トが、アルファブレンディング法により前記第1の描画
領域に描かれた不透明オブジェクト上に描画されてもよ
い。
【0019】さらに、本発明のプログラムは記憶媒体に
記録されて使用者に提供されてもよいし、有線又は無線
の伝送媒体に乗せて使用者に提供されてもよい。
記録されて使用者に提供されてもよいし、有線又は無線
の伝送媒体に乗せて使用者に提供されてもよい。
【0020】
【発明の実施の形態】図1を参照して本発明が適用され
た描画処理の一実施形態を説明する。図1は仮想3次元
空間1に複数のポリゴンPg1〜Pg5が配置された様
子を示している。各ポリゴンPg1〜Pg5はそれぞれ
仮想3次元空間1に配置された互いに異なるオブジェク
トの一部を構成するものであるが、ここでは、理解の便
宜のために各オブジェクトがそれぞれ一枚のポリゴンで
構成されていると仮定して説明する。また、図1に示し
た三軸直交座標系X−Y−Zは、仮想3次元空間1に設
置された不図示の仮想カメラから仮想3次元空間を撮影
する方向をZ軸正方向に設定した視点座標系を示してい
る。
た描画処理の一実施形態を説明する。図1は仮想3次元
空間1に複数のポリゴンPg1〜Pg5が配置された様
子を示している。各ポリゴンPg1〜Pg5はそれぞれ
仮想3次元空間1に配置された互いに異なるオブジェク
トの一部を構成するものであるが、ここでは、理解の便
宜のために各オブジェクトがそれぞれ一枚のポリゴンで
構成されていると仮定して説明する。また、図1に示し
た三軸直交座標系X−Y−Zは、仮想3次元空間1に設
置された不図示の仮想カメラから仮想3次元空間を撮影
する方向をZ軸正方向に設定した視点座標系を示してい
る。
【0021】いま、図1に示したポリゴンPg1〜Pg
5のうち、ポリゴンPg1及びPg4が半透明オブジェ
クトを、ポリゴンPg2、Pg3及びPg5が不透明オ
ブジェクトをそれぞれ構成し、半透明ポリゴンPg1,
Pg4にはそれぞれ半透明度α1,α4が設定されてい
ると仮定する。なお、半透明度α1,α4は一つのポリ
ゴンの全域で同一でもよいし、一つのポリゴン内で変化
してもよい。
5のうち、ポリゴンPg1及びPg4が半透明オブジェ
クトを、ポリゴンPg2、Pg3及びPg5が不透明オ
ブジェクトをそれぞれ構成し、半透明ポリゴンPg1,
Pg4にはそれぞれ半透明度α1,α4が設定されてい
ると仮定する。なお、半透明度α1,α4は一つのポリ
ゴンの全域で同一でもよいし、一つのポリゴン内で変化
してもよい。
【0022】こうした不透明なポリゴンと半透明なポリ
ゴンとが重なっている状態を描く場合、本実施形態で
は、ポリゴンを描画するための描画領域として、不透明
用フレームバッファ2と、半透明用フレームバッファ3
とを用意する。一方、各フレームバッファ2,3に描か
れるポリゴンのZ座標を記憶する共通の記憶領域として
Zバッファ4が用意される。そして、ポリゴンPg1〜
Pg5の描画は次のようにして行われる。
ゴンとが重なっている状態を描く場合、本実施形態で
は、ポリゴンを描画するための描画領域として、不透明
用フレームバッファ2と、半透明用フレームバッファ3
とを用意する。一方、各フレームバッファ2,3に描か
れるポリゴンのZ座標を記憶する共通の記憶領域として
Zバッファ4が用意される。そして、ポリゴンPg1〜
Pg5の描画は次のようにして行われる。
【0023】まず、不透明なポリゴンPg2、Pg3及
びPg5を通常のZバッファ法に従って不透明用フレー
ムバッファ2に描画する。つまり、最初にポリゴンPg
2、Pg4又はPg5のいずれか一つをフレームバッフ
ァ2に描画しつつ、そのポリゴン上の各点のZ座標をZ
バッファ4に記憶する。続いて、他の一つのポリゴン上
の各ピクセルにおけるZ座標と、Zバッファ4に記憶さ
れた同一ピクセルに関するZ値とを比較し、Z座標が小
さい部分(既にフレームバッファ2に描かれているポリ
ゴンよりも視点に近い部分)のみフレームバッファ2に
描画し、その描画された部分に関するZバッファ4の値
を更新する。なお、先に描画されているポリゴンよりも
外側の領域についてはZ値がないので、その部分につい
ては新たにポリゴンが描画される。こうした処理を各ポ
リゴンに対して繰り返し行うことにより、全ての不透明
オブジェクトを不透明用フレームバッファ2に前後関係
を正しく維持しながら描画するとともに、描画されたオ
ブジェクトを構成するピクセル毎のZ座標をZバッファ
4に記憶する。
びPg5を通常のZバッファ法に従って不透明用フレー
ムバッファ2に描画する。つまり、最初にポリゴンPg
2、Pg4又はPg5のいずれか一つをフレームバッフ
ァ2に描画しつつ、そのポリゴン上の各点のZ座標をZ
バッファ4に記憶する。続いて、他の一つのポリゴン上
の各ピクセルにおけるZ座標と、Zバッファ4に記憶さ
れた同一ピクセルに関するZ値とを比較し、Z座標が小
さい部分(既にフレームバッファ2に描かれているポリ
ゴンよりも視点に近い部分)のみフレームバッファ2に
描画し、その描画された部分に関するZバッファ4の値
を更新する。なお、先に描画されているポリゴンよりも
外側の領域についてはZ値がないので、その部分につい
ては新たにポリゴンが描画される。こうした処理を各ポ
リゴンに対して繰り返し行うことにより、全ての不透明
オブジェクトを不透明用フレームバッファ2に前後関係
を正しく維持しながら描画するとともに、描画されたオ
ブジェクトを構成するピクセル毎のZ座標をZバッファ
4に記憶する。
【0024】次に、半透明ポリゴンPg1及びPg4を
半透明用フレームバッファ3に描画する。このとき、Z
バッファ4に記録されたポリゴンPg2、Pg3又はP
g5のZ値を参照し、半透明ポリゴンPg1、Pg4の
うち、不透明ポリゴンPg2、Pg3又はPg5により
も視点からみて後に隠れる部分は半透明用フレームバッ
ファ3に描画しない。また、半透明ポリゴンPg1及び
Pg4はいずれも不透明ポリゴンとして、フレームバッ
ファ3に描画する。しかも、Zバッファ4を使用してポ
リゴンPg1とPg4との前後関係も比較し、視点から
見て他の半透明ポリゴンに隠される部分は描画しない。
半透明用フレームバッファ3に描画する。このとき、Z
バッファ4に記録されたポリゴンPg2、Pg3又はP
g5のZ値を参照し、半透明ポリゴンPg1、Pg4の
うち、不透明ポリゴンPg2、Pg3又はPg5により
も視点からみて後に隠れる部分は半透明用フレームバッ
ファ3に描画しない。また、半透明ポリゴンPg1及び
Pg4はいずれも不透明ポリゴンとして、フレームバッ
ファ3に描画する。しかも、Zバッファ4を使用してポ
リゴンPg1とPg4との前後関係も比較し、視点から
見て他の半透明ポリゴンに隠される部分は描画しない。
【0025】つまり、半透明用フレームバッファ3へ描
画を行う際には、まず、最初に描画候補として選ばれた
ポリゴンPg1又はPg4のいずれか一方のピクセルの
Z座標と、Zバッファ4が記憶するポリゴンPg2、P
g3又はPg5に対応したZ値とを比較して、ポリゴン
Pg1又はPg4をフレームバッファ3に描画するか否
かをピクセル単位で比較する。そして、ポリゴンPg1
又はPg4をフレームバッファ3に描いた場合、その描
画部分に対応するピクセルに関しては、Zバッファ4に
記憶されているZ値をその描かれたポリゴンPg1又は
Pg4に対応したZ座標によって更新する。そして、半
透明ポリゴンPg1又はPg4のいずれか他方のポリゴ
ン内のZ座標とZバッファ4のZ値とをピクセル毎に対
比し、そのポリゴンが最も視点からみて手前に見える部
分だけ当該他方のポリゴンを半透明用フレームバッファ
3に描画する。
画を行う際には、まず、最初に描画候補として選ばれた
ポリゴンPg1又はPg4のいずれか一方のピクセルの
Z座標と、Zバッファ4が記憶するポリゴンPg2、P
g3又はPg5に対応したZ値とを比較して、ポリゴン
Pg1又はPg4をフレームバッファ3に描画するか否
かをピクセル単位で比較する。そして、ポリゴンPg1
又はPg4をフレームバッファ3に描いた場合、その描
画部分に対応するピクセルに関しては、Zバッファ4に
記憶されているZ値をその描かれたポリゴンPg1又は
Pg4に対応したZ座標によって更新する。そして、半
透明ポリゴンPg1又はPg4のいずれか他方のポリゴ
ン内のZ座標とZバッファ4のZ値とをピクセル毎に対
比し、そのポリゴンが最も視点からみて手前に見える部
分だけ当該他方のポリゴンを半透明用フレームバッファ
3に描画する。
【0026】図1の例では一番手前のポリゴンPg1に
ついてはその全体が半透明用フレームバッファ3に描か
れているが、その背後のポリゴンPg4に関しては、不
透明用フレームバッファ2に描かれているポリゴンPg
2又はPg3に隠される部分が省略されている。ポリゴ
ンPg1とポリゴンPg4とが重なる部分についてはポ
リゴンPg1が優先して描かれることになる。このよう
に、半透明用フレームバッファ3においては、複数の半
透明ポリゴンのうち、視点からみて一番手前に見えるポ
リゴンのみが描かれることとなる。
ついてはその全体が半透明用フレームバッファ3に描か
れているが、その背後のポリゴンPg4に関しては、不
透明用フレームバッファ2に描かれているポリゴンPg
2又はPg3に隠される部分が省略されている。ポリゴ
ンPg1とポリゴンPg4とが重なる部分についてはポ
リゴンPg1が優先して描かれることになる。このよう
に、半透明用フレームバッファ3においては、複数の半
透明ポリゴンのうち、視点からみて一番手前に見えるポ
リゴンのみが描かれることとなる。
【0027】各フレームバッファ2,3に対する描画を
終えた後、半透明用フレームバッファ3に描かれたポリ
ゴンをそれらの元となったポリゴンPg1又はPg4に
対して設定されている半透明度α1,又はα4に従って
αブレンディング法によりフレームバッファ2のポリゴ
ンPg2、Pg3又はPg5上に半透明ポリゴンとして
描画する。なお、半透明度を指定する値α1,α4は、
ポリゴンPg1及びPg4をフレームバッファ3に描画
する際に、各ピクセルのRGB値に続けてαチャンネル
として記述しておくことができる。
終えた後、半透明用フレームバッファ3に描かれたポリ
ゴンをそれらの元となったポリゴンPg1又はPg4に
対して設定されている半透明度α1,又はα4に従って
αブレンディング法によりフレームバッファ2のポリゴ
ンPg2、Pg3又はPg5上に半透明ポリゴンとして
描画する。なお、半透明度を指定する値α1,α4は、
ポリゴンPg1及びPg4をフレームバッファ3に描画
する際に、各ピクセルのRGB値に続けてαチャンネル
として記述しておくことができる。
【0028】以上の方法によれば、複数の半透明ポリゴ
ンが重なっている場合、視点から見て一番手前に位置し
ている半透明ポリゴンのみが、不透明用フレームバッフ
ァ2に描かれた不透明ポリゴンの上にアルファブレンデ
ィング法に従って描かれることになる。従って、視点か
ら遠い半透明オブジェクトが視点に近い半透明オブジェ
クトよりも後にアルファブレンディング法によって描画
される、いわゆる優先誤りが生じて画像の色が不自然に
観察されるおそれがなくなる。しかも、フレームバッフ
ァ2,3に対する描画処理は通常のZバッファ法をその
まま用いるので、視点から見えない部分の描画を省略し
て描画処理を高速化できる。
ンが重なっている場合、視点から見て一番手前に位置し
ている半透明ポリゴンのみが、不透明用フレームバッフ
ァ2に描かれた不透明ポリゴンの上にアルファブレンデ
ィング法に従って描かれることになる。従って、視点か
ら遠い半透明オブジェクトが視点に近い半透明オブジェ
クトよりも後にアルファブレンディング法によって描画
される、いわゆる優先誤りが生じて画像の色が不自然に
観察されるおそれがなくなる。しかも、フレームバッフ
ァ2,3に対する描画処理は通常のZバッファ法をその
まま用いるので、視点から見えない部分の描画を省略し
て描画処理を高速化できる。
【0029】次に、以上の描画方法を実現する具体的な
装置及び処理方法を図2及び図3を参照して説明する。
本発明の画像の描画方法は様々な分野の3次元画像処理
において利用できるものであるが、以下では一例として
コンピュータを利用したゲーム機にて本発明の描画方法
を実施する例を説明する。
装置及び処理方法を図2及び図3を参照して説明する。
本発明の画像の描画方法は様々な分野の3次元画像処理
において利用できるものであるが、以下では一例として
コンピュータを利用したゲーム機にて本発明の描画方法
を実施する例を説明する。
【0030】図2はコンピュータを利用した典型的なゲ
ーム機の制御系のブロック図である。周知のように、コ
ンピュータとしてのゲーム機10は、記憶媒体(例えば
DVD−ROM)25に記録されたゲーム用プログラム
に従って所定のゲームを実行する。ゲーム機10は、マ
イクロプロセッサを主体として構成されたCPU11
と、そのCPU11に対する主記憶装置としてのROM
12及びRAM13と、CPU11からの指示に基づい
て画像処理及び音声処理に適した処理を行う画像処理装
置14及びサウンド処理装置16と、記憶媒体としての
DVD−ROM25からプログラムやデータを読み取る
ためのDVD−ROM読取装置18とを有している。R
OM12には、ゲーム機10の全体の動作制御に必要な
プログラムとしてのオペレーティングシステムが書き込
まれる。RAM13には記憶媒体としてのDVD−RO
M25から読み取ったゲーム用のプログラムやデータが
必要に応じて書き込まれる。
ーム機の制御系のブロック図である。周知のように、コ
ンピュータとしてのゲーム機10は、記憶媒体(例えば
DVD−ROM)25に記録されたゲーム用プログラム
に従って所定のゲームを実行する。ゲーム機10は、マ
イクロプロセッサを主体として構成されたCPU11
と、そのCPU11に対する主記憶装置としてのROM
12及びRAM13と、CPU11からの指示に基づい
て画像処理及び音声処理に適した処理を行う画像処理装
置14及びサウンド処理装置16と、記憶媒体としての
DVD−ROM25からプログラムやデータを読み取る
ためのDVD−ROM読取装置18とを有している。R
OM12には、ゲーム機10の全体の動作制御に必要な
プログラムとしてのオペレーティングシステムが書き込
まれる。RAM13には記憶媒体としてのDVD−RO
M25から読み取ったゲーム用のプログラムやデータが
必要に応じて書き込まれる。
【0031】画像処理装置14はCPU11からの指示
に従ってビデオメモリ15上に所定の画像をレンダリン
グしたり、そのレンダリングされた画像のデータを所定
のビデオ再生信号に変換して所定のタイミングでモニタ
19に出力する。ゲーム機によっては、画像処理装置1
4に高度な3次元演算を実行するグラフィックスアクセ
ラレータ機能が搭載されることもあり、CPU11及び
画像処理装置14によってそれぞれどのような処理を負
担するかはハードウエアの構成に依存して大きく相違す
る。そこで、本実施形態では、CPU11及び画像処理
装置14を一体のコンピュータとみなして説明を続け
る。ビデオメモリ15は画像処理装置14に描画専用の
メモリとして設けられた例を示しているが、メインメモ
リとしてのRAM13上にビデオメモリが確保されても
よい。
に従ってビデオメモリ15上に所定の画像をレンダリン
グしたり、そのレンダリングされた画像のデータを所定
のビデオ再生信号に変換して所定のタイミングでモニタ
19に出力する。ゲーム機によっては、画像処理装置1
4に高度な3次元演算を実行するグラフィックスアクセ
ラレータ機能が搭載されることもあり、CPU11及び
画像処理装置14によってそれぞれどのような処理を負
担するかはハードウエアの構成に依存して大きく相違す
る。そこで、本実施形態では、CPU11及び画像処理
装置14を一体のコンピュータとみなして説明を続け
る。ビデオメモリ15は画像処理装置14に描画専用の
メモリとして設けられた例を示しているが、メインメモ
リとしてのRAM13上にビデオメモリが確保されても
よい。
【0032】サウンド処理装置16は、DVD−ROM
25から読み出された音声、楽音等のデータや音源デー
タ等を再生してスピーカ20から出力させる。読取装置
18は、CPU11からの指示に従ってDVD−ROM
25上に記録されたプログラムやデータを読み取り、そ
の読み取った内容に対応した信号を出力する。DVD−
ROM25には、本発明に係る画像の表現方法の実施に
必要なプログラムやデータが記録されている。
25から読み出された音声、楽音等のデータや音源デー
タ等を再生してスピーカ20から出力させる。読取装置
18は、CPU11からの指示に従ってDVD−ROM
25上に記録されたプログラムやデータを読み取り、そ
の読み取った内容に対応した信号を出力する。DVD−
ROM25には、本発明に係る画像の表現方法の実施に
必要なプログラムやデータが記録されている。
【0033】モニタ19には家庭用のテレビ受像機が、
スピーカ20にはそのテレビ受像機の内蔵スピーカが一
般に使用される。さらに、CPU11にはバス24を介
して入力装置22及び外部記憶装置23がそれぞれ接続
される。外部記憶装置23は例えば不揮発性の半導体メ
モリ、ハードディスク、光磁気ディスク等の書換えが可
能な記憶装置である。このような構成はあくまで一例で
あり、本発明の画像の生成方法が適用されるコンピュー
タの構成は適宜変更されてよい。
スピーカ20にはそのテレビ受像機の内蔵スピーカが一
般に使用される。さらに、CPU11にはバス24を介
して入力装置22及び外部記憶装置23がそれぞれ接続
される。外部記憶装置23は例えば不揮発性の半導体メ
モリ、ハードディスク、光磁気ディスク等の書換えが可
能な記憶装置である。このような構成はあくまで一例で
あり、本発明の画像の生成方法が適用されるコンピュー
タの構成は適宜変更されてよい。
【0034】記憶媒体としてのDVD−ROM25に記
録されるプログラムには、ビデオメモリ15上に不透明
用フレームバッファ2、半透明用フレームバッファ3及
びZバッファ4をそれぞれ必要量ずつ確保するためのモ
ジュールや、それらのバッファを利用して上述した描画
方法を実施するために必要な手順を記述したモジュール
が含まれる。また、DVD−ROM25に記録されるデ
ータには、上述した方法を実現するために必要なデータ
として、各種のオブジェクトを構成するポリゴンのデー
タや各種のテクスチャのデータが含まれる。
録されるプログラムには、ビデオメモリ15上に不透明
用フレームバッファ2、半透明用フレームバッファ3及
びZバッファ4をそれぞれ必要量ずつ確保するためのモ
ジュールや、それらのバッファを利用して上述した描画
方法を実施するために必要な手順を記述したモジュール
が含まれる。また、DVD−ROM25に記録されるデ
ータには、上述した方法を実現するために必要なデータ
として、各種のオブジェクトを構成するポリゴンのデー
タや各種のテクスチャのデータが含まれる。
【0035】半透明ポリゴンを描画するためのプログラ
ムモジュールは、各フレームの画像データを生成する処
理において、本発明に従って半透明ポリゴンを描画する
必要がある場合に呼び出されてCPU11により実行さ
れる。なお、上述した半透明ポリゴンの描画に拘わる部
分以外の処理には公知の技術をそのまま利用することが
でき、本明細書ではそれらの説明を省略する。
ムモジュールは、各フレームの画像データを生成する処
理において、本発明に従って半透明ポリゴンを描画する
必要がある場合に呼び出されてCPU11により実行さ
れる。なお、上述した半透明ポリゴンの描画に拘わる部
分以外の処理には公知の技術をそのまま利用することが
でき、本明細書ではそれらの説明を省略する。
【0036】図3は半透明ポリゴンを描画するためにゲ
ーム機のコンピュータが実行する処理の手順を示すフロ
ーチャートである。
ーム機のコンピュータが実行する処理の手順を示すフロ
ーチャートである。
【0037】この処理では、まず各バッファ2,3,4
を初期化し(ステップS1)、GPU14が描画を行う
べきバッファ、つまり画像データを書き込む先のバッフ
ァを不透明用フレームバッファ2に設定する(ステップ
S2)。続いて、次のフレームにて描画すべき不透明オ
ブジェクトを不透明用フレームバッファ2に描画する
(ステップS3)。このとき、Zバッファ法に従ってZ
バッファ4に不透明オブジェクトの視点座標系における
Z座標を書き込み、後から描こうとする不透明オブジェ
クトのうち、Z座標がZバッファ4のZ値よりも大きい
ピクセルについては不透明用フレームバッファ2に描画
しない。
を初期化し(ステップS1)、GPU14が描画を行う
べきバッファ、つまり画像データを書き込む先のバッフ
ァを不透明用フレームバッファ2に設定する(ステップ
S2)。続いて、次のフレームにて描画すべき不透明オ
ブジェクトを不透明用フレームバッファ2に描画する
(ステップS3)。このとき、Zバッファ法に従ってZ
バッファ4に不透明オブジェクトの視点座標系における
Z座標を書き込み、後から描こうとする不透明オブジェ
クトのうち、Z座標がZバッファ4のZ値よりも大きい
ピクセルについては不透明用フレームバッファ2に描画
しない。
【0038】オブジェクトの描画後、描画すべき全ての
不透明オブジェクトを不透明用フレームバッファ2に描
画したか否か判断し(ステップS4)、まだ描画してい
ない不透明オブジェクトがあればステップS3へ戻る。
不透明オブジェクトを不透明用フレームバッファ2に描
画したか否か判断し(ステップS4)、まだ描画してい
ない不透明オブジェクトがあればステップS3へ戻る。
【0039】全ての不透明オブジェクトを描画した後
は、GPU14が描画を行うべきバッファを半透明用フ
レームバッファ3に設定する(ステップS5)。続い
て、次のフレームにて描画すべき半透明オブジェクトを
半透明用フレームバッファ3に不透明オブジェクトとし
て描画する(ステップS6)。このときもZバッファ4
を利用して既に描かれているオブジェクトと、これから
描こうとするオブジェクトとの視点からの奥行きの大小
を比較し、既に描かれたオブジェクトに隠れる部分につ
いては描画しない。ステップS4からステップS5を経
てステップS6へと進む間にZバッファ4を初期化して
いないので、半透明オブジェクトを描画する際にはZバ
ッファ4に不透明用フレームバッファ2に描かれている
オブジェクトのZ座標が格納されたままである。従っ
て、不透明なオブジェクトの背後に隠れる半透明用オブ
ジェクトについては半透明用フレームバッファ3へ描画
されない。また、不透明用オブジェクトよりも視点に近
い半透明オブジェクトは半透明用フレームバッファ3に
描画され、Zバッファ4のZ値はその描画された半透明
オブジェクトのZ座標により更新される。そして、更新
されたZ値と、その後に描画されるべき半透明オブジェ
クトのZ座標とが比較され、視点により近い半透明オブ
ジェクトのみが半透明用フレームバッファ3に描かれる
ようになる。
は、GPU14が描画を行うべきバッファを半透明用フ
レームバッファ3に設定する(ステップS5)。続い
て、次のフレームにて描画すべき半透明オブジェクトを
半透明用フレームバッファ3に不透明オブジェクトとし
て描画する(ステップS6)。このときもZバッファ4
を利用して既に描かれているオブジェクトと、これから
描こうとするオブジェクトとの視点からの奥行きの大小
を比較し、既に描かれたオブジェクトに隠れる部分につ
いては描画しない。ステップS4からステップS5を経
てステップS6へと進む間にZバッファ4を初期化して
いないので、半透明オブジェクトを描画する際にはZバ
ッファ4に不透明用フレームバッファ2に描かれている
オブジェクトのZ座標が格納されたままである。従っ
て、不透明なオブジェクトの背後に隠れる半透明用オブ
ジェクトについては半透明用フレームバッファ3へ描画
されない。また、不透明用オブジェクトよりも視点に近
い半透明オブジェクトは半透明用フレームバッファ3に
描画され、Zバッファ4のZ値はその描画された半透明
オブジェクトのZ座標により更新される。そして、更新
されたZ値と、その後に描画されるべき半透明オブジェ
クトのZ座標とが比較され、視点により近い半透明オブ
ジェクトのみが半透明用フレームバッファ3に描かれる
ようになる。
【0040】半透明オブジェクトの描画後、描画すべき
全ての半透明オブジェクトを半透明用フレームバッファ
3に描画したか否か判断し(ステップS7)、まだ描画
していない半透明オブジェクトがあればステップS6へ
戻る。
全ての半透明オブジェクトを半透明用フレームバッファ
3に描画したか否か判断し(ステップS7)、まだ描画
していない半透明オブジェクトがあればステップS6へ
戻る。
【0041】全ての半透明オブジェクトを描画した後
は、半透明用フレームバッファ3に描画されているオブ
ジェクトをアルファブレンディング法に従って不透明用
フレームバッファ2に描かれているオブジェクト上に描
画する(ステップS8)。この後、図3の処理を終え
る。
は、半透明用フレームバッファ3に描画されているオブ
ジェクトをアルファブレンディング法に従って不透明用
フレームバッファ2に描かれているオブジェクト上に描
画する(ステップS8)。この後、図3の処理を終え
る。
【0042】以上の処理により、視点からみて一番近く
に見える半透明オブジェクトのみが不透明オブジェクト
の前面に描かれるようになる。なお、不透明用フレーム
バッファ2に描かれている不透明オブジェクトの前に複
数の半透明オブジェクトが位置する場合、一番手前に位
置している半透明オブジェクトのみがアルファブレンデ
ィングによって重ねられ、二番目以降の半透明オブジェ
クトの色や透明度は無視されることになる。しかし、上
述したように、アルファブレンディング法では一番手前
に描かれた半透明オブジェクトの色の影響がブレンド後
の画像に最も強く出現するので、複数の半透明オブジェ
クトを誤った順序で描いたときに生じる色の誤りと比較
して二番目以降の半透明オブジェクトを無視することに
よる影響は遙かに小さい。
に見える半透明オブジェクトのみが不透明オブジェクト
の前面に描かれるようになる。なお、不透明用フレーム
バッファ2に描かれている不透明オブジェクトの前に複
数の半透明オブジェクトが位置する場合、一番手前に位
置している半透明オブジェクトのみがアルファブレンデ
ィングによって重ねられ、二番目以降の半透明オブジェ
クトの色や透明度は無視されることになる。しかし、上
述したように、アルファブレンディング法では一番手前
に描かれた半透明オブジェクトの色の影響がブレンド後
の画像に最も強く出現するので、複数の半透明オブジェ
クトを誤った順序で描いたときに生じる色の誤りと比較
して二番目以降の半透明オブジェクトを無視することに
よる影響は遙かに小さい。
【0043】以上の実施形態はあくまで本発明の一例で
あり、本発明は種々の形態で実施してよい。例えばビデ
オメモリ15の特定の領域を第1の描画領域及び第2の
描画領域としてそれぞれ共用し、不透明オブジェクトの
描画が終わった時点で描かれた画像データを一時的に別
の領域に転送し、同一領域を第2の描画領域として使用
して半透明オブジェクトを描画し、その後、描かれた各
オブジェクトをブレンドしてもよい。
あり、本発明は種々の形態で実施してよい。例えばビデ
オメモリ15の特定の領域を第1の描画領域及び第2の
描画領域としてそれぞれ共用し、不透明オブジェクトの
描画が終わった時点で描かれた画像データを一時的に別
の領域に転送し、同一領域を第2の描画領域として使用
して半透明オブジェクトを描画し、その後、描かれた各
オブジェクトをブレンドしてもよい。
【0044】
【発明の効果】以上に説明したように、本発明の画像の
描画方法によれば、第1の描画領域に描かれる不透明オ
ブジェクトとは別に、複数の半透明オブジェクトを第2
の描画領域にZバッファ法を用いて不透明オブジェクト
として描画し、最終的に得られたオブジェクトを半透明
オブジェクトとして、第1の描画領域に描かれたオブジ
ェクト上に重ねて描くようにしたので、面倒なソート処
理を行わなくても、視点に一番近い半透明オブジェクト
をその背後の不透明オブジェクトに正しく重ねて描画す
ることができる。
描画方法によれば、第1の描画領域に描かれる不透明オ
ブジェクトとは別に、複数の半透明オブジェクトを第2
の描画領域にZバッファ法を用いて不透明オブジェクト
として描画し、最終的に得られたオブジェクトを半透明
オブジェクトとして、第1の描画領域に描かれたオブジ
ェクト上に重ねて描くようにしたので、面倒なソート処
理を行わなくても、視点に一番近い半透明オブジェクト
をその背後の不透明オブジェクトに正しく重ねて描画す
ることができる。
【図1】本発明の一実施形態において仮想3次元空間に
配置されたオブジェクトと、描画領域としての二つのフ
レームバッファとの関係を示す図。
配置されたオブジェクトと、描画領域としての二つのフ
レームバッファとの関係を示す図。
【図2】本発明の一実施形態で使用されるゲーム機の概
略構成を示すブロック図。
略構成を示すブロック図。
【図3】図2のゲーム機にて実行される描画処理の手順
を示すフローチャート。
を示すフローチャート。
1 仮想3次元空間 2 不透明用フレームバッファ(第1の描画領域) 3 半透明用フレームバッファ(第2の描画領域) 4 Zバッファ(奥行き情報記憶領域) 10 ゲーム機(コンピュータ) 11 CPU 14 画像処理装置 15 ビデオメモリ Pg1、Pg4 半透明ポリゴン Pg2、Pg3、Pg5 不透明ポリゴン
フロントページの続き Fターム(参考) 5B080 AA13 CA01 CA05 FA03 FA17 GA02
Claims (6)
- 【請求項1】 コンピュータに設けられたメモリ上に、
仮想3次元空間に配置される少なくとも一つの不透明オ
ブジェクトに対する第1の描画領域と、前記仮想3次元
空間に前記不透明オブジェクトと重ねて配置されるべき
複数の半透明オブジェクトに対する第2の描画領域と、
前記第1及び第2の描画領域に対して共用され、所定の
視点からのオブジェクトの奥行きに関する情報を記録す
るための奥行き情報記憶領域とをそれぞれ用意し、 前記不透明オブジェクトの奥行きに関する情報を前記奥
行き情報記憶領域に記憶しつつ、前記不透明オブジェク
トを前記第1の描画領域に描画する手順と、 前記第1の描画領域への描画の終了後、前記複数の半透
明オブジェクトのそれぞれの奥行きと、前記奥行き情報
記憶領域に記憶された前記情報に基づいて特定される奥
行きとを対比して、既に描かれているオブジェクトより
も前記視点に近い半透明オブジェクトのみを不透明オブ
ジェクトとして前記第2の描画領域に描画するととも
に、前記奥行き情報記憶領域に記憶されている情報を、
その新たに描画されたオブジェクトの前記奥行きに関す
る情報によって更新する手順と、 前記第2の描画領域に描かれたオブジェクトを、その元
となった半透明オブジェクトに対して設定されている透
明度に従って、前記第1の描画領域に描かれた不透明オ
ブジェクト上に半透明オブジェクトとして描画する手順
と、 を前記コンピュータにより実行することを特徴とする画
像の描画方法。 - 【請求項2】 前記第1の描画領域に描画すべき不透明
オブジェトが複数存在し、前記第1の描画領域に描画す
る手順では、前記複数の不透明オブジェクトのそれぞれ
の奥行きと、前記奥行き情報記憶領域に記憶された前記
情報に基づいて特定される奥行きとを対比して、既に描
かれているオブジェクトよりも前記視点に近い不透明オ
ブジェクトのみを前記第1の描画領域に描画するととも
に、前記奥行き情報記憶領域に記憶されている情報を、
その新たに描画されたオブジェクトの前記奥行きに関す
る情報によって更新し、 前記第1の描画領域に対する全ての不透明オブジェトの
描画を終了した後に前記第2の描画領域に対する前記不
透明オブジェクトの描画を行うことを特徴とする請求項
1に記載の画像の描画方法。 - 【請求項3】 前記第2の描画領域に描かれたオブジェ
クトが、アルファブレンディング法により前記第1の描
画領域に描かれた不透明オブジェクト上に描画されるこ
とを特徴とする請求項1又は2に記載の画像の描画方
法。 - 【請求項4】 コンピュータに設けられたメモリ上に、
仮想3次元空間に配置される少なくとも一つの不透明オ
ブジェクトに対する第1の描画領域と、前記仮想3次元
空間に前記不透明オブジェクトと重ねて配置されるべき
複数の半透明オブジェクトに対する第2の描画領域と、
前記第1及び第2の描画領域に対して共用され、所定の
視点からのオブジェクトの奥行きに関する情報を記録す
るための奥行き情報記憶領域とをそれぞれ用意させると
ともに、 前記不透明オブジェクトの奥行きに関する情報を前記奥
行き情報記憶領域に記憶しつつ、前記不透明オブジェク
トを前記第1の描画領域に描画する手順と、 前記第1の描画領域への描画の終了後、前記複数の半透
明オブジェクトのそれぞれの奥行きと、前記奥行き情報
記憶領域に記憶された前記情報に基づいて特定される奥
行きとを対比して、既に描かれているオブジェクトより
も前記視点に近い半透明オブジェクトのみを不透明オブ
ジェクトとして前記第2の描画領域に描画するととも
に、前記奥行き情報記憶領域に記憶されている情報を、
その新たに描画されたオブジェクトの前記奥行きに関す
る情報によって更新する手順と、 前記第2の描画領域に描かれたオブジェクトを、その元
となった半透明オブジェクトに対して設定されている透
明度に従って、前記第1の描画領域に描かれた不透明オ
ブジェクト上に半透明オブジェクトとして描画する手順
と、 を前記コンピュータに実行させるように構成されたこと
を特徴とする画像描画用のプログラム。 - 【請求項5】 前記第1の描画領域に描画すべき不透明
オブジェトが複数存在する場合に、前記第1の描画領域
に描画する手順では、前記複数の不透明オブジェクトの
それぞれの奥行きと、前記奥行き情報記憶領域に記憶さ
れた前記情報に基づいて特定される奥行きとを対比し
て、既に描かれているオブジェクトよりも前記視点に近
い不透明オブジェクトのみを前記第1の描画領域に描画
するとともに、前記奥行き情報記憶領域に記憶されてい
る情報を、その新たに描画されたオブジェクトの前記奥
行きに関する情報によって更新し、 前記第1の描画領域に対する全ての不透明オブジェトの
描画を終了した後に前記第2の描画領域に対する前記不
透明オブジェクトの描画を行うことを特徴とする請求項
4に記載のプログラム。 - 【請求項6】 前記第2の描画領域に描かれたオブジェ
クトが、アルファブレンディング法により前記第1の描
画領域に描かれた不透明オブジェクト上に描画されるこ
とを特徴とする請求項4又は5に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001103083A JP2002298152A (ja) | 2001-04-02 | 2001-04-02 | 画像の描画方法及びそれに用いるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001103083A JP2002298152A (ja) | 2001-04-02 | 2001-04-02 | 画像の描画方法及びそれに用いるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002298152A true JP2002298152A (ja) | 2002-10-11 |
Family
ID=18956194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001103083A Pending JP2002298152A (ja) | 2001-04-02 | 2001-04-02 | 画像の描画方法及びそれに用いるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002298152A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876360B2 (en) | 2001-02-01 | 2005-04-05 | Sony Corporation Entertainment Inc. | Image generation method and device used thereof |
JP2006293470A (ja) * | 2005-04-06 | 2006-10-26 | Namco Bandai Games Inc | 描画装置、方法および描画プログラム |
JP2008090818A (ja) * | 2006-09-29 | 2008-04-17 | Samsung Electronics Co Ltd | 効率的にモーションブラー効果を提供する3次元グラフィックスレンダリング方法及び装置 |
JP2009171994A (ja) * | 2008-01-21 | 2009-08-06 | Sammy Corp | 画像生成装置、遊技機、及びプログラム |
JP2013084181A (ja) * | 2011-10-12 | 2013-05-09 | Fujitsu Semiconductor Ltd | 画像生成装置,画像生成プログラム,および,画像生成装置を有する画像表示システム |
-
2001
- 2001-04-02 JP JP2001103083A patent/JP2002298152A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876360B2 (en) | 2001-02-01 | 2005-04-05 | Sony Corporation Entertainment Inc. | Image generation method and device used thereof |
JP2006293470A (ja) * | 2005-04-06 | 2006-10-26 | Namco Bandai Games Inc | 描画装置、方法および描画プログラム |
JP2008090818A (ja) * | 2006-09-29 | 2008-04-17 | Samsung Electronics Co Ltd | 効率的にモーションブラー効果を提供する3次元グラフィックスレンダリング方法及び装置 |
US8687002B2 (en) | 2006-09-29 | 2014-04-01 | Samsung Electronics Co., Ltd. | Method, medium and system rendering 3-D graphics data having an object to which a motion blur effect is to be applied |
US8976180B2 (en) | 2006-09-29 | 2015-03-10 | Samsung Electronics Co., Ltd. | Method, medium and system rendering 3-D graphics data having an object to which a motion blur effect is to be applied |
JP2009171994A (ja) * | 2008-01-21 | 2009-08-06 | Sammy Corp | 画像生成装置、遊技機、及びプログラム |
JP2013084181A (ja) * | 2011-10-12 | 2013-05-09 | Fujitsu Semiconductor Ltd | 画像生成装置,画像生成プログラム,および,画像生成装置を有する画像表示システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3635051B2 (ja) | 画像生成方法及び装置、画像処理プログラムを記録した記録媒体、画像処理プログラム | |
JP2763499B2 (ja) | 画像合成装置及び画像合成方法 | |
US8602888B2 (en) | Video game device and image processing program | |
JP2002109564A (ja) | 画像処理システム、デバイス、方法及びコンピュータプログラム | |
JPH1166340A (ja) | 画像処理装置、画像処理方法及び画像処理プログラムを記録した記録媒体 | |
JP4917346B2 (ja) | ゲーム画像処理プログラムおよびゲーム画像処理装置 | |
US6364770B1 (en) | Image creating apparatus, displayed scene switching method for the image creating apparatus, computer-readable recording medium containing displayed scene switching program for the image creating apparatus, and video game machine | |
US6339430B1 (en) | Video game machine and method for changing texture of models | |
JP3527672B2 (ja) | 3次元コンピュータ画像処理のプログラムを記録したコンピュータ読み取り可能な記録媒体および影描画処理方法およびビデオゲーム装置 | |
JP2001084404A (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体 | |
JP3504240B2 (ja) | 画像処理システム、デバイス、方法及びコンピュータプログラム | |
JP3580682B2 (ja) | 画像処理装置および方法 | |
JP2002298152A (ja) | 画像の描画方法及びそれに用いるプログラム | |
US7362327B2 (en) | Method for drawing object that changes transparency | |
JP2006293470A (ja) | 描画装置、方法および描画プログラム | |
JP3068590B1 (ja) | 2次元画像処理装置 | |
JP3490983B2 (ja) | 画像処理方法及び画像処理用プログラム | |
JP4231684B2 (ja) | ゲーム装置及びゲームプログラム | |
EP1249791B1 (en) | 3-D game image processing method and device for drawing border lines | |
JPH09265549A (ja) | 画像合成システム | |
JPH10214352A (ja) | 画像生成装置及び画像生成方法 | |
JP2003323633A (ja) | 画像処理装置及びプログラム | |
JP4313892B2 (ja) | 描画装置および描画方法、記録媒体 | |
JP4563070B2 (ja) | ゲーム装置及びゲームプログラム | |
JPH11203486A (ja) | 半透明オブジェクトの表示方法及び、これを用いる画像表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20050428 |
|
A072 | Dismissal of procedure |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20050913 |