(57)【特許請求の範囲】
【請求項１】
画素に関わる画像データを記憶するフレームバッファと、
前記画素の位置に対応したマスク情報を記憶するステンシルバッファと、を有する多重描画装置において、
半透明の描画物を重ねて半透明合成を行う場合には、前記半透明合成を施した前記半透明の描画物の画像データを前記フレームバッファに記憶させる半透明合成手段と、
前記マスク情報が透明であることを表している位置に対応する前記フレームバッファの画像データを前記半透明の描画物の画像データに置き換えて前記フレームバッファに記憶させる画素置き換え手段と、
前記画素置き換え手段によって置き換えられた位置に対応する前記マスク情報が透明でないことを前記ステンシルバッファに記憶させるマスク書き込み手段とを備えたことを特徴とする多重描画装置。
【請求項２】
不透明の描画物を描画する場合、前記画素置き換え手段が、前記不透明の描画物の位置に対応する前記フレームバッファの画像データを前記不透明の描画物の画像データに置き換えて前記フレームバッファに記憶させ、
前記マスク書き込み手段が、前記画素置き換え手段で前記不透明の描画物の画像データに置き換えた位置に対応する前記マスク情報が透明でないことを、前記ステンシルバッファに記憶させることを特徴とする請求項１に記載の多重描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の描画物を重ね合わせて画面に表示する多重描画装置に関する。
【背景技術】
【０００２】
従来、２つの描画物を重ね合わせた合成画像を描画する場合、これから描画しようとする対象となる描画物が半透明であるとき、この半透明の描画物の画素データに付加されているアルファデータを用いて、２つの描画物の画素データが半透明合成される技術が知られている。このアルファデータは、例えば、０〜１までの範囲の値をとる係数であり、不透明の描画物に対しては係数を１とし、透明の描画物に対しては係数を０とし、半透明の描画物に対しては係数が０〜１の間のいずれか値をとる（例えば、特許文献１参照）。なお、アルファデータを用いた半透明合成をアルファブレンディングという。
【０００３】
図５に示すように、アルファブレンディングを行う従来の多重描画装置は、描画用のソフトウエアの部品であるレンダリングエンジン１４、レンダリングエンジン１４に従って描画を制御するＧＰＵ（Graphics Processig Unit）１３、画面に表示する情報を記憶するＶＲＡＭ１５、およびＶＲＡＭ１５にあるフレームバッファ１６によって構成されており、半透明や不透明等の描画物を相互に重ね合わせて画面に表示することができる。
【０００４】
例えば、従来の多重描画装置が、フレームを表す描画物Ｆに対し相互に重なる描画物Ｘをアルファブレンディングする場合、描画物Ｘの画素データおよびアルファデータをそれぞれＸｃ、Ｘａとし、描画物Ｆの画素データおよびアルファデータをそれぞれＦｃ、Ｆａとすると、アルファブレンディング後の画素データＹｃは次式で表される。
【０００５】
Ｙｃ＝Ｘａ×Ｘｃ＋（１−Ｘａ）×Ｆｃ・・・・（１）
【特許文献１】特開２００４−２４６９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的に、アルファデータをα、画素データをＲ（赤）、Ｇ（緑）、Ｂ（青）として表せば、描画物の画素を（α，Ｒ，Ｇ，Ｂ）として表現できる。上述した描画物Ｆの全ての画素を（０，０，０，０）すなわち透明とし、これから描画しようとする対象となる描画物Ｘの全ての画素を（０．７５，２５５，２５５，２５５）すなわち半透明の白とすれば、アルファブレンディング後の画素データ（Ｒ，Ｇ，Ｂ）は、それぞれ（１）式に従って（１９１，１９１，１９１）となる。従って、従来の多重描画装置は、アルファブレンディング後の描画物Ｘをグレーで画面に表示することになる。
【０００７】
本来、透明の描画物Ｆに対して半透明の描画物Ｘを重ねて表示すれば、描画物Ｘの色がそのまま表示されるべきであるが、従来の多重描画装置では、アルファブレンディングを行っているため、透明の描画物Ｆに対し描画物Ｘを変色させてしまうという課題が残されていた。
【０００８】
本発明は、従来の課題を解決するためになされたもので、相互に重なる複数の描画物に対して半透明合成を行う際に色を適切に表示することができる多重描画装置を提供するものである。
【課題を解決するための手段】
【０００９】
本発明の多重描画装置は、画素に関わる画像データを記憶するフレームバッファと、前記画素の位置に対応したマスク情報を記憶するステンシルバッファと、を有する多重描画装置において、半透明の描画物を重ねて半透明合成を行う場合には、前記半透明合成を施した前記半透明の描画物の画像データを前記フレームバッファに記憶させる半透明合成手段と、前記マスク情報が透明であることを表している位置に対応する前記フレームバッファの画像データを前記半透明の描画物の画像データに置き換えて前記フレームバッファに記憶させる画素置き換え手段と、前記画素置き換え手段によって置き換えられた位置に対応する前記マスク情報が透明でないことを前記ステンシルバッファに記憶させるマスク書き込み手段とを備えた構成を有している。
【００１０】
この構成により、半透明の描画物を重ねて半透明合成を行う際、半透明の描画物の一部を除く位置に対応したマスク情報が透明であることを表している場合には、透明であることを表している位置に対応するフレームバッファの画像データを半透明の描画物の画像データに置き換えてフレームバッファに記憶させるため、相互に重なる複数の描画物に対して半透明合成を行う際に色を適切に表示することができる。
【００１１】
また、本発明の多重描画装置は、不透明の描画物を描画する場合、前記画素置き換え手段が、前記不透明の描画物の位置に対応する前記フレームバッファの画像データを前記不透明の描画物の画像データに置き換えて前記フレームバッファに記憶させ、前記マスク書き込み手段が、前記画素置き換え手段で前記不透明の描画物の画像データに置き換えた位置に対応する前記マスク情報が透明でないことを前記ステンシルバッファに記憶させる構成を有している。
【００１２】
この構成により、不透明の描画物に対する描画を行う場合、ステンシルバッファを参照しないで不透明の描画物に対して描画処理を施すため、描画処理を高速化することができる。
【発明の効果】
【００１３】
以上のように本発明は、相互に重なる複数の描画物に対して半透明合成を行う際に色を適切に表示することができる多重描画装置を提供するものである。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態に係る多重描画装置について、図面を参照して説明する。
【００１５】
（本発明の第１の実施の形態）
図１は、本発明の第１の実施の形態に係る多重描画装置のブロック図である。図１に示した多重描画装置１は、描画用のソフトウエアの部品であるレンダリングエンジン３、レンダリングエンジン３に従って描画を制御するＧＰＵ２、および画面に表示する情報を記憶するＶＲＡＭ４によって構成される。また、ＶＲＡＭ４は、フレームバッファ５およびステンシルバッファ６を有している。
【００１６】
また、本発明の実施の形態において、本発明に係る半透明合成手段、画素置き換え手段、およびマスク書き込み手段は、ＧＰＵ２を構成する。なお、ＧＰＵ２は、ＶＲＡＭ４に記憶された情報をディスプレイの画面に描画してもよいし、ＧＰＵ２ではない図示していないプロセッサがＶＲＡＭ４に記憶された情報をディスプレイの画面に描画してもよい。
【００１７】
フレームバッファ５は、ディスプレイの画面内の仮想のレイヤに位置するフレームおよびこのフレーム内の描画物を描画するための情報である。
【００１８】
ステンシルバッファ６は、画面を構成する画素の位置に対応したマスク情報を記憶する。なお、マスク情報は、ＯＦＦまたはＯＮからなる情報であり、マスク情報がＯＦＦになっている画素は透明であることを表し、ＯＮになっている画素は不透明または半透明であることを表す。
【００１９】
以上のように構成された多重描画装置１を用いて実施される本発明の第１の実施の形態について、図面を参照して以下に説明する。図２は、フレームに対する描画内容とマスク情報とを表した遷移図である。図３は、半透明の描画物における多重描画装置の動作の一例を表したフローチャートである。
【００２０】
まず、１つのレイヤに半透明の描画物を描画する場合、半透明の描画物を描画する描画前の状態として、図２（Ａ）に示すように、透明のフレーム内に不透明または半透明の矩形の描画物７が描画されていることを表す情報がフレームバッファ５に記憶されている。また、ステンシルバッファ６においては、不透明の描画物７を構成する画素の位置と同じ位置にあるマスク情報がＯＮ（白抜き部分）となっており、その他のマスク情報は、ＯＦＦ（黒い部分）になっている。
【００２１】
この状態で、図２（Ｂ）に示すように、半透明の描画物８が描画されようとする場合、ＧＰＵ２は、アルファブレンディングを行い、アルファブレンディングを行って得られた情報をフレームバッファ５に記憶させる（ステップＳ１）。
【００２２】
次に、ＧＰＵ２は、ステンシルバッファ６を参照し、マスク情報がＯＮになっている位置の画素に対してなにも処理を施さず、ＯＦＦになっている位置の描画物８を描画するため、ＯＦＦになっている位置の描画物８の画素データをそのままフレームバッファ５に記憶させる（ステップＳ２）。
【００２３】
すなわち、ＧＰＵ２は、描画物８の位置と対応するフレームバッファ５に記憶されている画像データのうち、ＯＦＦになっている位置のフレームバッファ５に記憶されている画像データを、描画物８の画素データを置き換える。描画物８の画素データを置き換えることにより、置き換えた部分の領域には、描画物８の色がそのまま表示されることになる。
【００２４】
次に、ＧＰＵ２は、ステンシルバッファ６に対し、マスク情報がＯＦＦになっている位置のうち描画物８の位置のマスク情報をＯＮに設定することにより、図２（Ｃ）に示した状態となる（ステップＳ３）。
【００２５】
ここで、描画処理が施されたレイヤをディスプレイの画面に描画する場合、ＧＰＵ２または他のプロセッサが、フレームバッファ５に記憶された情報をディスプレイの画面に表示する。また、描画処理が施されたレイヤがさらに他のレイヤに重なり、他のレイヤに半透明の描画物がある場合、ステップＳ１〜ステップＳ３を繰り返すことにより、それぞれのレイヤを多重して描画することもできる。
【００２６】
以上説明したように、本発明の第１の実施の形態に係る多重描画装置１は、半透明の描画物を重ねて半透明合成を行う際、半透明の描画物の一部を除く位置に対応したマスク情報が透明であることを表している場合には、透明であることを表している位置に対応するフレームバッファ５の画像データを半透明の描画物の画像データに置き換えてフレームバッファ５に記憶させるため、相互に重なる複数の描画物に対して半透明合成を行う際に色を適切に表示することができる。
【００２７】
また、従来の方法では、半透明の描画物を重ねて半透明合成を行う際、例えば、透明のレイヤと重なる場合に、（１）式の変形式を用いて半透明合成を行うことにより、透明のレイヤに対し半透明の描画物を変色させないで表示しており、同一のレイヤにある半透明または不透明の描画物と重なる場合に、（１）式を用いて半透明合成を行うため、２種類の半透明合成を行う場合があったが、本発明の第１の実施の形態に係る多重描画装置では、ステンシルバッファ６を用いて透明のレイヤに対して半透明合成を行わなず、同一レイヤにある半透明または不透明の描画物と重なる場合にだけ半透明合成を行うため、１種類の半透明合成で済み、複数レイヤに対する半透明合成を、１つのレイヤに対する半透明合成と同様の結果とすることができる。
【００２８】
（本発明の第２の実施の形態）
本発明の第２の実施の形態に係る多重描画装置は、本発明の第１の実施の形態の多重描画装置を用いて実施される。本発明の第２の実施の形態に係る多重描画装置について、図面を参照して以下に説明する。図４は、不透明の描画物における多重描画装置の動作の一例を表したフローチャートである。
【００２９】
不透明の描画物が描画されようとする場合、例えば、図２（Ａ）に示すように、透明のフレーム内に不透明の描画物７が描画されようとするとき、ＧＰＵ２は、不透明の描画物の画素データをフレームバッファ５に記憶させる（ステップＳ４）。
【００３０】
次に、ＧＰＵ２は、ステンシルバッファ６に対し、描画物７の位置のマスク情報をＯＮに設定する（ステップＳ５）ことにより、ステンシルバッファ６は、図２（Ａ）に示した状態となる。
【００３１】
以上説明したように、本発明の第２の実施の形態に係る多重描画装置は、不透明の描画物に対する描画を行う場合、ステンシルバッファ６を参照しないで不透明の描画物に対して描画処理を施すため、描画処理を高速化することができる。
【産業上の利用可能性】
【００３２】
以上のように、本発明は、相互に重なる複数の描画物に対して半透明合成を行う際に色を適切に表示することができるという効果を有し、複数の描画物を重ね合わせて画面に表示する多重描画装置やレンダリングエンジン等として有用である。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係る多重描画装置のブロック図
【図２】フレームに対する描画内容とマスク情報とを表した遷移図
【図３】不透明の描画物における多重描画装置の動作の一例を表したフローチャート
【図４】不透明の描画物における多重描画装置の動作の一例を表したフローチャート
【図５】従来の多重描画装置のブロック図
【符号の説明】
【００３４】
１  多重描画装置
２、１３  ＧＰＵ
３、１４  レンダリングエンジン
４、１５  ＶＲＡＭ
５、１６  フレームバッファ
６  ステンシルバッファ
【図１】
0004764131.tif 000002
【図２】
0004764131.tif 000003
【図３】
0004764131.tif 000004
【図４】
0004764131.tif 000005
【図５】
0004764131.tif 000006