JPH1125286A - 付影処理方法 - Google Patents

付影処理方法

Info

Publication number
JPH1125286A
JPH1125286A JP17943397A JP17943397A JPH1125286A JP H1125286 A JPH1125286 A JP H1125286A JP 17943397 A JP17943397 A JP 17943397A JP 17943397 A JP17943397 A JP 17943397A JP H1125286 A JPH1125286 A JP H1125286A
Authority
JP
Japan
Prior art keywords
shadow
primitive
projected
pixel
drawn
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
Application number
JP17943397A
Other languages
English (en)
Inventor
Hiroyasu Negishi
博康 根岸
Masatoshi Kameyama
正俊 亀山
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP17943397A priority Critical patent/JPH1125286A/ja
Publication of JPH1125286A publication Critical patent/JPH1125286A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 高速な付影処理を実現することのできる付影
処理方法を得る。 【解決手段】 被付影要素を表示画面上に描画するピク
セルについての表示画面上での多次元位置情報及び描画
対象である旨の情報をメモリに記憶する第1の工程と、
付影要素の予め定められた点を通る仮想光線及び被付影
要素を含む面を求める第2の工程と、仮想光線及び面に
基づいて予め定められた点が被付影要素を含む面上に投
影された点を求める第3の工程と、面上に投影された各
点で定められ付影要素に対応した領域に相当するピクセ
ルについての表示画面上での多次元位置情報及び投影さ
れる影である旨の情報を定める第4の工程と、描画対象
である旨の情報がメモリに記憶されたピクセルのうち、
投影された影である旨の情報が定められたピクセルにつ
いて、そのピクセルを付影対象として表示画面上に影を
描画する第5の工程とを備えた。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はいわゆる多次元
(例えば、3次元)コンピュータグラフィックスのの技
術に関する。
【0002】
【従来の技術】図16〜19は特開平6−76074号
公報に掲載された従来の画像表示装置及び方法の説明図
である。図16には建物B1とB2が地面E上に建って
いる状態が示され、光源Pからの光により建物B1の図
中左側面(面1)が影を発生する。この場合、発生する
影としては地面E(面2)上に投影される影2と、建物
B2の図中右側面の面3に投影される影3がある。
【0003】図示しない演算装置は、図示しないグラフ
ィックメモリに予め記憶され図16に示す画像を表示す
るための画像データから、光源P、建物B1、B2、地
面Eの各座標を読み取り、図示しないCPUメモリに記
憶させる。そして、必要に応じてこれら座標に基づいて
影2及び影3の座標を演算により求める。
【0004】即ち、影2の座標は、光源Pと面1の頂点
を結んで得られる直線が、地面E(面2)と交わる点に
基づいて求められる。しかし、影2は面2を越える範囲
にも形成される。
【0005】そこで、図17に示すように、演算装置
は、面2と同一平面上の地面Eに形成される影2(図1
7中、a、b、e、fで囲まれる範囲)のうち、面2を
越える範囲(図17中、a、b、c、dで囲まれる範
囲)をクリップ処理により削除する。
【0006】その結果、演算装置は図17中、c、e、
f、dで囲まれる範囲のみを抽出して表示される影のデ
ータとしてグラフィックメモリに書き込む。
【0007】一方、面1の影は、面3では図18に示す
ように投影される。即ち、光源Pと面1の各頂点を結ぶ
直線が、面3を含んで面3を拡大した平面と交わる点か
ら影3の座標が求められる。
【0008】即ち、影3は、図18中、o、p、q、r
で示す範囲の影となる。そこで、演算装置は影3のう
ち、図18中、j、k、m、nで囲まれる範囲のみをク
リップ処理により抽出する。クリップ処理については後
述する。
【0009】このようにして、図示しない表示装置に
は、面2については、c、e、f、dで囲まれる範囲の
影が、また面3については、j、k、m、nで囲まれる
範囲の影がそれぞれ表示される。
【0010】演算装置が行う以上の画像処理の動作を図
19に示すフローチャートに基づいて説明する。
【0011】最初に演算装置は光源Pの座標と、光源P
からの光により影を発生する面1の頂点座標を求める
(ステップS1)。次に、演算装置は面1の影が投影さ
れる面2(この場合、地面E)の頂点座標を求める(ス
テップS2)。
【0012】次に、演算装置はステップS1とステップ
S2で得た光源P、面1の座標より、ステップS2で得
た面2の上に投影される影2の座標を生成する(ステッ
プS3)。
【0013】さらに、演算装置はステップS3で生成さ
れた影ポリゴンを面2上でクリップする(ステップS
4)。即ち、地面Eのうち、面2を越える範囲に投影さ
れている影ポリゴンを削除する。そして、演算装置はス
テップS4でクリップした影ポリゴンを表示装置5の面
2上に表示する(ステップS5)。
【0014】次に、演算装置は面1の影が投影される他
の面2(図16中、面3)があるか否かを判定する(ス
テップS6)。面1の影が投影される面が他にもある場
合は(ステップS6で「ある」)、ステップS2に戻
り、演算装置はそれ以降の処理を繰り返し行う。影を発
生する面が他に存在しないと判定された場合は(ステッ
プS7で「ない」)、処理を終了する。
【0015】なお、従来の付勢処理としては、いわゆる
クリップ処理が行われている。ここで、クリップ処理と
は、一言でいうとある座標中にウィンドウを指定し、そ
のウィンドウ内を可視部分とする場合に、点、線分、多
角形、各種の線、文字等の図形の各要素を可視部分と不
可視部分とに分割し、後者を除去する方法をいう。
【0016】次に、図17を参照してクリップ処理を具
体的に説明する。例えば、面2(ABCD)に影ポリゴ
ン2(abef)が投影された場合に、影ポリゴン2が
面2と交わる部分を計算して求める。即ち、面2の線分
ABと影ポリゴン2が交わるか調べ、面2の線分BDと
影ポリゴン2が交わるか調べ、面2の線分DCと影ポリ
ゴン2が交わるか調べ、面2の線分CAと影ポリゴン2
が交わるか調べる。
【0017】もし、交わっている場合には面2内に含ま
れる影ポリゴン2を計算する。図17の場合は、影ポリ
ゴン2は面2の線分CAと交わっているので、影ポリゴ
ン2の線分beと線分CAとの交点c、影ポリゴン2の
線分faと線分CAとの交点dを計算し、影ポリゴン
(dcef)が抽出される。
【0018】そして、面2上には影ポリゴン(dce
f)が影として描画される。
【0019】
【発明が解決しようとする課題】以上のように、従来の
画像表示方法では、投影面に投影された物体の影となる
影から描画のための所望の範囲の影を抽出する(付勢処
理をする)には、上述のように計算量の多い処理が必要
であり、このため処理速度の高速化が図れないという問
題があった。
【0020】この発明は係る問題点を解消するためにな
されたもので、高速な付影処理を実現することのできる
付影処理方法を得ることを目的としている。
【0021】
【課題を解決するための手段】この発明にかかる付影処
理方法は、被付影要素を表示画面上に描画するピクセル
についての表示画面上での多次元位置情報及び描画対象
である旨の情報をメモリに記憶する第1の工程と、付影
要素の予め定められた点を通る仮想照射光線及び被付影
要素を含む面を求める第2の工程と、仮想照射光線及び
面に基づいて予め定められた点が被付影要素を含む面上
に投影された点を求める第3の工程と、面上に投影され
た各点で定められ付影要素に対応した領域に相当するピ
クセルについての表示画面上での多次元位置情報及び投
影される影である旨の情報を定める第4の工程と、描画
対象である旨の情報が第1の工程でメモリに記憶された
ピクセルのうち、投影された影である旨の情報が第4の
工程で定められたピクセルについて、そのピクセルを付
影対象として表示画面上に影を描画する第5の工程とを
備えたものである。
【0022】また、被付影要素は、複数とし、第1から
第5の工程は、被付影要素毎に行うものである。
【0023】また、第1の工程は、複数の被付影要素に
ついて記憶し、第2から第5の工程は、被付影要素毎に
行うものである。
【0024】また、付影要素は、イメージデータからな
るものである。
【0025】また、第5の工程は、付影対象とされたピ
クセルについて、投影された影での表示画面上の奥行き
座標の大きさを、メモリに記憶された表示画面上の奥行
き座標の大きさより小さくするものである。
【0026】また、第5の工程は、描画される影の色
を、被付影要素を描画するピクセルの色に基づいて決定
するものである。
【0027】また、第5の工程は、描画される影の色
を、描画される仮想照射光線の色に基づいて決定するも
のである。
【0028】
【発明の実施の形態】
実施の形態1.実施の形態1にかかわらず、この発明で
は画面上の各ピクセル(即ち、画面上の1ドット)に対
して、そのピクセルが影が投影される面を表わす領域を
描画するピクセルであるか否かをステンシル値を用いて
示し、さらにそれらピクセル毎のステンシル値を記憶す
るいわゆるステンシルバッファを用意する。
【0029】ここで、ステンシル値とは、ピクセル毎に
画面上の位置を示す2次元表現(デバイス座標系)の座
標データとしてX、Yデータが、また画面上でいわゆる
立体的な奥行きを表現するためのデバイス座標系でのZ
データが、さらに色データとしてR、G、Bデータがそ
れぞれ与えられているように、影が投影される面を表わ
す領域を描画するピクセルであるか否かを示すピクセル
毎に定めた例えば8ビット程度の値である。
【0030】そして、それら各ピクセルについて、前述
した座標位置データ(X、Yデータ)及びR、G、Bデ
ータがフレームバッファに、また前述したZデータがZバ
ッファにそれぞれ記憶されるように、ステンシル値は図
1に模式的に示すステンシルバッファに記憶されるよう
になっている。
【0031】後述するように、ステンシル値はいわゆる
マスク処理に用いられ、これから描画しようとするピク
セルのステンシル値と既にステンシルバッファに書き込
まれているそのピクセルのステンシル値とを比較するス
テンシルテストを行い、さらにこれから描画しようとす
るピクセルのデバイス座標系でのZデータと既にZバッ
ファに書き込まれているそのピクセルのデバイス座標系
でのZデータとを比較し、両比較の結果、いわゆるマス
ク条件を満たした場合にのみ、これから描画しようとす
るピクセルによってその領域は描画される(マスクされ
る)。
【0032】次に、実施の形態1に係る付影処理方法を
図2及び図3に従って説明する。図2は、付影要素とし
ての影を投影するプリミティブ(プリミティブとは、
線、点、多角形等の図形構成要素の総称をいう)10に
平行光源から平行光線が照射された結果、被付影要素と
しての影が投影されるプリミティブ20を含む平面上に
影プリミティブが生成されている様子を示している。
【0033】実施の形態1に係る付影処理方法はこのよ
うな付影処理を高速に行う。その手順を図3に従って説
明すると、始めに、各ピクセルに対するステンシル値を
初期値(例えば0)にしてステンシルバッファを初期化
する(ステップS1)。
【0034】次に、影が投影されるプリミティブ20を
表わす領域を描画する各ピクセルについて、画面上での
2次元平面(デバイス座標系での)の座標位置データ
(X、Yデータ)及びR、G、Bデータをフレームバッ
ファに保持させる(即ち、フレームバッファに影が投影
されるプリミティブ20を描画する)と共に、それらピ
クセルのステンシル値を初期値以外の値(例えば1)に
して(それらピクセルが影が投影されるプリミティブ2
0を表わす領域を描画するピクセルであることを示し
て)、ステンシルバッファに記憶する(ステンシル値=
(初期値0)の領域とステンシル値=(初期値以外の
値、例えば1)の領域とをステンシルバッファに描画す
る)(ステップS2)。
【0035】一方、表示画面上での奥行き座標としての
各ピクセルのZデータ(デバイス座標系でのZ座標の
値)についても、Zバッファにそれぞれ保持させる。
【0036】尚、以後の説明でも同様のことであるが、
これらフレームバッファ及びZバッファへの各ピクセル
のデータの記憶にあたっては、空間内の多次元座標系と
しての例えば3次元座標系(モデリング座標系)での座
標値から画面上での2次元平面での座標位置データ
(X,Yデータ)及びZデータ(共にデバイス座標系で
のデータ)への変換がその都度公知の技術によりなされ
るものとする。以上の処理を行うことで後述する付影処
理を行うための前準備が完了する。
【0037】次に、多次元座標系としての例えば3次元
座標系(モデリング座標系)における影が投影されるプ
リミティブ20を含む平面の平面方程式をその平面の法
線ベクトル(この法線ベクトルは影が投影されるプリミ
ティブ20の各頂点座標に基づいて求めることができ
る)に基づいて求める(ステップS3)。
【0038】例えば影が投影されるプリミティブ20を
含む平面の法線ベクトルを(A,B,C)、影が投影さ
れるプリミティブ20の平面上のある1点の座標を多次
元座標系としての例えば3次元座標系(モデリング座標
系)において(x1,y1,z1)とすると、その平面方
程式は、 A(x−x1)+B(y−y1)+C(z−z1)=0 ・・・(1) で表わされる。
【0039】さらに、影と投影するプリミティブ10の
各頂点について以下に示すステップS4からステップS
7に示す処理を順に行う。
【0040】始めに、平行光源の照射方向を方向ベクト
ルとして影と投影するプリミティブ10の頂点を通る照
射光の直線方程式を求める(ステップS4)。
【0041】例えば、平行光源からの照射光の照射方向
の方向ベクトルを(a,b,c)、影と投影するプリミ
ティブ10の着目する頂点を(xa,ya,za)とする
と、点(xa,ya,za)を通る照射光の直線方程式
は、 (x−xa)/a=(y−ya)/b=(z−za)/c=t ・・・(2) で表される。
【0042】次に、式(1)の平面方程式と式(2)の
照射光の直線方程式とに基づいて、影と投影するプリミ
ティブ10の着目する頂点(xa,ya,za)を、その
照射光に基づいて影が投影されるプリミティブ20を含
む平面上に投影するための影プリミティブ生成マトリッ
クスを求める(ステップS5)。
【0043】点(xa,ya,za)が影が投影されるプ
リミティブ20を含む平面上に投影された点(X,Y,
Z)は、Z=0として式(1)と式(2)との連立方程
式を解くことにより求められ、その影プリミティブ生成
マトリックスは式(3)で表わされる。
【0044】
【数1】
【0045】次に、影と投影するプリミティブ10の着
目する頂点(xa,ya,za)を、式(3)を用いて影
が投影されるプリミティブ20を含む平面上に投影した
点(影プリミティブの頂点)を求める(ステップS
6)。
【0046】影と投影するプリミティブ10のある着目
する頂点に上述した処理を行った結果、まだ他に、影と
投影するプリミティブ10に他の未処理の頂点があれば
(ステップS7でYES)、ステップS4に戻って再び
上述した処理を繰り返す。
【0047】このように影が投影されるプリミティブ2
0を含む平面上に投影された点は、3次元座標系(モデ
リング座標系)の表現形式で表わされているので、実際
に画面上に表示するために各種バッファに記憶するにあ
たっては、この点の座標値を実際に2次元平面上(デバ
イス座標系)に出力表示される2次元平面のX,Yデー
タ及び画面内での立体的な奥行きを示すZデータにさら
に変換する必要があるが、その処理は前述した通りであ
【0048】このようなステップS4からステップS7
に示す処理を影と投影するプリミティブ10の各頂点に
対して順に行うことで、影と投影するプリミティブ10
の各頂点が影が投影されるプリミティブ20を含む平面
上に投影される点がそれぞれ求められる。
【0049】そして、これら影が投影されるプリミティ
ブ20を含む平面上に投影された頂点を順に結んだ線で
囲まれた領域が、影が投影されるプリミティブ20を含
む平面上に投影される影プリミティブになる。
【0050】そして、この影プリミティブを描画するこ
れらピクセルについては前述したように、その旨を示す
ステンシル値をそれぞれ与えておく。
【0051】このようなステップS4からステップS7
に示す処理を影と投影するプリミティブ10の全ての頂
点に対して行うと(ステップS7でNO)、次に、この
ように影が投影されるプリミティブ20を含む平面上に
投影された各頂点を画面上において順に結んで形成され
る領域(影プリミティブ)を描画する各ピクセルに関す
るステンシル値及びデバイス座標系でのZデータを、前
述したように影が投影されるプリミティブ20に対して
与えられた影が投影される領域を描画するピクセルであ
ることを示すステンシル値(初期値0とは異なる値、例
えば1)を記憶したステンシルバッファのデータ(各ピ
クセルのデータ)及び予めZバッファに記憶されたその
ピクセルのデバイス座標系でのZデータにそれぞれ照合
して、影が投影されるプリミティブ20上にのみ描画さ
れる影プリミティブを求める(ステップS8)。
【0052】具体的には、影が投影されるプリミティブ
20を含む平面上に投影された各頂点を順に結んで形成
される領域(影プリミティブ)内にあるピクセルのステ
ンシル値を例えば1とし、これらピクセルと影が投影さ
れるプリミティブ20における先にステンシルバッファ
に記憶されたピクセルとを、対応するピクセルのステン
シル値同士の比較を行うステンシルテストを行い、さら
にステンシル値が一致(ステンシルテストに合格)した
対応するピクセル同士について、影プリミティブでのデ
バイス座標系でのZデータと影が投影されるプリミティ
ブ20でのすでにZバッファ内に記憶されたデバイス座
標系でのZデータとの比較を行い、Zデータが小さい方
のプリミティブを描画の対象とする。
【0053】このようなステンシルテスト及びデバイス
座標系でのZデータとの比較結果に基づいて、フレーム
バッファ内のそのピクセルを予め指定された影の色で描
画することで付影を実現する。
【0054】これにより影が投影されるプリミティブ2
0と影プリミティブとが重ならない部分がマスクされ
(影が描画されず)、影が投影されるプリミティブ20
と影プリミティブとが重なる部分のみが影として描画さ
れる。
【0055】従って、上記実施の形態1によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、従来のよ
うなクリップ処理が排除されて高速な付影処理が可能に
なる。
【0056】実施の形態2.実施の形態1では影を生成
する光線は平行光源から影と投影するプリミティブ10
に向けて平行に照射される光線であったが、光線は図4
に示すように点光源から放射状に照射される光線として
もよい。
【0057】この場合、影と投影するプリミティブ10
の頂点毎に照射光の照射方向、即ち照射光の直線方程式
の方向ベクトルが異なるから、影と投影するプリミティ
ブ10の頂点を影が投影されるプリミティブを含む平面
上に投影するための影プリミティブ生成マトリックス
も、その頂点毎に異なる。
【0058】従って、実施の形態1に示した先のステッ
プS4では、点光源から影と投影するプリミティブ10
の頂点を通る照射光の直線方程式を、頂点毎に異なる方
向ベクトルに基づいて頂点毎に求める。
【0059】即ち、点光源から影と投影するプリミティ
ブ10の着目する頂点へのベクトルをその着目する頂点
の方向ベクトルとし、その方向ベクトルに基づいてその
着目する頂点についての照射光の直線方程式を求める、
という処理を影と投影するプリミティブ10の頂点毎に
行う。
【0060】例えば、点光源の位置を(a,b,c)、
その着目する頂点の位置を(xa,ya,za)とすれば
それら両点を通るその照射光の直線方程式は、
【0061】 (x−xa)/(xa−a) =(y−ya)/(ya−b) =(z−za)/(za−c)=t ・・・(4) となる。
【0062】従って、実施の形態1に示した先のステッ
プS5では式(1)の平面方程式及び影と投影するプリ
ミティブ10の着目する頂点毎に上述のように求めた式
(4)の照射光の直線方程式に基づいて、その着目する
頂点(xa,ya,za)を影が投影されるプリミティブ
20を含む平面上の点に変換するため、以下の式(5)
に示すような影プリミティブ生成マトリックスが求めら
れる。
【0063】
【数2】
【0064】このように、影と投影するプリミティブ1
0の各頂点について上述した処理を行うことにより、光
源が点光源である場合に影と投影するプリミティブ10
の各頂点をそれぞれ影が投影されるプリミティブ20を
含む平面上に投影する各頂点毎の影プリミティブ生成マ
トリックスがそれぞれ求まる。
【0065】以後、実施の形態1と同様な処理を行うこ
とにより(式(3)の代わりに式(5)を用いて)、光
源が点光源である場合でも、結果として影が投影される
プリミティブ20と影プリミティブが重ならない部分が
マスクされ(描画されず)、影が投影されるプリミティ
ブ20と影プリミティブとが重なる部分のみを描画すべ
き影として得ることができる。
【0066】従って、上記実施の形態2によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、クリップ
処理が排除されて高速な付影処理が可能になる。
【0067】実施の形態3.実施の形態1、2では、影
が投影されるプリミティブが1つである場合を説明した
が、影が投影されるプリミティブは1つに限らず複数の
場合もある。この場合、以下に説明するように影が投影
されるプリミティブに影プリミティブを生成することが
できる。
【0068】尚、以下の説明では光源は平行光源の場合
を例にとって説明しているが、点光源の場合であっても
同様な手順で生成することができる。
【0069】例えば、図5に示すような場合では、影プ
リミティブは影が投影されるプリミティブ21〜23に
対して生成され、図6〜図8の場合に分けてそれぞれ順
に影プリミティブを生成すればよい。その手順は図9に
示すものである。
【0070】始めに図6に示す影が投影されるプリミテ
ィブ21に対して前述した実施の形態1の場合と同様な
手順で影プリミティブを生成する。そして、その後ステ
ップS9においてまだ未処理の影が投影されるプリミテ
ィブが残されているか否かを調べる。
【0071】この場合、影が投影されるプリミティブ2
2、23がまだ未処理で残されているので、ステップ1
に戻り、次に図7に示す影が投影されるプリミティブ2
02に対して前述した実施の形態1の場合と同様な手順
で影プリミティブを生成する。
【0072】そして、その後再びステップS9において
まだ未処理の影が投影されるプリミティブが残されてい
るか否かを調べる。
【0073】この場合、影が投影されるプリミティブ2
3がまだ未処理で残されているので、ステップ1に戻
り、次に図8に示す影が投影されるプリミティブ23に
対して前述した実施の形態1の場合と同様な手順で影プ
リミティブを生成する。
【0074】そして、その後再びステップS9において
まだ未処理の影が投影されるプリミティブが残されてい
るか否かを調べる。まだ未処理の影が投影されるプリミ
ティブはもう残されていないので影プリミティブを生成
の処理は全て終了する。
【0075】従って、上記実施の形態3によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、クリップ
処理が排除されて高速な付影処理が可能になる。
【0076】実施の形態4.上述した実施の形態3で
は、処理の対象とする影が投影されるプリミティブに対
して影プリミティブを生成する度にステンシルバッファ
を初期化して、影が投影されるプリミティブ毎にステン
シル値を新たに書き込んで更新している。
【0077】しかし、画面上では影が投影されるプリミ
ティブはそれぞれ異なる位置にあって描画の際に重なる
ことはないので、影が投影されるプリミティブ201〜
23に互いに異なるステンシル値をそれぞれ与えてそれ
らを1つのステンシルバッファに書き込んでステンシル
値毎に(影が投影されるプリミティブ毎に)順に影プリ
ミティブを生成するようにしてもよい。
【0078】そこで、実施の形態4では、以下に説明す
るような図10に示す手順で影プリミティブをそれぞれ
生成する。
【0079】始めに、各ピクセルに対するステンシル値
を初期値(例えば0)にしてステンシルバッファを初期
化する(ステップS1)。
【0080】次に、影が投影されるプリミティブ201
〜23をそれぞれ構成するピクセルについて、影が投影
されるプリミティブ毎に互いに異なる初期値以外のステ
ンシル値をそれぞれ指定して前述した諸データと共にフ
レームバッファに記憶保持させる(フレームバッファに
影が投影されるプリミティブそれぞれを描画する)(ス
テップS21)。
【0081】例えば、この場合は図11に示すように、
ステンシルバッファを初期値化するステンシル値を0と
して、影が投影されるプリミティブ201を構成するピ
クセルであることを示すステンシル値を1、影が投影さ
れるプリミティブ202を構成するピクセルであること
を示すステンシル値を2、影が投影されるプリミティブ
203を構成するピクセルであることを示すステンシル
値を3としてステンシルバッファにそれぞれ定める。
【0082】ステップS21以降の処理(ステップS3
〜ステップS9)は前述した実施の形態1と同様であ
り、ステップS9において未処理の影が投影されるプリ
ミティブが残されていると判断された場合は(ステップ
S9でYES)、ステップS3に戻って前述した実施の
形態と同様に処理を行う。
【0083】このようにして未処理の影が投影されるプ
リミティブ毎に(ステンシル値毎に)影プリミティブを
生成し付影処理を行う。
【0084】従って、上記実施の形態4によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、クリップ
処理が排除されて高速な付影処理が可能になる。
【0085】さらに、各影が投影されるプリミティブに
影プリミティブを生成する毎にステンシルバッファを初
期化して新たな影が投影されるプリミティブを構成する
ピクセルの情報を書き込むという処理が排除されるの
で、影が投影されるプリミティブが複数ある場合であっ
ても、これらの影が投影されるプリミティブに対して影
プリミティブを生成する付影処理を高速に行うことがで
きる。
【0086】実施の形態6.上述した実施の形態におい
て、影を投影するプリミティブをテクスチャ(いわゆる
イメージデータ)としても付影処理を行うことができ
る。
【0087】尚、以下の説明では光源は平行光源の場合
を例にとって説明しているが、点光源の場合であっても
同様な手順で生成することができる。
【0088】図12は、実施の形態6に係る付影処理方
法の説明図であって、透明なイメージと樹木の形をした
影を投影するプリミティブとからなるテクスチャ(イメ
ージ画像)に基づいて、平行光線が樹木の形をした影プ
リミティブを影が投影されるプリミティブの上に生成す
る様子を示している。
【0089】この場合、入力されたテクスチャではその
入力の際にテクスチャを構成する各ドットに透過度の度
合い(いわゆる透明なイメージであるか否か)を示すい
わゆるα値が設定され、このα値は、α=0の場合に最
も透過度が高くなり(透明なイメージとなり)、α=1
の場合に実像となるプリミティブがあることを示す。
【0090】尚、入力されたテクスチャのステンシル値
については、テクスチャの入力段階においてα=0の領
域のピクセルについては0に、α=1の領域のピクセル
については1にそれぞれ定める。
【0091】実施の形態6に係る付影方法は概ね実施の
形態1に係る付影方法と同様であり、図13に示すよう
に、ステップS6において、イメージ入力したテクスチ
ャの各頂点を実施の形態1と同様に式(3)に示した影
プリミティブ生成マトリックスを用いて影が投影される
プリミティブの上に投影される頂点を求める。
【0092】ここでは、図12に示すように、テクスチ
ャは平行光線に基づいて縦長(この樹木の倒立方向)に
引き伸ばされる。次に、このテクスチャの全ての頂点を
影が投影されるプリミティブの上に投影した後(ステッ
プS7でNO)、投影前のイメージ入力された状態での
テクスチャの大きさ及び投影後の各頂点の座標に基づい
て、その縦長に引き伸ばされた方向への拡大率を求める
(ステップS11)。
【0093】次に、この拡大率に基づいて、入力された
イメージの各ドットから影が投影されるプリミティブの
上に投影される頂点間のピクセルの諸データを求める
(ステップS12)。
【0094】例えば、図12において樹木が倒立したイ
メージを含むテクスチャが100ドット×100ドット
で構成され、影が投影されるプリミティブを含む平面上
に投影されたイメージの領域が200ドット(樹木の倒
立方向)×100ドット(樹木の倒立方向とは垂直な方
向)で構成された場合、この投影された影プリミティブ
の頂点間の各ピクセルの諸データは、テクスチャの投影
された頂点間の点に対応する位置のドットをこの拡大率
を用いて補間して得られた位置のドットのR、G、Bデ
ータやZデータやステンシル値等の諸データを採用する
ことで決定する。
【0095】このようにして得られた投影後のテクスチ
ャに基づいて、以後ステップS8に示すようにステンシ
ルテスト及びZデータのテストを行って、影が投影され
るプリミティブ20上にのみ描画される影プリミティブ
を求める(ステップS8)。
【0096】従って、上記実施の形態5によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、クリップ
処理が排除されて高速な付影処理が可能になる。
【0097】また、複雑な形状を有する影を投影するプ
リミティブを含んだテクスチャを採用している場合であ
っても、このプリミティブに合わせた複雑な形状を有す
る影を付することができ、複雑な形状を有するイメージ
に基づいた付影処理が可能になる。
【0098】実施の形態6.上述した実施の形態、例え
ば実施の形態1では、ステップS8でのデバイス座標系
でのZデータの比較の結果、既に描画された影が投影さ
れるプリミティブ20上に影プリミティブを描画しよう
とする場合に、影プリミティブでのピクセルのデバイス
座標系でのZ値が影が投影されるプリミティブでのその
ピクセルと対応するピクセルのデバイス座標系でのZデ
ータと等しいか又は小さければ、本来、既に描画されて
いる影が投影されるプリミティブ上に後から描画される
べき影プリミティブは視点からは手前にあるものとして
必ず描画されるはずである。
【0099】しかし、プリミティブの輪郭上の頂点が求
まると、そのプリミティブ内部(即ち、頂点と頂点との
間)のピクセルのZデータは、それら頂点に基づいた補
間によって求められた近似値である。
【0100】従って、算出された補間値同士の比較結果
によっては、既に描画されている影が投影されるプリミ
ティブ上に後から描画されるべき影プリミティブが描画
されず、影が投影されるプリミティブのままの部分が発
生する場合がある。
【0101】例えば、図14に示すように、影が投影さ
れるプリミティブの頂点を点A(0,0,0)、B
(0,9,3)とし、後から描画されるべき影プリミテ
ィブの頂点をC(0,3,1)、D(0,6,2)とす
る。
【0102】この場合、影が投影されるプリミティブで
は線分AB間の各ピクセルのデバイス座標系でのZデー
タは点A及びBのデバイス座標系でのZデータからの補
間で求めるため、dz=3/9≒0.33(2点間の距
離を描画するピクセル間隔の数で割ったもの)を点Aの
デバイス座標系でのZデータに徐々に加算することで求
める。従って、線分AB間にある点Cのデバイス座標系
でのZデータは0.99、点Dのデバイス座標系でのZ
データは1.98になる。
【0103】また、影プリミティブでは線分CD間の各
ピクセルのデバイス座標系でのZデータは影プリミティ
ブの頂点をなす点C及びDのデバイス座標系でのZデー
タからの補間で求めるため、dz=1/3≒0.33
(2点間の距離を描画するピクセル間隔の数で割ったも
の)を点Cのデバイス座標系でのZデータに徐々に加算
することで求める。
【0104】ここで、影プリミティブでの線分CD間の
ピクセルのデバイス座標系でのZデータについては、影
が投影されるプリミティブでのその対応するピクセルの
デバイス座標系でのZデータよりいずれも小さい。
【0105】従って、影が投影されるプリミティブ上に
後から影プリミティブを描画しようとしても、影が投影
されるプリミティブがそのまま残って影プリミティブが
表示されない場合が生じる。
【0106】そこで、実施の形態6では影プリミティブ
が影が投影されるプリミティブ上に必ず描画されるよう
に、例えば、実施の形態1を例にとると、ステップS8
の前の段階として、図15に示すように新たにステップ
S10を設ける。
【0107】そして、ピクセル同士のデバイス座標系で
のZデータの比較を行う前に生成された影プリミティブ
の頂点のデバイス座標系でのZ値を微少量小さくし、対
応するピクセルのデバイス座標系でのZデータについ
て、影プリミティブでの値が影が投影されるプリミティ
ブでの値より必ず小さくなるようにする。
【0108】ここで、この微少量はプリミティブを構成
するピクセルの数等に応じた適当な値を採用すればよ
い。
【0109】そして、その後、前述した場合と同様にス
テップS8において、影が投影されるプリミティブ20
を含む平面上に投影された各頂点から形成される影プリ
ミティブを描画する各ピクセルのステンシル値及びデバ
イス座標系でのZデータを、前述したように影が投影さ
れるプリミティブ20に対して与えられたステンシルバ
ッファに記憶されたそのピクセルのステンシル値及びZ
バッファに記憶されたそのピクセルのデバイス座標系で
のZデータにそれぞれ照合(比較)して、影が投影され
るプリミティブ20上にのみ描画される影プリミティブ
を求める。
【0110】従って、上記実施の形態6によれば、ステ
ンシル値の比較及びデバイス座標系でのZデータの比較
に基づいて影が投影されるプリミティブ20と影プリミ
ティブとが重なる部分にのみ影を描画する(ステンシル
バッファを用いたマスク処理を行う)ことで、クリップ
処理が排除されて高速な付影処理が可能になる。
【0111】また、描画されるべき影プリミティブを既
に描画された影が投影されるプリミティブ上に描画する
場合に、既に描画されている影が投影されるプリミティ
ブ上に後から描画されるべき影プリミティブが描画され
ずに影が投影されるプリミティブのままの部分が発生す
る事態は排除され、その後から描画されるべき影プリミ
ティブはその影が投影されるプリミティブ上に必ず描画
される。
【0112】実施の形態7.影の色は一般に黒と考えら
れるが、影プリミティブの色は影が投影されるプリミテ
ィブの色の影響が残るように定めれば、現実感のあるリ
アルな付影表現を実現することができる。
【0113】画面上のピクセルの色はフレームバッファ
に記憶されたR、G、Bの各データによって決定される
ので、例えば、以下の式(6)に示すような影プリミテ
ィブの色と一般的な影の色(黒)との重み付けを行って
決定してもよい。
【0114】 (影プリミティブの色) =(影が投影される平面の色のR、G、Bの各データ)×(1−α) +(影の色R、G、Bの各データ)(黒)×α (0<α<1) ・・・(6)
【0115】ここで、αは前述したように、フレームバ
ッファに記憶され、ピクセルの透過度の度合い(いわゆ
る透明なイメージであるか否か)を示す値である。
【0116】従って、式(6)では影が投影されるプリ
ミティブを構成するピクセルの輝度に応じて黒色を反映
させて輝度を落とす(暗くする)ことで付影表現を実現
している。従って、上述した実施の形態中のステップS
8では、影プリミティブは式(6)に基づいて決定され
た色で描画すればよい。
【0117】また、影を発生させる光線に色を付した場
合では、その光線が影を投影するプリミティブによって
遮断されることを利用すれば、画面上では影プリミティ
ブの色はその光線の色が影を投影するプリミティブによ
って排除されることによって定まることから以下の式
(7)に基づいて決定することも可能である。
【0118】 (影プリミティブの色) =(影が投影されるプリミティブの色のR、G、Bの各データ) −(遮断される光の色のR、G、Bの各データ) ・・・(7)
【0119】即ち、式(7)は、プリミティブに色を付
した光線が当てられると、光線が当てられたプリミティ
ブは元のプリミティブ自体の色と光線の色の両者の影響
を反映させた色を新たな色として描画することが考えら
れるが、逆に、プリミティブで光線が遮断された影プリ
ミティブになる部分はその新たな色とせずに、その新た
な色から光線の色を排除した色(元のプリミティブ自体
の色)であることを利用したものである。
【0120】従って、実施の形態7によれば、ステンシ
ル値の比較及びデバイス座標系でのZデータの比較に基
づいて影が投影されるプリミティブ20と影プリミティ
ブとが重なる部分にのみ影を描画する(ステンシルバッ
ファを用いたマスク処理を行う)ことで、クリップ処理
が排除されて高速な付影処理が可能になる。
【0121】また、影の色を影が投影されるプリミティ
ブの色の影響を及び光線の色の影響を反映させた色とし
て影を描画することでリアルな影を作ることができる。
【0122】
【発明の効果】従って、この発明によれば、上述のよう
な構成を備えたので、高速な付影処理を実現することの
できる付影処理方法を得ることができる。
【図面の簡単な説明】
【図1】 実施の形態1に係る付影処理方法の説明図で
ある。
【図2】 実施の形態1に係る付影処理方法の説明図で
ある。
【図3】 実施の形態1に係る付影処理方法の説明図で
ある。
【図4】 実施の形態1に係る付影処理方法の説明図で
ある。
【図5】 実施の形態3に係る付影処理方法の説明図で
ある。
【図6】 実施の形態3に係る付影処理方法の説明図で
ある。
【図7】 実施の形態3に係る付影処理方法の説明図で
ある。
【図8】 実施の形態3に係る付影処理方法の説明図で
ある。
【図9】 実施の形態3に係る付影処理方法の説明図で
ある。
【図10】 実施の形態4に係る付影処理方法の説明図
である。
【図11】 実施の形態4に係る付影処理方法の説明図
である。
【図12】 実施の形態5に係る付影処理方法の説明図
である。
【図13】 実施の形態5に係る付影処理方法の説明図
である。
【図14】 実施の形態6に係る付影処理方法の説明図
である。
【図15】 実施の形態6に係る付影処理方法の説明図
である。
【図16】 従来の画像表示装置及び方法の説明図であ
る。
【図17】 従来の画像表示装置及び方法の説明図であ
る。
【図18】 従来の画像表示装置及び方法の説明図であ
る。
【図19】 従来の画像表示装置及び方法の説明図であ
る。
【符号の説明】
10 影を投影するプリミティブ、20〜23 影が投
影されるプリミティブ、30 影を投影するプリミティ
ブ。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 情報処理装置を用い仮想照射光線を付影
    要素に照射した場合に被付影要素上に投影される該付影
    要素の影を表示画面上に描画する付影処理方法におい
    て、 前記被付影要素を前記表示画面上に描画するピクセルに
    ついての前記表示画面上での多次元位置情報及び描画対
    象である旨の情報をメモリに記憶する第1の工程と、 前記付影要素の予め定められた点を通る仮想照射光線及
    び前記被付影要素を含む面を求める第2の工程と、 前記仮想照射光線及び面に基づいて前記予め定められた
    点が前記被付影要素を含む面上に投影された点を求める
    第3の工程と、 前記面上に投影された各点で定められ前記付影要素に対
    応した領域に相当するピクセルについての前記表示画面
    上での多次元位置情報及び投影される影である旨の情報
    を定める第4の工程と、 描画対象である旨の情報が前記第1の工程で前記メモリ
    に記憶されたピクセルのうち、投影された影である旨の
    情報が前記第4の工程で定められたピクセルについて、
    そのピクセルを付影対象として前記表示画面上に影を描
    画する第5の工程とを備えた付影処理方法。
  2. 【請求項2】 被付影要素は、複数とし、第1から第5
    の工程は、被付影要素毎に行うことを特徴とする請求項
    1に記載の付影処理方法。
  3. 【請求項3】 第1の工程は、複数の被付影要素につい
    て記憶し、第2から第5の工程は、被付影要素毎に行う
    ことを特徴とする請求項1に記載の付影処理方法。
  4. 【請求項4】 付影要素は、イメージデータからなるこ
    とを特徴とする請求項1乃至3のいずれかに記載の付影
    処理方法。
  5. 【請求項5】 第5の工程は、付影対象とされたピクセ
    ルについて、投影された影での表示画面上の奥行き座標
    の大きさを、メモリに記憶された前記表示画面上の奥行
    き座標の大きさより小さくすることを特徴とする請求項
    1乃至4のいずれかに記載の付影処理方法。
  6. 【請求項6】 第5の工程は、描画される影の色を、被
    付影要素を描画するピクセルの色に基づいて決定するこ
    とを特徴とする請求項1乃至5のいずれかに記載の付影
    処理方法。
  7. 【請求項7】 第5の工程は、描画される影の色を、描
    画される仮想照射光線の色に基づいて決定することを特
    徴とする請求項1乃至6のいずれかに記載の付影処理方
    法。
JP17943397A 1997-07-04 1997-07-04 付影処理方法 Pending JPH1125286A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17943397A JPH1125286A (ja) 1997-07-04 1997-07-04 付影処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17943397A JPH1125286A (ja) 1997-07-04 1997-07-04 付影処理方法

Publications (1)

Publication Number Publication Date
JPH1125286A true JPH1125286A (ja) 1999-01-29

Family

ID=16065788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17943397A Pending JPH1125286A (ja) 1997-07-04 1997-07-04 付影処理方法

Country Status (1)

Country Link
JP (1) JPH1125286A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084400A (ja) * 1999-09-10 2001-03-30 Namco Ltd 3次元コンピュータグラフィックを処理する画像処理装置、画像処理方法および記録媒体
JP2002042162A (ja) * 2000-07-27 2002-02-08 Namco Ltd ゲームシステム及び情報記憶媒体
JP2002092635A (ja) * 2000-09-20 2002-03-29 Sega Corp 画像処理装置
US6717575B2 (en) 2000-02-17 2004-04-06 Sony Computer Entertainment Inc. Image drawing method, image drawing apparatus, recording medium, and program
US6781592B2 (en) 2000-04-26 2004-08-24 Konami Corporation Image generating device, image generating method, readable storage medium storing image generating program, and video game device
US6888547B2 (en) 2000-08-31 2005-05-03 Konami Corporation Three-dimensional image processing method and apparatus, readable storage medium storing three-dimensional image processing program and video game system
JP2010510608A (ja) * 2006-11-21 2010-04-02 クゥアルコム・インコーポレイテッド グラフィックスアプリケーションのための効率的なシザリング

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084400A (ja) * 1999-09-10 2001-03-30 Namco Ltd 3次元コンピュータグラフィックを処理する画像処理装置、画像処理方法および記録媒体
US6717575B2 (en) 2000-02-17 2004-04-06 Sony Computer Entertainment Inc. Image drawing method, image drawing apparatus, recording medium, and program
US6781592B2 (en) 2000-04-26 2004-08-24 Konami Corporation Image generating device, image generating method, readable storage medium storing image generating program, and video game device
JP2002042162A (ja) * 2000-07-27 2002-02-08 Namco Ltd ゲームシステム及び情報記憶媒体
US6888547B2 (en) 2000-08-31 2005-05-03 Konami Corporation Three-dimensional image processing method and apparatus, readable storage medium storing three-dimensional image processing program and video game system
JP2002092635A (ja) * 2000-09-20 2002-03-29 Sega Corp 画像処理装置
JP4600793B2 (ja) * 2000-09-20 2010-12-15 株式会社セガ 画像処理装置
JP2010510608A (ja) * 2006-11-21 2010-04-02 クゥアルコム・インコーポレイテッド グラフィックスアプリケーションのための効率的なシザリング
US8269792B2 (en) 2006-11-21 2012-09-18 Qualcomm Incorporated Efficient scissoring for graphics application

Similar Documents

Publication Publication Date Title
JP5232358B2 (ja) アウトラインフォントのレンダリング
US8035641B1 (en) Fast depth of field simulation
CN111508052B (zh) 三维网格体的渲染方法和装置
US6038031A (en) 3D graphics object copying with reduced edge artifacts
KR970003325B1 (ko) 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템
US6292192B1 (en) System and method for the direct rendering of curve bounded objects
US8269770B1 (en) Tessellation of trimmed parametric surfaces by walking the surface
JPH0778267A (ja) 陰影を表示する方法及びコンピュータ制御表示システム
JPH0757117A (ja) テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム
KR100606653B1 (ko) 투명 대상의 실시간 음영을 생성하는 시스템 및 방법
US20020063705A1 (en) Apparatus and method for drawing three dimensional graphics by controlling alpha value based on Z coordinate value
JPH1125286A (ja) 付影処理方法
EP2728551B1 (en) Image rendering method and system
KR101118597B1 (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템
KR100295709B1 (ko) 스폿라이트 특성 형성 방법 및 이것을 이용한 화상 처리 시스템
JP2001101441A (ja) レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体
JP3258286B2 (ja) 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置
KR100544803B1 (ko) 영상 프리미티브의 고속 처리
Yu Efficient visibility processing for projective texture mapping
JP2004054634A (ja) 画像処理装置およびその方法
JP3261832B2 (ja) 画像生成装置
JPH08273002A (ja) ラスタ処理の方法及びコンピュータ・グラフィックス・システム
KR0164160B1 (ko) 그래픽 처리장치
JP2952585B1 (ja) 画像生成方法
KR0180160B1 (ko) 3차원 물체의 랜더링 방법