JPH0273479A - 図形処理装置 - Google Patents

図形処理装置

Info

Publication number
JPH0273479A
JPH0273479A JP63224448A JP22444888A JPH0273479A JP H0273479 A JPH0273479 A JP H0273479A JP 63224448 A JP63224448 A JP 63224448A JP 22444888 A JP22444888 A JP 22444888A JP H0273479 A JPH0273479 A JP H0273479A
Authority
JP
Japan
Prior art keywords
shadow
data
pixel data
pixel
polygon
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.)
Granted
Application number
JP63224448A
Other languages
English (en)
Other versions
JPH0727581B2 (ja
Inventor
Takashi Matsumoto
尚 松本
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.)
NIPPON I B M KK
IBM Japan Ltd
Original Assignee
NIPPON I B M KK
IBM Japan 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 NIPPON I B M KK, IBM Japan Ltd filed Critical NIPPON I B M KK
Priority to JP63224448A priority Critical patent/JPH0727581B2/ja
Priority to EP19890309044 priority patent/EP0358493A3/en
Priority to US07/404,238 priority patent/US5043922A/en
Publication of JPH0273479A publication Critical patent/JPH0273479A/ja
Publication of JPH0727581B2 publication Critical patent/JPH0727581B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
    • G09B9/30Simulation of view from aircraft
    • G09B9/301Simulation of view from aircraft by computer-processed or -generated image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順でこの発明を説明する。
Δ、産業上の利用分野 B、従来技術 C6発明が解決しようとする問題点 り1問題点を解決するための手段 E、実施例 El、システムの概要 E2.バイブライン型プロセッサの詳細E3.広がりを
持つ光源 E4.複数の点光源 E5.複数の広がりのある光源 E6.ダミーのスパンデータ F9発明の効果 A、産業上の利用分野 この発明は、3次元グラフィックス表示おいて、Zバッ
ファ法(スキャンライン・Zバッファ法を含む)の隠面
消去ハードウェアを流用して高速に物体の影を描くこと
ができる図形処理装置に関し、とくに簡易な構成で影の
有無を判定できるようにしたものである。
B、従来技術 従来の影付けの技術は大きく分けて、シャドウ・マツピ
ング、レイ・トレーシングおよびシャドウ・ポリゴンの
381類の方法に分4すられる。
シャドウ・ポリゴンの方法は後述するように本質的には
隠面消去法の変形であり、他の2つの手法と異なり、ス
キャンライン法や2バツフア法によリバードウエア化お
よび高速化が図れる。この発明はシャドウ・ポリゴン法
を改善するものであり、従来技術としてこのシャドウ・
ポリゴン法について説明する。
まずオリジナルのシャドウ・ポリゴンの方法を説明し、
つぎに、シャドウ・ポリゴンの方法をZバッファ法と組
合せて使えるように改良したBr。
を膳8nおよびBadlerのアルゴリズムについて説
明する。
(1)  オリジナルの方法 シャドウ・ポリゴンの方法ではシャドウ・ボリュームと
呼ばれる影付けのための仮想の物体(領域)を用いる。
シャドウ・ボリュームというのは光源と物体とによって
生じる影空間(内側ではその物体の影になる空間)のこ
とである(第23図)。高速描画で通常なされているよ
うに、すべての物体をポリゴンで表した場合1.シャド
ウ・ボリュームは半無限の多面体で表現され、その側面
もすべてポリゴン(半無限)で表現される。
そしてこの側面のことをシャドウ・ポリゴン(影ポリゴ
ン)と呼ぶ。このシャドウ・ポリゴンをもともとある物
体のポリゴンと同時に陰面消去して、影の部分を見つけ
ようとするのがシャドウ・ポリゴンの方法である。
第24B図のような視点および光源のもとで、A、Bの
2つの物体を考える。影は第24A図のようにできる。
物体AはSl、S2というシャドウ・ポリゴンと面AO
A1.八1A2で囲まれたシャドウ・ボリュームとを作
る。視線とシャドウ・ポリゴンとが交差するとき、視線
はシャドウ・ボリュームを出入りしている。スキャンラ
イン法などによって、各ピクセル内部にあるシャドウ・
ポリゴンを物体の表面まで順に調べていくこと(一種の
陰面消去)により、影付けを行うことができる。
第24B図で点aの方向のポリゴンを調べると、最初に
あるのが点aの乗ったポリゴンBOB2であるので、点
aは影の外にあるとわカする。点すの方向には最初にシ
ャドウ・ポリゴンS1があり、次にあるのが点すの乗っ
たポリゴンBOB2であるので、点すはシャドウ拳ボリ
ュームの中にあることがわかる。点Cの場合は途中にシ
ャドウ・ポリゴンS1と32とがあり、視線はSlで一
度シャドウ・ボリュームに入るが、S2によってシャド
ウ・ボリュームから抜ける。点Cは結局シャドウ・ボリ
ュームの外にあることがわかる。
実際には第25図のように、視点がすでにシャドウ・ボ
リュームの中にあったり、複数のシャドウ・ボリューム
が重なっていたりする場合もある。そこで、シャドウ・
レベルというものを考え、シャドウ・ボリュームと視線
との交差毎に1ずつ増減させ、シャドウ拳レベルが0の
点だけ影の外と判定する。
このシャドウ・ポリゴンの方法の最大の問題点はシャド
ウ・ポリゴンのデータをポリゴン・データに加えるため
扱うポリゴン数が増加し、元の物体は小きくても半無限
のシャドウ・ポリゴンは画面上で大きな面積を占めるた
め、1つ−のピクセルにかかわるポリゴンの数が大幅に
増大することである。
(2)  BrotmanおよびBadlerのアルゴ
リズム(1)で説明した方法をZバッファ法(スキャン
ライン・Zバッファ法を含む)と共に用いるには少し工
夫が必要である。この問題を解決したBr。
t@anおよびBadlerのアルゴリズムについて説
明する。詳しくは論文 L、S、Brotman an
dN、1.Badler、”Generating 5
oft Shadows with aDepth B
uffer A1goriths+”、IEEE Co
mputerGraphics  and  Appl
icatio口s、october  1984゜pp
、5−12.を参照されたい。
基本的にはZバッファ(デプス・バッファ)を修正して
、デプス値の他に影付けの際に必要になる情報も格納す
ることにして、以下のように描画する。
1) 情景内のすべての物体を通常のポリゴン展開方法
(ポリゴン・データをピクセル毎のデータに展開する方
法)で2バツフアに書き込む。
2) シャドウ・ボリュームを計算し1.同じ展開方法
でバッファに書き込む。しかしその際に直接画像のデー
タは変化させず、ピクセル内のデータ構造(バッファ)
の中の様々なカウンタの値を更新する。
3) 影による影響を考慮して(バッファのカウンタの
値を参照して)、輝度値を計算する。
第26図にこの手法で使っている修正きれた(拡張され
た)Zバッファを示す。第26図に沿って修正されたZ
バッファの説明を行う。2次元の配列の各セルが画面上
の各ピクセルに相当しており、各セルは5つの要素から
なるレコードのS造を持っている。その内の1つはもち
ろんデプス値(DEPT旧で、他に物体の記述へのポイ
ンタ(OBJPTR)、そのピクセルでの法線ベクタ(
NORMAL)、影表現のための2つのポインタ(Sr
、Sb)が格納される。物体へのポインタと垂線ベクタ
は輝度値がポリゴン展開時に計wされないため記憶して
おく必要がある。物体へのポインタは該当するピクセル
で見えているポリゴンの記述を指し示しており、各ポリ
ゴンに対して1つの記述レコードが用いられる。その記
述レコードにはポリゴンの色(COLOR)、発光度(
TRA)IsMITTANcE)、光沢(GLOSSI
NESS)、反射率(REFLE CTANCE)とい
った輝度計算に必要なポリゴンの属性データが入ってい
る。バッファの法線ベクタはそのピクセルを占めるポリ
ゴンのその点における法線ベクタで、通常ポリゴン展開
時に補完きれた値として計算される。
ある点が影になフているかどうか決定するために、その
点を取り囲むシャドウ・ボリュームについての情報を管
理する必要がある(第27図参照)。Sfポインタは表
側のシャドウ・ポリゴン(FSP:外向の法線ベクタが
視点に向かうベクタと鋭角をなすシャドウ・ポリゴン)
が記述されたレコードのリストをざす(第26図参照)
。同様にsbポインタは裏側のシャドウ・ポリゴン(B
SP:外向の法線ベクタが視点に向かうベクタと鋭角を
なきないシャドウ・ポリゴン)が記述されたレコードの
リストを指す。各Sfまたはsbのリスト内に1つの光
源において多く−で1つのレコードが存在する。つまり
、ある光源についてそのピクセルを占めるポリゴンが自
己陰面になっていれば、その光源についてのレコードは
必要ない。しかし、メモリ容量としては各ピクセルにつ
いて光源の数だけのレコードを格納するのに十分な量を
用意する必要がある。このレコードには光源の識別子(
LIGHT−3OIIRCE1.D、)と影かどうか判
定するためのフラグやカウンタが入れられている。
そのフラグやカウンタである第26図中のPOINT−
SOIIRCELEVEL、0BJECT LEVEL
、DARKNESSLEVELの使われ方、つまり影か
どうかの判定方法について解説する。
普通の物体を構成するポリゴンのバッファへの展開(Z
バッファ法に従って、ピクセル毎にデプス値、法線ベク
タ、物体へのポインタをセットする)が済んだら、゛シ
ャドウ・ポリゴンをバッファへ展開する。シャドウ・ポ
リゴンのバッファへの展開に際しては、拡張されたZバ
ッファのSf またはsb のポインタが指すレコード
の内の該当する(そのシャドウ・ポリゴンを生成し、た
光源に相当する)レコードのみを操作する。シャドウ・
ポリゴンの展開はシャドウ・ボリューム単位で行われる
。あるピクセル上の点(普通のポリゴンの展開でセット
された点)が表側のシャドウ・ポリゴンの後ろにあれば
Sf リストの該当するレコードノPOIHT−3OU
RCE LEVEL ヲI L: セットt ル。点が
裏側のシャドウ・ポリゴンの手前にあればsb リスト
ノ該当するレコ−F ノPOINT−3OIJRCE 
LEVELを1にセットする。もし、レコードがリスト
内にないときは、新たにそのシャドウ・ボリュームを生
成した光源に対するレコードをリストに追加して前記の
操作を行なう。
1つのシャドウ・ボリュームについてのすべてのシャド
ウφポリゴンの展開が済むたびに、各ピクセルのsr、
sbのリストについて、該当するレコードが存在し、−
かっ、2 ツcD POINT−SOURCELEVE
Lが共に1であるか調べる。この条件を満たす点はその
シャドウ・ボリューム内に含まれ、影になっていること
が確定する。
光源が単純な点光源のときはこのこ−とだけ判明すれば
十分である。つまり、影の部分であることが確定したと
いう情報を記憶するためにDARKNESS LEVE
L ニテも1をセットしておけばよい(もちろん、PO
TNT−SOURCE LEVEL とDARに)IE
sS LEVELはシャドウ・ポリゴンの展開を始める
前に○にリセットされている)。
Brot層8nおよびBadlerの論文では広がりを
持つ光源を扱い、半影も描画できるように工夫がなぎれ
ている。通常よくやられているように、広がりを持つ光
源は複数個の同等な点光源で近似して扱う。それぞれの
点光源についてシャドウ・ボリュームを生成する。同一
光源に属している点光源について、ある点を影にしてい
る点光源の数と影にしていない点光源の数の比で半影の
度合が決定される。そのためSf リストのレコード内
には、ある光源に属しその点を影にしている点光源の数
をカウントするカウンタ0BJECT LEVELが設
けられている。前述のようにある点があるシャドウ・ボ
リュームについて影であると確定したら0BJECT 
LEVEL をカウント・アップする。ただし、この際
に彼等のアルゴリズムでは、シャドウ・ボリュームの元
になる物体の外形ポリゴン(第27図の物体シルエット
ポリゴンO3Pに相当)毎にシャドウ・ボリュームの処
理を行っている。物体の外形ポリゴン毎に0BJECT
 LEVELの集計をとり、最大の0BJECT LE
VE LをそのピクセルのDARKNESS LEVE
Lとしている。そうすることで、同一の点光源と異なる
外形ポリゴンによって生成きれる複数のシャドウ・ボリ
ュームに関して、それらの重なり部分で影のダブル・カ
ウントが起こるのを防いでいる。結局、 1)物体の外形ポリゴンが替わる度に0BJECT L
EVELをOにリセットする。
2)その物体の外形ポリゴンから生成されるすべてのシ
ャドウ・ボリュームについて前述の方法で影判定を行な
う。影である点についてはそのピクセルのSf リスト
内の該当するレコードの0BJECTLEVELを1だ
けカウント・アップする。
3)その物体の外形ポリゴンから生成されるすべてのシ
ャドウ・ボリュームについて処理が済んだら、現在(7
) DARKHESS LEVEL と0BJECT 
LEVEL (7)内の値の大きい方でDARKHES
S LEVELを更新する。
という手順で広がりを持つ光源を近似するための点光源
をサポートしている。
以上で述べた影判定が終了したら、各ピクセルについて
、そのピクセルを占めるポリゴンの属性と法線ベクタ、
光源毎にその点が影になっているかどうか(光源が広が
りを持っていれば、どの程度形になっているか)といっ
た情報が判る。これらの情報を用いてピクセル毎に輝度
値を計算する。
つぎにこのアルゴリズムの問題点についてW”Cる。
1)最大の問題点はシャドウ・ボリュームを生成するも
とになる物として凸の外形ポリゴンしか使えないことで
ある。凸でない外形ポリゴンが作るシャドウ・ボリュー
ムを許すと、表側のシャドウ・ポリゴンより後ろにあっ
て、裏側のシャドウ・ポリゴンよりも手前にある(つま
−リ、前述の影判定の条件を満たしている)が、光が当
たる点が存在するため矛盾が生じる。高速描画では通常
、描画時に三角形または細かい凸ポリゴンに物体を細分
割して表示しているので、このアルゴリズムでは実際上
この細分割されたポリゴンからシャドウ・ボリュームひ
いてはシャドウ・ポリゴンを生成することになり、取り
扱うポリゴンの数が数倍に増えてしまう。
2) シャドウ・ボリューム毎に各ピクセルで影の条件
を満たしているかどうかチエツクする必要があるが、彼
等のアルゴリズムにはこのチエツク法が示されてない。
正直にバッファの全空間を調べたのでは、余程特殊なハ
ードウェアがなくてはたいへん効率が悪い。
3) アルゴリズムの問題点というよりは品質と高速性
、品質と記憶容量のトレード・オフの問題であるが、こ
の方法では単一点光源のみでも普通のZバッファの10
倍程度の容量のバッファが必要である。輝度計算も画面
上の1つ1つのピクセルについて色々な情報を参照しな
から複−雑な計算を行なっている。インターラクティブ
またはリアルタイムの表示用には品質重視の程度が強過
ぎる。
非常に高品質な映像が要求される時はレイ・トレーシン
グ等を時間を掛けて行なえばよくアニメーション、デー
タ作成や設計の際のプレビューには高速性が欠かせない
。なお同様の先行文献として特開昭61−133483
号がある。これは上述のものと本質的に同じである。
C1発明が解決しようとする問題点 この発明は以上の点を考慮してなされたものであり、凹
物体の影を直接判定することができ、その結果凹物体を
凸物体に分割して判別するという煩雑ざのない影付は手
法を提供することを目的としている。
また影の判定自体を極めて簡易に行える影付は手法を提
供することを目的としている。
ざらに複数の黒光1jA(1つの広がりのある光源も含
む。)による影を簡易に生成できる影付は手法を提供す
ることを目的としている。
ざらに量子化の手法を採用すること−により、若干の品
質の劣化のもとで格段の処理の高速化が図れる影付は手
法を提供することを目的としている。
D0問題点を解決する手段 この発明は以上の目的を達成するために、視線と、所定
のシャドウボリューム に属するシャドウポリゴンとの
交差の回数の偶奇性を用いて画面上に見えている点が影
の中にあるかどうかを判定するようにしている。
この原理は以下のとおりである。
第2図(8)に凸の外形ポリゴンがつくるシャドウ・ボ
リューム、図第2図(b)に凸でない外形ポリゴンがつ
くるシャドウ・ボリュームの例を示す。ただし、図は所
定のスキャンラインと視点とかつ(る平面上で描いであ
る。今後もこの描き方を断わりなく用いることがある。
第2図からも判るように、凸または凸でない外形ポリゴ
ンからつくられた1つのシャドウ・ボリュームでは光の
直進性より、第2図(b)のように影の部分が、ある平
面内12つ以上になってもその部分−はお互に重なるこ
とはない。つまり、第3図のようには決してならない。
そこで、第2図の場合、影になる点が存在する部分とい
うのは視線がシャドウ管ポリプンと奇数回文わる部分に
なっていることがわがる。
ところで実際には第4図のように視点がシャドウ・ボリ
ュームの中にあるときもあるの。このときは奇数団交わ
る部分が光が当たっており、偶数回の部分が影になって
いる。
視線とシャドウ・ポリゴンとの交差の回数の偶奇性と、
視点がシャドウ・ボリューム内にあるかどうかとに基づ
いて影かどうか決定するのが、この発明の影判定の基本
アイデアである。
ざらにこの発明では複数の光源を扱う場合に、光源単位
で各ピクセル位置の影判別を独立して実行し、その後者
ピクセル位置ごとに影と判別された回数を求め、これに
応じて影の#Aざを決定するようにしている。この場合
形判別回数をカウントするカウンタは一種類で済み、構
成が簡単になる。すでに述べたように、従前ではシ、ヤ
ドウ・ボリューム単位でい(つの光源が当該ピクセル位
置に影を落としているかを決め、そののち最も多い回数
をそのピクセル位置の影の濃ざとしていたので、二種類
のカウンタ(記憶領域)が必要であった。
またこの発明では光源どうしが離れてそれぞれの個性を
考慮しなくてはならない場合に、すなわち各光源の角度
とポリゴンの法線ベクタとに基づいて影の濃ざが変化す
る場合に、法線ベクタをクラス分けして量子化するよう
にしている。このようにすることにより高速な計算が可
能になる。
ざらにこの発明ではシャドウ・ボリュームを処理する際
に処理範囲を規定する情報を設けるようにして、不必要
な計算を回避するようにしている。
E、実施例 El、システムの概要 以下この発明に一実施例について説明しよう。
第5図はこの実施例の図形処理装置を全体として示すも
のであり、この第5図におい−で図形処理装置はポリゴ
ン分割されたサーフェス・モデルを処理してピクセル・
データを生成し、このピクセル・データを画面に表示さ
せるものである。この図形処理装置の基本的な機能は隠
面消去、グーロー・シェーディングおよび影付けである
ホスト・コンピュータ1上ではグラフィックス・アプリ
ケーションが実行され、変換部2にワールド座標表示の
ポリゴン・データ、すなわちポリゴンの各頂点の座標お
よび色情報と、同様のシャドウ・ポリゴン・データが供
給されている。
変換部2は通常のポリゴンおよびシャドウ・ポリゴンの
ワールド座標を透視変形、スケール変形し、画面上の座
標および奥行(デプス)データに変換する。スパン・デ
ータ生成部3はDDA (デジタル・デファレンシャル
・アナライザ)等の手法で変換ポリゴン・データからそ
のポリゴンが掛かっているスキャンラインごとのスパン
・データを生成している。
スパン・データは第7図に示すようなものである。なお
図ではスキャンライン・Zバーツファ法およびグーロー
・シェーディングに用いるテ°−夕のみを説明の便宜上
示しである。まずこれらについて説明する。
まず、表記法を説明する。今後とくに断わらない限り、
スパン・データに関する部分はこの表記法を用いるもの
とする。直交座標系(スクリーン座標系)においては、
便宜的に座標軸の向きを通常のスキャンライン走査方向
、つまりX座標値は左から右へ増加し、ym標値は上か
ら下に増加するものとする。xn、yn をそれぞれn
番目の頂点の画面(スクリーン)上のx、y座標とし、
Znをn番目の頂点のデプス値とし、int#n番目の
頂点の輝度の値とする(第6図)。もちろん、カラーが
サポートされているときは、一つの点あたりの輝度値の
数は、例えば赤、縁、青につきそれぞれ−っずっという
ように、複数になる。ここでは、説明を簡単にするため
一点あたりの輝度値は一つとする。
グーa−・シェーディングでは、画面上のポリゴンの各
頂点で指定されたデプス値や一輝度のデータを画面上で
線形に補完して描画する。この際はとhどのシステムで
、まずスパン・データをスキャンライン毎に作成し、そ
れからスパン・データをスキャンライン方向に展開する
(多くのエンジニアリング・ワークステーションでは、
このスパンデータの展開をハードウェアで実行している
)。ここで、スパン・データというのは描こうとしてい
るポリゴンのうち特定のスキャンラインに掛かっている
部分を表現するデータで、通常以下のようなデータを含
んでいる(第7図)。
(XL、XR,ZL、dZ、 IL、dI)XL、XR
はスパンの両端のX座標を表わし、今は便宜上それぞれ
左端、右端とする。ZL、 ILはそれぞれXLにおけ
るデプス値、輝度値を表わす。dZ、dIはXL側から
XR側へスキャンライン上で、1ピクセルずれたときの
デプス値、輝度値の変化量(差分:線形補完なので定数
)を表わす。よ7て、スパンデータの展開はXLからX
Rに向かって、デプス値と輝度値にそれぞれdZ、dI
をピクセル毎に加算することによって行われる。コンス
タント・シェーディングの場合は、同一のポリゴン内で
は輝度一定で色づけを行なうので、上記の説明からdI
についての記述を削除したものとなっている。
この実施例では以上のデータのほかに属性データATT
Rを用いスパン・データをっぎのようにしている。
(ATTR,XL、XR,ZL、dZ、IL、dl)属
性データはシャドウ・ポリゴンと普通のポリゴンを区別
したり、影付は処理のためのものであり、つぎ04つの
値を採る。
OPjシャドウ・ポリゴンでない普通のポリゴンのスパ
ン(Ordinary Polygon)SP;シャド
ウ・ポリゴンのスパン(EV  IFでない)  (S
hadovPolygon)EV:1つのシャドウ・ボ
リューム内の最後のシャドウ・ポリゴンのスパン  (
End 5pan in aVolu■e) IF:シャドウ・ポリゴンのスパンの一種で影判定フラ
グを反転する動作を伴う (Invert Flag)
なおEVは上述のとおり影判定をシャドウボリューム単
位で行う必要から設けたものである。
すなわちシャドウ・ボリュームごとに各ピクセル位置に
おいてシャドウ・ポリゴンと視線との交差の回数の偶奇
性より、ピクセル位置を占めている点が影になっている
がどうかの判定を下だざなくてはならない。そのため、
1つのシャドウ・ボリュームに属するシャドウ・ポリゴ
ン毎にスパン・データの処理を行なう。その際、各シャ
ドウ・ボリュームの終りをEVで表わすのである。
またIFは視点の位置に関するものである。すなわち、
影判定フラグで偶奇性を調べることにし、シャドウ・ポ
リゴンと視線が交差する度にこのフラグを反転する。し
かし、第4図を参照して説明したように、視点がシャド
ウ・ボリュームの中に含まれていると、影判定の際の偶
奇性が逆転する。このため、視点がシャドウ・ボリュー
ム内に含まれるときはそのシャドウ・ボリュームのスパ
ン・データの1つにIFの属性を持たせて、影判定フラ
グを反転きせることにする。、シャドウ・ボリューム内
に視点が含まれているがどうかは、たとえばそのシャド
ウ・ボリュームをつくる元になった外形ポリゴンまたは
立体と視点を一緒に、光源を仮の視点として陰面消去す
れば判る。本来の視点が可視であればシャドウ・ボリュ
ーム外にあるし、不可視ならシャドウ・ボリュームに含
まれる。
第5図の説明に戻る。
ピクセル変換部4はスパン・データから隠面消去、グー
ロー・シェーディングおよび影付けの施されたピクセル
・データを生成するものである。
このピクセル変換部4においてはスパン・データ生成部
3からのポリゴンごとのスパン・データを第8図に示す
ようにスキャンライン単位でまとめて表示リスト・メモ
リにストアする。なお第8図でLはスキャンライン、S
はスパンを示す。また図は誇張されている。このように
ストアするのは後段のバイブライン型プロセッサ6がス
キャンライン単位で全ポリゴンのスパン・データを受は
取り、ピクセル・データを生成するから、である。バイ
ブライン型プロセッサ6からのピクセル・データはフレ
ーム・バッファ7にストアされ、CRT(陰極線管)8
へと供給される。
バイブライン型プロセッサ6の主たる機能は第1図に示
すとおりである。具体的な構成は後述する。
なおこのプロセッサ6においては、所定のスキャンライ
ン上のスパン・データをピクセル毎のデータに展開する
処理を行うとき、スパン・データを処理する順番が問題
になる。その順序は、1) まず普通のポリゴンのスパ
ン・データをすべて処理する。
2) つぎにシャドウ・ポリゴンのスパン・データをシ
ャドウ・ボリューム毎に処理する となる。第11図はこのような順序による処理における
入力例を示す。
第1図において、スキャンラインごとに処理が実行され
る。1スキヤンラインにおける処理はつぎのようである
。まず通常のポリゴン、すなわち物体を表示するための
ポリゴンに関す、るスパン・データが隠面消去部9およ
びシェーディング部10に供給される。隠面消去部9は
当該スパン・データに基づいて当該スキャンラインの各
ピクセル位置の奥行データ2を展開し、2バツフア11
の奥行データ2°と比較する(第9図(a))。Zバッ
ファ11には先行するポリゴンの奥行データがストアさ
れている。ただし今回が当該スキャンの初めてのデータ
の場合には初期値たとえば背景奥行位地がストアされて
いる。隠面消去部9は各ピクセル位置で手前側の奥行デ
ータを残すようになっている。第9図(a)の例では入
力データiのうち丸印のものがZバッファ・データ2゛
より手前側となっており、この結果第9図(B)に示す
ようにZバッファ11の内容が変更される。
他方シェーディング部10はスパン・データに基づいて
シェーディングの施されたピクセル値Iを生成する。こ
の際シェーディング部10は隠面消去部9の処理を反映
させてピクセル値バッファ12のデータI°を更新する
。すなわちスパン・データに基づいて生成された新たな
ピクセル値■のうち、その奥行データZが新たにZバッ
ファ11に書き込まれることになったものをピクセル値
バッファ12に書き込むようにしている(第9図(b)
)。このような処理を当該スキャンラインに掛かってい
るすべてのポリゴンのスパン・データについて実行する
ことにより当該スキャンラインについて最も手前にある
データのみが表示されることになる。
当該スキャンラインのすべての通常のポリゴンについて
隠面消去およびグーロー・シェーディングの処理が終了
したらシャドウ・ポリゴンを処理する。すなわち疑似隠
面消去部13に各シャドウ・ポリゴンのスパン・データ
が順次供給される。疑似隠面消去部13はスパン・デー
タからシャドウ・ポリゴンの奥行データzf#展開し、
各ピクセル位置で上述隠面消去後の確定した2バツフア
11の奥行データ2゛と比較を行う。この場合当該ピク
セル位置でZバッファ11の奥行データZ′の方がシャ
ドウ・ポリゴンの奥行データ2より奥にあれば視線がシ
ャドウ・ポリゴンを横切ったことになる。他方Zバ・ソ
ファ11の奥行データz′が手前であれば槽切っていな
い。そして横切ったときには暫定形判定フラグ・バッフ
ァ14を反転させ、他方横切らないとき暫定影判定フラ
グ伊バッファ14をそのままとする。第10図の例では
丸印が視線の交差に対応する。その結果斜線部分が反転
される。なお第10図(b)ではATTRがIFの場合
すなわち視点がシャドウ・ポリゴン内にある場合であり
、反転の態様が他と異なっている。また第10図(C)
ではATTRがEVであり、暫定形判定フラグ・データ
は最終影判定フラグ・バッファ15に転送される。擬似
隠面消去部13の機能は実質的には隠面消去部9のそれ
と同一であり、隠面消去部9で兼用される。
当該スキャンラインについて全てのシャドウ・ポリゴン
のスパン・データが処理されると確定した最終影判定フ
ラグ・データが変更部16に供給され入力ピクセル値を
変更して影付けを行う。
以上の処理は他のスキャンラインについても実行される
なおこの実施例では凸でない外形ポリゴンを凸に細分割
してシャドウ・ボリュームをつくる必要がないのは明ら
かである。ざらにこの実施例ではシャドウ・ポリゴンの
より上位のデータを採用して処理を高速化できる。
すなわち最近のグラフィックス・システムでは囲まれる
ポリゴンとする訳にはいかない。この実高速描画の際で
も、モデルのつくり易さのためにポリゴン・データのみ
ではなく、もっと上位の形状データ(ポリゴンがどうい
う立体を構成するかを丁すデータ)も保持している。こ
の形状データを使用してシャドウ・ボリュームをつくる
ことにより、シャドウ・ボリュームの数を大幅に減らす
ことができる。
例えば第12図のような形状があるときに、この形状に
対して唯一っのシャドウ・ボリュームを用意するだけで
よく、第13図で示される位置に光源があるときは、シ
ャドウ・ポリゴンの数は9枚で済む。つまり、第12図
の辺An 、 AM 、 EF 、 EG 。
FO,GLJO,KL、BIについてシャドウ・ポリゴ
ンをつくればよい。
ただし、ここで辺BI、辺KLからつくられるシャドウ
・ポリゴンについては注意が必要である。例えば、辺B
I からつくられるシャドウ・ポリゴンを通常のように
光源から点Bを通る半直線の点B以遠と光源から点工を
通る半直線の点I以遠と辺BIで施例の影判定法では同
一のシャドウ・ボリューム内でシャドウ・ポリゴン同志
が交わることは許されないのであるが、辺BIからこの
ようにして作ったシャドウ・ポリゴンは辺KLから作っ
たシャドウ・ポリゴンと交わってしまう。
従って、辺BIと光源を含む平面と辺KLの交点Tを求
め第14図のように辺BIについてのシャドウ・ポリゴ
ンを作る。辺にLについては線分子りを使ってシャドウ
・ポリゴンを作る立体のどの辺を使ってシャドウ・、ポ
リゴンを作ればいいかということや、先程の辺BIのよ
うな取扱いをする必要がある辺を見つけることや、その
辺から作るシャドウ・ポリゴンが他のどの辺と交わるか
を見つけることはその立体に対して光源から陰面、消去
することによって可能である。この陰面消去は立体を構
成しているポリゴンのみで実行すればよいので計算量は
少ない。
このように、各立体(形状)毎にシャドウ・ボリューム
とそれを構成するシャドウ・ポリゴンを作ることが可能
であり、大幅にシャドウ・ポリゴンの数を減らすことが
できる。この発明の影判定法ではシャドウ・ポリゴン同
志が交わらなければ、複数のシャドウ・ボリュームも一
度に取り扱うことができる(シャドウ・ボリューム単位
で影判定をしなくて済む)。そのため、前段の考え方を
ざらに進めて、複数の立体について光源から陰面消去し
て最良のシャドウ・ポリゴンの組(複数のシャドウ・ボ
リューム分できる)を求めることもできる。ただし、シ
ャドウ・ポリゴン同志の交りをなくす操作(辺BTにつ
いてのシャドウ・ポリゴンを作ることに相当)が複雑に
なる。
またこの実施例では影判定に視線とシャドウ・ポリゴン
の交差の数の偶奇性を用いている。このため、1つのシ
ャドウ・ボリュームに属するシャドウ・ポリゴンのっな
ざめの所が問題になる。第15図の状況テAB、BCニ
対t ル(xL、xR) e (XI。
X2) 、 (X2.X3)としてスパン・データを作
ると、x2つ走り点Bで交差をダブル・カウントしてし
まい、点8を通る視線上の点はたとえ領域ABCDEF
内にあっても、影とは判定されない。それどころか、領
域外を影と判定するようなことも起こりうる。
そこで、シャドウ・ポリゴンのスパンデータを作る時に
は、辺を共有するシャドウ−ポリゴンについてはスパン
の範囲(XL、XR)が重ならないようにスパンデータ
を生成する。具体的には、スパンの二端点をXl、Xr
 とすると、シャドウ・ポリゴンは総テ(XI、Xr−
1) (まt: Lt (Xl+1.Xr) )としテ
スパンの範囲を指定すると不都合がなくなる。よって、
先程の例では(XI、X2−1)、 (X2.X3−1
)と指定する。
またこの実施例では残留光レベル(上記のRBし)が0
でないとき、ハイライト効果を含めたグーロー・シェー
ディングを扱えな↓)。同数なら、影の部分にまでハイ
ライト効果が残ってしまうからである。また、厳密な意
味では上記のRBLで残留光を表しているとは言いがた
い。しかし、これは記憶容量(またはハードウェア量)
とのトレード・オフに過ぎず、ハイライト効果と拡散光
による輝度値(IB)と残留光による輝度値(RB)に
分けてピクセル毎に保持しておけば、FSF(最終シャ
ドウフラグ)二〇ならIBφRB を輝度値とし、FS
F=1ならRBのみをピクセルの輝度値とすればよい。
また同様に、シェーディング法がグーロー・シェーディ
ングでは不満で、ハードウェア量もしくは計算型が増え
ることを厭わなければ、複雑なシェーディング法も使用
可能である。
E2.バイブライン型プロセッサの詳細つぎにバイブラ
イン型プロセッサ6について詳細に説明する。
第16図はバイブライン型プロセッサ6を全体として示
すものであり、1つのスキャンラインに掛かっている通
常のポリゴンおよびシャドウ・ポリゴンのスパン・デー
タが順次人力ざ、れるようになっている。スパン・デー
タは第11図に示すように初めに通常のポリゴン、つぎ
にシャドウ・ポリゴンの順に入力されて処理される。シ
ャドウ・ポリゴンの処理が終わるとピクセル値Iおよび
最終影判定フラグFSFが順次出力される。プロセッサ
6内部には1スキャンライン分のピクセルの数(この例
では1024個)だけのプロセッシング・エレメントP
Eが連鎖上に並んでいる。プロセッシング・エレメント
PEはそれぞれ固有の数値10を有している。スパン・
データの入力側から0.1.2.3・・・1o23とい
う値になっている。個々のプロセッシング・エレメント
PEは1スキャンライン分のピクセルの各々に対応して
いる。プロセッシング・エレメントPEは直前のプロセ
ッシング・エレメントPEからスパン・データを受は取
って必要なら内部状態を変更し、またスパン・データも
変更し、次段のプロセッシング・エレメントPEに引キ
渡す。
第12図はプロセッシング・エレメントPEの詳細を示
す。この図においてブロセツ、シング・エレメントPE
は範囲判別部17.24971部18、影付は部19お
よびシェーディング・ピクセル値バッファ20からなっ
ている。範囲判別部17にはスパンの左右限界値XLお
よびXRが入力きれている。範囲判別部17は自己のI
DがXLとXRとの間にあるとぎにイネーブル信号EN
1を24971部18に供給する。この信号EN1は影
付は部19およびシェーディング・ピクセル値バッファ
20にも供給されている。したがってプロセッシング・
エレメントPEは自己に関連したスパン・データにしか
動作しない。
24971部18は対応するピクセル位置の奥行データ
をストアするようになっている。またこの24971部
18にはスパン・データのうちZおよびdZが入力され
当該ピクセル位置の奥行テ°−夕を算出している(Z+
dZ)。スパン・データが通常のポリゴンに関するもの
である場合には、算出した奥行データがストア奥行デー
タより大きいときにデータの更新を行う。同時にシェー
ディング・ピクセル値バッファ2,0にピクセル値の更
新イネーブル信号EN3を供給する。他方シャドウポリ
ゴンの場合にはこのようなときには暫定影判定フラグT
SFを反転させるイネーブル信号EN2を影付は部19
に供給する。これはシャドウ・ポリゴンを視線が交差し
たことに対応する。
影付は部19にはスパンデータのうちATTRが入力さ
れている。ATTRがIFのときには暫定影判定フラグ
TSFを反転させる。これは視点がシャドウ・ボリュー
ム内にあることに対応する。またATTRがEVのとき
には暫定影判定フラグTSFの内容を最終影判定フラグ
FSFに転送する。
シェーディングφピクセル値バッファ20にはスパン・
データのうちIおよびdIが供給されている。シェーデ
ィング・ピクセル値バッファ2゜はIおよびdIに基づ
いてグーロー・シェーディングを行い、イネーブル信号
EN3に応じてバッファに書伊込みを行う。
1スキャンライン分のすべての通常のポリゴンおよびシ
ャドウ・ポリゴンの処理が終、了したら影付は部19お
よびシェーディング・ピクセル値バッファ2oからそれ
ぞれピクセル値および最終影判定フラグが送出される。
第18図は以上の処理を示すフローチャートである。な
おこのフローチャートの内容は図から明らかであるから
詳細な説明は省略する。
E3.広がりを持つ光源 つぎに1つの広がりを持つ光源の影をどのように生成す
るかについて述べる。
この実施例でも通常よくやられているように、広がりを
持つ光源を複数個の同等な点光源で近似して扱う。それ
ぞれの点光源についてシャドウ・ボリュームを生成し、
ある点を影にしている点光源の数と影にしていない点光
源の数の比で半影の度合を決定する。光源の広がりに比
べて表示する物体が光源から離れている場合は、この半
影の度合の決定法はよい近似である。ピクセル毎にその
ピクセルを占める点が幾つの点光源について影になって
いるかカウントする必要がある。このためスパン・デー
タを展開するスキャンラ、イン上の各ピクセルに対して
1つのカウンタ(P C01lNT)を用意する。
この例では上述のBrotmanおよびBadlerの
アルゴリズムとは異なり、点光源毎にシャドウ・ボリュ
ームの処理を行う(第19図参照)。こうすることによ
り、カウンタがjcO[INT 1種類で済む。Bro
tmanおよびBadlerのアルゴリズムでは0BJ
ECT LEVEL(P−COU)IT ニ相当>):
 DARKNESSLEVEL という複数ビット幅の
記憶域をピクセル毎に2つ必要とする。尚、1つの点光
源についての最後のスパン・データであることを示すた
めのEL (End 5pan by a Light
 5ource) という属性をスパン・データの属性
項の取りうる値の1つとして追加する。
まず普通のポリゴンのスパン・データを展開するときに
、輝度値も補完されて決められていく(影は考慮に入っ
ていない)わけだが、この輝度値というのはすべての点
光源からの光を合算して求めたものを用いる。
E4.  複数の点光源 普通のスパン・データを展開する際に光源毎に輝度値を
バッファ上に展開するか、スパン・データ展開時には輝
度値を展開せず法線ベクタとポリゴンの識別子をピクセ
ル毎に展開してわき後から1ピクセルずつ輝度値を計算
するか、のどちらかの方法を用いれば上述の手法の自然
な拡張で複数の光源もサポートできる。しかし、前者の
方法だとピクセル毎に光源の数だけの輝度値を記憶して
おくバッファが必要だし、後者の方法だと1ピクセル毎
の計算を行う際いろいろな情報を参照する必要がありハ
ードウェア化しても手間が掛かる。
もちろん将来的にはLSIの集積度が上がりスピードも
速くなり、この2つの方法も高速に実行できるようにな
ると思われる。
ここでは、この2つの方法を修正して足し合わせた輝度
計算の近似計算法を導入して、ピクセル当たりのハード
ウェアの増加と高速性のトレード・オフを取った手法を
説明する。輝度値の計算と光源を複数化したための処理
以外は記述の手法を用いる。
マス、輝度計算法について述べる。ここでは光源と物体
がかなり離れているという仮定(1つの光源からの光の
方向は一定という仮定)を採用する。これが認められな
い状況では、各ピクセル上ルずつ輝度計算を行うか、光
源から各ピクセルへの方向ベクタもスパン・データ展開
時に求め記憶しておくようなことを行わなくてはならず
、計算量やハードウェア量が大きくなる。ここでは仮定
が満たされる状況のみを考える。
この例においても法線ベクタが判れば、その点への各光
源からの寄与が判ることを利用して輝度値を求めること
にする。ただし、スパン・データ展開と影判定の終了後
、輝度値を法線ベクタから計算する(Brotmanお
よびBad lerのアルゴリズムではこれに相当する
ことを行っている)のではない。影なしとして全部の光
源の寄与を合算した輝度値とポリゴンの法線ベクタを共
にスパン・データの要素とし、スパン・データを展開す
る。
その後、ピクセル毎に法線ベクタと影−についての情報
を使って輝度値を修正する。このままだと、法線ベクタ
のみから計算するのとあまり手間が変わらない。そこで
法線ベクタといってもクラス分けして少し粗めに量子化
されたものを用いて、その法線ベクタとその他の情報か
ら丹念に1ビクセのクラスを示すインデックスとどの光
源から影になっているかの情報で輝度値をどの程度修正
するすると、96にバイトのテーブルとなる。
(割り引く)かの割合の入ったテーブルを引くことにす
る。テーブルから得た値とピクセルに保持されていた輝
度値を掛けたものを修正された輝度値とする。
法線ベクタのクラス分けをもう少し具体的に例を挙げて
説明する。例えば、第20図のような立方体を考え、各
面をNXN等分しておく (図ではく×4等分)。立方
体の中心とNXN等分された四角形のつくる四角錐を考
え、立方体の中心をベクタの始点とした時どの四角錐に
含まれるかでクラス分けを行うことができる。この例だ
と1から6XNXNまでの整数で番号(インデックス)
付けされる。Nを大ぎく取れば取るだけ輝度計算の近似
は良くなるが、サポートする光源、の数を間とすると、
6 X 2’X N X Nの大きざをもつ修正の割合
を記憶するテーブルが必要になる。しかし、最終的な輝
度値も離散な値で良いので必要以上に細分化する必要は
ない。例えば、N=16.M=4、テーブルに記憶され
る値が4バイトの数値とこの方式において、サポートす
る光源数をM個とじた時、各ピクセルについてM個の光
源のどれについて影になっているかを記憶するM個のフ
ラグが必要である。また、法線のクラス分はインデック
スを12ビツトの数値とすると、前出の2つのフラグD
SF、FSFを加えてピクセル当たりの記憶量の増加は
影付けをしないときにくらべてM+12+2ピットで済
む。各ピクセルにおける法線ベクタのクラス分はインデ
ックスをHID(Normal Index in D
irection)  とし、点光源に対するフラグの
配列をしM[n](Light Mask:LM[O,
、M−11)と表記することにする。また、単にL)l
と書(ときはLH[O] からLH[M−1]  まで
をMビットの符号なし整数とみなしてい、ることにする
。輝度値を修正するためのテーブルをBT[n、al(
BrightTable:  BT[0,,6XNXN
−1,0,,2’−11)とし、このテーブルは法線の
方向と影にする光源の組合せと光源の光の方向から前も
7て値を計算し設定しておく。
この複数個の点光源による影を生成する手法におけるス
パン・データの処理の順序はほぼ上述の広がりを持つ光
源の手法と同じで、点光源毎にシャドウ・ボリュームを
処理する。ただし、今回は点光源を区別する必要がある
ので、各点光源の終りのスパン・データを示すELの属
性値の代りにELn (nはOからM−1までのV数で
点光源の識別番号)を用いることとする(第21図参照
)。
使用するスパン・データはポリゴンの法線ベクタに対す
るクラス分けのインデックス(HID)を含む以下のよ
うな形式のものである。
(ATTR,XL、XR,ZL、dZ、IL、dl、N
ID)もちろん、スパン・データをピクセル・データに
展開するときには法線ベクタを補%bながら展開し、後
からピクセルごとにインデックスを求めることもできる
(こちらの方が画像の品質は良いが計算量が増える)。
シャドウ・ポリゴンではスパン・データのうち法線ベク
タと輝度に関する項は使用されない(!!味をもたない
)。普通のポリゴンのスパン・データの輝度に関する項
は総ての点光源の影を考慮にいれない寄与の和が用いら
れている。
E5.複数の広がりを持つ光源 複数の広がりを持つ光源に対する影を含む画像の生成で
も1.この実施例の影判定法や影判定フラグのチエツク
法や光源ごとにシャドウ・ボリュームを処理する方式は
そのまま使用可能である。
E6.ダミーのスパン・データ 以上の実施例ではスキャンライン上のすべてのピクセル
で上記の処理が実行きれる。パイプライン(またはシス
トリック・アレイ)型でスキャンライン上の全てのピク
セルに対応する処理機構をもっているようなハードウェ
アには以上の手法が最適である。しかし、ソフトウェア
で実行する時やスキャンライン上の全てのピクセルに対
応する処理機構がない時は、TSFのチエツクをすべて
のピクセルについて行うのは効率的でない。
そこで、そういう場合に効率を上げる方法を述べる。こ
のような場合には、通常スパン・データのXL、XRで
囲まれるピクセルのみが操作対象につ・ポリゴンと視線
との交差回数の個数の偶奇をなる。この操作方式で、第
11図のスパン・データ列を用いて処理を行うと、シャ
ドウ・ボリューム毎に影のチエツクを行うときに対象と
なるシャドウ・ボリュームに関連しているのにチエツク
されないピクセルができる可能性がある。このため、E
Vの属性はやめ、シャドウ・ボリューム毎のチエツクの
ためのダミーのスパン・データを各シャドウ・ボリュー
ムに属するスパンデータの最後に加える(第22図参照
)。CI−1という属性でこのダミーのスパン・データ
は区別され、もちろんデプス値や輝度値に関するスパン
・データの要素は意味をもたない。CHの属性をもつス
パン・データのXL、XRとしては、それぞれ、そのス
パンデータが属するシャドウ・ボリュームのシャドウ・
ポリゴンのスパン・データのXLO内の最小値、XRの
内の最大値が採用される。
F0発明の詳細 な説明したようにこの発明によれば同一のシャドウ・ボ
リュームを規定する一組のシ〒ド求め、その偶奇と、視
点がそのシャドウ・ボリューム内にあるかどうかの判断
とに基づいて視線上のピクセル位置に影があるかどうか
を判断している。この場合物体が凹形状でもよく、従前
のように凹物体を凸物体に分割する必要がなく処理が簡
易になる。またシャドウ・ボリュームについて視点の裏
側か表側かという情報が不要であるので構成が簡単にな
る。ざらに複数の点光源を扱う場合にもピクセル単位で
影の@数を求めることにより構成が簡単になり (すな
わちカウンタの種類が減る)、また量子化した法線ベク
タを用いることにより大幅な簡略化が図れる。ダミーの
スパン・データを用いることによりパイプライン型以外
の処理における高速化が図れる。
【図面の簡単な説明】
第1図はこの発明の一実施例の要部を示すブロック図、
第2図、第3図および第4図はこの発明の詳細な説明す
る図、第S図は上述実施例の全体構成を示すブロック図
、第6図、第7図、第8図、第9図、第10図、第11
図、第12図、第13図、第14図および第15図は第
1図の動作を説明する図、第16図は第1図のパイプラ
イン型プロセッサ6の詳細を示すブロック図、第17図
は第16図のプロセッサのプロセッシングエレメントを
示すブロック口、第18図は第16図6よび第17図の
構成例の動作を説明すフローチャート、第19図は広が
りを持つ光源の処理を説明する図、第20図8よび第2
1図は複数の点光源の処理を説明する図、第22図はパ
イプライン型でないプロセッサを用いた例で採用するダ
ミーのスパンデータを説明する図、M2S図、第24A
図、第24B図、第25図、第26図および第27は従
来例を説明する図である。 9−一隠面澗去部、10−−シェーディング部、1l−
−Zバッファ、12−−ピクセル値バッファ、13−一
疑似隠面消去部、14−一暫定影判定フラグバッファ、
15−一最終影判定フラグバッファ、16一−変更部。 竺3図 筆゛7図 竿】、(ス 第10図 第13図 竿2(1)図 第2aこ

Claims (6)

    【特許請求の範囲】
  1. (1)物体を規定する物体ポリゴンを表示装置の画面上
    に表示するピクセル・データおよびこのピクセル・デー
    タに関連する奥行データを生成する物体表示用データ生
    成手段と、各ピクセル位置について最も奥行の短いピク
    セル・データを選択して取り出すピクセル・データ選択
    手段と、 物体ポリゴンが光源からの光線を遮ることによって生じ
    る影空間を規定する影ポリゴンを生成する手段と、 各ピクセル位置について視点の奥行位置とそのピクセル
    位置に対して選択されたピクセル・データの奥行位置と
    の間に、影空間ごとに、その影空間を規定する各影ポリ
    ゴンが存在するかどうかを判断し、その間に存在する影
    ポリゴンの個数の偶奇を判別する偶奇判別手段と、 上記視点が上記偶奇判別に関連する影空間内にあるかど
    うかを判別する視点位置評価手段と、上記偶奇判別手段
    および上記視点位置評価手段のそれぞれの判別結果に基
    づいて、上記視点が上記偶奇判別に関連する影空間内に
    あり、かつ上記偶奇判別が偶数のときに、または上記視
    点が上記偶奇判別に関連する影空間外にあり、かつ上記
    偶奇判別が奇数のときに当該ピクセル位置に影があると
    判別する影判別手段と、 この影判別手段の判別結果に基づいて上記ピクセル・デ
    ータ選択手段からのピクセル・データを調節してこのピ
    クセル・データに影を反映させるピクセル・データ調整
    手段と、 調整されたピクセル・データを表示装置へ出力するピク
    セル・データ出力手段とを有することを特徴とする図形
    処理装置。
  2. (2)物体を規定する物体ポリゴンを表示装置の画面上
    に表示するピクセル・データおよびこのピクセル・デー
    タに関連する奥行データを生成する物体表示用データ生
    成手段と、各ピクセル位置について最も奥行の短いピク
    セル・データを選択して取り出すピクセル・データ選択
    手段と、 物体ポリゴンが光源からの光線を遮ることによって生じ
    る影空間を規定する影ポリゴンを生成する手段と、 各ピクセル位置について視点の奥行位置とそのピクセル
    位置に対して選択されたピクセル・データの奥行位置と
    の間に、影空間ごとに、その影空間を規定する影ポリゴ
    ンが存在するかどうかを判断し、その間に存在する影ポ
    リゴンの個数の偶奇を判別する偶奇判別手段と、 上記視点が上記偶奇判別に関連する影空間内にあるかど
    うかを判別する視点位置評価手段と、上記偶奇判別手段
    および上記視点位置評価手段のそれぞれの判別結果に基
    づいて、上記視点が上記偶奇判別に関連する影空間内に
    あり、かつ上記偶奇判別が偶数のときに、または上記視
    点が上記偶奇判別に関連する影空間外にあり、かつ上記
    偶奇判別が奇数のときに当該ピクセル位置に影があると
    判別する影判別手段と、 複数の光源の各々について上記影判別手段が実行した、
    上記影生成物体のいずれかによって影が生成されるかの
    判別結果に基づいて、各ピクセル位置ごとにいくつの光
    源の影が生成されるかをカウントするカウント手段と、 このカウント手段のカウント結果に基づいて上記ピクセ
    ル・データ選択手段からのピクセル・データを調節して
    このピクセル・データに半影を含む影を反映させるピク
    セル・データ調整手段と、 調整されたピクセル・データを表示装置へ出力するピク
    セル・データ出力手段とを有することを特徴とする図形
    処理装置。
  3. (3)物体を規定する物体ポリゴンを表示装置の画面上
    に表示するピクセル・データおよびこのピクセル・デー
    タに関連する奥行データを生成する物体表示用データ生
    成手段と、各ピクセル位置について最も奥行の短いピク
    セル・データを選択して取り出すピクセル・データ選択
    手段と、 物体ポリゴンが光源からの光線を遮ることによって生じ
    る影空間を規定する影ポリゴンを生成する手段と、 各ピクセル位置について視点の奥行位置とそのピクセル
    位置に対して選択されたピクセル・データの奥行位置と
    の間に、影空間ごとに、その影空間を規定する各影ポリ
    ゴンが存在するかどうかを判断し、その間に存在する影
    ポリゴンの個数の偶奇を判別する偶奇判別手段と、 上記視点が上記偶奇判別に関連する影空間内にあるかど
    うかを判別する視点位置評価手段と、上記偶奇判別手段
    および上記視点位置評価手段のそれぞれの判別結果に基
    づいて、上記視点が上記偶奇判別に関連する影空間内に
    あり、かつ上記偶奇判別が偶数のときに、または上記視
    点が上記偶奇判別に関連する影空間外にあり、かつ上記
    偶奇判別が奇数のときに当該ピクセル位置に影があると
    判別する影判別手段と、 複数の光源の各々について上記影判別手段が実行した、
    上記影生成物体のいずれかによって影が生成されるかの
    判別結果に基づいて、各ピクセル位置ごとにどの光源の
    影が生成されるかを示す影光源データを生成する影光源
    データ生成手段と、各ピクセル位置ごとに、そのピクセ
    ル位置を占めるピクセル・データの属する物体ポリゴン
    の法線データを生成する手段と、 上記影光源データおよび法線データに基づいて影の強度
    を決定する影強度決定手段と、 上記影強度決定手段からの影強度データに基づいて上記
    ピクセル・データ選択手段からのピクセル・データを調
    節してこのピクセル・データに半影を含む影を反映させ
    るピクセル・データ調整手段と、 調整されたピクセル・データを表示装置へ出力するピク
    セル・データ出力手段とを有することを特徴とする図形
    処理装置。
  4. (4)上記法線データは量子化されている特許請求の範
    囲第3項記載の図形処理装置。
  5. (5)上記物体表示用データ生成手段、ピクセル・デー
    タ選択手段および偶奇判別手段をパイプライン型処理手
    段により構成した特許請求の範囲第1項ないし第4項記
    載の図形処理装置。
  6. (6)上記影空間ごとにスキャンラインのどの範囲で処
    理が必要かを示す処理範囲限定データを生成する処理範
    囲限定手段と、上記処理範囲限定データに基づいて不必
    要な処理を回避する処理回避手段とをさらに有する特許
    請求の範囲第1項ないし第5項記載の図形処理装置。
JP63224448A 1988-09-09 1988-09-09 図形処理装置 Expired - Lifetime JPH0727581B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63224448A JPH0727581B2 (ja) 1988-09-09 1988-09-09 図形処理装置
EP19890309044 EP0358493A3 (en) 1988-09-09 1989-09-06 Graphics system
US07/404,238 US5043922A (en) 1988-09-09 1989-09-07 Graphics system shadow generation using a depth buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63224448A JPH0727581B2 (ja) 1988-09-09 1988-09-09 図形処理装置

Publications (2)

Publication Number Publication Date
JPH0273479A true JPH0273479A (ja) 1990-03-13
JPH0727581B2 JPH0727581B2 (ja) 1995-03-29

Family

ID=16813933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63224448A Expired - Lifetime JPH0727581B2 (ja) 1988-09-09 1988-09-09 図形処理装置

Country Status (3)

Country Link
US (1) US5043922A (ja)
EP (1) EP0358493A3 (ja)
JP (1) JPH0727581B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027168A1 (fr) * 1995-02-28 1996-09-06 Hitachi, Ltd. Processeur de donnees et dispositif d'ombrage
US6356264B1 (en) 1997-12-15 2002-03-12 Sega Enterprises, Ltd. Image processing device and image processing method
US6744430B1 (en) 1999-07-21 2004-06-01 Sega Enterprises, Ltd. Image processing method and its apparatus
JP2005346417A (ja) * 2004-06-03 2005-12-15 Sega Corp 仮想三次元座標ポリゴンによるオブジェクト画像の表示制御方法及びこれを用いた画像表示装置

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2523889B2 (ja) * 1989-08-25 1996-08-14 松下電器産業株式会社 隠れ面処理装置
AU632628B2 (en) * 1989-11-13 1993-01-07 Apple Computer, Inc. Method and apparatus for a computer display system with a three dimensional cursor shadow
DE69129995T2 (de) * 1990-01-23 1998-12-24 Hewlett Packard Co Dezentrales Verarbeitungsgerät und Verfahren zur Anwendung in globaler Wiedergabe
US5377313A (en) * 1992-01-29 1994-12-27 International Business Machines Corporation Computer graphics display method and system with shadow generation
GB2267007B (en) * 1992-04-24 1995-09-13 Sony Broadcast & Communication Video special effect apparatus and method
TW241196B (ja) * 1993-01-15 1995-02-21 Du Pont
IL109462A0 (en) * 1993-04-30 1994-07-31 Scitex Corp Ltd Method for generating artificial shadow
US5974189A (en) * 1993-05-24 1999-10-26 Eastman Kodak Company Method and apparatus for modifying electronic image data
US5579455A (en) * 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
GB9315852D0 (en) * 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images
JP2669599B2 (ja) * 1994-09-16 1997-10-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 陰影描画方法及び3次元グラフィック・コンピュータ・システム
US5986667A (en) * 1994-12-22 1999-11-16 Apple Computer, Inc. Mechanism for rendering scenes using an object drawing subsystem
US5777621A (en) * 1994-12-22 1998-07-07 Apple Computer, Inc. Quality control mechanism for three-dimensional graphics rendering
DE69526919T2 (de) * 1995-01-31 2003-01-16 Imagination Tech Ltd Verfahren und Vorrichtung zur Schattierung dreidimensionaler Bilder
US5761400A (en) * 1995-08-28 1998-06-02 Apple Computer, Inc. Method and system for increasing the speed of a Z-buffer process
US5739819A (en) * 1996-02-05 1998-04-14 Scitex Corporation Ltd. Method and apparatus for generating an artificial shadow in a two dimensional color image
WO1997034213A2 (en) * 1996-03-14 1997-09-18 I.I. Interactive Innovations Ltd. Computerized graphics systems
US6018350A (en) * 1996-10-29 2000-01-25 Real 3D, Inc. Illumination and shadow simulation in a computer graphics/imaging system
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
DE19714915A1 (de) * 1997-04-03 1998-10-08 Gmd Gmbh Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
US6028608A (en) * 1997-05-09 2000-02-22 Jenkins; Barry System and method of perception-based image generation and encoding
GB9717656D0 (en) * 1997-08-20 1997-10-22 Videologic Ltd Shading three dimensional images
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
JP3804328B2 (ja) * 1999-03-02 2006-08-02 株式会社セガ 画像処理装置及び画像処理方法
JP3599268B2 (ja) 1999-03-08 2004-12-08 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置及び記録媒体
US6573896B1 (en) 1999-07-08 2003-06-03 Dassault Systemes Three-dimensional arrow
TW475155B (en) * 1999-09-10 2002-02-01 Sony Computer Entertainment Inc Method of and apparatus for rendering image, recording medium, and program
JP2001084405A (ja) * 1999-09-16 2001-03-30 Sega Corp ポリゴン画像形成方法及び、これを用いた画像処理装置
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
EP1170700A3 (en) 2000-07-06 2003-08-27 Kuusou Kagaku Corp. Method of high-speed adjustment of luminance by light in 3-D computer graphics
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
JP3641578B2 (ja) * 2000-08-31 2005-04-20 コナミ株式会社 ゲーム用3次元画像処理方法、装置、ゲーム用3次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
US7439975B2 (en) 2001-09-27 2008-10-21 International Business Machines Corporation Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface
JP2003208601A (ja) * 2002-01-15 2003-07-25 Nec Corp 3次元物体撮影装置、3次元形状モデル生成装置、3次元形状モデル生成方法、3次元形状モデル生成プログラム
JP4181430B2 (ja) * 2003-03-10 2008-11-12 シャープ株式会社 図形処理装置、図形処理方法、図形処理プログラム、および、プログラム記録媒体
JP4193979B2 (ja) * 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
US8643701B2 (en) 2009-11-18 2014-02-04 University Of Illinois At Urbana-Champaign System for executing 3D propagation for depth image-based rendering
US9300946B2 (en) 2011-07-08 2016-03-29 Personify, Inc. System and method for generating a depth map and fusing images from a camera array
US8913829B2 (en) * 2012-06-05 2014-12-16 Tandent Vision Science, Inc. Automatic processing scale estimation for use in an image process
JP2016213718A (ja) * 2015-05-11 2016-12-15 キヤノン株式会社 画像処理装置及び画像処理方法、プログラム、記憶媒体
US10235798B2 (en) * 2017-03-24 2019-03-19 Mz Ip Holdings, Llc System and method for rendering shadows for a virtual environment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
US4737921A (en) * 1985-06-03 1988-04-12 Dynamic Digital Displays, Inc. Three dimensional medical image display system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027168A1 (fr) * 1995-02-28 1996-09-06 Hitachi, Ltd. Processeur de donnees et dispositif d'ombrage
KR100448724B1 (ko) * 1995-02-28 2005-08-17 가부시끼가이샤 히다치 세이사꾸쇼 데이터처리장치및섀이딩장치
US6356264B1 (en) 1997-12-15 2002-03-12 Sega Enterprises, Ltd. Image processing device and image processing method
US6744430B1 (en) 1999-07-21 2004-06-01 Sega Enterprises, Ltd. Image processing method and its apparatus
JP2005346417A (ja) * 2004-06-03 2005-12-15 Sega Corp 仮想三次元座標ポリゴンによるオブジェクト画像の表示制御方法及びこれを用いた画像表示装置
JP4513423B2 (ja) * 2004-06-03 2010-07-28 株式会社セガ 仮想三次元座標ポリゴンによるオブジェクト画像の表示制御方法及びこれを用いた画像表示装置

Also Published As

Publication number Publication date
US5043922A (en) 1991-08-27
EP0358493A3 (en) 1992-06-10
EP0358493A2 (en) 1990-03-14
JPH0727581B2 (ja) 1995-03-29

Similar Documents

Publication Publication Date Title
JPH0273479A (ja) 図形処理装置
US6664959B2 (en) Method and apparatus for culling in a graphics processor with deferred shading
US7023437B1 (en) System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6285378B1 (en) Method and apparatus for span and subspan sorting rendering system
US6894689B1 (en) Occlusion culling method and apparatus for graphics systems
US7468726B1 (en) Culling in a vertex processing unit
US7405734B2 (en) Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
JP3759971B2 (ja) 3次元像を陰影付けする方法
US7116337B2 (en) Transparent depth sorting
US11158106B2 (en) VRS rate feedback
WO2000011613A9 (en) Performing hidden surface removal in a graphics processor with deferred shading
WO1997005576A9 (en) Method and apparatus for span and subspan sorting rendering system
US20020030693A1 (en) Triangle clipping for 3d graphics
US11468630B2 (en) Rendering scenes using a combination of raytracing and rasterization
McGuire et al. Fast, practical and robust shadows
US8698799B2 (en) Method and apparatus for rendering graphics using soft occlusion
US7400325B1 (en) Culling before setup in viewport and culling unit
US7292239B1 (en) Cull before attribute read
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
Hertel et al. A Hybrid GPU Rendering Pipeline for Alias-Free Hard Shadows.
JP3258286B2 (ja) 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置
KR100544803B1 (ko) 영상 프리미티브의 고속 처리
EP0725365B1 (en) Method and apparatus for shading three-dimensional images
JPH02132572A (ja) 画像表示装置
Doghramachi Tile-Based Omnidirectional Shadows