JP2777577B2 - 図形オブジェクトのシェーディング値生成装置およびその方法 - Google Patents

図形オブジェクトのシェーディング値生成装置およびその方法

Info

Publication number
JP2777577B2
JP2777577B2 JP63187968A JP18796888A JP2777577B2 JP 2777577 B2 JP2777577 B2 JP 2777577B2 JP 63187968 A JP63187968 A JP 63187968A JP 18796888 A JP18796888 A JP 18796888A JP 2777577 B2 JP2777577 B2 JP 2777577B2
Authority
JP
Japan
Prior art keywords
graphic object
pixel data
shading
function
modifying
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
JP63187968A
Other languages
English (en)
Other versions
JPH01120685A (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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH01120685A publication Critical patent/JPH01120685A/ja
Application granted granted Critical
Publication of JP2777577B2 publication Critical patent/JP2777577B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/83Phong shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、陰極線管(CTR)またはその他の表示装置
上に映像を発生する方法および装置に関するものであ
る。更に詳しくいえば、本発明はCRTその他の表示装置
上のカーブ、曲がった表面、ベクトル、多角形その他の
図形オブジェクトを描く方法および装置に関するもので
ある。
〔従来の技術〕
多くのコンピュータ装置においては、デジタル映像を
介して情報を表し、その情報をユーザへ伝えるのが一般
的である。それらの映像は、たとえば英数字キャラクタ
直角座標のグラフ、およびその他の絵画的表現のような
各種の態様をとることができる。多くの用途において
は、デジタル映像は、ラスタ走査ビデオモニタ、プリン
タ等のような表示装置上でユーザへ伝えられる。典型的
には、表示すべき映像はデジタル形式で格納され、処理
され、それから表示される。
陰極線管上に映像を表示する際には、表示される映像
の各画素の座標と、色、透明係数、奥行きキュー係数、
もや係数、鏡面反射(specular)係数および拡散(diff
use)係数のような値とを計算せねばならない。表現さ
れる図形オブジェクト(すなわち、三次元図形オブジェ
クト)の特徴を示すよう、奥行き、表示へのち密さ、光
源からの反射等を反映するように画素を表現すること
が、画素の「シェーディング」としてして知られてい
る。
三次元パラメトリックパッチまたは多角形により近似
される表面の滑らかにシェードされる映像を発生するた
めに用いられるいくつかのシェーディング技術が用いら
れている。1つのそのような周知の技術がフォン(Phon
g)シェーディング技術である。このフォンシェーディ
ング技術は、適度な計算費用で希望の映像のかなり現実
的な表現を行うから、望ましいシェーディング技術であ
る。ほとんどの三次元コンピュータ支援設計応用は相互
作用性能に最高の優先度を与え、したがってフォンシェ
ーディングにより与えられる現実感をしばしば利用す
る。別の周知のシェーディング技術はゴーラウド(Gour
aud)シェーディングと呼ばれる。このゴーラウドシェ
ーディングは、表現される個々の多角形に対して色の直
線補間を行うが、フォンシェーディング技術よりは正確
でない。わん曲している表面の多角形近似は性能の理由
から用いられる。その理由は、従来のほとんどの高速グ
ラフィックス・ハードウェアは多角形の高速表現のため
に構成されているからである。たとえば、希望のパッチ
の合理的に正確な近似を行うために、典型的なバイキュ
ービック(bi−cubic)パッチは100角形またはそれより
多くの多角形を要することがある。滑らかで、高速のわ
ん曲面表現を利用できるならば多くの設計応用が大幅に
容易となるであろう。
〔発明が解決しようとする課題〕
したがって、本発明の目的は、画素表現速度を低下さ
せることなしにフォンシェーディングを直接行うために
比較的簡単なハードウェアを用いる、パラメトリックパ
ッチ表現方法および装置を得ることである。
本発明の別の目的は、一様でない無理Bスプライン表
面はもちろん、一様な二変数表面パッチを有する映像を
表現する方法および装置を得ることである。
したがって、本発明においては、パラメータカーブに
沿う各画素にシェードされた色を与えるために適応フォ
ーワード差分を求める回路(AFDU)により、シェーディ
ングパラメータを近似するバイキュービック関数が得ら
れ、評価される(適応フォーワード差分を求める回路
(AFDU)については後で説明する。)本発明は、従来の
方法よりはるかに高い速度で、かつ質を目立って低下さ
せることなしにベクトルと多角形を正確かつ迅速にシェ
ーディングする方法および装置を提供するものである。
(たとえば、フォンシェーディング、および多角形、ベ
クトル、カーブおよびその他の図形オブジェクトのシェ
ーディングをより完全に理解するためには次の文献を参
照されたい。
ブイ・ツオン・フォン(Bui tuong−Phong)、イルミ
ネーション・フォー・コンピュータ・ゼネレーテッド・
イメージズ(Illumination For Computer−Generated I
mages)、UTEC−CS c−73−129、1973年7月、トム・
ダフ(Tom Duff)、「スムーズリイ・シェーデッド・レ
ンダーリング・オブ・ポリヘドラル・オブジェックツ・
オン・ラスタ・ディスプレイズ(Smoothle Shaded Rend
ering of Polyhedral Objects on Raster Display
s)」、コンピュータ・グラフィックス(Computer Grap
hics)、第13巻、第2号、1979年8月、スチーブン・エ
ー・クーン(Steven A.Coon)「サーフェイシズ・フォ
ー・コンピュータ・エイデッド・デザイン・オブ・スペ
ース・フォームス(Surfaces For Computer−Aided Des
ign of Space Forms)」、プロジェクト・エムエーシー
(Project MAC)、マサチューセッツ工科大学、MAC−TR
−41、1967年6月、ビショップ(Bishop)およびワイマ
ー(Weimer)、「ファースト・フォン・シェーディング
(Fast Phong Shading)」、コンピュータ・グラフィッ
クス(Computer Graphics)、第20巻、第4号、1986年
8月、エム・シャンツ(M.Shantz)およびエス・エル・
リーン(S−L Lien)、「シェーディング・バイキュー
ビック・パッチズ(Shading Bicubic Patches)コンピ
ュータ・グラフィックス(Computer Graphics)、第21
巻、第4号、1987年7月、シェウ・リン・リーン(Sheu
e−Ling Lien)、マイケル・シャンツ(Michael Shant
z)およびボーガン・ブラット(Vaughan Pratt)、「ア
ダプティブ・フォーワード・デイフェランシング・フォ
ー・レンダリング・カーブス・アンド・サーフェイシズ
(Adaptive Forward Differencing For Rendering Curv
es And Surfaces)」、コンピュータ・グラフィックス
(Computer Graphics)、第21巻、1987年8月)。
〔課題を解決するための手段〕
上記諸目的は、表示装置上のベクトルとカーブをシェ
ーディングする方法および装置により達成される。この
装置は、Tを透明係数、PB1を(カーブような図形オブ
ジェクトに沿う各ピクセルアドレスについて)フレーム
バッファ手段から帰還される第1の画素データ、Xが第
2の関数を表すとして、式 Tc〔PB1〕+(1−Tc)X で表される第1の関数を実現する手段を有する。ベクト
ルとカーブをシェーディングする装置は、Be=修正ブレ
ゼンハム誤差関数、PB2=前記フレームバッファ手段か
ら帰還される第2の画素データ、Yが第3の関数を表す
として、式 Be〔PB2〕+(1−Be)Y で表される第2の関数を実現する手段も有する。上記装
置は、Zを奥行き重み、Cdをもや、PMを固有のカーブ色
として、式 Z〔Cd〕+(1−Z)〔PM〕 で表される前記第3の関数を実現する手段も有する。最
後に、ベクトルとカーブをシェーディングする装置は、
前記第1の関数と、前記第2の関数と、前記第3の関数
を一緒に組合わせて Tc(PB1)+(1−Tc)〔Be(PB2)+(1−Be)〔Z(Cd)+1−Z(PM〕〕 の実現を構成する手段を含み、それにより、実現される
ベクトルとカーブをシェーディングする。
本発明は、Tcを透明係数、PBをフレームバッファ手段
から帰還される画素データ、Xが第2の関数を表すとし
て、式 Tc〔PB〕+(1−Tc)X で表される第1の関数を実現する手段を備えた、多角形
をシェーディングする装置も含む。多角形をシェーディ
ングする装置は、Zを奥行き、Cdを奥行きキュー色すな
わちもや色、Lcを光源の色、IMを映像の色値、diffuse
が第3の関数を表し、specularが第4の関数を表すもの
として式 Z〔Cd〕+(1−Z)〔diffuse〔IM〕+specular〔Lc〕〕 で表される第2の関数を実現する手段も含む。
本発明は、Nを表面法線ベクトル、N・NをN自体の
ドット積、NLrtを多角形の右端部における表面法線と光
源へ向かう単位ベクトルLのドット積、NLltを多角形の
左端部におけるNとLのドット積、Kaを周囲反射係数、
Lcを光源の色として、式 で表される前記第3の関数を実現する手段も含む。アル
ファ(α)は多角形の左側縁部と右側縁部の間で0から
1まで増加する。
多角形をシェーディングする手段は、NHrtを最高輝度
の方向における単位ベクトルHと多角形の右側端部にお
ける表面法線のドット積、NHltを多角形の左側縁部にお
ける法線ベクトルNとHのドット積、Oeをかっこ内の式
を累乗するべき指数、αを多角形の左側縁部と右側縁部
の間で0から1まで増加するものとして、式 で表される前記第4の関数を実現する手段も含む。
最後に、多角形をシェーディングする本発明の装置
は、前記実現された第1の関数と、前記第2の関数と、
前記第3の関数と、前記第4の関数とを組合わせて、 Tc〔PB〕+(1−Tc)〔Z〔Cd〕+(1−Z)〔diffuse〔IM〕+ specular〔Lc〕〕〕 を構成する手段を含む。ここに、IMは一定の色値からの
図形オブジェクトの色または色値のアドレスされた映像
アレイからの色値、LCは光源の色である。
本発明は、互いに狭い間隔をおいて隔てられている一
連の表面カーブをシェーディングすることによりパラメ
トリック・パッチをシェーディングする装置も含む。間
隔の計算は下記のようにして行う。この装置は式 Tc〔PB〕+(1−Tc)X で表される第1の関数を実現する手段を有する。
パッチをシェーディングする装置は、Zを奥行き、Cd
を奥行きキュー色、「diffuse」が第5の関数を表し、
「specular」が第6の関数を表すとして、式 Z〔Cd〕+(1−Z)Y で表される第2の関数を実現する手段も含む。
この装置は、第5の関数(diffuse)と第6の関数(s
pecular)を実現する手段も含む。Nを、表面カーブに
沿ってパラメトリック関数として変化する表面法線ベク
トルとして、式 で表される。第6の関数(specular)は、式 で表される。
最後に、パラメトリックパッチをシェーディングする
装置は、第1の関数と、第2の関数と、第3の関数と、
第4の関数とを組合わせて、式 を構成することにより、表現されるパラメトリックパッ
チの表面カーブをシェーディングする。
本発明は映像のグラフィック表示のために用いられる
コンピュータ装置で使用する特定の用途を持つ装置およ
び方法を開示するものである。本発明を完全に理解でき
るようにするために、以下の説明においては、特定の回
路、ブロック図、信号、アルゴリズム等について述べて
ある。しかし、そのような特定の詳細事項なしに本発明
を実施できることが当業者には明らかであろう。その他
の場合には、本発明を不必要にあいまいにしないように
するために、周知の回路はブロック図で説明してある。
〔実施例〕
以下、図面を参照して本発明を詳しく説明する。
第1図には本発明の全体のブロック図が示されてい
る。CRT表示装置または別の表示装置に映像を表示する
ためには、表示したいカーブ、わん曲した表面、ベクト
ルまたは映像を構成する画素場所および色をCRT表示装
置上で選択するために、データを高速で処理することが
必要である。CRT上にしばしば表示すべき各点の場所は
記憶装置に格納されて、x,y,z,wの斉次座標に対応する
デジタル値によりしばしば表されることは良く知られて
いる。
米国特許出願07/047,696(特許第5,125,073号)およ
び07/047,693(特許第4,855,935号)の第1図に示され
ているX,Y,Z,W AFDU装置14を含むジオメトリ7部が、映
像を表示すべき図形オブジェクトのx,y,z,wの斉次座標
を計算する。ジオメトリ部7はアドレスパイプライン16
も含む。このアドレスパイプライン16は、前記米国特許
出願07/047,696および07/047,693の第1図と第7図に示
されている画素フィルタ回路30を含む。そのアドレスパ
イプライン16は修正されたブレゼンハム(Bresenham)
アルゴリズム誤差項を出力する。その誤差項はアンチエ
イリアシング重みづけ関数として用いられる。(ブレゼ
ンハム・アルゴリズムの修正されたものは多角形の縁部
に沿って走査線順に増分的に歩進するため、およびアン
チエイリアシングベクトル技術において広く用いられて
いる(1983年にスプリンガー・バーラグ(Springer Ver
lag)により発行された、クニイトシヤス編「コンピュ
ータ・グラフィックス・セオリイ・アンド・アプリケー
ションズ(Computer Graphics Theory and Application
s)」中のフジモトアキラおよびイワタコーの「ジャグ
・フリー・イメージズ・オン・ア・ラスタCRT(Jag Fre
e Images on a Raster CRT)」を参照されたい。)。重
みづけ関数は着色(ペイント)部150のシェーディング
パイプライン12へ出力される。着色部150はCRT22上の画
素に着色するために用いられる。これについては後で説
明する。AFDU14は瞬時x,y,z,w座標をアドレスパイプラ
イン16へ出力する(ここで「瞬時」と言う語は、AFDU14
が座標のストリームを発生するので、ある特定の時点で
考えると、AFDU14から発生されるのはその瞬時の座標と
なることを表現したものである)。画素フィルタ30は、
弧長と、アンチエイリアシング重みづけ関数Ceと、z座
標とを着色部150のシェーディングパイプライン12へ出
力する。
CRT上に特定の画素を形成するためにアドレスパイプ
ライン16は、x,y,w,z座標をフレームバッファ20へ出力
する。シェーディングパイプライン12へ入力される瞬時
座標zは奥行きキューイングのためにそこで用いられ
る。その奥行きキューイングは、映像を観ている人から
(z(奥行き)方向)へ離れるように映像が見えるよう
に図形オブジェクトをフェードアウトするための周知の
技術である。(フォレイ(Foley)およびバン・ダム(V
an Damm)、インターアクティブ・コンピュータ・グラ
フィックス(Interactive Computer Graphics)、アジ
ソン・ウェズレー(Addison Wesley)、1982年。)シェ
ーディングパイプライン12へ出力される弧長は、カーブ
に沿ってパターンをマップするためにパターン記憶装置
を増分的に索引するために用いられ、アンチエイリアシ
ング重みづけ係数が表現される図形オブジェクトの縁部
すなわち輪郭に沿って画素を背景に混合してラスタ表示
装置上の映像のジャグされた外見を減少させるために用
いられる。
着色部150は、複数の付加AFDU回路10と前記シェーデ
ィングパイプライン12を有する。着色部150は各画素に
おいて表示すべき色の赤、青、緑の表現を表示し、出力
し、ベクトルシェーディング、カーブシェーディング、
多角形シェーディング、およびパッチシェーディング
(すなわち、バイキュービックパッチ)を行う。それら
の各関数の動作と性能については後で詳しく説明する。
AFDU回路10は関数発生器として機能して、パラメトリ
ック入力をシェーディングパイプライン12へ供給する。
更に詳しくいえば、AFDU回路10は周知のフォンシェーデ
ィング式において法線ベクトルのドット積に対するパラ
メトリックキュービック近似を計算する目的と、直線補
間関数および映像をパッチにマップするために映像記憶
装置へのアドレスを計算する目的とを果たす。シェーデ
ィングパイプライン12は、赤処理と、青処理と、緑処理
とのそれぞれ用いる3つのチャネルを有する。各チャネ
ルは色ベクトル算術演算を行う一連の縦続接続された算
術装置を有する。シェーディングパイプライン12中の各
算術装置は、CPU9から受けた指令に応じて算術機能のう
ちの1つの算術機能を行う。それらの算術機能について
は後で説明する。
シェーディングパイプライン12は拡散および鏡面反射
寄与を有する色を計算してそれらの色をフレームバッフ
ァ20へ出力し、かつ色奥行きキューイングとアンチエイ
リアシングを加えるとともに、希望によっては、各画素
色に対する運動によるぼけ(モーションブラー)と透明
性を加える操作も行う。CRT22上に表示するために画素
色値はシェーディングパイプライン12からフレームバッ
ファ20へ出力される(すなわち、x,y,z,wにより定めら
れる)。
回帰計算能力が与えられるように、シェーディングパ
イプライン12は自己の出力を、シェーディングパイプラ
イン12の画素バッファへ供給することもできる。各画素
アドレスにおいて計算される値は画素バッファ記憶装置
に順次書込まれる。後で説明するように、同じカーブに
ついてAFDU14と10により再び実行し、画素バッファに格
納されている以前に計算した画素値に組合わせて更に付
加シェーディング計算を行う。
アドレスパイプライン16はフレームバッファ読出しモ
ードでも機能でき、それにより、アドレスパイプライン
16により発生されたアドレスを用いてフレームバッファ
20から画素値を読出すために用い、それらの値をシェー
ディングパイプライン12内の場所に順次出力して、それ
らの値を後で行うアンチエイリアシング計算、透明性計
算および運動によるぼけ計算のような計算に使用でき
る。
《ベクトル・シェーディング》 ベクトルの表示については、ベクトル属性は、線の
幅、アンチエイリアシング、色奥行きキューイングおよ
び透明性を含む。線幅とアンチエイリアシングは前記の
ように、および後で述べるようにジオメトリ部7から取
り出され、色奥行きキューイングおよび透明性は後記の
式(1)で計算した下記の係数を実現することにより得
られる。
Tc=透明係数で0(不透明)〜1(透明)の範囲であ
って、12の部分ビットを典型的に有する。Tcは与えられ
た目的に対して一定である。
PB=AFDU10により発生される値によりアドレスされる
画素バッファデータであり、各色<R,G,B>は0〜1の
範囲にあって、典型的には12の部分ビットから成る。
Be=0〜1の範囲の修正プレゼンハム誤差(アンチェ
イリアシング重みづけ関数として用いられる)で、12の
部分ビットを典型的に有する。Beはベクトルに沿う各画
素ごとにAFDU14により発生される。
IM=映像記憶装置、IM。
PM=パターン記憶装置、PM。
Z =ZAFDから奥行き値であって、0〜1の範囲、12の
部分ビットを典型的に有する。
Ca=アンチェイリアシング背景に対する色定数、各色
<R,G,B>8ビット。
この式は、不透明な図形オブジェクトに対してTc=0
とおき、アンチェイリアシング項においてPBを一定の色
Caで置換し、無アンチェイリアシングに対してBe=0と
セットし、一定の色OcでIMを置き換え、Z=0とセット
することにより、奥行きキューイングを希望する時は簡
単にできる。(注:アンチェイリアスされるベクトルに
対しては、それの2辺を横に並べられた2つの別々のベ
クトルとして独立に描くことができることがわかるであ
ろう。)(1)式の実現については後で第2図の回路を
参照して説明する。
《カーブ・シェーディング》 カーブの属性はベクトルの属性に非常に類似する。
(参照文献、フォーレイ(Foley)およびバン・ダム(V
an Damm)、ファンダメンタルス・オブ・インターアク
ティブ・コンピュータ・グラフィックス(Fundamentals
of Interactive Computer Graphics)、アジソン・ウ
ェズレー(Addison Wesley)、1982年)主な違いは、ア
ンチェイリアシング係数Ceが(1)式のBeの代わりに用
いられることである。したがって、カーブを表現する式
は下記の(2)式を実現することにより得られる。
(2)式によりベクトルと同様な簡単化が図られる。
係数Ceは、カーブに沿う各画素に対してアドレスパイプ
ライン16中の画素フィルタ30により計算されて、この回
路は画素フィルタの一部であって、後で詳しく説明す
る。
《多角形シェーディング》 多角形に適用されるシェーディング属性は、中空、中
実、ゴーラウドまたはフォン・シェーディングスタイ
ル、映像マッピング、アンチエイリアシング、奥行きキ
ューイング、および透明性を含む。下記の式は多角形の
2点間の線(すなわち、走査線)のためのシェーディン
グの式を与えるものである。多角形シェーディングは下
記の式(3)と(4)に示されている係数を実現するこ
とにより行われる。
NL=シェーディングされる多角形の走査線の左側縁部ま
たは右側縁部における正規化されていないドット積N・
L。各頂点における法線は正規化される。直線補間によ
りNLは常に0〜1の範囲にあって、1を決してこえな
い。好適な実施例においては、NLは12の部分ビットを有
する。もっとも、それより多いビット数、または少ない
ビット数も使用できる。
NH=多角形の走査線の左側縁部または右側縁部における
正規化されていないドット積N・H(典型的には、NLと
同じ範囲および同じビット数を持つ)。
NN=表面に垂直なベクトルの長さの自乗、すなわち、N
とNのドット積である。この値は、好適な実施例におい
ては、典型的には0.5〜1であって、12の部分ビットを
必要とする。
α=AFDU回路により発生される値であって、シェーディ
ングされる多角形の走査線の左側縁部と右側縁部の間を
0から1まで直線的に増大し、典型的には12の部分ビッ
トを有する。(注:AFDU回路は、前記米国特許出願07/04
7,696と07/047,693の第3図のX AFDU回路と同一であ
る。) 式(3)と(4)は、specの近似を発生するためにW
AFDU回路と、近似diffを発生するためにAFDU回路(第
2図を参照して後で説明する)を用いる高オーバヘッド
技術により大幅に簡単にされる。specとdiffは0〜1の
範囲であって、Kaと一緒に加え合わせて1にしなければ
ならず、好適な実施例においてはおのおの12の部分ビッ
トで構成される。
前記ゴーラウド・シェーディング(すなわち、CRTの
走査線に沿う色の補間)に対しては、上記のシェード式
を乗ずることを無くすことにより簡単にできる。(注・
ゴーラウドシェーディングはこの分野において周知であ
って、たとえば、ゴーラウド,ヘンリ(Gouraud,Henr
i)、コンピュータ・ディスプレイ・オブ・カーブド・
サーフェイシス(Computer Display of Curved Surface
s)、1971年、およびトム・ダフ(Tom duff)、「スム
ースリイ・シェイテッド・レンダリングス・オブ・ポリ
ヘドラル・オブジェクツ・オン・ラスタ・ディスプレイ
ズ(Smoothly Shaded Renderings of Polyhedral Objec
ts on Raster Displays)」、コンピュータ・グラフィ
ックス(Computer Graphics)、13巻、1979年。) この分野において周知のように、多角形のシェーディ
ングにおいては、縁部スタイル属性を表現するために多
角形の周囲に境界をしばしば引かなければならない。そ
のような境界が画素2個分以上の幅より広いと、表現さ
れる境界についてのdz/dxの正しい値を得る際に問題が
起こるから、その値はx値境界画素を最小にしない。境
界が画素2個分以上の幅より広い境界を表現する前記問
題の解決法を発明者は発見した。2個の多角形が表現さ
れ、多角形の縁部が外側の境界を形成し、内側の多角形
が内側の穴を形成する。内側の多角形の頂点は多角形の
内側の頂点であり、それにより、閉じられている境界画
素の問題を解決する。あるいは、境界の幅が画素1個分
だけであれば、または表現される多角形の縁部において
アンチェイリアシングが望ましいとすると、多角形を囲
むベクトル(アンチェイリアスされるベクトルの半分)
を表現することが好ましい。アンチェイリアスされたベ
クトル手法のxまたはyのオフセットにより、多角形の
丁度境界の内側にある画素を、囲みベクトルが含まない
ようにする。フォン・シェイドされる多角形のアンチェ
イリアスされる縁部についてのシェーディング式は次の
通りである。
第2図の画素バッファ116,216,316にdiff〔IM〕をま
ず格納し、次に各光源のための鏡面specOe〔Lc〕を画素
バッファに繰り返し加えることにより、多数の光源を第
2図に示されている装置で表現できることを本願発明者
は発見した。
《パラメータ・パッチ・シェーディング》 下記の式は二変数パラメータ・パッチを横切る表面カ
ーブについてのシェーディング式を示すものである。
前記米国特許出願07/047,696と07/047,693に記載され
ているように、変数(パラメータと呼ばれる)vのキュ
ービック(または高次の)パラメトリック関数を実現す
るためにAFDU回路を使用できる。キュービック関数発生
器として用いられるそれらのAFDU回路は、ほぼ1つの画
素ステップが発生されるように、キュービックカーブに
沿って画素アドレスを与えるために、x(v),y
(v),z(v),w(v)を発生するために用いられる。
AFDU回路は、spec(v),diff(v),N・L(v),N・
H(v)またはN・N(v)に対するキュービック関数
近似を発生するためにも使用できる。spec(v),diff
(v),N・L(v),N・H(v)またはN・N(v)
は、対応する画素アドレスのためのシェーディング値を
発生するために画素フィルタ30により全て制御される。
二変数表面パッチf(u,v)のシェーディングのため
に、第2図に示されている装置は、結果として得た表面
が穴すなわち画素間隙を含まないように、uパラメータ
内で十分に狭い間隔で隔てられている一連のカーブg
(v)のシーケンスを発生する。このようにしてパッチ
はu,vパラメータスペース内で表現され、それにより、
周知の映像マッピングおよびパッチトリミングのような
シェーディング操作を大幅に容易にする。二変数パッチ
をシェードするために狭い間隔をおいて隔てられている
一連のカーブを発生することを、前記米国特許出願07/0
47,696および07/047,693の前記適応フォーワード差分を
求める技術を用いて実現できる。
以下に、狭い間隔をおいて隔てられているいくつかの
カーブを表現することによりパッチをシェードする本発
明の方法について説明する。
第1のカーブから次のカーブへの適応フォーワード差
分を求める技術においては、第1のカーブのための基本
関数はf(u,v)であり、第2のカーブのための基本関
数はf(u+du,v)である。カーブをu,vで表すための
フォーワード差分を基礎とする周知のマトリックスは次
の通りである。
ここに、BvとBoはフォーワード差分基礎マトリックス
である。(フォーワード差分基礎マトリックスの詳細に
ついては、フォレイ(Foley)およびバン・ダム(Van D
amm)著、インターアクティブ・コンピュータ・グラフ
ィックス(InterActive Computer Graphics)、アジソ
ン・ウェズレイ(Addison Wesley)、1982年、を参照さ
れたい。) Aマトリックスのj番目の列をAxjで表す。Aマトリ
ックスのi番目の行をAixで表す。二変数パラメトリッ
ク・パッチ上の1つのカーブから次のカーブまでのフォ
ーワード差分ステップが、行Ax1をAx0に加え、Ax2をAx1
に加え、Ax3をAx2に加えることにより行われる。それで
表現される次のカーブは列Ax0中の4つの値で定まる。
それから、表現される次のカーブが現在のカーブから離
れすぎている(画素間隙を残して)かどうかを次のよう
にして調べる。
「差」列Ax1は周知の「ビツアイヤー(Bezier)」基
礎へ変換される。次に、2つのカーブの間の画素座標x
とyにおける最大距離を得るために周知のビツアイヤー
凸状殻がテストされる。その距離が所定のしきい値より
長いとすると、Aマトリックスの各行は短く調節され
る。xの距離とyの距離が所定の最小しきい値より短い
と、マトリックスの各行を長くするように調節する。
(「ビツアイヤー」基礎およびそれのフォーワード差分
を求める相互作用の詳細については前掲書、「インター
アクティブ・コンピュータ・グラフィックス(InterAct
ive Computer Graphics)」を参照されたい。) ベクトル、カーブ、多角形およびバイキュービックパ
ッチシェーディングのための前記式の実現法を第2図を
参照して以下に説明する。
第2図には本発明のシェーディングハードウェアの全
体のブロック図が示されている。第2図はカラーCRT用
の標準の赤信号と、緑信号と、青信号を発生するための
3チャネル・プロセッサを示す。一般に、100〜199まで
の参照符号をつけた部品は赤チャネル(R)に対応し、
200〜299の参照符号をつけた部品は緑チャネル(G)に
対応し、300〜399までの参照符号をつけた部品は青チャ
ネル(B)に対応する。
第2A図は、第2図の理解容易化のために第2図を単純
化したブロック図である。第2図の全体のブロックに
は、鏡面シェーディング関数及び拡散シェーディング関
数のブロック540と、奥行きキュー関数のブロック530
と、エイリアス防止関数のブロック520と、透明性関数
のブロック510とが含まれる。これらの関数ブロックは
パイプライン構造に構成されて、ベクトル、カーブ、多
角形またはパッチのような図形オブジェクトを表す画素
データがこれらの関数ブロックを直列的に通って処理さ
れる。関数のブロックそれぞれは、CPU9からの受けた指
令に応じて対応する算術機能を行う。例えば、図形オブ
ジェクトがベクトルであれば、後述の《1.ベクトルとカ
ーブのシェーディング》の説明からも明らかなように、
ベクトルの一部を表す画素データは、鏡面シェーディン
グ関数及び拡散シェーディング関数のブロック540に入
力されるが、そのブロック540は、画素データに修正を
加えずに通過させてそのまま奥行きキュー関数のブロッ
ク530に送る。ブロック530は画素データに修正を加えて
奥行きキュー効果を発生し、この奥行きキュー効果を与
えられたデータはエイリアス防止関数のブロック520へ
送られてエイリアス防止効果を与えられ、そして、透明
性関数のブロック510へ送られ、そのブロック510におい
て修正されて透明性効果を与えられ、フレームバッファ
20へ送られる。
4つの適応フォーワード差分回路(AFDU)50,60,70,9
0が第1図のAFDU10に対応しており、第1図のAFDU14か
ら出力された画素アドレスに対応する画素シェーディン
グ値を供給する。これらのAFDUは、三次のデジタル差分
解析器であって、前記米国特許出願07/047,696および07
/047,693に記載されているように、パラメータtがキュ
ービックカーブに沿って0から1まで変化するにつれ
て、tに対するdtなるステップ寸法が適応調節されてカ
ーブがほぼ1画素きざみでステップするように、パラメ
ータtのパラメトリックキュービック関数に対する適応
フォーワード差分の解を出す。算術装置(AU)76,78,8
6,88,104,114,122,124,128,204,214,222,224,228,304,3
14,322,324,328は、全て同一の装置であって、ゲートア
レイとして実現でき、または「TRW」掛算器およびALUの
ような個別部品から構成され得る。
明確化のために、ここで説明する好ましい実施例は、
各計算ステップが専用のALUに割当てられているパイプ
ライン構造とされている。しかし、各チャネルに1つの
ALUを用いて、引続く動作サイクル中に後述する各演算
を実行できるように回帰処理をすることによっても、同
じ結果を得ることができる。そのような回帰処理を支持
するために帰還および掛算回路を要求されるが、そのよ
うな回帰処理の実施例の一例を後で第4図を参照して説
明する。
各AUは入力A,Bとアルファ(ALPHA)を受け、結果RES
を生ずる。各AUはRESの出力に、下記の式の1つを計算
結果を出す。
(AUPHA)A+(1−ALPHA)B (6a) (ALPHA)B+(1−ALPHA)A (6b) (ALPHA)A+B (7a) (ALPHA)B+A (7b) A*B (7c) A+B (7d) AA AFDU50の出力がAA関数モジュール52へ供給され
る。そのAA関数モジュール52は、走査線からからの距離
を(1)式中のBeへと変換する関数を含むルックアップ
テーブルであり、その出力はマルチプレクサ96へ入力さ
れる。マルチプレクサ96はジオメトリ部7(第1図)の
画素フィルタ回路30からアンチエイリアス重みづけ係数
(式(2)中のCe)も入力として受ける。第3図は、前
記米国特許出願07/047,696および07/047,693の第7図
(前記画素フィルタ30)に示されているいくつかのレジ
スタ(102,103,104,120,121,122)を示す。第3図に示
されている減算器170がxレジスタ103,104から入力を受
け、出力tx=xn+1−xn+2(txは瞬時正接ベクトルのx成
分である)を生ずる。減算器171がyレジスタ121と122
から入力をとり、出力ty=yn+1−yn+2を生ずる(tyは瞬
時正接ベクトルのy成分である)。第3図のルックアッ
プテーブル176は瞬時正接ベクトル<tx,ty>入力を減算
器170,171からとり、入力182をCPU9からとり、アドレス
xn+1,yn+1の一部分をレジスタ103,121からとる。
ルックアップテーブル176は、着色部150へ供給される
アンチェイリアシング重みづけ係数αである出力178
と、加算器183へ供給される出力179(x offset)、加
算器184へ供給される出力180(y offset)、の3つの
出力を生ずる。加算器の出力はフレームバッファ20によ
り後で受けられる。ルックアップテーブル176には後で
示す2つの表に対応する予め計算された値がロードされ
る。ルックアップテーブル176に入力される1ビット幅
の入力信号182がCPU9により「0」にセットされて、第
1図に示されている回路に、アンチェイリアスされたカ
ーブの第1のパスを表現する。1ビット幅の信号が
「1」にセットされて第2のパスを表現する。第1のパ
スに対しては、AFDUにより発生された画素<x,y>がシ
ェーディング係数1−|α|でシェードされる。ここ
に、表現されるカーブがx−majorカーブであればα=
αであり、カーブがy−majorカーブであればα=α
である。アンチェイリアシング重みづけ係数は次式で
計算される。
x−majorカーブとy−majorカーブのためのパスのル
ックアッテーブル176の出力を第I表に示す。
第2のパスに対しては、画素は|α|による座標<x
+x offset,y+y offset>を有する。ここに、x
offset=sign(α)・x majorおよびy offset=sig
n(α)・y majorである。x majorカーブとy majorカ
ーブのためのパスのルックアップテーブルの出力を第II
表に示す。
第I表と第II表に示すように、ルックアップテーブル
176へ供給される信号182は「0」にセットされる。ルッ
クアップテーブル176の出力179はx offset=0である。
信号182が「1」にセットされると、ルックアップテー
ブル176からの出力179は次のようになる。(i)表現さ
れるカーブがx−major正接ベクトルであることを入力1
74が示すと「0」、(ii)表現されるカーブがy−majo
r正接ベクトルであることを入力174が示し、αが正であ
れば「1」、(iii)表現されるカーブがy−major正接
ベクトルであることを入力174が示し、αが負であれば
「−1」である。ルックアップテーブル176からの出力1
80は次の通りである。(i)表現されるカーブがy−ma
jor正接ベクトルであることを入力174が示すと「0」、
(ii)表現されるカーブがx−major正接ベクトルであ
ることを入力174が示し、αが正であれば「1」、(ii
i)表現されるカーブがx−major正接ベクトルであるこ
とを入力174が示し、αが負であれば「−1」である。
加算器183は、ルックアップテーブル176からのx−offs
et179をレジスタ内容102に加え、現在の画素のx座標を
出力する。加算器184はルックアップテーブル176からの
y−offset180をレジスタ内容120に加え、現在の画素の
y座標を出力する。
再び第2図を参照して、掛算器96の出力がAU124,224,
324のALPHA入力端子により受けられる。
N・N AFDU60の出力がルックアップテーブル62によ
り受けられる。それはN・Nの平方根の逆数の近似計算
を行う。ルックアップテーブル62の出力はAU78,88のALP
HA入力端子へ供給される。AU78はそれのA入力をAU76の
RES出力端子から受ける。INTERP AFDU70の出力がAU76,
86のALPHA入力端子へ供給される。AU78の出力はxoe関数
モジュール79へ供給される。xoe関数モジュール79の出
力がAU114,214,314のALPHA入力端子へ供給される。
レジスタ82,84の出力がAU86の入力端子AとBへそれ
ぞれ供給される。AU86のRES出力がAU88のA入力端子へ
接続される。AU88のB入力端子へレジスタ87の出力が供
給される。AU88のRES出力がAU104,204,304のALPHA入力
端子へ供給される。
パターンAFDU90の出力がPATT関数モジュール92へ供給
される。そのモジュール92の出力はパターンメモリアド
レスであって、パターン記憶装置102,202,302へ供給さ
れる。パターン記憶装置102,202,302内のアドレスされ
る場所の内容はAU104,204,304のA入力端子へ供給され
る。AU104,204,304のRES出力はマルチプレクサ110,210,
310へそれぞれ供給される。それらのマルチプレクサ11
0,210,310はレジスタ106,206,306の出力を入力としても
それぞれ受ける。マルチプレクサ110,210,310の出力はA
U114,214,314のA入力端子へそれぞれ供給される。
AU114,214,314の出力がAU122,222,322のA入力端子へ
それぞれ供給されるとともに、画素バッファ記憶装置11
6と118,216と218,316と318へそれぞれ順次入力として供
給される。それらの画素バッファ記憶装置の順次出力が
マルチプレクサ112,212,312へそれぞれ供給される。そ
れらのマルチプレクサ112,212,312はレジスタ108,208,3
08の出力もそれぞれ受ける。マルチプレクサ112,212,31
2の出力はAU114,214,314のB入力端子へそれぞれ供給さ
れる。本発明の回路を第2図に示すように用いることに
より同じカーブの新しいシェーディング関数を計算で
き、以前に計算されて画素バッファアレイに格納されて
いる対応する画素のシェーディング値とAUにおいて算術
的に組合わされる。画素バッファはカウンタ(図示せ
ず)により順次制御される。そのカウンタはCPU9による
カーブ演算の開始時にリセットしなければならない。全
てのレジスタはCPU9でアクセスできる。
AU122,222,322はレジスタ120,220,320の出力端子から
B入力をそれぞれ受ける。AU122,222,322のRES出力がAU
124,224,324のA入力端子へそれぞれ供給される。バッ
ファ20(図示せず)からの赤データと、緑データと、青
データが順次アドレスされる画素バッファ記憶装置126,
130,226,230,326,330の入力端子へ供給される。画素バ
ッファ記憶装置126,226,326の出力がAU124,224,324のB
入力端子へそれぞれ供給される。画素バッファ記憶装置
130,230,330の出力がAU128,228,328のB入力端子へそれ
ぞれ供給される。AU128,228,328のALPHA入力端子へ透明
性レジスタ98の出力が供給される。AU128,228,328のRES
出力端子が赤CRTチャネルと、緑CRTチャネルのための画
素シェーディングのデジタル表現をそれぞれ供給する。
以上、第2図に示されている回路部品の相互接続につ
いて説明したが、次に、第2図に示されている回路によ
り実現される前記シェーディング式に関してその機能を
説明する。以下には赤チャネルだけについて説明するこ
とにする。しかし、とくに説明するもの以外は緑チャネ
ルと青チャネルにおいても同一の処理が行われることを
理解すべきである。
《1.ベクトルとカーブのシェーディング》 前記したように、ベクトルとカーブのシェーディング
は下記の(8)式を実現することにより行われる。
(8) 画素色=Tc(PB4)+(1−Tc)(Be(PB3)+(1−Be) (Z(Cd)+(1−Z)(PM))) ここに、 Tc=透明性係数 PB3,PB4=フレームバッファから帰還される画素バッ
ファデータ Be=修正プレゼンハム誤差関数 Z =奥行き重み Cd=かすみ色すなわち奥行きキュー色 PM=第2図のパターン記憶装置からの固有のカーブ色 である。
パターンAFDU90はパラメトリック関数の現在の値をパ
ターン・アドレス翻訳器92へ出力する。このパターン・
アドレス翻訳器はそれに入力された値のパターン・アド
レス翻訳を行う。パターン・アドレス翻訳器92により出
力されたパターン・アドレスはパターン記憶装置102内
の記憶場所をアドレスするためにパターン記憶装置102
へ供給される。そのパターン記憶装置のアドレスされた
内容は、前記(8)式においてPMで示されている固有の
カーブ色を表す(表現されるベクトルまたはカーブの現
在の画素のための書込みイネイブルビットも含む)。こ
の場合には、PMは修正されずにAU104,114を通ってAU122
のA入力端子へ供給される。(8)式のもや色Cdはレジ
スタ120によりAU122のB入力端子へ供給される。ジオメ
トリ部7からのz座標値がz関数モジュール94へ供給さ
れる。このz関数モジュールはルックアップテーブル機
能を実行してAU122のALPHA入力端子にz座標値の関数と
して補間重みを供給する。AU122は前記(6b)式を実行
する。この場合には、 AU122の入力ALPHAはzに等しい。
AU122の入力AはPMに等しい。
AU122の入力BはCdに等しい。
したがって、AU122の出力RESは下記の(9)式で表さ
れる。
(9) z(Cd)+(1−z)(PM) この量は、奥行きのために調節された固有の色を表す
(すなわち、z座標値に依存するもや色の濃さに混合さ
れる)。その色は奥行きキュー色とも呼ばれる。その値
はAU124の入力端子Aへ供給される。
AA AFDU50は、AA機能モジュール52とともに、前記修
正プレゼンハム誤差関数Beを発生する。その誤差関数は
マルチプレクサ96によりAU124のALPHA入力端子へ供給さ
れる。フレームバッファ20(第1図)から帰還された画
素データは画素バッファ記憶装置126により保持され、A
U124のB入力端子へ供給される。AU124は前記(6b)式
を実行する。
AU124の入力ALPHAはBeに等しい。
AU124のA入力端子は、AU122のRES出力端子に出力さ
れた前記奥行きキュー色結果を受ける。
AU124の入力Bは前記(1)式のPB3に等しい。
したがって、AU124のRES出力は (10) Be(PB3)+(1−Be)(奥行きキュー色) この量はアンチェイリアスされた色と呼ばれ、AU128
のA入力端子へ供給される。透明性係数Tcが透明性レジ
スタ98によりAU128のALPHA入力端子へ供給される。画素
データ帰還が画素バッファ記憶装置130に保持され、AU1
28の入力端子へ供給される。AU128は前記(6b)式も実
行する。
AU128の入力ALPHAはTcに等しい。
AU128の入力Aはアンチェイリアスされた色に等し
い。
AU128の入力BはPB4に等しい。
したがって、AU128の出力RESは下記の(11)式として
表される。
(11) Tc(PB4)+(1−Tc)(アンチェイリアスさ
れた色) 前記式(9),(10)と第2図に示されている回路を
参照すれば、(8)式により定められる画素色である量
(11)は本発明の回路により独特に求められる。
《2.多角形およびバッチのシェーディング》 周知のフォン近似を適用すると、無限遠にある1つの
光源により照明される多角形の表面上の任意の点におけ
る色は、拡散(diffuse)係数に図形オブジェクトの色
を乗じたものと、図形オブジェクトの鏡面指数で累乗さ
れた鏡面係数に光の色を乗じたものとの和により表され
る。(注:フォン近似はこの分野において周知であっ
て、たとえば、コンピュータ・グラフィックス(Comput
er Graphics)第13巻、2号、1979年8月、所載のトム
・ダフ(Tom Duff)のスムーズリイ・シェーデッド・レ
ンダリング・オブ・ポリヘドラル・オブジェクツ・オン
・ラスタ・ディスプレイズ(Smoothly Shaded Renderin
g of Polyhedral Objects on Raster Displays)と題す
る論文に詳しく記載されている。)前記したように、鏡
面係数と拡散係数が下記の式(12)と(13)に従って多
角形走査線に対して計算される。
ここに、 Nは表面垂線ベクトル Lは光源へ向かう単位ベクトル Hは最高輝度の向きにおける単位ベクトル(すなわ
ち、見る人と光源の間の半分の方向のベクトル) Kaは周囲の反射係数 αは補間係数(この補間係数の値は、表現される多角
形の走査線部分に沿う0から1までの間で直線的に変化
する) RTおよびLTは多角形の走査線部分の右端部と左端部に
おけるドット積N・Lの値である。
CPU9は多角形を走査変換して、表現される多角形を横
切って走査線部分を与える。走査線の各端部における拡
散係数と鏡面係数NLRT,NLLT,NHRT,NHLTが計算されて、
レジスタ82,84,72,74へそれぞれ供給される。N・N A
FDU60はN・Nに対する二次関数(すなわち、走査線に
沿う垂線ベクトルのドット積である。この積は周知であ
る。前記、コンピュータ・グラフィックス、第13巻(19
79年)所載のトム・ダフの前記論文参照)を発生する。
Interp AFDU70は、表現される多角形の走査線部分に
沿う0から1までのxの直線相互補間を発生する。この
係数はAU76,86のALPHA入力端子へ供給される。AU76,86
について(6a)式を実現すると下記の結果が得られる。
(14) RES AU76=(ALPHA)NHRT+(1−ALPHA)NHLT (15) RES AU86=(ALPHA)NLRT+(1−ALPHA)NLLT それらの式(14),(15)はそれぞれNLとNHの滑らか
な直線補間を表す。それらの値は直線補間プロセスのた
めに単位ベクトルを表さないので正規化されていない。
各画素における再正規化は、N・N AFDU60において行
われるN・Nに対する二次関数により行われる。
N・Nに対する二次関数はN・N AFDU60において発
生され、ルックアップテーブル62へ入力される。そのル
ックアップテーブル62は平方根の逆数の近似値を与え
る。このルックアップテーブル62の出力はAU78,88のALP
HA入力端子へ供給される。AU78,88は前記式(7a)を実
行する。AU78のB入力端子は開かれているから、RES出
力端部は(ALPHA)Aを供給する。その(ALPHA)Aは
(13)式の鏡面係数である 「RES AU76」に等しい。この出力は次にxoe関数発生器
79へ送られ、そこで図形オブジェクトの鏡面指数(鏡面
べき数)が加えられる。
周囲反射数Kaがレジスタ87に含まれ、AU88のB入力端
子へ供給される。したがって、AU88のRES出力端子は(1
2)式の拡散係数に等しい。
パターンAFDU90とパターン・アドレス翻訳器92がパタ
ーン記憶装置アドレスを発生する。ベクトルのシェーデ
ィングについて先に説明したように、パターン記憶装置
赤102は各画素にオブジェクト色を与える。オブジェク
ト色(それの赤成分)がAU104のA入力端子へ供給され
る。AU104は(7a)式を実行し、B入力端子は開かれて
いるから、RES出力は拡散係数(ALPHA入力)とオブジェ
クト色(A入力)の積を表す。この積はAU114のA入力
端子へ入力するためにマルチプレクサ110により選択さ
れる。レジスタ108内の光色がAU114のB入力端子へ入力
されるためにマルチプレクサ112により選択される。関
数モジュール79からの図形オブジェクト鏡面指数まで高
められた鏡面係数がAU114のALPHA入力端子へ供給され
る。AU114は(7b)式を実行して完全な画素色表現をRES
出力端子に供給する。AU114の下流側についてはカーブ
およびベクトルのシェーディングについて既に説明し
た。
先に説明したように、前記説明は、前掲コンピュータ
・グラフィックス、第13巻(1979年)所載のトム・ダフ
の前記論文に記載されているように、フォン・シェーデ
ィングのダフン近似値についてのものであった。同じ回
路がゴーラウド・シェーディングを実現することもでき
る。ゴーラウド・シェーディングはその計算が簡単で、
計算速度が高いから、ゴーラウド・シェーディングは一
般に用いられる。ゴーラウド・シェーディングは粗いシ
ェーディングを行うためにとくに有用である。ゴーラウ
ド・シェーディングは多角形走査線を1つの点から別の
点まで横切る色の簡単な直線補間として実現される。し
たがって、拡散係数と鏡面係数は計算されず、走査線に
沿う中間画素の色は次式により与えられる。
α(右側の色)+(1−α)(左側の色) ゴーラウド・シェーディングは正規化されないから、
AU78,88においてN・Nの平方根の逆数を導入する必要
はない。その代わりに、AU78,88のALPHA入力が単位の値
に保たれる。レジスタ74に「0」がロードされ、レジス
タ72に「1」がロードされて、interp AFDU70からの直
線補間係数が修正されないでAU78のA入力端子へ送られ
るようにする。AU78は(7d)式を実行するから、修正さ
れていないA入力をRESへ送り、そこからxOe関数を側路
し、AU114のALPHA入力端子へ送る。右側のオブジェクト
色値がレジスタ108にロードされ、左側のオブジェクト
色がレジスタ106にロードされる。補間係数がINTERP A
FDU70によりAU114のALPHA入力端子へ供給される。マル
チプレクサ110がレジスタ106を選択し、マルチプレクサ
112がレジスタ108を選択する。AU114は(6a)式を実行
し、それによりRES出力端子にゴーラウドシェーディン
グを行う。そのゴーラウドシェーディングは、AU122の
A入力端子へ送られる。
シェーディング回路中でのパッチの処理は、シェーデ
ィング・パラメータN・LとN・Hが、走査線を横切る
直線補間によるのではなくて、AFDU60,70により供給さ
れるバイキュービック関数で近似値されることを除き、
多角形の場合に類似する。(コンピュータ・グラフィッ
クス(Computer Graphics)第21巻4号、1987、所載の
マイケル・シャンツ(Michael Shants)およびシュー・
リン・リエン(Sheue−Ling Lien)の「シェーディング
・バイキュービック・パッチ(Shading Bi−cubic Patc
hes)」と題する論文においては、バイキュービック関
数を前記のように近似するいくつかの技術が記載されて
いる。)パッチシェーディングのために、N・N AFDU
60は鏡面係数の近似値を発生し、INTERP AFDU70が拡散
係数の近似値を発生する。N・N AFDU60とINTERP AF
DU70の出力がAU78,86のALPHA入力端子へそれぞれ供給さ
れ、鏡面係数は変更なしにルックアップテーブル62を通
る。
AU78のA入力は単位値に保たれ、それにより鏡面係数
を変更しないままでRES出力端子へ送る。同様に、拡散
係数が変更なしにAU86,88を通って送られる。その後
で、処理が、多角形について述べたのと同じやり方で進
められる。
パッチシェーディングと多角形シェーディングは、奥
行きキューイングおよび透明性についてカーブおよびベ
クトルシェーディングについて述べたようにして、AU11
4のRES出力端子から進む。パッチまたは多角形に対して
はアンチェイリアシングが行われないから、中間結果が
変更なしにAU124を通る。
別の実施例 第4図には第2図に示されている回路の別の実施例が
示されている。第4図の回路の右から左へ説明すれば、
AFDU400は第2図のパターンAFDU90とN・N AFDU60に
対応し、それらの部品について先に説明したのと同じ機
能を行う。同様に、Q AFDU402が第2図のA AFDU50とINT
ERPAFDU70と置換されており、それらの部品と同じ機能
を果たす。アドレスモジュール402,406がパターン翻訳
器92に対応し、そのパターン翻訳器と同じ機能を果た
す。映像記憶装置408,410,412は、アドレスパターン記
憶装置102,202,302と平方根の逆数の関数62および画素
バッファ記憶装置(116,118,216等)に対応し、それら
の部品と同じ機能を果たす。マルチプレクサ414は希望
の色定数Coまたは映像記憶装置408の出力を入力として
選択する。その色定数Coは前記式におけるNLlt,Ca,Cdま
たはOcとすることができる。マルチプレクサ416は、表
現される特定の関数に応じて、Beすなわち映像記憶装置
410の出力、またはzあるいはtcを入力として選択す
る。マルチプレクサ418は映像記憶装置412の出力、また
は映像記憶装置410の出力、あるいはC1、もしくは希望
の色定数を入力として選択する。その色定数はNL,Ca,C
d,Ocまたはその他の一定の色ボリュームとすることがで
きる。マルチプレクサ414,416,418の選択された出力はA
U420,422,424へ供給される。それらのAUは第2図に示さ
れているAUと、AU76,78,86,88の代わりである。前記諸
関数を実行するために各部品が適切な機能を実行するよ
うに、CPU9は第4図に示されている回路を制御する。そ
れらの関数の実現については第2図を参照して既に詳し
く説明した。
以上、本発明を説明したが、本発明の要旨を逸脱する
ことなしに本発明を別の特定の態様で実施できることが
わかるであろう。とくに、AFDUは立体より高次の関数を
実現するためにAFDUを容易に拡張できる。
【図面の簡単な説明】
第1図は本発明の画素をシェーディングする回路のブロ
ック図、 第2図は第1図のブロック図の詳しいブロック図、 第2A図は第2図を単純化したブロック図、 第3図は第2図に示されている回路のいくつかのブロッ
ク図、 第4図は第2図に示されている回路の別の実施例のブロ
ック図である。 7……ジオメトリ部、9……CPU、 10,14……適応フォーワード差分回路(AFDU)、 12……シェーディング・パイプライ、16……アドレス・
パイプライン、 20……フレームバッファ、22……CRT、 30……画素フィルタ、50……AA AFDU、 52……AA関数モジュール、60……NXM AFDU、 70……INTERP AFDU、 76,78,86,88,104,114,122,124,128,204,214,222,228,30
4,314,322,324,328……算術装置(AU)、 90……パターンAFDU、 102,103,104,120,121,122……レジスタ、 170,171……減算器、176……ルックアップテーブル、 184……加算器、 510……透明性関数のブロック、 520……エイリアス防止関数のブロック、 530……奥行きキュー関数のブロック、 540……鏡面シェーディング関数及び拡散シェーディン
グ関数のブロック。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スーザン・イー・キヤリイ アメリカ合衆国94086 カリフオルニア 州・サニイベイル・ブライアン アヴエ ニユウ・482 (72)発明者 ジム・ヴアン・ルー アメリカ合衆国94022 カリフオルニア 州・ロス アルトス・フアーンドン ア ヴエニユウ・1864 (72)発明者 デヴイツド・エルロツド アメリカ合衆国94087‐1144 カリフオ ルニア州・サニイベイル・ナツメグ ア ヴエニユウ・735 (56)参考文献 特開 昭62−229381(JP,A) 特開 昭61−103277(JP,A) 特開 昭60−126771(JP,A) Computer Graphic s,Vol.21,No.4,July 1987,P.111−118 Computer Graphic s,Vol.21,No.4,July 1987,P.189−196

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】ベクトル、カーブ、多角形及びパッチから
    成り、当初は図形オブジェクトの色の表現から構成され
    ている図形オブジェクト画素データによって各々が定義
    されている複数の図形オブジェクトを、図形表示装置上
    の所定の場所に、前記図形オブジェクトを光源に従って
    シェーディングして表示する、図形オブジェクトのシェ
    ーディング値を生成するシェーディング値生成装置であ
    って、前記図形表示装置には、中央処理装置(CPU)
    と、メモリと、フレームバッファ(20)と、フレームバ
    ッファに記憶されている画素データを表示する表示装置
    (22)とが設けられている、図形オブジェクトのシェー
    ディング値生成装置において、 図形オブジェクトに関わる鏡面シェーディング値及び拡
    散シェーディング値を取込むために、鏡面関数及び拡散
    関数に従って図形オブジェクト画素データを修正する手
    段(540)であって、 前記鏡面関数は、鏡面シェーディング走査線値と、図形
    オブジェクトに関わるオブジェクト鏡面指数(79)と、
    図形オブジェクトに関わる表面法線ベクトル(62)とか
    ら確定され、前記鏡面シェーディング走査線値は、表面
    法線ベクトル(62)と、最大ハイライトの方向の単位ベ
    クトル(72,74)とのドット積に従って確定され、 前記拡散関数は、拡散シェーディング走査線値と、図形
    オブジェクトの周囲反射の係数と、図形オブジェクトに
    関わる表面法線ベクトル(62)と、図形オブジェクトに
    関連するパターン記憶装置データ(102,202,302)とか
    ら確定され、前記拡散シェーディング走査線値は、表示
    法線ベクトル(62)と、光源の方向の単位ベクトル(8
    2,84)との点乗積に従って確定される よう構成された、図形オブジェクト画素データを鏡面関
    数及び拡散関数に従って修正する手段(540)と; 図形オブジェクトに関わる奥行きキュー色と、背景色
    (120,220,320)と、図形オブジェクト画素データとか
    ら確定される奥行きキュー関数(530)に従って奥行き
    キュー効果を発生するために、図形オブジェクト画素デ
    ータを修正する手段と; 修正ブレゼンハム誤差関数(96)と、図形オブジェクト
    を表示すべき所定の場所についてフレームバッファ(2
    0)から読取られる画素データとから確定されるエイリ
    アス防止関数(520)に従ってエイリアス防止効果を発
    生するために、図形オブジェクト画素データを修正する
    手段と; 図形オブジェクトに関わる透明性係数(98)と、図形オ
    ブジェクトを表示すべき所定の場所についてフレームバ
    ッファ(20)から読取られる画素データと、図形オブジ
    ェクト画素データとから確定される透明性関数(510)
    に従って透明性効果を発生するために、図形オブジェク
    ト画素データを修正する手段と; 鏡面関数及び拡散関数に従って図形オブジェクト画素デ
    ータを修正する前記手段(540)と、エイリアス防止効
    果を発生するために図形オブジェクト画素データを修正
    する前記手段と、奥行きキュー効果を発生するために図
    形オブジェクト画素データを修正する前記手段と、透明
    性効果を発生するために図形オブジェクト画素データを
    修正する前記手段とをパイプライン構造として編成する
    パイプライン構造編成手段であって、前記パイプライン
    構造が、 鏡面関数及び拡散関数に従って図形オブジェクト画素デ
    ータを修正する前記手段と、エイリアス防止効果を発生
    するために図形オブジェクト画素データを修正する前記
    手段と、奥行きキュー効果を発生するために図形オブジ
    ェクト画素データを修正する前記手段と、透明性効果を
    発生するために図形オブジェクト画素データを修正する
    前記手段とを、これらの手段のうちの1つの手段の出力
    端子が他の1つの手段の入力端子に接続されて、パイプ
    ライン構造中で最初に位置する手段はその入力の1つと
    して未修正図形オブジェクト画素データを受け、パイプ
    ライン接続構造中で最後に位置する手段はその出力とし
    て図形オブジェクトのシェーディング画像を表わす修正
    画素データを前記フレームバッファへその入力として出
    力するよう、直列に接続する手段 を有している、パイプライン構造編成手段と; 鏡面関数及び拡散関数に従って図形オブジェクト画素デ
    ータを修正する前記手段と、エイリアス防止効果を発生
    するために図形オブジェクト画素データを修正する前記
    手段と、奥行きキュー効果を発生するために図形オブジ
    ェクト画素データを修正する前記手段と、透明性効果を
    発生するために図形オブジェクト画素データを修正する
    前記手段とを、図形オブジェクト画素データが定義する
    図形オブジェクトの種類に従って選択的にCPU(9)か
    らイネーブルする手段と; 前記フレームバッファ(20)により図形オブジェクトの
    シェーディング画像を次に表示するために、パイプライ
    ン構造中で最後に位置する手段の出力を前記フレームバ
    ッファ(20)用に受信する手段と を備える、図形オブジェクトのシェーディング値生成装
    置。
  2. 【請求項2】ベクトル、カーブ、多角形及びパッチから
    成り、当初は図形オブジェクトの色の表現から構成され
    ている図形オブジェクト画素データによって各々が定義
    されている複数の図形オブジェクトを、中央処理装置
    (CPU)と、メモリと、フレームバッファと、フレーム
    バッファに記憶されているデータを表示する表示装置と
    を具備する図形表示装置上の所定の場所に、各図形オブ
    ジェクトを光源に従ってシェーディングして表示するた
    めに、図形オブジェクトのシェーディング値を生成する
    方法において、 鏡面シェーディング関数及び拡散シェーディング関数
    (540)に従って図形オブジェクトに関わる鏡面シェー
    ディング値及び拡散シェーディング値を選択的に計算
    し、図形オブジェクトに関わる前記鏡面シェーディング
    値及び拡散シェーディング値を図形オブジェクト画素デ
    ータと組合わせて図形オブジェクト画素データを修正し
    鏡面シェーディング値及び拡散シェーディング値を取込
    む、図形オブジェクトに関わる鏡面シェーディング値及
    び拡散シェーディング値を選択的に計算する過程であっ
    て、 前記鏡面関数は、鏡面シェーディング走査線値と、図形
    オブジェクトに関わるオブジェクト鏡面指数(79)と、
    図形オブジェクトに関する光色と、図形オブジェクトに
    関わる表面法線ベクトル(62)とから確定され、前記鏡
    面シェーディング走査線値は表面法線ベクトル(62)
    と、最大ハイライトの方向の単位ベクトル(62)とのド
    ット積に従って確定され、 前記拡散関数は、拡散シェーディング走査線値と、図形
    オブジェクトに関わる周囲反射の係数と、図形オブジェ
    クトに関わる表面法線ベクトル(62)と、図形オブジェ
    クトに関連するパターン記憶装置データ(102,202,30
    2)とから確定され、前記拡散シェーディング走査線値
    は、表面法線ベクトル(62)と、光源に向かう単位ベク
    トル(82,84)とのドット積に従って確定されるもので
    ある、 図形オブジェクトに関わる鏡面シェーディング値及び拡
    散シェーディング値を選択的に計算する過程と; 図形オブジェクトに関わる奥行きキュー色と、背景色
    (120,220,320)と、図形オブジェクト画素データとか
    ら確定される奥行きキュー関数(530)に従って奥行き
    キュー効果を発生するよう、図形オブジェクト画素デー
    タを選択的に修正する過程と; 修正ブレゼンハム誤差関数(96)と、図形オブジェクト
    画素データと、図形オブジェクトを表示すべき所定の場
    所についてのフレームバッファ(20)からの画素データ
    とから確定されるエイリアス防止関数(520)に従って
    エイリアス防止効果を発生するよう、図形オブジェクト
    画素データを選択的に修正する過程と; 図形オブジェクトに関わる透明性係数(98)と、図形オ
    ブジェクトを表示すべき所定の場所についてのフレーム
    バッファ(20)から読取られる画素データと、図形オブ
    ジェクト画素データとから確定される透明性関数(51
    0)に従って透明性効果を発生するよう、図形オブジェ
    クト画素データを選択的に修正する過程と; 図形オブジェクトのシェーディング画像を生成するため
    に、図形オブジェクトの種類に従って図形オブジェクト
    画素データを修正する関数を選択する過程と; シェーディング画像の表示のために、修正図形オブジェ
    クト画素データをフレームバッファ(20)へ出力する過
    程 とを備える、図形オブジェクトのシェーディング値を生
    成する方法。
JP63187968A 1987-07-27 1988-07-27 図形オブジェクトのシェーディング値生成装置およびその方法 Expired - Fee Related JP2777577B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7779787A 1987-07-27 1987-07-27
US077,797 1987-07-27

Publications (2)

Publication Number Publication Date
JPH01120685A JPH01120685A (ja) 1989-05-12
JP2777577B2 true JP2777577B2 (ja) 1998-07-16

Family

ID=22140108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63187968A Expired - Fee Related JP2777577B2 (ja) 1987-07-27 1988-07-27 図形オブジェクトのシェーディング値生成装置およびその方法

Country Status (7)

Country Link
JP (1) JP2777577B2 (ja)
CA (1) CA1305802C (ja)
DE (1) DE3825539C2 (ja)
FR (1) FR2622030B1 (ja)
GB (1) GB2207585B (ja)
HK (1) HK60992A (ja)
SG (1) SG52792G (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179638A (en) * 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view
US5253339A (en) * 1990-07-26 1993-10-12 Sun Microsystems, Inc. Method and apparatus for adaptive Phong shading
GB2271259A (en) * 1992-10-02 1994-04-06 Canon Res Ct Europe Ltd Processing image data
US6184891B1 (en) 1998-03-25 2001-02-06 Microsoft Corporation Fog simulation for partially transparent objects
JP2014056371A (ja) * 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586038A (en) * 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
JPS60126771A (ja) * 1983-12-14 1985-07-06 Hitachi Ltd 自由曲面表示方式
JPS61103277A (ja) * 1984-10-26 1986-05-21 Hitachi Ltd 図形シエ−デイング装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Computer Graphics,Vol.21,No.4,July 1987,P.111−118
Computer Graphics,Vol.21,No.4,July 1987,P.189−196

Also Published As

Publication number Publication date
CA1305802C (en) 1992-07-28
FR2622030B1 (fr) 1994-03-04
DE3825539C2 (de) 1997-06-12
GB8811392D0 (en) 1988-06-15
SG52792G (en) 1992-12-04
JPH01120685A (ja) 1989-05-12
DE3825539A1 (de) 1989-02-09
FR2622030A1 (fr) 1989-04-21
GB2207585A (en) 1989-02-01
GB2207585B (en) 1992-02-12
HK60992A (en) 1992-08-21

Similar Documents

Publication Publication Date Title
US5063375A (en) Method and apparatus for shading images
US6650327B1 (en) Display system having floating point rasterization and floating point framebuffering
JP3021368B2 (ja) 画素の法線ベクトルを用いたバンプマッピングレンダリング方法及びそれを具現するレンダリング装置
US6211884B1 (en) Incrementally calculated cut-plane region for viewing a portion of a volume data set in real-time
US6879328B2 (en) Support of multi-layer transparency
US4901064A (en) Normal vector shading for 3-D graphics display system
US6483507B2 (en) Super-sampling and gradient estimation in a ray-casting volume rendering system
US6532013B1 (en) System, method and article of manufacture for pixel shaders for programmable shading
US6469700B1 (en) Per pixel MIP mapping and trilinear filtering using scanline gradients for selecting appropriate texture maps
JPH0719297B2 (ja) グラフィック表示処理システム及び方法
US6437781B1 (en) Computer graphics system having per pixel fog blending
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
JPH09223244A (ja) 3次元オブジェクトを高速にレンダリングする方法および装置
US6219062B1 (en) Three-dimensional graphic display device
US5740344A (en) Texture filter apparatus for computer graphics system
JP2777577B2 (ja) 図形オブジェクトのシェーディング値生成装置およびその方法
GB2302001A (en) Computer graphics system having per pixel depth cueing
US6191788B1 (en) Method and apparatus for approximating nonlinear functions in a graphics system
US6570575B1 (en) Associated color texture processor for high fidelity 3-D graphics rendering
JPH1083180A (ja) グラフィックス表示装置及び方法
JP2524099B2 (ja) 三次元図形表示装置
JP2898569B2 (ja) コンピュータゲーム開発用ビデオアクセラレータボード
JP2590783B2 (ja) 三次元図形表示装置
CLINE COMPUTER GRAPHICS HARDWARE
JPS61220072A (ja) 画像合成方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees