(57)【要約】【課題】  半透明物体を表示したときに表示が必要以上に煩雑、不自然にならず、表示に必要なメモリ容量を少なくすることができる描画装置、方法および描画プログラムを提供すること。【解決手段】  半透明オブジェクトと背景オブジェクトのそれぞれのＺ値を格納するＺバッファ２８と、半透明オブジェクトと背景オブジェクトのそれぞれに対応する画像情報を格納するフレームバッファ２６と、フレームバッファ２６への画像情報の書込み動作を伴わずに、半透明オブジェクトを構成する複数のポリゴンのそれぞれについてＺバッファ２８のＺ値を更新した後に、この更新されたＺ値に基づいてフレームバッファ２６に対して画像情報を書き込むことにより半透明オブジェクトに関する描画処理を行う半透明画像書込み部１１４とを備えている。【選択図】        図２
2006293470.tif 000002
【特許請求の範囲】
【請求項１】
複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトに対応する画像を、前記半透明オブジェクトの背後に配置された背景オブジェクトに対応する画像に重ねて描画を行う描画装置において、
前記半透明オブジェクトと前記背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、
前記半透明オブジェクトと前記背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段と、
前記画像情報格納手段への画像情報の書込み動作を伴わずに、前記半透明オブジェクトを構成する前記複数のポリゴンのそれぞれについて前記奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新手段と、
前記背景オブジェクトに対応する画像情報が前記画像情報格納手段に書き込まれた後であって、前記奥行き情報更新手段による更新処理が行われた後に、前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込み手段と、
を備えることを特徴とする描画装置。
【請求項２】
請求項１において、
前記奥行き情報更新手段は、前記半透明オブジェクトを構成する前記複数のポリゴンに対応する各画素の奥行き情報が、描画位置が重複する他の画素の奥行き情報よりも視点位置に近いことを示しているときに、この描画位置に対応する奥行き情報の更新を行うことを特徴とする描画装置。
【請求項３】
請求項１または２において、
前記半透明画像書込み手段は、前記半透明オブジェクトを構成する前記複数のポリゴンに対応する複数の画素の中で描画位置が重複する画素が存在するときに、これら描画位置が重複する複数の画素の中から視点位置に最も近い画素を用いて前記半透明オブジェクトに対応する画像情報の書込みを行うことを特徴とする描画装置。
【請求項４】
請求項１〜３のいずれかにおいて、
前記半透明オブジェクトが複数存在するときに、複数の前記半透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段をさらに備え、
前記奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、一の前記半透明オブジェクト毎に、前記奥行き情報更新手段による更新処理と前記半透明書込み手段による画像情報の書込み処理を繰り返し行うことを特徴とする描画装置。
【請求項５】
請求項１〜３のいずれかにおいて、
前記半透明オブジェクトが複数存在するとともに、前記背景オブジェクトおよび複数の前記半透明オブジェクト以外に複数のポリゴンによって構成されて不透明表示の対象となる不透明オブジェクトが存在しており、
前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記不透明オブジェクトに対応する画像情報の書込みを行う不透明画像書込み手段と、
複数の前記半透明オブジェクトと前記不透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段と、
をさらに備え、前記奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、前記不透明オブジェクトについては前記不透明画像書込み手段による画像情報の書込み処理を行い、前記半透明オブジェクトについては一の前記半透明オブジェクト毎に、前記奥行き情報更新手段による更新処理と前記半透明書込み手段による画像情報の書込み処理を繰り返し行うことを特徴とする描画装置。
【請求項６】
複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトと前記半透明オブジェクトの背後に配置された背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、前記半透明オブジェクトと前記背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段とを備える描画装置において、前記半透明オブジェクトに対応する画像を前記背景オブジェクトに対応する画像に重ねて描画を行う描画方法において、
前記画像情報格納手段への画像情報の書込み動作を伴わずに、前記半透明オブジェクトを構成する前記複数のポリゴンのそれぞれについて前記奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新ステップと、
前記背景オブジェクトに対応する画像情報が前記画像情報格納手段に書き込まれた後であって、前記奥行き情報更新ステップにおける更新処理が行われた後に、前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込みステップと、
を備えることを特徴とする描画方法。
【請求項７】
請求項６において、
前記半透明オブジェクトが複数存在するときに、複数の前記半透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較ステップをさらに備え、
前記奥行き情報比較ステップにおける比較結果に基づいて視点位置から遠い順に、一の前記半透明オブジェクト毎に、前記奥行き情報更新ステップによる更新処理と前記半透明書込みステップによる画像情報の書込み処理を繰り返し行うことを特徴とする描画方法。
【請求項８】
請求項６において、
前記半透明オブジェクトが複数存在するとともに、前記背景オブジェクトおよび複数の前記半透明オブジェクト以外に複数のポリゴンによって構成されて不透明表示の対象となる不透明オブジェクトが存在しており、
前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記不透明オブジェクトに対応する画像情報の書込みを行う不透明画像書込みステップと、
複数の前記半透明オブジェクトと前記不透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較ステップと、
をさらに備え、前記奥行き情報比較ステップにおける比較結果に基づいて視点位置から遠い順に、前記不透明オブジェクトについては前記不透明画像書込みステップによる画像情報の書込み処理を行い、前記半透明オブジェクトについては一の前記半透明オブジェクト毎に、前記奥行き情報更新ステップによる更新処理と前記半透明書込みステップによる画像情報の書込み処理を繰り返し行うことを特徴とする描画方法。
【請求項９】
コンピュータを、
複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトと前記半透明オブジェクトの背後に配置された背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、
前記半透明オブジェクトと前記背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段と、
前記画像情報格納手段への画像情報の書込み動作を伴わずに、前記半透明オブジェクトを構成する前記複数のポリゴンのそれぞれについて前記奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新手段と、
前記背景オブジェクトに対応する画像情報が前記画像情報格納手段に書き込まれた後であって、前記奥行き情報更新手段による更新処理が行われた後に、前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込み手段と、
して機能させ、前記半透明オブジェクトに対応する画像を前記背景オブジェクトに対応する画像に重ねて描画を行うための描画プログラム。
【請求項１０】
請求項９において、
コンピュータを、前記半透明オブジェクトが複数存在するときに、複数の前記半透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段としてさらに機能させ、前記奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、一の前記半透明オブジェクト毎に、前記奥行き情報更新手段による更新処理と前記半透明書込み手段による画像情報の書込み処理を繰り返し行う描画プログラム。
【請求項１１】
請求項９において、
前記半透明オブジェクトが複数存在するとともに、前記背景オブジェクトおよび複数の前記半透明オブジェクト以外に複数のポリゴンによって構成されて不透明表示の対象となる不透明オブジェクトが存在しており、
コンピュータを、前記奥行き情報格納手段に格納された奥行き情報を用いて前記画像情報格納手段に対して前記不透明オブジェクトに対応する画像情報の書込みを行う不透明画像書込み手段と、複数の前記半透明オブジェクトと前記不透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段としてさらに機能させ、
前記奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、前記不透明オブジェクトについては前記不透明画像書込み手段による画像情報の書込み処理を行い、前記半透明オブジェクトについては一の前記半透明オブジェクト毎に、前記奥行き情報更新手段による更新処理と前記半透明書込み手段による画像情報の書込み処理を繰り返し行う描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、背景画像が透けて見える半透明の三次元物体を描画する描画装置、方法および描画プログラムに関する。
【背景技術】
【０００２】
従来から、Ｚバッファを用いて半透明の物体を描画する各種の手法が知られている。例えば、半透明ポリゴン（ブレンディングポリゴン）を順序テーブルに登録しておいて最奥の半透明ポリゴンから順番に描画することにより、１つあるいは複数の半透明ポリゴンと他の不透明ポリゴンとが重なった画像を描画する描画装置が知られている（例えば、特許文献１参照。）。また、不透明用バッファおよび半透明用バッファとこれらに共通のＺバッファとを備え、最初に共通のＺバッファを用いて不透明ポリゴンの描画を不透明用バッファに対して行い、次に同じＺバッファを用いて半透明ポリゴンの描画を半透明用バッファに対して行い、その後、不透明用バッファに格納された画像と半透明用バッファに格納された画像を用いてαブレンディングによる描画を行うようにした描画装置が知られている（例えば、特許文献２参照。）。
【特許文献１】特許第３４９５１８９号公報（第２−９、図１−１０）
【特許文献２】特開２００２−２９８１５２号公報（第５−７頁、図１−３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、特許文献１に開示された描画装置では、１つの物体が複数のポリゴンによって構成されている場合にこの物体を半透明表示、すなわちこの物体を構成する複数のポリゴンのそれぞれを半透明ポリゴンとして描画を行うと、これら複数のポリゴンが透けて見えることになるため、表示が煩雑あるいは不自然になるおそれがあるという問題があった。例えば、ある物体を通して背景が透けて見えるような画像表示を意図して半透明ポリゴンを使う場合が多いが、物体表面および内部を構成するポリゴンの形状や色の組み合わせ等が複雑な場合にこれらの全てを半透明表示すると、半透明の物体に対応して表示される輪郭線や色が多くなりすぎて背景の画像が合成されたときに表示内容の把握が難しくなる。また、ポリゴンを使用して描画が行われる一般のゲーム装置に用いられている各物体を考えたときに、主に物体表面の形状や色を精確に描画するために各ポリゴンの形状等を決定するが、表示の対象にならない内部形状等については簡略化する場合があり、このような場合内部形状まで透けて見えると形状や色が不自然になる場合がある。
【０００４】
また、特許文献２に開示された描画装置では、半透明ポリゴンを不透明ポリゴンとして半透明用バッファに対して各半透明ポリゴンの描画を行っており、不透明用バッファ以外に半透明用バッファが必要になるため、表示に必要なメモリ容量が増大するという問題があった。また、半透明の複数の物体を重ねて表示したい場合であっても最前の半透明の物体の背後にある半透明の物体は表示が行われなくなるため、やはり表示が不自然になるという問題があった。例えば、移動中の２つの不透明の物体が交差するような場合を考えると、最前の物体を通して背景の画像が透けて見えるが、この物体と背景の間に進入した他の物体が全く見えないことになるので、２つの物体の交差状態に着目すると、実際の半透明物体の交差状態とはかなりかけ離れた画像が得られることになる。
【０００５】
本発明は、このような点に鑑みて創作されたものであり、その目的は、半透明物体を表示したときに表示が必要以上に煩雑、不自然にならず、表示に必要なメモリ容量を少なくすることができる描画装置、方法および描画プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の描画装置は、複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトに対応する画像を、半透明オブジェクトの背後に配置された背景オブジェクトに対応する画像に重ねて描画を行っており、半透明オブジェクトと背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、半透明オブジェクトと背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段と、画像情報格納手段への画像情報の書込み動作を伴わずに、半透明オブジェクトを構成する複数のポリゴンのそれぞれについて奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新手段と、背景オブジェクトに対応する画像情報が画像情報格納手段に書き込まれた後であって、奥行き情報更新手段による更新処理が行われた後に、奥行き情報格納手段に格納された奥行き情報を用いて画像情報格納手段に対して半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込み手段とを備えている。
【０００７】
また、本発明の描画方法は、複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトと半透明オブジェクトの背後に配置された背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、半透明オブジェクトと背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段とを備える描画装置において、半透明オブジェクトに対応する画像を背景オブジェクトに対応する画像に重ねて描画を行うものであり、画像情報格納手段への画像情報の書込み動作を伴わずに、半透明オブジェクトを構成する複数のポリゴンのそれぞれについて奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新ステップと、背景オブジェクトに対応する画像情報が画像情報格納手段に書き込まれた後であって、奥行き情報更新ステップにおける更新処理が行われた後に、奥行き情報格納手段に格納された奥行き情報を用いて画像情報格納手段に対して半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込みステップとを備えている。
【０００８】
また、本発明の描画プログラムは、コンピュータを、複数のポリゴンによって構成されて半透明表示の対象となる半透明オブジェクトと半透明オブジェクトの背後に配置された背景オブジェクトのそれぞれの奥行き情報を格納する奥行き情報格納手段と、半透明オブジェクトと背景オブジェクトのそれぞれに対応する画像情報を格納する画像情報格納手段と、画像情報格納手段への画像情報の書込み動作を伴わずに、半透明オブジェクトを構成する複数のポリゴンのそれぞれについて奥行き情報格納手段に格納された奥行き情報を更新する奥行き情報更新手段と、背景オブジェクトに対応する画像情報が画像情報格納手段に書き込まれた後であって、奥行き情報更新手段による更新処理が行われた後に、奥行き情報格納手段に格納された奥行き情報を用いて画像情報格納手段に対して半透明オブジェクトに対応する画像情報の書込みを行う半透明画像書込み手段として機能させ、半透明オブジェクトに対応する画像を背景オブジェクトに対応する画像に重ねて描画を行うためのものである。
【０００９】
半透明オブジェクトの画像情報を書き込む前に奥行き情報の更新が行われるため、最も手前にある面についてのみ画像情報の描画を行うことができ、表示が煩雑あるいは不自然になることを防止することができる。また、背景オブジェクトに対応する画像情報の書き込みが終了した後に、更新が終了した奥行き情報を用いて半透明オブジェクトに対応する画像情報を書き込むことができるため、半透明オブジェクト用にフレームバッファ等の画像情報格納手段を用意する必要がなく、表示用のメモリ容量を少なくすることができる。
【００１０】
また、上述した奥行き情報更新手段は、半透明オブジェクトを構成する複数のポリゴンに対応する各画素の奥行き情報が、描画位置が重複する他の画素の奥行き情報よりも視点位置に近いことを示しているときに、この描画位置に対応する奥行き情報の更新を行うことが望ましい。これにより、表示画面の手前側にある画素についてのみ奥行き情報を更新するため、最終的に最も手前にある面を抽出することが可能になる。
【００１１】
また、上述した半透明画像書込み手段は、半透明オブジェクトを構成する複数のポリゴンに対応する複数の画素の中で描画位置が重複する画素が存在するときに、これら描画位置が重複する複数の画素の中から視点位置に最も近い画素を用いて半透明オブジェクトに対応する画像情報の書込みを行うことが望ましい。これにより、複数のポリゴンが複雑に組み合わさって半透明物体が構成される場合であっても、最も手前にある面の画像情報のみを用いて半透明処理が行われ、この面よりも後側にある面の画像情報が反映されないため、表示が必要以上に煩雑になることを確実に防止することができる。
【００１２】
また、上述した描画装置は、半透明オブジェクトが複数存在するときに、複数の半透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段をさらに備え、奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、一の半透明オブジェクト毎に、奥行き情報更新手段による更新処理と半透明書込み手段による画像情報の書込み処理を繰り返し行うことが望ましい。あるいは、半透明オブジェクトが複数存在するとともに、背景オブジェクトおよび複数の半透明オブジェクト以外に複数のポリゴンによって構成されて不透明表示の対象となる不透明オブジェクトが存在しており、上述した描画装置は、奥行き情報格納手段に格納された奥行き情報を用いて画像情報格納手段に対して不透明オブジェクトに対応する画像情報の書込みを行う不透明画像書込み手段と、複数の半透明オブジェクトと不透明オブジェクトのそれぞれの奥行き情報を比較する奥行き情報比較手段とをさらに備え、奥行き情報比較手段による比較結果に基づいて視点位置から遠い順に、不透明オブジェクトについては不透明画像書込み手段による画像情報の書込み処理を行い、半透明オブジェクトについては一の半透明オブジェクト毎に、奥行き情報更新手段による更新処理と半透明書込み手段による画像情報の書込み処理を繰り返し行うことが望ましい。これにより、複数の半透明オブジェクトが重なる場合に、これら複数の半透明オブジェクトが透過して見える自然な表示を実現することができる。しかも、それぞれの半透明オブジェクトの描画は手前側にある面についてのみ行われるため、表示内容が必要以上に煩雑になることを防止することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を適用した一実施形態の描画装置について、図面を参照しながら詳細に説明する。図１は、一実施形態の描画装置の構成を示す図である。図１に示す描画装置は、仮想的な三次元空間内に配置された各種の物体である三次元オブジェクトの画像を描画して表示を行うものであり、例えばコンピュータを利用したゲーム装置として動作する。図１に示す描画装置は、コンピュータとして動作するためのＣＰＵ１０、ＲＯＭ１２、ＲＡＭ１４、外部記憶装置１６、入力装置１８、画像処理装置２０、ディスプレイ装置２２、ビデオメモリ２４を備えている。
【００１４】
ＣＰＵ１０は、ＲＯＭ１２、ＲＡＭ１４あるいは外部記憶装置１６に格納されたプログラムを実行することにより、ゲームの進行に伴う三次元オブジェクトの描画処理を行う。外部記憶装置１６は、ＤＶＤとＤＶＤ読み取り装置を用いて実現することができるが、ハードディスク装置やその他の装置（例えば大容量の半導体メモリ等）を用いて実現するようにしてもよい。この外部記憶装置１６には、ゲームの進行や三次元オブジェクトの表示等に必要なプログラムの他に、描画に必要な各種のデータ（例えばテクスチャデータ等）も格納されている。
【００１５】
入力装置１８は、ユーザ（プレーヤ）が操作して指示を入力するためのものである。通常、ゲーム装置に対して指示を行うコントローラが入力装置１８として用いられることが多いが、一般のコンピュータにおいて各種の入力を行うキーボードやマウス等を入力装置１８として用いるようにしてもよい。
【００１６】
画像処理装置２０は、ＣＰＵ１０の指示に応じて画像の描画および表示に関する処理を行う。例えば、仮想的な三次元空間内にゲームの進行に伴って登場する各三次元オブジェクトが複数のポリゴンによって構成されているものとし、ＣＰＵ１０によって仮想的な視点位置や照明の配置を含む描画条件が設定されると、画像処理装置２０は、視点位置を基準とした透視投影変換処理を行うとともに、視点位置から見ることができる三次元オブジェクトに対応するレンダリング処理を含むテクスチャマッピング処理を行って各三次元オブジェクトの画像を描画してビデオメモリ２４に書き込むとともに、書き込んだ描画データを読み出してディスプレイ装置２２に表示する処理を行う。なお、本実施形態において描画対象となるオブジェクトには、背景オブジェクト、不透明オブジェクト、半透明オブジェクトが存在するものとする。なお、背景オブジェクトは不透明オブジェクトに含ませるようにしてもよい。
【００１７】
ビデオメモリ２４は、画像処理装置２０による描画および表示に用いられ、フレームバッファ２６とＺバッファ２８が含まれている。フレームバッファ２６は、視点位置から見ることができる背景オブジェクト、不透明オブジェクト、半透明オブジェクトのそれぞれの画像情報をフレーム単位で画素毎に格納する。例えば、表示レートを１／６０秒とすると、１／６０秒ごとに１フレーム分のフレームバッファ２６の表示内容が更新される。また、画像情報としては各画素に対応したＲＧＢデータが用いられる。なお、描画用と表示用に少なくとも２つのフレームバッファ２６を備えておいて、一方のフレームバッファ２６を用いてディスプレイ装置２２に対する表示を行っているときに、次の表示用に他方のフレームバッファ２６を用いて描画処理を行うようにしてもよい。これについてはＺバッファ２８も同様である。
【００１８】
Ｚバッファ２８は、背景オブジェクト、不透明オブジェクト、半透明オブジェクトのそれぞれの奥行き情報としてのＺ値を格納する。本実施形態では、視点位置から各三次元オブジェクトを見たときに視点位置からの距離が遠ざかる向きをＺ方向とし、このＺ方向に沿った位置をＺ値とする。このＺ値が大きいほど表示画面の奥側に配置されていることになり、反対にＺ値が小さいほど表示画面の手前側に配置されていることになる。したがって、不透明オブジェクトがＺ方向に沿って重なっており、同じ表示値に対応してＺ値が異なる２つの画素が存在する場合には、Ｚ値が小さく手前側に配置された画素について表示が行われる。なお、上述した例では、表示画面の奥側（視点位置から遠い側）に対応してＺ値が大きく、表示画面の手前側（視点位置に近い側）に対応してＺ値が小さくなるようにＺ値を定義したが、反対に、表示画面の奥側に対応してＺ値が小さく、表示画面の手前側に対応してＺ値が大きくなるようにしてもよい。
【００１９】
図２は、図１に示した描画装置によって実現される描画処理部の詳細を示す図である。図２に示すように、描画処理部１００は、背景画像書込み部１１０、不透明画像書込み部１１２、半透明画像書込み部１１４、Ｚ値比較部１１８、描画順番設定部１２０、描画条件設定部１２２を備えている。この描画処理部１００に含まれる各構成は、図１に示したＣＰＵ１０および画像処理装置２０によって実現される機能ブロックであり、本発明の描画動作に関係するものを抽出したものである。
【００２０】
背景画像書込み部１１０は、背景オブジェクトを構成する各画素の画像情報をフレームバッファ２６に書き込む処理を行う。背景オブジェクトは、二次元オブジェクトを用いて実現されるが三次元オブジェクトを用いるようにしてもよい。また、背景オブジェクトに対応するＺ値は十分大きな値が設定されている。
【００２１】
不透明画像書込み部１１２は、Ｚバッファ２８に格納されたＺ値に基づいて、フレームバッファ２６に対して不透明オブジェクトに対応する画像情報の書込みを行う。具体的には、不透明画像書込み部１１２は、不透明オブジェクトを構成する各ポリゴンに対応する各画素（着目画素）について、同じ表示位置に他の画素が存在する場合には着目画素のＺ値の方がこの他の画素のＺ値よりも小さいときに着目画素のＺ値を用いてＺバッファ２８の内容を更新するとともに着目画素の画像情報を用いてフレームバッファ２６の内容を更新し、反対に着目画素のＺ値の方がこの他の画素のＺ値よりも大きいときにはＺバッファ２８とフレームバッファ２６の内容更新を行わない。また、不透明画像書込み部１１２は、着目画素と同じ表示位置に他の画素が存在しない場合には、着目画素のＺ値を用いてＺバッファ２８の内容を更新するとともに着目画素の画像情報を用いてフレームバッファ２６の内容を更新する。
【００２２】
半透明画像書込み部１１４は、Ｚバッファ２８に格納されたＺ値に基づいて、フレームバッファ２６に対して半透明オブジェクトに対応する画像情報の書込みを行う。具体的には、半透明画像書込み部１１４は、２つの動作モードを備えている。一方は、フレームバッファ２６への画像情報の書込み動作を伴わずに、半透明オブジェクトを構成する各ポリゴンに対応する各画素（着目画素）について、同じ表示位置に他の画素が存在する場合に着目画素のＺ値の方がこの他の画素のＺ値よりも小さいときに着目画素のＺ値を用いてＺバッファ２８の内容更新のみを行うＺバッファ更新モードである。また、他方は、Ｚバッファ更新モードの動作が終了した後に、Ｚバッファ２８に格納された各画素毎のＺ値を用いて、フレームバッファ２６に対して半透明オブジェクトに対応する画像情報の書込みを行うフレームバッファ更新モードである。Ｚバッファ更新モードの動作が終了した時点で、不透明オブジェクトを構成する複数のポリゴンに対応する各画素の中で表示位置が重なる画素については最も視点位置に近い画素のＺ値がＺバッファ２８に格納されている。したがって、このようにしてＺ値の書き込みが行われたＺバッファ２８を用いて、次にフレームバッファ更新モードによるフレームバッファ２６に対する画像情報の書き込みを行うと、各表示位置について最もＺ値が小さな画像情報を用いた描画が行われる。なお、半透明オブジェクトに対応する画像情報の描画は、例えばアルファブレンディング法を用いて行われる。
【００２３】
Ｚ値比較部１１８は、表示範囲内に半透明オブジェクトや不透明オブジェクトが複数存在する場合に、各オブジェクトに対応するＺ値の大小比較を行う。この比較動作は、各オブジェクトのＺ方向に沿った相対的な位置、すなわち、どちらのオブジェクトの方が背景よりにあるかを調べるために行うものであり、各オブジェクトに含まれる全ての画素について行う必要はない。
【００２４】
描画順番設定部１２０は、表示範囲内に半透明オブジェクトや不透明オブジェクトが複数存在する場合に、Ｚ値比較部１１８による比較結果に基づいて、半透明画像書込み部１１４あるいは不透明画像書込み部１１２による画像情報の書き込み動作、すなわち描画動作を行うオブジェクトの順番を決定する。
【００２５】
描画条件設定部１２２は、各種の描画条件の設定を行う。各種の描画条件には、仮想的な視点位置や、レンダリング処理に必要な照明の配置などが含まれる。また、各種の描画条件には、フレームバッファ２６やＺバッファ２８の各内容の更新の有効／無効の指定が含まれる。半透明画像書込み部１１４によってＺバッファ更新モードの動作が行われる場合には、Ｚバッファ２８の内容更新を有効（Ｚバッファ書き込みオン）にするとともに、フレームバッファ２６の内容更新を無効（フレームバッファ書き込みオフ）にする描画条件が設定される。また、半透明画像書込み部１１４によってフレームバッファ更新モードの動作が行われる場合には、Ｚバッファ２８の内容更新を無効（Ｚバッファ書き込みオフ）にするとともに、フレームバッファ２６の内容更新を有効（フレームバッファ書き込みオン）にする描画条件が設定される。
【００２６】
上述したＺバッファ２８が奥行き情報格納手段に、フレームバッファ２６が画像情報格納手段に、半透明画像書込部１１４が奥行き情報更新手段、半透明画像書込み手段に、不透明画像書込み部１１２が不透明画像書込み手段に、Ｚ値比較部１１８が奥行き情報比較手段にそれぞれ対応する。
【００２７】
本実施形態の描画装置はこのような構成を有しており、次にその動作を、一つの半透明オブジェクトのみが存在する場合と、半透明オブジェクトや不透明オブジェクトが複数存在する場合とで場合を分けて説明する。
【００２８】
〔一つの半透明オブジェクトのみが存在する場合〕
図３は、背景の他に一つの半透明オブジェクト（物体Ａ）のみが存在する場合の描画処理の動作手順を示す流れ図である。また、物体Ａを背景に重ねて表示するための描画動作に着目して説明を行うものとする。
【００２９】
まず、描画条件設定部１２２は、物体Ａの画像情報を背景の画像情報に重ねて描画するために、描画条件としての視点位置と照明の配置を決定する（ステップ１００）。視点位置は、三次元オブジェクトとしての物体Ａの画像情報を平面的なフレームバッファ２６に書き込むために必要な透視投影変換に用いられる。また、照明の配置は、画像情報作成のために必要なレンダリング処理に用いられる。
【００３０】
次に、描画条件設定部１２２は、フレームバッファ書き込みオン（フレームバッファ２６の内容更新有効）を指定するとともに（ステップ１０１）、Ｚバッファ書き込みオン（Ｚバッファ２８の内容更新有効）を指定する（ステップ１０２）。背景画像書込み部１１０は、これらの描画条件に基づいて背景オブジェクトの描画処理を行う（ステップ１０３）。具体的には、フレームバッファ書き込みオンおよびＺバッファ書き込みオンが指定されているため、背景画像書込み部１１０は、Ｚバッファ２８のＺ値を必要に応じて更新しながらフレームバッファ２６に画像情報を書き込むことにより、背景オブジェクトの描画処理を行う。
【００３１】
次に、描画条件設定部１２２は、フレームバッファ書き込みオフ（フレームバッファ２６の内容更新無効）を指定する（ステップ１０４）。なお、Ｚバッファ２８については、ステップ１０２において指定されたＺバッファ書き込みオンの状態が維持される。半透明画像書込み部１１４は、これらの描画条件に基づいて物体Ａの描画処理を行う（ステップ１０５）。具体的には、フレームバッファ書き込みオフおよびＺバッファ書き込みオンが指定されているため、半透明画像書込み部１１４は、フレームバッファ２６に対する画像情報の書き込みは行わずに、Ｚバッファ２８のＺ値の更新のみを行う。
【００３２】
次に、描画条件設定部１２２は、フレームバッファ書き込みオンを指定するとともに（ステップ１０６）、Ｚバッファ書き込みオフ（Ｚバッファ２８の内容更新無効）を指定する（ステップ１０７）。半透明画像書込み部１１４は、これらの描画条件に基づいて物体Ａの描画処理を行う（ステップ１０８）。具体的には、フレームバッファ書き込みオンおよびＺバッファ書き込みオフが指定されているため、半透明画像書込み部１１４は、Ｚバッファ２８のＺ値の更新は行わずに、Ｚバッファ２８に格納されたＺ値を用いてフレームバッファ２６に対する画像情報の書き込みを行う。なお、上述した例では、ステップ１０７においてＺバッファ書き込みオフを指定したが、Ｚバッファ書き込みオンを指定してもＺバッファ２８の内容更新が行われないため（ステップ１０５において既にＺバッファ２８の内容更新が行われているため）、ステップ１０７におけるＺバッファ書き込みオフの指定は行わなくてもよい。また、フレームバッファ２６に対する物体Ａの画像情報の書込み（画素単位のＲＧＢデータの書込み）は、背景のＲＧＢデータと物体Ａ（半透明オブジェクト）のＲＧＢデータとをアルファブレンディング法を用いて合成して新たなＲＧＢデータを算出し、この算出されたＲＧＢデータをフレームバッファ２６に書き込むことによって行われる。このようにして、半透明オブジェクトである物体Ａの描画処理が終了する。この描画処理は、フレームレート毎（あるいは、２つのフレームバッファ２６を用いて交互に書込みと読出しを行う場合にはフレームレートの２倍の時間間隔で）行われる。
【００３３】
図４は、物体Ａを構成するポリゴンの説明図である。図４に示す物体Ａは、立方体と直方体を組み合わせた形状を有しており、簡単のため、立方体と直方体のそれぞれの各面が一のポリゴンで構成されているものとする。
【００３４】
図５は、物体Ａの描画が行われる前のフレームバッファ２６とＺバッファ２８の内容を示す図である。図５（Ａ）にはフレームバッファ２６の内容が、図５（Ｂ）にはＺバッファ２８の内容がそれぞれ示されている。図５（Ａ）に示すように、フレームバッファ２６にはステップ１０３で書き込まれた背景オブジェクトの画像情報が格納されている。また、図５（Ｂ）に示すように、Ｚバッファ２８には、背景オブジェクトを構成する各画素に対応する均一なＺ値が格納されている。なお、背景オブジェクトのＺ値は必ずしも均一である必要はなく、背景オブジェクトの内容に応じたＺ値を設定してもよいが、説明を簡単にするために均一なＺ値が設定されているものとする。
【００３５】
図６は、ステップ１０５における物体Ａの描画処理が終了した時点でのフレームバッファ２６とＺバッファ２８の内容を示す図である。図６（Ａ）にはフレームバッファ２６の内容が、図６（Ｂ）にはＺバッファ２８の内容がそれぞれ示されている。ステップ１０４においてフレームバッファ書き込みオフの描画条件が設定されているため、図６（Ａ）に示すように、フレームバッファ２６の内容はそれ以前と同じ内容（背景オブジェクトの画像情報）が維持される。一方、図６（Ｂ）に示すように、Ｚバッファ２８については物体Ａの内容に応じてＺ値が更新されるため、最終的に最も手前（視点位置に近い側）に対応する画素のＺ値を用いてＺ値の更新が行われる。
【００３６】
図７は、ステップ１０８における物体Ａの描画処理が終了した時点でのフレームバッファ２６とＺバッファ２８の内容を示す図である。図７（Ａ）にはフレームバッファ２６の内容が、図７（Ｂ）にはＺバッファ２８の内容がそれぞれ示されている。ステップ１０６においてフレームバッファ書き込みオンの描画条件が設定されているため、図７（Ａ）に示すように、フレームバッファ２６の内容更新が行われ、物体Ａが存在する表示位置では背景オブジェクトの画像情報と物体Ａの画像情報とがアルファブレンディング法によって合成されて新たな画像情報が生成され、フレームバッファ２６に格納される。また、ステップ１０７においてＺバッファ書き込みオフの描画条件が設定されているため、図７（Ｂ）に示すように、Ｚバッファ２８については内容更新が行われない。
【００３７】
このように、半透明オブジェクトの画像情報をフレームバッファ２６に書き込む前にＺバッファ２８のＺ値の更新が行われるため、最も手前にある面についてのみ画像情報の描画を行うことができ、表示が煩雑あるいは不自然になることを防止することができる。また、背景オブジェクトに対応する画像情報のフレームバッファ２６への書き込みが終了した後に、更新が終了したＺ値を用いて半透明オブジェクトに対応する画像情報を同じフレームバッファ２６に書き込むことができるため、半透明オブジェクト用に専用のフレームバッファを用意する必要がなく、表示用のメモリ容量を少なくすることができる。
【００３８】
〔半透明オブジェクトや不透明オブジェクトが複数存在する場合〕
図８は、半透明オブジェクトや不透明オブジェクトが複数存在する場合の描画処理の動作手順を示す流れ図である。また、半透明オブジェクトあるいは不透明オブジェクトの物体を背景に重ねて表示するための描画動作に着目して説明を行うものとする。ステップ１００〜ステップ１０３の各動作については図３に示した各動作と同じであるため、ステップ１０３の次に行われるステップ１１０以降の動作について説明を行う。
【００３９】
Ｚ値比較部１１８は、背景オブジェクトに重ねて表示される半透明オブジェクトおよび不透明オブジェクト（どちらか一方しか含まれない場合であってもよい）のＺ値の大小比較を行い、描画順番設定部１２０は、この比較結果に基づいてこれらのオブジェクトを画面奥から順に（視点位置から遠い順に）並べ替える（ステップ１１０）。
【００４０】
次に、描画順番設定部１２０は、最も奥にある物体を選択するとともに（ステップ１１１）、この物体について半透明表示が行われるか否か、すなわち半透明オブジェクトであるか否かを判定する（ステップ１１２）。選択された物体が半透明オブジェクトである場合には肯定判断が行われ、次に、描画条件設定部１２２は、フレームバッファ書き込みオフを指定する（ステップ１１３）。なお、Ｚバッファ２８については、ステップ１０２において指定されたＺバッファ書き込みオンの状態が維持される。半透明画像書込み部１１４は、これらの描画条件に基づいて半透明オブジェクトである物体の描画処理を行う（ステップ１１４）。具体的には、フレームバッファ書き込みオフおよびＺバッファ書き込みオンが指定されているため、半透明画像書込み部１１４は、フレームバッファ２６に対する画像情報の書き込みは行わずに、Ｚバッファ２８のＺ値の更新のみを行う。
【００４１】
次に、描画条件設定部１２２は、フレームバッファ書き込みオンを指定し（ステップ１１５）、半透明画像書込み部１１４は、指定された描画条件に基づいて物体の描画処理を行う（ステップ１１６）。具体的には、フレームバッファ書き込みオンが指定されているため、半透明画像書込み部１１４は、Ｚバッファ２８に格納されたＺ値を用いてフレームバッファ２６に対する画像情報の書き込み（アルファブレンディング法による処理）を行う。
【００４２】
一方、選択された物体が不透明オブジェクトである場合にはステップ１１２において否定判断が行われ、次に、不透明画像書込み部１１２は、Ｚバッファ２８の内容更新を行いながらフレームバッファ２６に画像情報を書き込む不透明物体の描画処理を行う（ステップ１１７）。
【００４３】
このようにしてステップ１１６あるいは１１７による物体の描画処理が終了した後、描画順番設定部１２０は、描画されていない他の物体が存在するか否かを判定し（ステップ１１８）、他の物体が存在する場合には肯定判断を行って、次に１つ手前にある物体を選択する（ステップ１１９）。その後、ステップ１１２に戻って、新たに選択された物体に関する描画動作が繰り返される。また、描画されていない他の物体が存在しない場合にはステップ１１８の判定において否定判断が行われ、複数のオブジェクトに関する一連の描画動作を終了する。
【００４４】
このように、半透明オブジェクトと不透明オブジェクトの並べ替えを行って最も画面奥にあるオブジェクトから順番に描画を行うことにより、複数の半透明オブジェクトが重なる場合であっても、これら複数の半透明オブジェクトが透過して見える自然な表示を実現することができる。しかも、それぞれの半透明オブジェクトの描画は手前側にある面についてのみ行われるため、表示内容が必要以上に煩雑になることを防止することができる。
【００４５】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述した実施形態では、画像処理装置２０を用いて透視投影変換等を行ってビデオメモリ２４の内容を書き替えるようにしたが、これらの処理をＣＰＵ１０が直接行うようにしてもよい。また、図２に示す描画処理部１００の各構成を専用のハードウエアで実現するようにしてもよい。
【図面の簡単な説明】
【００４６】
【図１】一実施形態の描画装置の構成を示す図である。
【図２】図１に示した描画装置によって実現される描画処理部の詳細を示す図である。
【図３】背景の他に一つの半透明オブジェクトのみが存在する場合の描画処理の動作手順を示す流れ図である。
【図４】半透明の物体を構成するポリゴンの説明図である。
【図５】半透明の物体の描画が行われる前のフレームバッファとＺバッファの内容を示す図である。
【図６】図３のステップ１０５における物体の描画処理が終了した時点でのフレームバッファとＺバッファの内容を示す図である。
【図７】図３のステップ１０８における物体の描画処理が終了した時点でのフレームバッファとＺバッファの内容を示す図である。
【図８】半透明オブジェクトや不透明オブジェクトが複数存在する場合の描画処理の動作手順を示す流れ図である。
【符号の説明】
【００４７】
１０  ＣＰＵ
１２  ＲＯＭ
１４  ＲＡＭ
１６  外部記憶装置
１８  入力装置
２０  画像処理装置
２２  ディスプレイ装置
２４  ビデオメモリ
２６  フレームバッファ
２８  Ｚバッファ
１００  描画処理部
１１０  背景画像書込み部
１１２  不透明画像書込み部
１１４  半透明画像書込み部
１１８  Ｚ値比較部
１２０  描画順番設定部
１２２  描画条件設定部
【図１】
2006293470.tif 000003
【図２】
2006293470.tif 000004
【図３】
2006293470.tif 000005
【図４】
2006293470.tif 000006
【図５】
2006293470.tif 000007
【図６】
2006293470.tif 000008
【図７】
2006293470.tif 000009
【図８】
2006293470.tif 000010