JP4761900B2 - ステンシルによるウィンドウ処理装置及び方法 - Google Patents

ステンシルによるウィンドウ処理装置及び方法 Download PDF

Info

Publication number
JP4761900B2
JP4761900B2 JP2005268048A JP2005268048A JP4761900B2 JP 4761900 B2 JP4761900 B2 JP 4761900B2 JP 2005268048 A JP2005268048 A JP 2005268048A JP 2005268048 A JP2005268048 A JP 2005268048A JP 4761900 B2 JP4761900 B2 JP 4761900B2
Authority
JP
Japan
Prior art keywords
stencil
task
pixel value
pixel
value
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
Application number
JP2005268048A
Other languages
English (en)
Other versions
JP2007080020A (ja
Inventor
正行 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005268048A priority Critical patent/JP4761900B2/ja
Publication of JP2007080020A publication Critical patent/JP2007080020A/ja
Application granted granted Critical
Publication of JP4761900B2 publication Critical patent/JP4761900B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、ウィンドウシステムに適用され、3次元描画処理を行なうウィンドウ処理装置、及びその制御方法に関する。
現在のコンピュータにおいては、ウィンドウシステムにより種々の表示、操作がなされることが主流となっている。ウィンドウシステムにおいては、ウィンドウと呼ばれる矩形形状等の所定の領域を表示し、そこで種々の処理を行なう。また、複数のウィンドウを表示することにより、複数の処理を同時に行うことが可能となる。
複数のウィンドウを表示する場合において、各ウィンドウには異なるアプリケーションの表示を行うことができる。複数のウィンドウを画面に表示する際に、各ウィンドウのアプリケーションの重なり順が規定され、この重なりに順に合わせた画面表示が行なわれる。
ところで、このような、ウィンドウシステム上において起動される3次元グラフィックスの分野においては、描画する図形等のオブジェクトのマスク処理を行うため、ステンシルバッファというバッファが使用される。ステンシルバッファとは、3次元グラフィックスにおいて、物体の重ね合わせなどにより描画しなくても良い領域を効率よく判定するために用意されたバッファ領域である。ポリゴンを描画する際にステンシルバッファを参照し、ピクセル単位で描画を禁止したり許可したりすることができる。
そして、3次元グラフィックスにおいて、描画される各オブジェクトは異なるアプリケーションで描画されるのが一般的である。このような背景から、3次元グラフィックスで使用するステンシルバッファを、単一のアプリケーションではなく、ウィンドウシステムと連携した複数のアプリケーションが利用することで、複数のアプリケーションにより描画されたオブジェクトの重ね合わせを実現する。
特許3413201号 論文「Window Clipping Methods in Graphics Accelerators」、出典「Computer Graphics and Applications, IEEE , Volume: 11 , Issue: 3 , May 1991」
上述のような構成では、各描画オブジェクトのアプリケーション毎に描画メモリを確保し、最後に各オブジェクトを合成することとなる。このような方法下では、各アプリケーション毎に実際に表示される画像を確保するカラーバッファが必要となり、そのために必要なメモリの量が増大することとなる。また、オブジェクトを合成するための専用の装置が必要となる。
本発明は、ウィンドウシステムと協同して、簡易な構成にて3次元描画を実現可能なウィンドウ処理装置を提供する。
本発明は、複数の描画タスクを実行し、かつ1つのウィンドウ内に該描画タスクに基づく描画を行なうウィンドウ処理装置を提供する。該装置は、ピクセルの集まりからなるタスクの描画領域を有し、各タスクの固有識別値を、各ピクセルにステンシルピクセル値として格納可能なステンシルバッファと、ピクセルの集まりからなるタスクの描画領域を有し、各タスクの各ピクセルの色値を、描画領域の各ピクセルにカラーピクセル値として格納可能なカラーバッファと、前記ステンシルバッファ及び前記カラーバッファの描画領域のピクセルに格納されるステンシルピクセル値及びカラーピクセル値を、描画対象の描画タスクに基づき書き換える3次元描画エンジンと、前記ステンシルバッファのステンシルピクセル値が設定された条件に適合した場合のみ、前記カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値を格納するよう、前記3次元描画エンジンを制御するステンシル優先度制御部と、を備える。
本発明によれば、ステンシルバッファにおいて、現実の画像を実現するためのカラーバッファの所定領域に描画対象としてタスクが格納される否かの情報が設定され(マスクの作成)、当該情報を利用して単一のカラーバッファ上に最終的な表示画像の色情報が設定される。したがって、タスク毎にカラーバッファを用意する必要がなくなり、結果的に省メモリにて3次元の描画装置を提供することが可能となる。
前記設定された条件が条件式によって記述される場合、当該条件式は、前記ステンシルピクセル値と実際に描画される描画タスクの固有識別値が等しいという関数と、前記ステンシルバッファに格納されたステンシルピクセル値は、他の描画タスクの固有識別値によって書き換えられないという動作と、を含む。
この構成下においては、各タスクを合成するための別の装置を盛り込む必要がなくなる。
また、前記設定された条件が条件式によって記述される場合、当該条件式は、描画対象の描画タスクの固有識別値に対する前記ステンシルバッファに格納済のステンシルピクセル値の関係が、「固有識別値<ステンシルピクセル値」、「固有識別値<=ステンシルピクセル値」、「固有識別値>ステンシルピクセル値」、「固有識別値>=ステンシルピクセル値」のうち選択されたいずれか1つによって表現される関数と、選択された関数が成立した場合、既存のステンシルピクセル値を当該固有識別値によって書き換える動作と、を含む。この場合、前記ステンシル優先度制御部が、前記動作を前記3次元描画エンジンに実行させる。また、前記条件式は、前記選択された関数が成立しない場合、既存のステンシルピクセル値を維持する動作を含むものである。
この構成下においては、ステンシルバッファに格納された固有識別値が優先順位を表現する役割を果たし、当該値を参照することにより、描画順序の制約をなくすことが可能となり、高速化が可能となる。
さらに本発明は、複数の描画タスクを実行し、かつ1つのウィンドウ内に該描画タスクに基づく描画を行なうウィンドウ処理装置の制御方法をも提供する。該方法は、ピクセルの集まりからなるタスクの描画領域を有したステンシルバッファに、各タスクの固有識別値を、各ピクセルにステンシルピクセル値として格納するステップと、ピクセルの集まりからなるタスクの描画領域を有したカラーバッファに、各タスクの各ピクセルの色値を、描画領域の各ピクセルにカラーピクセル値として格納するステップと、前記ステンシルバッファ及び前記カラーバッファの描画領域のピクセルに格納されるステンシルピクセル値及びカラーピクセル値を、描画対象の描画タスクに基づき書き換えるステップと、前記ステンシルバッファのステンシルピクセル値が設定された条件に適合した場合のみ、前記カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値を格納するステップと、を備える。このような方法をコンピュータに実行させるプログラムも本発明に含まれる。
本発明によれば、省メモリかつ簡易な構成にて3次元の描画装置を提供することが可能となり、3次元描画処理を高速化することも可能となる。
図1は、本発明によるウィンドウ描画処理システムの構成例の一つを示すブロック図である。このウィンドウ描画処理システム100は、操作部1と、タスク保存部3と、ウィンドウシステム5と、ステンシル優先度制御部7と、3次元描画エンジン9と、フレームバッファ11と、表示制御部13と、表示部15とを備えている。ウィンドウ描画処理システム100内にて、特にステンシル優先度制御部7と、3次元描画エンジン9と、フレームバッファ11が、ウィンドウシステム5と協調して3次元描画処理を行なうウィンドウ処理装置を構成する。
操作部1は、ユーザが、ウィンドウ描画処理システム100に種々の操作を入力する部分であり、キーボード、マウス、音声入力装置等により構成される。この実施形態では、操作部1は後述するタスク保存部3の各タスクを操作する役割を果たす。
タスク保存部3は、所定の画像(オブジェクト、背景等を含む)を描画する各種の描画タスク(以下、「タスク」という)を保存している。この実施形態では3種類のタスク3a,3b,3cが保存されている。ここでいう「タスク」とは、コンピュータのOS(オペレーティングシステム)から見た処理の実行単位をいう。通常はスレッドが実行単位となるが、OSによってはプロセス(複数のスレッドを含むプログラム全体)を1つの実行単位としてみる場合もある。
一つのアプリケーションソフトが行なっている作業全体を一つのタスクと扱う場合が多く、この場合は「プロセス」に近い意味合いになる。同じアプリケーション内で実行されていても、同時に実行できない作業単位を一つのタスクと扱うようなこともあり、この場合は「スレッド」と似た意味合いになる。
特に本発明においては、「タスク」という場合、アプリケーションとほぼ同等の意味を有する。しかしながらとくにその意味は限定はされない。
ウィンドウシステム5は、ディスプレイ上に画像、文字、図形、記号等の種々の情報、ユーザの入力した操作を表示する、現在のコンピュータにおいて主流のシステムである。ウィンドウシステム5は、ウィンドウと呼ばれる矩形形状等の所定の領域を表示部15上に表示し、この領域内で種々表示がなされ、ユーザが所定の操作を入力する対象となる。また、複数のウィンドウを表示することにより、複数の処理を同時に行うことが可能となる。Windows(登録商標)やMacintosh(登録商標)は、このしくみを利用した操作環境を持つ。
複数のウィンドウを表示する場合において、各ウィンドウには異なるアプリケーションの表示を行うことができる。複数のウィンドウを画面に表示する際に、各ウィンドウのアプリケーションの重なり順が規定され、この重なりに順に合わせた画面表示が行なわれる。本実施形態では、タスク保存部3に保存されたタスク3a、タスク3b、タスク3cが所定の順で重ねられた上で描画され、最終的に表示部15上に表示される。
ステンシル優先度制御部7は、CPU(Central Processing Unit)等の一般的な演算処理装置、該演算処理装置により実行されるプログラム等を記憶したメモリ等を含んで構成され、後述するように、ウィンドウシステム5を参照して、各タスクの描画優先度を抽出し、3次元描画エンジン9に設定するものである。すなわちステンシル優先度制御部7は、前述したプログラムの記述による処理の下、3次元描画エンジン9を制御する。
3次元描画エンジン9は、CPU、DSP(Digital Signal Processor)等の一般的な演算処理装置より構成され、後述するように、フレームバッファ11のステンシルバッファ11cに予め設定されたステンシルピクセル値と、前述した描画優先度を所定の比較関数の下で比較し、カラーバッファ11aに優先度に沿った各タスクのオブジェクトを書き込む。
フレームバッファ11は、3次元描画エンジン9により描画されたグラフィックスイメージを保持するメモリ領域より構成される。図2に示すように、フレームバッファ11は、カラーバッファ11aと、デプスバッファ(Zバッファ)11bと、ステンシルバッファ11cとを含む。各バッファ11a〜11cは、一般的に同じメモリ容量をもつが、メモリ容量は異なってもよい。
カラーバッファ11aは、表示画像の所定のピクセル(画素)の色情報(カラーピクセル値)を保持するバッファである。本実施形態のカラーピクセル値は、3原色であるR(赤)G(緑)B(青)各々の階調度と、アルファ値によって表現される不透明度を持つ。
デプスバッファ11bは、表示画像の所定のピクセルの奥行き情報(Z値)を保持するバッファである。3次元グラフィックスにおける隠面消去(視線の手前にある物体で隠される物体や面を検出して描画しないようにする処理)では、画像を構成する各ピクセルに色情報のほかに奥行きに関する情報を持たせ、描画の際には同じ座標のピクセルの奥行き情報を比較して、最も手前にあるものだけを画面に書き込む。デプスバッファ11bは、このZピクセル値を保持する。
ステンシルバッファ11cは、表示画像の所定のピクセルのマスク情報(ステンシルピクセル値)を保持するバッファである。マスクバッファ、ウィンドウIDバッファ等とも呼ばれ、3次元グラフィックスにおいて、物体の重ね合わせなどにより描画しなくても良い領域(マスク領域)を判定するために用意されるバッファである。ポリゴンを描画する際にステンシルバッファ11cを参照し、ピクセル単位で描画を禁止したり許可したりすることが可能となる。デプスバッファ11bに似ているが、デプスバッファは物体のZ値(奥行き)に関する情報を保持するに対し、ステンシルバッファには任意の値を設定することができる。
ステンシルバッファでの描画の禁止、許可の判定には上述した比較関数が用いられる。比較関数には、「=(等しい)」、「/=(等しくない)」、「<(より小さい)」、「>(より大きい)」、「<=(より小さいか等しい;以下)」、「>=(より大きいか等しい;以上)」等がある。この比較関数は、ステンシルバッファ11cの各ピクセル毎に記述されたステンシルピクセル値(例えば左辺)と、描画対象であるタスクに個別に与えられた固有識別値(例えば右辺)を比較し、いずれが優先するかを判定するための基準としての役割を果たす。すなわち、前述した描画優先度の判定基準としての役割を果たす。
表示制御部13は、フレームバッファ11のカラーバッファ11aから得られたカラーピクセル値の情報に基づき、表示部15の各ピクセルを駆動し、発光させるための回路であり、種々のドライブ回路、スイッチング回路等を備えている。表示部15は液晶表示ディスプレイ等より構成され、種々の画像情報を表示する。
(第1の実施形態)
本発明のウィンドウ処理装置によるウィンドウ描画処理の一実施形態を、図3を用いて説明する。本実施形態は、予めステンシルバッファに各タスク固有の識別値を格納する。言い換えると、ステンシルバッファ上に該固有識別値によるマスクを作成して、WID(ウィンドウID;Window ID)のように使用することにより、少ないメモリ容量で、かつ一般的な3次元描画エンジンのみで複数タスクを重ね合わせる処理を行なう。
図3の例では、タスクA、タスクB、タスクCという3つのタスクが描画される描画対象タスクであり(図1のタスク3a〜3cに対応)、各々のタスクにID=1、ID=2、ID=3という固有のWIDが予め付与されている。WIDとは、各タスクのウィンドウ毎に付与された固有識別値(ID)のことをいい、ウィンドウシステム5において予め付与される。
図3(a)は、ステンシルバッファ11c上のピクセル(ステンシルピクセル)の集まりからなる描画領域に、各タスク固有のWIDが格納された状態を示す。すなわち、描画領域の各ステンシルピクセル値は、当該タスクの固有WIDとなる。
この結果、図3(b)において斜線で示すように、各タスクのWIDが格納された領域以外の領域には、あたかもマスクがなされるかのような処置が施される、すなわち、各タスクの描画領域以外の領域の各ピクセルには、当該タスクのカラーピクセル値を書き込むことはできない。図の例では、ステンシルバッファ上で「ID=1」が付与された領域では、IDが1のタスクAの書き込み作業がなされ、それ以外の斜線領域はマスクされる。同様に、ステンシルバッファ上で「ID=2」が付与された領域では、IDが2のタスクBの書き込み作業がなされ、それ以外の斜線領域はマスクされる。「ID=3」が付与された領域では、IDが3のタスクCの書き込み作業がなされ、それ以外の斜線領域はマスクされる。
図3(c)は、上述のような作業を経て、カラーバッファ11aに生成された最終画像を示す。この画像が、表示制御部13を経て表示部15に表示される。
本実施形態においては、描画されるタスクの重なり順位に基づき、WIDを用いて描画対象領域以外の領域を適切にマスクすることが必要になる。また、使用される比較関数は「=(等しい)」(同値)であり、ステンシルバッファに格納されたステンシルピクセル値と各タスクのWIDが一致した場合のみ、当該タスクを表示する。また、ステンシルバッファに格納されたステンシルピクセル値は変更されることはない(不変動作;KEEP)。すなわち、ステンシルバッファに格納されたステンシルピクセル値が予め設定された条件に適合した場合のみ、カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値が格納される。このような操作は、ステンシル優先度制御部7が、3次元描画エンジン9を制御することによって行なう。
上述したような予め設定された条件は条件式によって記述される。本実施形態においては、当該条件式は、ステンシルピクセル値と実際に描画される描画タスクの固有識別値が等しいという関数(同値関数)と、ステンシルバッファに格納されたステンシルピクセル値は、他の描画タスクの固有識別値によって書き換えられないという動作(不変動作)とを含む。このような関数と動作を含む条件式は、3次元グラフィックスの分野では一般的に用いられるものである。
以下、上述の実施形態のウィンドウ描画処理の手順を、図4のフローチャートを用いて説明する。前提として、ユーザが操作部1を介して各タスクを生成しており、この際、各タスクごとに付与された描画領域、WID等の属性情報を含むウィンドウ定義情報が与えられる。このようなウィンドウ定義情報は、ウィンドウシステム5に格納されている。
まず、ステンシル優先度制御部7が、ウィンドウシステム5から、ウィンドウ定義情報を取得し、タスク毎の「描画領域」と「WID」を抽出する。そしてステンシル優先度制御部7は、3次元描画エンジン9に対し、フレームバッファ11のステンシルバッファ11c上の描画領域を、「ステンシルピクセル値=WID」で塗潰すよう命令を発行する(ステップS101)。
さらにステンシル優先度制御部7は、ウィンドウシステム5を参照して、描画するタスク数をカウントする。ここで、描画する対象のタスクを変数iとし、変数i=0として、カウントを開始する(ステップS102)。
カウントの対象となったタスクiは、描画開始の旨の信号をステンシル優先度制御部7に送信する(ステップS103)。ここから各タスク毎の描画処理に入る(ステップS111まで)。
描画開始の旨の信号を受け、ステンシル優先度制御部7は、比較される2つの数値が「同値」の場合のみ所定の動作を行なう比較関数(EQUAL「=」)を3次元描画エンジン9に設定する。ここで、比較される2つの数値とは、ステップS101でステンシルバッファ11cに設定されたステンシルピクセル値と、タスクiのWID(参照値ref)である。さらにステンシル優先度制御部7は、比較成立時すなわち2つの数値が同値の場合の所定動作として、「変更無し」を3次元描画エンジン9に設定する(ステップS104)。
比較関数及び動作が設定されると、3次元描画エンジン9は、タスクiの描画を開始する。ここでは、描画対象となるピクセルを変数jで表現し、j=0から描画を開始する(ステップS105)。また、3次元描画エンジン9は、ピクセルjに対応するステンシルバッファ上のステンシルピクセル値をspと定義する(ステップS106)。
3次元描画エンジン9は、ステップS104で設定した参照値refと、ステンシルピクセル値spが等しくなるか(ref=sp)否かを判定する(ステップS107)。そしてこの条件が満たされたと判定すると(ステップS107;YES)、3次元描画エンジン9は、ピクセルjをカラーバッファ11aに格納し(ステップS108)、カラーピクセル値として設定する。満たされないと判定した場合(ステップS107;NO)、ピクセルjをカラーバッファ11aに格納しない。
そして、3次元描画エンジン9は、ピクセルjがタスクiにおいて描画される最後のピクセルか否かを判定する(ステップS109)。最後のピクセルであると判定されなかった場合(ステップS109;NO)、3次元描画エンジン9は、対象を次のピクセルに移し(ステップS110)、再びステップS106以降の処理が行なわれる。
また、3次元描画エンジン9が、ステップS109でピクセルjが最後の描画対象ピクセルであると判定した場合(ステップS109;YES)、描画対象となっているタスクi自身が、描画終了の旨の信号をステンシル優先度制御部7に送信する(ステップS111)。
この信号を受けたステンシル優先度制御部7は、描画対象のタスクiが描画する最終タスクか否か判定する(ステップS112)。最終タスクであると判定された場合(ステップS112;YES)、総ての処理が終了し、以後表示制御部13、表示部15により実際の画像表示が行なわれる。一方、最終タスクであると判定されなかった場合(ステップS112;NO)、対象を次のタスクに移し(ステップS113)、再びステップS103以降の処理が行なわれる。
従来の3次元グラフィックスにおいては、タスク毎にカラーバッファを用意し、各カラーバッファ上において個別に生成された各タスクの画像を、ウィンドウシステムで管理された重ね合わせ情報に基づき合成することにより最終画像を生成していた。一方、上述した本発明の実施形態によれば、ステンシルバッファ上に各タスクの描画領域を指定しており、各タスクに共有された単一のカラーバッファ上で描画を行なうこととしたため、必要なメモリ容量を削減することができる。
また、従来の3次元グラフィックスにおいては、3次元描画エンジンとは別に、各タスクの合成用の装置(2次元描画エンジン等)が必要であったが、ステンシルバッファにタスクIDを格納することにより、そのような別の装置を省略することができ、より簡易かつ安価なシステムにて3次元グラフィックスを実現することができる。
(第2の実施形態)
次に、本発明のウィンドウ描画処理システムにおけるウィンドウ描画処理の他の実施形態を、図5及び図6を用いて説明する。第1の実施形態においては、ステンシルバッファに格納されたステンシルピクセル値は不変であった。本実施形態は、ステンシルバッファのステンシルピクセル値に、ウィンドウの重なり順またはタスク優先度を適用する。言い換えると、不等号等の比較関数により、既存のステンシルピクセル値と描画対象であるタスクの固有識別値を比較し、条件成立時に更新する。この構成により、少ないメモリ容量で、かつ一般的な3次元描画エンジンのみで複数タスクの優先順位を考慮しつつ、重ね合わせ処理を行なうものである。
本実施形態では、タスクA、タスクBという2つのタスクが描画され、各々のタスクにID=1、ID=2という固有のWIDが予め付与されている。また、これらタスク以外の領域、すなわち背景領域にはID=9というIDが予め与えられている。
また、本実施形態においては、比較関数として、「<=(より小さいか等しい;以下)」(LEQUAL;Less Than Equal)が用いられる。そして当該比較関数の条件が満たされたとき実行される動作として、「上書き(置き換え)」(REPLACE)が用いられる。そして、IDの最大値を9、最小値を1に設定し、最大値9により、ステンシルバッファはクリアされる。すなわち最大値9が設定された領域には描画されるタスクはない。
図5は、タスクA、タスクBのうち、タスクAの描画の準備が先に完了した場合の描画手順を説明する。図5(a)は、表示部に表示される画像そのものを表現する色値を格納したカラーバッファ11a、最大値IDである9が予め格納された(最大値9をステンシル値に設定することによりクリアされた)ステンシルバッファ11cを示す。また、表示画像の所定のピクセルの奥行き情報(Z値)を保持するデプスバッファ11bも別途用意されている。
次に、図5(b)に示すように、タスクAのIDは2であり、ステンシルバッファのクリア値ID=9より小さく、比較関数LEQUAL下では、タスクAのIDがクリア値9より優先するため(2<9)、動作REPLACEが発動され、ステンシルバッファにおけるタスクAの描画領域にはID=2のステンシルピクセル値が設定される。連動してタスクAのカラーピクセル値がカラーバッファの対応領域に格納される。
また、タスクBのIDは1であり、タスクAのID=2、ステンシルバッファのクリア値ID=9より小さい。この場合、比較関数LEQUAL下では、タスクBのIDがタスクAのID=2、ステンシルバッファのクリア値9より優先するため(1<2,1<9)、動作REPLACEが発動され、ステンシルバッファにおけるタスクBの描画領域にはID=1が設定される。連動してタスクBのカラーピクセル値がカラーバッファの対応領域に格納される。
この結果、図5(c)に示すように、ステンシルピクセル値が1の領域に対応するカラーバッファの領域にはタスクBが描画され、ステンシル値が2の領域に対応するカラーバッファの領域にはタスクAが描画される。最終的なカラーバッファ、ステンシルバッファは、図5(d)に示すようになり、タスクB(ID=1)の図形が、タスクA(ID=2)の図形の手前に配置された描画がなされる。この画像が、表示制御部13を経て表示部15に表示される。
図6は、タスクA、タスクBのうち、タスクBの描画の準備が先に完了した場合の描画手順を説明する。図6(a)は図5(a)と同じ状態を示す。
次に、図6(b)に示すように、タスクBのIDは1であり、ステンシルバッファのクリア値ID=9より小さく、比較関数LEQUAL下では、タスクBのIDがステンシルピクセル値のIDより優先するため(1<9)、動作REPLACEが発動され、ステンシルバッファにおけるタスクBの描画領域にはID=1のステンシルピクセル値が設定される。連動してタスクBのカラーピクセル値がカラーバッファの対応領域に格納される。
また、タスクAのIDは2であり、タスクBのID=1より大きい。この場合、比較関数LEQUAL下では、タスクBのIDがタスクAのIDより優先するため、動作REPLACEが発動されず、既にタスクBが描画されている領域においてはID=1が維持され、ID=2のタスクAで上書き描画されることはない。
一方、タスクAのIDは2であり、ステンシルバッファのクリア値ID=9より小さく、比較関数LEQUAL下では、タスクAのIDがステンシルバッファのクリア値9より優先するため(2<9)、動作REPLACEが発動され、ステンシルバッファにおけるタスクAの描画領域にはID=2が設定される。連動してタスクAのカラーピクセル値がカラーバッファの対応領域に格納される。
この結果、図6(c)に示すように、ステンシル値が1の領域、すなわちタスクBが描画される領域には、ステンシルピクセル値ID=1によるマスクが施され、タスクAは描画されない。一方それ以外の領域において、タスクAが描画されるべき領域は、ステンシルピクセル値が2となり、タスクAが描画される。最終的なカラーバッファ、ステンシルバッファは、図5(d)と同じく図6(d)に示すようになり、タスクBの図形が、タスクAの図形の手前に配置された描画がなされる。この画像が、表示制御部13を経て表示部15に表示される。
すなわち、優先順位の高いIDをもつタスクで描いた領域は、より優先順位の低いIDのタスクで上書きすることはできないため、意図した重ね合わせの描画を実現することができる。
本実施形態では、比較関数に「<=」(LEQUAL)を用いるとともに、ステンシルバッファのクリアを最大値(本例では9)で行うことにした。もちろん、比較関数に「>=(より大きいか等しい;以上)」(MEQUAL;More Than Equal)を用い、ステンシルバッファのクリアを最小値(例えば0)で行うように制御してもよい。
以下、上述の実施形態のウィンドウ描画処理の手順を、図7のフローチャートを用いて説明する。前提として、ユーザが操作部1を介して各タスクを生成しており、この際、各タスクごとに付与された描画領域、WID等の属性情報を含むウィンドウ定義情報が与えられる。このようなウィンドウ定義情報は、ウィンドウシステム5に格納されている。
まず、ステンシル優先度制御部7が、3次元描画エンジン9に対し、ステンシルピクセル値の最大値でフレームバッファ11のステンシルバッファ11cをクリアするよう命令を発行する(ステップS201)。
さらにステンシル優先度制御部7は、ウィンドウシステム5を参照して、描画するタスク数をカウントする。ここで、描画する対象のタスクを変数iとし、変数i=0として、カウントを開始する(ステップS202)。
カウントの対象となったタスクiは、描画開始の旨の信号をステンシル優先度制御部7に送信する(ステップS203)。ここから各タスク毎の描画処理に入る(ステップS212まで)。
描画開始の旨の信号を受け、ステンシル優先度制御部7は、ウィンドウシステム5から参照値refとしてのタスクiの重ね合わせの優先度(タスクのID)を取得する。さらにステンシル優先度制御部7は、比較関数「<=」と、比較成立時すなわち2つの数値の関係が「<=」の場合の所定動作として、「上書き」を3次元描画エンジン9に設定する(ステップS204)。
比較関数及び動作が設定されると、3次元描画エンジン9は、タスクiの描画を開始する。ここでは、描画対象となるピクセルを変数jで表現し、j=0から描画を開始する(ステップS205)。また、3次元描画エンジン9は、ピクセルjに対応するステンシルバッファ上のステンシルピクセル値をspと定義する(ステップS206)。
3次元描画エンジン9は、ステップS204で設定した参照値refと、ステンシルピクセル値spが比較関数の条件(ref<=sp)を満たすか否かを判定する(ステップS207)。そしてこの条件が満たされたと判定すると(ステップS207;YES)、3次元描画エンジン9は、ピクセルjをカラーバッファ11aに格納し(ステップS208)、カラーピクセル値として設定する。ただし、デプスバッファ使用時はデプステストの結果による。そして、3次元描画エンジン9は、ステンシルピクセル値spを参照値ref(タスクのID)で上書きする(ステップS209)。一方、ステップS207で条件が満たされないと判定した場合(ステップS207;NO)、ピクセルjをカラーバッファ11aに格納しない。
そして、3次元描画エンジン9は、ピクセルjがタスクiにおいて描画される最後のピクセルか否かを判定する(ステップS210)。最後のピクセルであると判定されなかった場合(ステップS210;NO)、3次元描画エンジン9は、対象を次のピクセルに移し(ステップS211)、再びステップS206以降の処理が行なわれる。
また、3次元描画エンジン9が、ステップS210でピクセルjが最後の描画対象ピクセルであると判定した場合(ステップS210;YES)、描画対象となっているタスクi自身が、描画終了の旨の信号をステンシル優先度制御部7に送信する(ステップS212)。
この信号を受けたステンシル優先度制御部7は、描画対象のタスクiが描画する最終タスクか否か判定する(ステップS213)。最終タスクであると判定された場合(ステップS213;YES)、総ての処理が終了し、以後表示制御部13、表示部15により実際の画像表示が行なわれる。一方、最終タスクであると判定されなかった場合(ステップS213;NO)、対象を次のタスクに移し(ステップS214)、再びステップS203以降の処理が行なわれる。
第2の実施形態においても、ステンシルバッファに格納されたステンシルピクセル値が予め設定された条件に適合した場合のみ、カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値が格納される。このような操作は、ステンシル優先度制御部7が、3次元描画エンジン9を制御することによって行なう。
上述したような予め設定された条件は条件式によって記述される。本実施形態においては、当該条件式は、描画対象の描画タスクの固有識別値に対する前記ステンシルバッファに格納済のステンシルピクセル値の関係が「固有識別値<=ステンシルピクセル値」で表現される関数と、当該関数が成立した場合、既存のステンシルピクセル値を当該固有識別値によって書き換える動作と、を含む。ただし関数には、「固有識別値<ステンシルピクセル値」、「固有識別値<=ステンシルピクセル値」、「固有識別値>ステンシルピクセル値」、「固有識別値>=ステンシルピクセル値」で表現されるものも含めることができる。このような関数と動作を含む条件式は、3次元グラフィックスの分野では一般的に用いられるものである。
従来の3次元グラフィックスにおいては、タスク毎にカラーバッファを用意し、各カラーバッファ上において個別に生成された各タスクの画像を合成することにより最終画像を生成していた。一方、上述した本発明の実施形態によれば、ステンシルバッファ上に重ね合わせの優先順位(=タスクのID)を用いる一方、カラーバッファを共有することとしたため、必要なメモリ容量を削減することができる。
また、上述した従来の合成においては、下の画像の描画の後、上の画像を重ねつつ描画する場合、上の画像のある領域の色を透明とみなし、重なっている下の画像の色を上書きしない操作(カラーキーともいう)が必要であり、一方、上の画像の描画の後、下の画像を描画していく場合、マスクが必要であった。本実施形態においては、ステンシルバッファに格納された優先順位(=タスクのID)を参照することにより、描画順序の制約をなくすことが可能となり、カラーキー、マスクの演算を省略することも可能となり、高速化が可能となる。
例えば、図5及び図6を用いて説明したように、複数のタスクがある場合、先に描画の準備ができた方から描画を始めることが可能となり、かつ同じ描画結果を得ることが可能となる。特に3次元描画エンジンは、全体システムと非同期である事が多いため、高速化が可能となる。
図1に示したウィンドウ描画処理システムは、一体のパーソナルコンピュータにて実現することが可能である。また、各部分をネットワーク上に分散配置することも可能である。
以上、本発明の各種実施形態を説明したが、本発明は前記実施形態において示された事項に限定されず、明細書の記載、並びに周知の技術に基づいて、当業者がその変更・応用することも本発明の予定するところであり、保護を求める範囲に含まれる。
本発明を適用することにより、3次元グラフィックスにおいて、装置に必要なメモリ容量を削減するとともに、装置構成を簡略化し、かつ描画の高速化が実現される。
本発明のウィンドウ描画処理システムの構成例を示すブロック図。 フレームバッファの構成を示すブロック図。 第1の実施形態のウィンドウ描画処理の説明図。 第1の実施形態のウィンドウ描画処理の手順を示すフローチャート。 第2の実施形態のウィンドウ描画処理の説明図。 第2の実施形態のウィンドウ描画処理の説明図。 第2の実施形態のウィンドウ描画処理の手順を示すフローチャート。
符号の説明
1 操作部
3 タスク保存部
5 ウィンドウシステム
7 ステンシル優先度制御部
9 3次元描画エンジン
11 フレームバッファ
11a カラーバッファ
11b デプスバッファ(Zバッファ)
11c ステンシルバッファ
13 表示制御部
15 表示部
100 ウィンドウ描画処理システム

Claims (7)

  1. 複数の描画タスクを実行し、かつ1つのウィンドウ内に該描画タスクに基づく描画を行なうウィンドウ処理装置であって、
    ピクセルの集まりからなるタスクの描画領域を有し、各タスクの固有識別値を、各ピクセルにステンシルピクセル値として格納可能なステンシルバッファと、
    ピクセルの集まりからなるタスクの描画領域を有し、各タスクの各ピクセルの色値を、描画領域の各ピクセルにカラーピクセル値として格納可能なカラーバッファと、
    前記ステンシルバッファ及び前記カラーバッファの描画領域のピクセルに格納されるステンシルピクセル値及びカラーピクセル値を、描画対象の描画タスクに基づき書き換える3次元描画エンジンと、
    前記ステンシルバッファのステンシルピクセル値が、複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件に適合した場合、前記カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値を格納するよう、前記3次元描画エンジンを制御するステンシル優先度制御部と、
    を備え
    前記複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件は条件式によって記述され、当該条件式は、
    描画対象の描画タスクの固有識別値に対する前記ステンシルバッファに格納済のステンシルピクセル値の関係が、「固有識別値<ステンシルピクセル値」、「固有識別値<=ステンシルピクセル値」、「固有識別値>ステンシルピクセル値」、「固有識別値>=ステンシルピクセル値」のうち選択されたいずれか1つによって表現される関数と、
    選択された関数が成立した場合、既存のステンシルピクセル値を当該固有識別値によって書き換える動作と、を含むウィンドウ処理装置。
  2. 請求項記載のウィンドウ処理装置であって、
    前記ステンシル優先度制御部が、前記動作を前記3次元描画エンジンに実行させるウィンドウ処理装置。
  3. 請求項記載のウィンドウ処理装置であって、
    前記条件式は、前記選択された関数が成立しない場合、既存のステンシルピクセル値を維持する動作を含むウィンドウ処理装置。
  4. 複数の描画タスクを実行し、かつ1つのウィンドウ内に該描画タスクに基づく描画を行なうウィンドウ処理装置の制御方法であって、
    ピクセルの集まりからなるタスクの描画領域を有したステンシルバッファに、各タスクの固有識別値を、各ピクセルにステンシルピクセル値として格納するステップと、
    ピクセルの集まりからなるタスクの描画領域を有したカラーバッファに、各タスクの各ピクセルの色値を、描画領域の各ピクセルにカラーピクセル値として格納するステップと、
    前記ステンシルバッファ及び前記カラーバッファの描画領域のピクセルに格納されるステンシルピクセル値及びカラーピクセル値を、描画対象の描画タスクに基づき書き換えるステップと、
    前記ステンシルバッファのステンシルピクセル値が、複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件に適合した場合、前記カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値を格納するステップと、
    を備え
    前記複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件は条件式によって記述され、当該条件式は、
    描画対象の描画タスクの固有識別値に対する前記ステンシルバッファに格納済のステンシルピクセル値の関係が、「固有識別値<ステンシルピクセル値」、「固有識別値<=ステンシルピクセル値」、「固有識別値>ステンシルピクセル値」、「固有識別値>=ステンシルピクセル値」のうち選択されたいずれか1つによって表現される関数と、
    選択された関数が成立した場合、既存のステンシルピクセル値を当該固有識別値によって書き換える動作と、を含むウィンドウ処理装置の制御方法。
  5. 請求項記載のウィンドウ処理装置の制御方法であって、
    前記条件式は、前記選択された関数が成立しない場合、既存のステンシルピクセル値を維持する動作を含むウィンドウ処理装置の制御方法。
  6. 複数の描画タスクを実行し、かつ1つのウィンドウ内に該描画タスクに基づく描画を行なうウィンドウ処理装置を制御するためのプログラムであって、当該プログラムはピクセルの集まりからなるタスクの描画領域を有したステンシルバッファに、各タスクの固有識別値を、各ピクセルにステンシルピクセル値として格納する手順と、
    ピクセルの集まりからなるタスクの描画領域を有したカラーバッファに、各タスクの各ピクセルの色値を、描画領域の各ピクセルにカラーピクセル値として格納する手順と、
    前記ステンシルバッファ及び前記カラーバッファの描画領域のピクセルに格納されるステンシルピクセル値及びカラーピクセル値を、描画対象の描画タスクに基づき書き換える手順と、
    前記ステンシルバッファのステンシルピクセル値が、複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件に適合した場合、前記カラーバッファの描画領域のピクセルに、当該条件に適合したステンシルピクセル値に対応する描画タスクの対応するピクセルのカラーピクセル値を格納する手順と、
    を備え
    前記複数のタスクの各描画領域間の重ね合わせの優先順位に基づき決定された条件は条件式によって記述され、当該条件式は、
    描画対象の描画タスクの固有識別値に対する前記ステンシルバッファに格納済のステンシルピクセル値の関係が、「固有識別値<ステンシルピクセル値」、「固有識別値<=ステンシルピクセル値」、「固有識別値>ステンシルピクセル値」、「固有識別値>=ステンシルピクセル値」のうち選択されたいずれか1つによって表現される関数と、
    選択された関数が成立した場合、既存のステンシルピクセル値を当該固有識別値によって書き換える動作と、を含むプログラム。
  7. 請求項記載のプログラムであって、
    前記条件式は、前記選択された関数が成立しない場合、既存のステンシルピクセル値を維持する動作を含むプログラム。
JP2005268048A 2005-09-15 2005-09-15 ステンシルによるウィンドウ処理装置及び方法 Expired - Fee Related JP4761900B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005268048A JP4761900B2 (ja) 2005-09-15 2005-09-15 ステンシルによるウィンドウ処理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005268048A JP4761900B2 (ja) 2005-09-15 2005-09-15 ステンシルによるウィンドウ処理装置及び方法

Publications (2)

Publication Number Publication Date
JP2007080020A JP2007080020A (ja) 2007-03-29
JP4761900B2 true JP4761900B2 (ja) 2011-08-31

Family

ID=37940253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005268048A Expired - Fee Related JP4761900B2 (ja) 2005-09-15 2005-09-15 ステンシルによるウィンドウ処理装置及び方法

Country Status (1)

Country Link
JP (1) JP4761900B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8203747B2 (en) 2008-03-20 2012-06-19 Sharp Laboratories Of America, Inc. Methods and systems for time-efficient print-data rendering
JP2020135017A (ja) * 2019-02-13 2020-08-31 株式会社コロプラ 画像データ処理の方法およびプログラム、および画像データ処理を行うコンピュータ
CN112799805B (zh) * 2021-01-21 2024-09-06 惠州Tcl移动通信有限公司 基于终端设备的调度方法、装置、存储介质及终端设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04128880A (ja) * 1990-09-20 1992-04-30 Fujitsu Ltd マルチウィンドウ表示装置
WO1994014155A1 (en) * 1992-12-17 1994-06-23 Seiko Epson Corporation Graphics control planes for windowing and other display operations
JP3337385B2 (ja) * 1996-12-06 2002-10-21 シャープ株式会社 表示制御回路
JP2001167290A (ja) * 1999-12-13 2001-06-22 Sega Corp 画像処理装置及びその方法
US6891533B1 (en) * 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images

Also Published As

Publication number Publication date
JP2007080020A (ja) 2007-03-29

Similar Documents

Publication Publication Date Title
US8144159B2 (en) Partial display updates in a windowing system using a programmable graphics processing unit
EP1612737B1 (en) Method of rendering graphic objects
JP2003271125A (ja) 画像表示装置、画像表示方法、及び画像表示プログラム
CA2645746C (en) Method and graphical interface for embedding animated content into a computer application
US9865076B2 (en) Rendering apparatus
CN114924824A (zh) 可视对象的模糊方法、渲染方法及计算设备
CN115546410A (zh) 窗口展示方法、装置、电子设备及存储介质
JP2003076355A (ja) 画像表示装置、画像表示方法、記録媒体およびプログラム
JP4761900B2 (ja) ステンシルによるウィンドウ処理装置及び方法
EP2987076B1 (en) Application-to-application launch windowing
US8665293B2 (en) Automatic draw order
US9092911B2 (en) Subpixel shape smoothing based on predicted shape background information
JP6947939B2 (ja) 画像生成装置、画像生成方法及びプログラム
JP2010164972A (ja) 画像ドローイング方法及び装置
WO2017013697A1 (ja) アニメーション表示装置及びアニメーション表示方法
JP2006293470A (ja) 描画装置、方法および描画プログラム
EP2902898A1 (en) System and method in managing low-latency direct control feedback
JP2993666B2 (ja) 図形表示システムと図形表示方法
US8411036B2 (en) Hardware accelerated caret rendering
JP2007047417A (ja) 画像生成装置
JP2020135004A (ja) 画像処理装置及びプログラム
JPH10214352A (ja) 画像生成装置及び画像生成方法
CN116912093A (zh) 画面的渲染方法、装置、电子设备和存储介质
JP2000076480A (ja) 画像生成装置、画像生成方法および記憶媒体
CN117710180A (zh) 图像渲染方法及相关设备

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110607

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees