JP4219090B2 - コンピュータグラフィックスシェーディングおよびアニメーションにおいて照明を提供するための方法、システム、およびコンピュータプログラムプロダクト - Google Patents

コンピュータグラフィックスシェーディングおよびアニメーションにおいて照明を提供するための方法、システム、およびコンピュータプログラムプロダクト Download PDF

Info

Publication number
JP4219090B2
JP4219090B2 JP2000513245A JP2000513245A JP4219090B2 JP 4219090 B2 JP4219090 B2 JP 4219090B2 JP 2000513245 A JP2000513245 A JP 2000513245A JP 2000513245 A JP2000513245 A JP 2000513245A JP 4219090 B2 JP4219090 B2 JP 4219090B2
Authority
JP
Japan
Prior art keywords
irradiance
color
point
vector
field
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
JP2000513245A
Other languages
English (en)
Other versions
JP2001517838A (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.)
Microsoft Corp
Original Assignee
Microsoft 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
Priority claimed from US08/937,793 external-priority patent/US6567083B1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2001517838A publication Critical patent/JP2001517838A/ja
Application granted granted Critical
Publication of JP4219090B2 publication Critical patent/JP4219090B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models

Landscapes

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

Description

【0001】
(発明の背景)
(発明の分野)
本発明は、コンピュータグラフィックスに関し、具体的には、シェーディングおよびアニメーションコンピュータ生成画像に関する。
【0002】
(関連分野)
シェーディングは、レンダリングされる幾何シーンの写実感に貢献する重要な要素である。シェーディングに関連する計算は、2つの部分に分割され得る。すなわち、シェーディングされている各点における表面反射特性を求めること、およびシェーディングされている点における入射照明(incident)を計算することである。表面反射特性は、表面がどのように光を放散するかを定義するために、コンピュータグラフィックスアプリケーションプログラミングインタフェース(グラフィックスAPI)によって使用される。例えば、グラフィックスAPIの1つであるSilicon Graphics,Inc.によるOpenGLTMは、5つの表面反射特性、すなわち、拡散および周辺(ambient)特性、鏡面反射および光沢特性、および放射特性をサポートする。例えば、R.FosnerのOpenGLTM Programming for Windows 95 and Windows NT(Addison−Wesley Pub.:レディング、マサチューセッツ州、1997年、第9章、「Colors、Materials、and Lights」、181〜201頁)を参照のこと。
【0003】
しかし、入射光成分に関するシェーディング計算は、現在のグラフィックスハードウェアでは、かなり原始的なものである。従って、全体的なシェーディングの写実感は、表面反射特性が表現される精巧さとは無関係に低減される。現在の市販のグラフィックスシェーダーでは、入射光源は、点源(point source)ライティングモデルによってのみ表される。例えば、OpenGLTMは、指向性光、異なる距離に基づく減少関数(falloff function)を有する点光源、および円錐状の照明を提供するスポットライトのみをサポートする。
【0004】
市販のグラフィックスシェーダーにはまだ反映されていない点光源の重要なタイプの1つは、Illuminating Engineering Society(IES)の標準照明器具ファイルフォーマットに記載されるような、方向によって異なる放射を有する点光源である。IESの標準照明器具ファイルフォーマットは、源が点エミッタ(point emitter)として扱われ得るほど観測者が十分遠くに離れていることを仮定した場合の、複雑な(complex)エミッタからの放射の標準的な表記である。測光データの電子移動のためのIES推奨標準ファイルフォーマットであるIES LM−63−1990は、Illuminating Engineering Society of North Americaから入手可能である。
【0005】
点光源(point light)とは対照的に、現実の世界の光源は、面源(area source)である。面光源からの入射光を算出するための現在の方法は、コンピュータグラフィックスアプリケーションおよびシステムにとっては非実用的なものである。現在の技術は、ハードウェアまたはリアルタイムアプリケーションにとっては非効率的および高価すぎるか、あるいは限定された形状または放射分布を持つ面照明器具にのみ有効であるかのどちらかである。例えば、Ashdownは、複雑な面光源からの放射分布を、球上にマッピングするための方法を開発した(Ashdown,I.、J.Illuminating Eng. Soc.22(1):163〜180頁、1993年冬)。球上の多数の点における出射放射は、シェーディングされる各点毎に算出され、この技術の計算的要件は、現在のグラフィックスハードウェアにとっては過度のものである。Stockは、光源の指向性分布が球上の様々な点で算出される類似の方法を開発した(Stock,R.D.、Fourier Formulation of Illumination Optics and Computer−Automated Reflector Design、博士論文、CMU、1995年)。この分布は、フーリエ空間(Fourier space)に投影(project)され、係数は、球源上で補間され、それによって任意の点における中間分布が構築される。しかし、AshdownおよびStockの技術は、ハードウェアまたはリアルタイムアプリケーションにとってまだ非実用的なものである。
【0006】
Snyderは、様々な種類の面光源に関する入射照明の閉形式(closed form expression)を研究した(Snyder,J.の「Area light sources for real−time graphics」、Microsoft Res.Tech.Rep.MSR−TR−96−11、1996年3月)。この研究は、Arvoによって書かれたSIGGRAPH’95中の論文に基づく(Arvo,J.、「Applications of irradiance tensors to the simulation of non−Lambertian phenomena」、ACM SIGGRAPH’95 Conf.Proc.、Cook,R.編、Addison Wesley 1995年8月、335〜342頁)。しかし、Snyderの技術は、ハードウェア実現にはまだ十分に効率的なものではなく、少数の種類のエミッタに限定される。
【0007】
Sunらは、ディファレンシャルエリアトゥーエリアフォームファクタ(differential area to area form−factor)の計算を作表するための技術を研究した(Sun,J.ら、Computer Graphics Forum 12(4):191〜198頁、1993年)。この計算は、拡散放射する光源からある点への入射エネルギーを求めることに等しい。この技術は、幾つかの局面を作表することによって計算を減らすが、それでも多量の計算要求があり、より一般的なエミッタ形状または非拡散放射分布に対して容易に一般化されない。
【0008】
ラジオシティに基づくアルゴリズムは、面光源からの光および非放射表面からの光の相互反射の両方を考慮して、環境画像を生成するために使用されてきた。ラジオシティの総論として、Francois SillionおよびClaude PuechのRadiosity and Global Illumination(Morgan Kaufmann Publ:米国、1994年)を参照のこと。ラジオシティアルゴリズムは、典型的に、時間のかかる前処理ステップにおいて光輸送(light transport)のシミュレーションを算出し、次に、その結果が、インタラクティブに表示され得る。ラジオシティ技術を用いた場合には、ライティング解(lighting solution)が、表示に用いられるビューイングパラメータとは無関係の環境における決められた点の組において算出される。この1組の解点(solution point)は、全ての可能なビューイングパラメータに対して正確な解を提供するには決して十分なものではない。
【0009】
完全なラジオシティ解は、面光源を持つシーンのインタラクティブビューイングには非実用的であるが、ラジオシティ解に用いられる技術の幾つかは、面源からの光を算出する可能性を提供する。これらの技術は、計算的にあまりにも高価で、一般的な適応性に関して柔軟性が少なすぎる。
【0010】
ある点における入射光を算出(フォームファクタ算出)するためにラジオシティアルゴリズムに一般的に使用される技術の1つは、多角形光源の端部の周りの閉曲線積分(contour integral)の算出に基づく(Daniel R.BaumおよびHolly E.RushmeierおよびJames M.Winget、「Improving Radiosity Solutions Through the Use of Analytically Determined Form−Factors」、SIGGRAPH’89予稿集、325〜334頁)。これは、入射光の潜在的に正確な算出であるが、現在、インタラクティブシステム中で評価するには高価すぎ、且つ、非拡散放射分布を持つ光を考慮するために容易に拡張されることはできない。
【0011】
Wallaceらは、光がディスク形状であるという単純化した仮定に基づいてフォームファクタを算出するという、より効率的ではあるが精度の低い方法を提唱した(John R.WallaceおよびKells A.ElmquistおよびEric A.Haines、「A Ray Tracing Algorithm for Progressive Radiosity」、SIGGRAPH’89予稿集)。これは、光がディスク形状でなければ正確な算出ではなく、入射光が算出されている点は、エミッタに平行であり、且つ、エミッタの真上または真下である。さらに、この算出は、リアルタイムアプリケーションにとってまだ十分に効率的なものではなく、異なる放射分布を持つ光を考慮するために容易に拡張されることは不可能である。
【0012】
Wardは、表面上の点におけるスカラーイラディアンス値を算出することと、その付近の点におけるイラディアンスを算出するために、該イラディアンス値を補間することとに基づくグローバル照明および面光源の算出のためのアルゴリズムを開発した。Computer Graphics (SIGGRAPH’88予稿集)中のWard,Gregory J.らの「A Ray Tracing Solution for Diffuse Interreflection」; Third Eurographics Workshop on Rendering(1992年5月)中のWard,Gregory J.およびHeckbert,P.の「Irradiance Gradients」;およびSIGGRAPH’94予稿集(オーランド、フロリダ、1994年7月24〜29日)中のWard,Gregory J.の「The RADIANCE Lighting Simulation and Rendering System」を参照のこと。これらのアルゴリズムは、高品質のライティングシミュレーションを生成し、且つ、イラディアンスがあるシーン中で変化するレートに自然に適応するが、これらのアルゴリズムは、インタラクティブアプリケーションには複雑過ぎる空間データ構造でイラディアンスの推定値を格納することに依存し、これらのイラディアンスの推定値は、組み合わせられ、これもまたインタラクティブアプリケーションには複雑過ぎる関数によって重み付けされる。このアルゴリズムは、イラディアンスをベクトル形式では格納せず、ハードウェアにおける効率的なルックアップ動作に必要な通常のテーブル構造にイラディアンスを作表しない。
【0013】
他の容積測定的照明表記が、Chiu,K.ら(「The Light Volume: An Aid To Rendering Complex Environment」、Eurographics Workshop on Rendering、1996年)およびGreger,G.ら(「The Irradiance Volume」、IEEE Computer Graphics and Applicationsに掲載、1997年)によって開発されている。これらの手法もまた、空間データ構造でのシーンイラディアンスの表記を格納し、該シーンにおける中間点のためにそれらのイラディアンスを補間する。これらのアルゴリズムもまた、シェーディングされている点におけるイラディアンスを決定するために、高価なルックアップおよび多量の計算を必要とし、その結果、インタラクティブアプリケーションには不適当である。このアルゴリズムは、イラディアンスをベクトル形式では格納せず、ハードウェアにおける効率的なルックアップ動作に必要な通常のテーブル構造でイラディアンスを作表しない。
【0014】
複雑な点または面照明器具からの入射光を算出するための効率的な技術が必要とされる。より写実的なシーンをシミュレートするためには、より複雑な照明器具が重要である。大きな面光源によって照明される表面は、点源によって照明される場合と比較して、かなり柔らかい外観を有する。面光源は、点源よりもより正確に一般的な光源(例えば、蛍光灯)をモデリングすることも可能である。
【0015】
従って、インタラクティブレートで点および/または面光源からの入射光を効率的に算出可能なシェーディングおよびアニメーションのためのコンピュータグラフィックス方法およびシステムが必要とされる。レンダリングされるシーンにおいて、様々な種類および範囲の点および面光源(潜在的に複雑な放射分布関数を有する源を含む)から入射光を算出し得る効率的且つ汎用な算出技術が必要とされる。IESの標準照明器具ファイルフォーマットに記載されるような、方向によって異なる放射を持つ点光源の形態でデータが与えられた場合にも、光源が表される必要がある。
【0016】
(発明の要旨)
コンピュータグラフィックスシェーディングおよびアニメーションにおいて、複雑な点および面照明を行う方法、システム、およびコンピュータプログラムプロダクトが提供される。複雑な点および面照明は、純白でもよく、あるいは、着色されていてもよい。
【0017】
レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルが、生成および格納される。次に、レンダリング中に、該シーンがイラディアンスベクトルフィールドテーブル中のイラディアンスベクトルに基づいて照明される。照明されている各点毎に、対応するイラディアンスベクトルが、イラディアンスベクトルフィールドテーブル中でルックアップされる。ベクトル演算が、イラディアンスベクトルと、該点に関する法平面(surface normal)との間で行われ、それによって、イラディアンスエネルギー成分が算出される。次に、イラディアンスエネルギー成分は、該点の最終的な陰影(shade)値を決定するために使用される。
【0018】
あるハードウェア実施形態例では、ルックアップユニットが、イラディアンスベクトルフィールドテーブル中で、選択された点に関するイラディアンスベクトルをルックアップおよび補間し、それによって、補間イラディアンスベクトルを算出する。内積ユニットは、補間イラディアンスベクトルと、シェーディングされている点に関する法平面との内積を計算し、イラディアンスエネルギー成分を出力する。イラディアンスエネルギー成分は、点の表面カラーを決定するために使用される。例えば、イラディアンスエネルギー成分は、点の表面カラーを算出するために、表面材料特性に関連して用いられ得る。
【0019】
本発明のさらなる特徴によれば、3次元イラディアンスフィールドを表す3次元イラディアンスベクトルフィールドテーブルが生成され、テクスチャメモリを含む(但しこれに限定されることはない)任意の種類のメモリ中に格納され得る。イラディアンスベクトルフィールドテーブルは、照明器具ファイルフォーマットに規定される点光源を含む(但しこれに限定されることはない)1つ以上の点光源に関するイラディアンスフィールドを表し得る。イラディアンスベクトルフィールドテーブルは、電球、点灯器具(fixture)、および他の面照明器具等の直接的面エミッタ、およびシーン中のオブジェクトからの二次的反射等の非直接的面エミッタ、または直接的および非直接的面エミッタの組み合わせを含む(但しこれらに限定されることはない)面光源のイラディアンスフィールドも表し得る。
【0020】
本発明の別の実施形態によれば、複数のレンダリングパスが、複雑な点または面光源からの照明を表すコンピュータグラフィックス画像をレンダリングするために使用される。イラディアンスベクトルフィールドテーブルが生成され、テクスチャメモリ中に格納される。第1の画像は、画素を着色するためにイラディアンスベクトルフィールドテーブルを用いてレンダリングされ、第1のフレームバッファ中に格納される。第2の画像がレンダリングされ、第2のフレームバッファ中に格納される。第2の画像は、赤、緑、および青(RGB)のカラー成分で符号化された法平面を有する。
【0021】
内積を計算するためには、第1および第2の画像が乗算され、それによって、第3の画像が得られる。第3の画像の成分は累算され、それによって、第4の画像が得られる。シーンが任意のカラーおよび/またはテクスチャ(イラディアンスフィールドテーブルによって表される照明は含まない)でレンダリングされ、それによって第5の画像を得る。第4および第5の画像を乗算し、それによって最終的な表示画像を得る。入射ライティング成分および表面シェーディング成分のこのデカップリングは、入射ライティングおよびラジオシティシステム中にテクスチャマッピングを包含するために用いられるテクスチャリング(texturing)のデカップリングに類似している(Gershbein,R.ら、「Textures and Radiosity: Controlling Emission and Reflection with Texture Maps」、SIGGRAPH’94予稿集)。
【0022】
複雑な点または面光源を用いたカラー照明に関して、3つの手法が説明される。第1の手法では、レンダリングされるシーンのそれぞれのスペクトル波長でイラディアンスフィールドを表す1組のカラーイラディアンスベクトルフィールドテーブルが生成され、テクスチャメモリ中に格納される。レンダリング中に、該シーンは、カラーイラディアンスベクトルフィールドテーブルから取り出された1組のカラーイラディアンスベクトルに基づいて照明される。照明されている各点毎に、対応するイラディアンスベクトルの組が、カラーイラディアンスベクトルフィールドテーブルから生成される。ベクトル演算が、各カラーイラディアンスベクトルと、シェーディング点の法平面との間で行われ、それによって、イラディアンスエネルギー成分が算出される。あるハードウェア実施形態例では、各カラー毎に、ルックアップユニットが、対応するカラーイラディアンスベクトルフィールドテーブル中の選択された点に近いカラーイラディアンスベクトルをルックアップおよび補間する。内積ユニットは、各補間カラーイラディアンスベクトルと、シェーディングされている点の法平面との内積を算出し、シェーディングに使用するためのイラディアンスエネルギー成分を出力する。段階的に解像度が粗くなるにつれて、あるシーンの段階的により大きな領域を包含する1組のマルチ解像度カラーイラディアンスフィールドテーブルが用いられ得る。
【0023】
より効率的な第2の手法は、イラディアンスベクトルテーブルおよびイラディアンスカラーテーブルを格納する。イラディアンスベクトルフィールドテーブルは、レンダリングされるシーンのイラディアンスフィールドを表す。イラディアンスカラーテーブルは、あるスペクトル波長のカラー照明を表す。次に、レンダリング中に、シーンが、イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルと、イラディアンスカラーテーブル中のイラディアンスカラーに基づいて照明される。
【0024】
照明されている各点毎に、対応するイラディアンスベクトルが、イラディアンスベクトルフィールドテーブルにおいてルックアップされる。このルックアップ動作は、直接的ルックアップでもよく、あるいは、関心のある点に近い複数のイラディアンスベクトルの補間に関与してもよい。ベクトル演算が、イラディアンスベクトルと、該点に関する法平面との間で行われ、それによって、イラディアンスエネルギー成分が算出される。イラディアンスカラーが、イラディアンスカラーテーブル中でルックアップされる。このルックアップ動作は、直接的ルックアップでもよく、あるいは、関心のある点に近い複数のイラディアンスカラーの補間に関与してもよい。イラディアンスエネルギー成分は、次に、イラディアンスカラーを用いて変調される。
【0025】
あるハードウェア実施形態例では、ルックアップユニットが、イラディアンスベクトルフィールドテーブル中のシェーディング点に近い点におけるイラディアンスベクトルをルックアップおよび補間し、それによって、シェーディング点に関する補間イラディアンスベクトルを算出する。内積ユニットは、補間イラディアンスベクトルと、シェーディングされている点の法平面との内積を計算し、イラディアンスエネルギー成分を出力する。ルックアップユニットはまた、イラディアンスカラーテーブル中のシェーディング点に近い点におけるイラディアンスカラーをルックアップおよび補間し、それによって補間イラディアンスカラーを算出する。表面変調器ユニットは、補間イラディアンスカラーによってイラディアンスエネルギー成分を変調する乗算器を含む。
【0026】
一定カラーという特別なケースに対する第3の手法は、イラディアンスベクトルフィールドテーブルおよびイラディアンスカラーのみを格納することを必要とする。次に、レンダリング中に、シーンが、イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルおよび格納されたイラディアンスカラーに基づいて照明される。
【0027】
具体的には、照明されている各点毎に、第2の手法の場合と同様に、対応するイラディアンスベクトルが、イラディアンスベクトルフィールドテーブルにおいてルックアップされる。このルックアップ動作は、直接的ルックアップでもよく、あるいは、関心のある点に近い複数のイラディアンスベクトルの補間に関与していてもよい。ベクトル演算が、イラディアンスベクトルと、該点の法平面との間で行われ、それによって、イラディアンスエネルギー成分が算出される。イラディアンスエネルギー成分は、次に、格納されたイラディアンスカラーを用いて変調される。
【0028】
あるハードウェア実施形態例では、ルックアップユニットが、イラディアンスベクトルフィールドテーブル中のシェーディング点に近い点におけるイラディアンスベクトルをルックアップおよび補間し、それによって、シェーディング点に関する補間イラディアンスベクトルを算出する。内積ユニットは、補間イラディアンスベクトルと、シェーディングされている点に関する法平面との内積を計算し、イラディアンスエネルギー成分を出力する。表面変調器ユニットは、格納されたイラディアンスカラーによってイラディアンスエネルギー成分を変調する乗算器を含む。
【0029】
本発明のさらなる特徴によれば、イラディアンスベクトルフィールドテーブルは、照明器具ファイルフォーマットに規定される点光源を含む(但しこれに限定されることはない)1つ以上の点光源に関するイラディアンスフィールドを表し得る。イラディアンスベクトルフィールドテーブルは、電球、点灯器具、および他の面照明器具等の直接的面エミッタ、およびシーン中のオブジェクトからの二次的反射等の非直接的面エミッタ、または直接的および非直接的面エミッタの組み合わせを含む(但しこれらに限定されることはない)面光源のイラディアンスフィールドも表し得る。同様に、イラディアンスカラーベクトルフィールドテーブルは、複雑な点または面照明源のそれぞれのスペクトル波長で、イラディアンスフィールドを表し得る。ある好適な実施形態では、赤、緑、および青の波長を包含する1組の3つのイラディアンスカラーベクトルフィールドテーブルが用いられる。
【0030】
光およびカラーの光が、ベクトルフィールドに表されるので、標準的なベクトルフィールド代数演算が、同フィールドに関して行われ得る。例えば、2つの光源のフィールドが合計され、それによって、それらの組み合わせの照明を表す単一のフィールドが得られる。これによって、シェーディング計算が行われる際に行われなければならない計算量を増加させることなく、多数の光源からのライティングを取り込むことが可能となり得る。
【0031】
本発明のある特徴によれば、イラディアンスベクトルフィールドテーブル(または単一または複数のイラディアンスカラーベクトルフィールドテーブル)が、シャドウまたは関与媒体(霧または煙等)を考慮するために生成される。ある実施形態では、可視度情報が、イラディアンスベクトルフィールドテーブル(または単一または複数のイラディアンスカラーベクトルフィールドテーブル)中で符号化され、それによって、シーン中でシャドウおよび/または関与媒体を表す。
【0032】
本発明の別の実施形態では、イラディアンスベクトルフィールドテーブル(またはイラディアンスカラーベクトルフィールドテーブル)が、シャドウを考慮することなく算出される。シャドウマップは、エミッタ表面上の多数の点に関して算出される。次に、算出されたシャドウマップが、シャドウマップに関与する従来のシェーディング計算の場合と同様に、光源のどの程度がシェーディングされている点にとって可視性であるかの概算として用いられる。具体的には、イラディアンスエネルギー成分を得るために内積演算を行った後に、イラディアンスエネルギー成分が、1つまたは複数のシャドウマップを用いて量られる(scale)。あるいは、標準的な背景映写またはシャドウ容積アルゴリズムを用いて、シェーディングされている点からの光源可視度が算出され得る。次に、算出された可視度が、イラディアンスエネルギー成分を量るために用いられる。
【0033】
本発明のさらなる特徴によれば、1組のイラディアンスベクトルフィールドテーブル(または1組のイラディアンスカラーベクトルフィールドテーブル)が生成される。各テーブルは、より大きな空間容積を包含する。これにより、光源からより遠くに離れるほどイラディアンスフィールドがよりゆっくりと変化する状況を利用して、テーブルを生成するために必要とされる格納要件および多数の計算が減らされる。
【0034】
ある実施例では、1組のイラディアンスベクトルフィールドテーブル(または1組のイラディアンスカラーベクトルフィールドテーブルおよび/またはイラディアンスカラーテーブル)が生成され、クリップマップ(例えば、3次元クリップマップ)として格納され、それによって、適応的詳細レベル(adaptive level−of−detail)が提供され、テクスチャメモリが節約される。クリップマップ中では、1組のマルチ解像度イラディアンスフィールドテーブルが、段階的に解像度が粗くなるにつれて、あるシーン中で段階的により大きな領域を包含する等しい大きさのメモリ領域(タイルとも呼ばれる)を表す。
【0035】
本発明の別の実施形態によれば、複数のレンダリングパスが、複雑な点または面光源からのカラー照明を表すコンピュータグラフィックス画像をレンダリングするために使用される。イラディアンスベクトルフィールドテーブルが生成され、テクスチャメモリ中に格納される。第1の画像は、画素を着色するためにイラディアンスベクトルフィールドテーブルを用いてレンダリングされ、第1のフレームバッファ中に格納される。第2の画像がレンダリングされ、第2のフレームバッファ中に格納される。第2の画像は、赤、緑、および青(RGB)のカラー成分で符号化された法平面を有する。
【0036】
内積を計算するためには、第1および第2の画像が乗算され、それによって、第3の画像が得られる。第3の画像の成分は累算され、それによって、第4の画像が得られる。シーンが任意のカラーおよび/またはテクスチャ(イラディアンスフィールドテーブルによって表される照明は含まない)でレンダリングされ、それによって第5の画像が得られる。第4および第5の画像を乗算し、それによってフレームバッファ表示画像を得る。
【0037】
シーンはまた、格納されたイラディアンスカラーテクスチャを用いてレンダリングされ、それによって、第6の画像が得られる。6番目の画像およびフレームバッファ表示画像が乗算され、それによって、最終的なフレームバッファ表示画像が得られる。入射ライティング成分および表面シェーディング成分のこのデカップリングは、入射ライティングおよびラジオシティシステム中にテクスチャマッピングを包含するために用いられるテクスチャリングのデカップリングに類似している(Gershbein,R.ら、「Textures and Radiosity: Controlling Emission and Reflection with Texture Maps」、SIGGRAPH’94予稿集)。
【0038】
従って、本発明は、インタラクティブレートで点または面照明器具からの入射光(純白またはカラー)を算出するための効率的且つ汎用的な技術を提供する。複雑な点および面照明器具は、照明を用いた高品質のシェーディング、アニメーション、およびより写実的なシーンを提供するために、効率的にシミュレートされ得る。白熱電球、蛍光灯、および照明器具等の一般的な面光源、および二次的反射が、コンピュータグラフィックスシェーディングおよびアニメーションにおいて表され得る。1つ以上の面光源に関する入射照明光を算出しながら、レンダリングパイプライン中で最小限の追加ハードウェアを必要とする効率的なハードウェア実行が実現される。
【0039】
(好適な実施形態の詳細な説明)
本明細書中で援用され、且つ明細書の一部を構成する添付の図面は、本発明を図示し、さらには、本明細書の記載内容と共に本発明の原理を説明し、当業者が本発明を製造および利用することが可能となるように貢献する。
【0040】
本発明を、添付の図面に関連して説明する。図面中では、同じ参照番号が、同一または機能的に類似した部品を指す。さらに、参照番号の左端の1つまたは複数の数字が、該参照番号が最初に記載された図面を表している。
【0041】
目次
1.概要
2.用語
3.環境例
4.イラディアンスフィールド理論
5.イラディアンスフィールドの算出
6.イラディアンスベクトルフィールドに基づくシェーディング
a.擬似コード
b.例1
c.例2
7.シャドウおよび媒体の効果
8.固定小数点および浮動小数点の実施
9.複数のレンダリングパス
10.クリップマップ
11.アニメーション
12.実施例
13.複雑な点および面光源の効率的なハードウェアシミュレーション
14.GUIコンピュータシステム例
15.カラー照明
a.カラー照明の第1の手法
b.カラー照明の第2の手法
c.第3の手法:一定カラー源の特別なケース
d.マルチ解像度フォーマットを用いたカラー照明
16.結論
1.概要
本発明は、作表されたベクトルイラディアンスフィールドを使用し、それによって、コンピュータグラフィックスシェーディングおよびアニメーションにおいて点または面光源を表す入射カラーまたは純白照明光を算出する。ベクトルイラディアンスフィールドは、複雑な(complex)照明器具からの放射分布を符号化し、且つシェーディング計算が行われる点における入射光を算出するために本発明において用いられる。ベクトルイラディアンスフィールドは、電気照明分野の照明エンジニアには公知である。Moon,P.およびSpencer,D.E.のThe Photic Field(MIT Press、ケンブリッジ、マサチューセッツ、1981年)を参照のこと。ベクトルイラディアンスフィールドは、コンピュータグラフィックスにおいてはそれほど周知のものではないが、Arvoは、幾つかの閉形照明式をベクトルイラディアンスフィールドに基づかせており(Arvo,J.、「The irradiance Jacobian for partially occluded polyhedral sources」、ACM SIGGRAPH’94予稿集、Glassner,A.編、ACM Press、1994年7月、343〜350頁)、Hausnerは、フィールドの球面調和関数展開を求める研究を行っている(Hausner,A.、「Multipole Expansion of the Light Vector」、IEEE Transactions on Visualization and Comp.Graphics 3(1)、1997年1月〜3月、12〜22頁)。
【0042】
しかし、本発明に先だって、効率的に光源を表すために、イラディアンスベクトルフィールド分野と、市販のコンピュータグラフィックスシェーディング分野とを組み合わせるという教示または示唆は全く存在していなかった。複雑な点または面光源をサポートする効率的なグラフィックスシェーダーに対する商業上の需要にもかかわらず、本発明の場合のように、作表イラディアンスベクトルフィールドを用いて、市販のグラフィックスシェーダーにおいて点または面光源を効率的且つ汎用的に表すという教示または示唆は全くなかった。
【0043】
イラディアンスフィールドは、3次元空間のベクトルフィールドとして、エミッタからの放射を表す。発明者らによって認識されたのだが、イラディアンスベクトルフィールドは、コンピュータグラフィックスシェーディングにおいて非常に効率的な計算につながる2つの関連性のある特徴を有する:
・空間中のある点における入射イラディアンス(照明器具からの放射エネルギー)を求めるための計算は内積である:該点における法平面と、該点におけるイラディアンスベクトルとの内積。
【0044】
・この計算は、照明器具の複雑さとは無関係である:イラディアンスフィールドの表記が与えられると、エミッタの実際のジオメトリおよび放射分布が、ライティング計算に必要とされることはない。
【0045】
本発明のある実施形態によると、イラディアンスフィールドの作表フォームが生成され、効率的で安価なハードウェアの実行で、3次元テーブル中に格納される。本発明の別の実施形態によれば、エミッタの付近(ここでは、フィールドが急速に変化する)ではより正確で、エミッタから遠くに離れる(ここでは、フィールドが非常にゆっくりと変化する)と正確さが低減する、1組のマルチ解像度イラディアンスベクトルフィールドテーブルが用いられる。1組のマルチ解像度イラディアンスベクトルフィールドテーブルによって、適応的詳細レベルが提供され、メモリのコストが節約される。ある実施例では、1組のマルチ解像度イラディアンスベクトルフィールドテーブルは、クリップマップである。照明エネルギーの適応表示は、以前には、ラジオシティアルゴリズムを加速させるために使用されていたことに留意されたい。(Hanrahan,P.ら、「A Rapid Hierarchical Radiosity Algorithm」、Computer Graphics、SIGGRAPH’91予稿集)。
【0046】
計算は、固定小数点または浮動小数点演算で行われ得る。ある実施では、計算は、固定小数点演算を用いて行われる。この固定小数点の実行は、現在、Silicon Graphics,Inc.が販売するInfinite Realityグラフィックスマシンに対して15fps(フレーム/秒)で実行され、このレートは、リアルタイムコンピュータグラフィックスレンダリングおよびスムーズなアニメーションをサポートするのに十分な速さである。
【0047】
2.用語
「面光源」という用語は、コンピュータグラフィックスシーン中で光放射の領域を有するあらゆる光源をさすために使用される。面光源は、電球、点灯器具、および他の面照明器具等の直接的面エミッタ、およびシーン中のオブジェクトからの二次的反射等の非直接的面エミッタを包含し得る。
【0048】
「シェーディングモデル」、「ライティングモデル」、「照明モデル」、「グローバル照明モデル」、およびこれらの等価の用語は、本明細書中では、互換性をもって使用され、それによって、表面のカラーを決定するための要素を記述するあらゆるモデルまたはライティング式をさす。本発明は、本明細書中に例として記載される照明モデル、および本明細書中に全文が参考として援用されるFoleyらのComputer Graphics:Principles and Practice、Second Ed.in C(Addison−Wesley Publ.:レディング、マサチューセッツ州、1996年、特に第16章の721〜814頁を参照);および本明細書中に参考として援用されるBeiderらのOpenGL Programming Guide(Silicon Graphics,Inc.、Addison−Wesley Publishing Co.、1993年、第6章、157〜194頁)に記載される照明モデルを含む(但し、これらに限定されることはない)あらゆる照明モデルに適用され得る。
【0049】
カラー照明に関しては、本明細書中に記載されるルーチンおよびシステムが、カラー源を包含するように拡張され得る。本明細書中で使用されるように、「カラー」という用語は、概して、あらゆる純白ではない色または色の組み合わせさす。「カラー源」という用語は、一定のカラー表面または変化するカラー表面を有する源、および異なる波長の光を異なるように散乱させる空間で放射する源などのイラディアンスが波長の関数である源を包含する。
【0050】
3.環境例
本発明を、コンピュータグラフィックス処理環境例に関連して説明する。本明細書中に記載されるように、本発明は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組み合わせとして実施され得る。ある好適な実施では、本発明により、複雑な点および面光源の効率的なハードウェアシミュレーションが提供される。
【0051】
本明細書中の記載内容が与えられれば、あらゆるコンピュータグラフィックスアプリケーション、アプリケーションプログラミングインタフェース(API)、またはコンピュータグラフィックスプロセッサ(単一チップまたは複数チップ)、ハイエンド−ローエンドグラフィックスワークステーション、ゲーミングプラットフォーム、システムおよびコンソール、ネットワークアーキテクチャ(例えば、クライアント/サーバ、ローカル、中間、またはワイドエリアネットワーク)、および仮想マシン(例えば、ジャバ作成アプリケーション)を含む(但し、これらに限定されることはない)システムにおいて、本発明を実施することは当業者には明らかである。限定されることはないが、Silicon Graphics,Inc.が製造するInfinite Reality、Indigo2、Indy、Onyx、またはO2グラフィックスワークステーションを含むOpen GLTMグラフィックスAPIアーキテクチャ、および本明細書中で上記に参考として援用されたFoleyら(第18章、855〜922頁)に記載されるようなラスタグラフィックスアーキテクチャを含む(但し、これらに限定されることはない)任意のコンピュータグラフィックスアーキテクチャが使用され得る。もちろん、これらの特定のコンピュータグラフィックスシステムは、本発明をサポートし得る例として列挙されるが、本発明を実施するために必ずしも必要ではない。例えば、Open GLTMグラフィックスAPIアーキテクチャは、本発明の使用を必要としない。つまり、Open GLTMグラフィックスAPIアーキテクチャは、本発明に関連して本明細書中に記載されるように、イラディアンスベクトルフィールドを用いて光源を表すことなく照明を提供し得る。
【0052】
これらの用語での説明は、便宜上のためだけに提供される。本発明がこの環境例における適用に限定されることは意図しない。実際、以下の説明を読めば、本発明を代替の環境でどのように実施するかが、当業者には明らかとなるであろう。
【0053】
4.イラディアンスフィールド理論
光源によって生成される成分(Px,Py,Pz)を有する点Pにおけるイラディアンスベクトルは、
【0054】
【数1】
Figure 0004219090
である。但し、積分値(integral)はエミッタの領域Aより上であり、Leは、方向ωにおけるエミッタ上の点xAにおける放射イラディアンスであり、r2は、PからxAへの距離rの二乗であり、Vは、xAからPへの正規化ベクトルである。ωおよびθ(VとxAにおけるエミッタの法平面との間の角度)は、Vによって決定される。Vis(P,x_A)は、可視度の項であり、点Pおよびx_Aが互いに可視であれば1の値を有し、点Pとx_Aとの間に閉塞(occluder)が存在すれば0の値を有する。Vol(P,x_A)は、Pとx_Aとの間の減衰媒体の容積散乱効果(volume scattering effect)を表し、Vol(P,x_A)は、Pに到達する前のx_Aから放射されている光の減衰およびPに到達する前のエミッタ上の他の点からの光のインスキャタリング(in−scattering)の両方を包含し得る。
【0055】
点Pにおける入射イラディアンスは、Pにおける法平面とPにおけるイラディアンスフィールドベクトルとの内積を計算することによって算出される。エミッタがPにおける水平線によって部分的に隠されない限り、この計算は正確である。光源がシェーディングされている点における水平線の下に部分的に隠されている場合には、この計算は、実際に到来するよりも多い光が到来していると報告するが、これは、大きな欠点ではない。なぜなら、光が水平線に近い場合に到来するエネルギー量は、典型的に少ないからである。
【0056】
閉塞するオブジェクトが存在しない場合に真空中で全方向に均一な放射強度を有する、原点(0,0,0)における点光源のイラディアンスフィールドは、平凡に以下のように求められる:
【0057】
【数2】
Figure 0004219090
但し、
【0058】
【数3】
Figure 0004219090
である。
【0059】
5.イラディアンスフィールドの算出
IES点源照明器具に関するフィールドは、点源のフィールドを得て、源からフィールド中の点の方向への放射に基づいてベクトルを量ることによって、容易に算出され得る。より複雑な放射のジオメトリおよびより複雑な放射分布に関するイラディアンスフィールドの算出は、点源の場合と比較してより複雑である。
【0060】
面光源のフィールドを求めることは、上記の積分を算出することを必要とする。閉形式の解が、均一な放射分布を有する多角形源(本明細書中に全文が参考として援用されるArvo,J.の「The irradiance Jacobian for partially occluded polyhedral sources」、ACM SIGGRAPH’94予稿集、Glassner,A.編、ACM Press、1994年7月、343〜350頁)、およびディスク形状源(本明細書中に参考としてその全文が援用されるMoon,P.およびSpencer,D.E.、The Photic Field、MIT Press、ケンブリッジ、マサチューセッツ州、1981年)に対して存在する。ジオメトリおよび放射分布関数のより複雑な組み合わせに関するイラディアンスフィールドは、必ずしも閉形式の解を有するとは限らない。しかし、その場合には、数値の積分法が素早く収束するべきであり、イラディアンスフィールドは、典型的には、滑らかで、ゆっくりと変化する。
【0061】
6.イラディアンスベクトルフィールドに基づくシェーディング
図1は、本発明のある実施形態による、複雑な点または面照明を提供するためのシェーディングルーチン100を示す。第1に、イラディアンスベクトルフィールドテーブルが生成される(ステップ110)。イラディアンスベクトルフィールドは、イラディアンスフィールドでベクトルを表すエントリを有する。イラディアンスベクトルフィールドテーブルは、3次元のテーブルである。好ましくは、イラディアンスベクトルフィールドテーブルは、レンダリングの前に、予め算出され、且つメモリ(テクスチャメモリ等)に格納される。しかし、本発明は、その方法に限定されることはない。なぜなら、イラディアンスベクトルフィールドテーブルは、処理能力、時間、および他の設計基準に基づいてレンダリング中に計算され、且つメモリ(テクスチャメモリ等)に格納され得るからである。1次元および/または2次元のテーブルも使用され得る。
【0062】
ライティングステージ115は、ステップ120から140を含む。ライティングステージ115は、ステップ110で格納されたイラディアンスフィールドデータを用いて、レンダリングされているオブジェクト中の1つ以上の点を照明(またはシェーディング)する。概して、エミッタ空間中のある点Peの場合には、ライティングおよびカラーを算出するために、該点におけるイラディアンスベクトルが、イラディアンスフィールドテーブルのルックアップによって算出される(ステップ120)。例えば、関心のある点Peの周囲のテーブル中の8個のベクトルが求められ、且つ三線(trilinearly)補間され、それによって、点PeにおけるイラディアンスベクトルIeが得られる。
【0063】
次に、イラディアンスエネルギー成分Eが、イラディアンスベクトルIeと、点Peにおける法平面Neとのベクトル演算に基づいて算出される(ステップ130)。ある好適な実施形態では、ベクトル演算は、イラディアンスベクトルIeと、点Peにおける法平面Neとの内積を計算し、それによって入射するイラディアンスエネルギー成分Eを得ることを含む。イラディアンスエネルギー成分Eは、次に、表面カラーを変調させるために、あらゆるライティング式またはシェーディングモデル中で使用される(ステップ140)。
【0064】
多角形(例えば、三角形)がラスタ化されるある実施例においては、ステップ120および130が、バーテックス毎に計算される(および三角形の内部で補間される)が、ステップ140は、画素毎に行われる。しかし、本発明は、その方法に限定されることを意図していない。概して、本明細書の記載内容を与えられれば、当業者には明らかなように、ステップ120から140の各々は、バーテックス毎および/または画素毎に算出され得る。
【0065】
ラスタ化多角形に基づかない画像レンダリングアルゴリズム(レイトレーシングまたはREYESアルゴリズム等)の場合には、シェーディング計算は、様々なレートおよび様々な位置で行われ得る。他のレンダリングアルゴリズムへの本発明の適用は、本発明の記載内容を与えられれば、当業者には明らかである。
【0066】
図2Aは、本発明による、ディスク形状源200に関するイラディアンスベクトルフィールド例210の2次元スライスの模式図である。図2Bおよび図2Cは、図2Aのイラディアンスベクトルフィールド例210を表すイラディアンスフィールドテーブル220を示す。明瞭にするために、イラディアンスベクトルフィールド210は、64個の点のみを含む。各点において、ベクトルは、イラディアンスフィールドベクトルを表している。従って、イラディアンスフィールドテーブル220は、64個のエントリ(またはロウ)を有する2カラムテーブルである。各エントリは、それぞれの点およびベクトルの位置およびイラディアンスフィールドベクトルの座標を含む。位置は、複雑な点または面光源の座標空間(エミッタ座標空間とも呼ばれる)等の座標空間中の3つの空間座標によって与えられる。ベクトル座標は、点におけるイラディアンスフィールドを定義する3つの成分を表す。
【0067】
図1の上記の説明では、イラディアンスベクトルフィールドテーブルは、エミッタ空間で生成されていた。つまり、ある光源に関するイラディアンスベクトルのテーブルが算出されると、エミッタは、何らかの配向を有して原点に位置する。シェーディングされている点Peおよび法平面Neもまた、エミッタ空間中に位置していた(またはライティングの前に、ワールド空間または他の任意の座標空間からエミッタ空間へ変換される)。
【0068】
レンダリングの際に、エミッタを異なるように配置するために、それは、標準的な4×4の幾何マトリックスを用いて変換され得る。次に、共通座標空間で計算が行われることを確実にするために、シェーディングルーチン100中で2つの調節が行われる。第1に、イラディアンスベクトルフィールドテクスチャにインデックスを付けるために点座標が使用される前に、シェーディングされている各点が、エミッタと同じ座標変換によって変換される。第2に、内積が算出される前に、同じ変換が、シェーディングされている点における法平面に適用される。
【0069】
a.擬似コード
本発明のアルゴリズムを要約するために、この項は、アルゴリズムの実行のための2つの短い擬似コード表記を含む。図3に関連して以下に説明されるある実施形態では、シェーディングされている全ての点において同時に効率的に実行されるように、一方のコードが、フレーム−バッファ動作を用いて実施され得る。
【0070】
b.例1
【0071】
【数4】
Figure 0004219090
c.例2
【0072】
【数5】
Figure 0004219090
7.シャドウおよび媒体の効果
光源からのシャドウおよび/または関与媒体の効果を算出することもまた、写実感のためには重要である。ある実施例では、シャドウおよび/または関与媒体(霧または煙等)を表す可視度情報が、作表フィールド中でさらに符号化される。例えば、シャドウになっていた空間領域中では、ベクトルは0である。この手法の下では、シャドウのシェーディング品質は、より高い解像度のイラディアンスベクトルフィールドテーブル中で、粗さが少なくなる。
【0073】
光が空間を移動する際の光に対する関与媒体(霧または煙等)の効果が、ベクトルテーブルにも組み込まれ得る。イラディアンスベクトルフィールドテーブルは、上記のように、関与媒体を考慮することなく生成される。次に、各ベクトルは、どの程度の光が減衰され、テーブル中の各点においてどの程度の光が散乱されたかを表す項によって量られる。例えば、シーンおよび光源が、各単位距離に沿って光の10%を吸収する同質の霧に囲まれ、且つ、霧による減衰のみが考慮される場合には、イラディアンスフィールド式中の容積項は、Vol(P,x_A)=0.9^(距離P,x_A)である。Mobleyは、複数の光の散乱およびこれもまた容積項に使用され得る減衰を含む容積散乱に関する閉形式を展開した。本明細書中に参考としてその全文が援用されるMobleyの「Light and Water:Radiative Transfer in Natural Waters」(Academic Press、1994年)を参照のこと。これにより、テーブルが生成される場合に、媒体による光の複雑な散乱の効果を効率的にシミュレートすることが可能になる。点がシェーディングされている場合には、媒体効果を包含することに対する追加の費用はかからない。
【0074】
別の実施形態では、シャドウマップが、本発明と共に使用され得る。シャドウマップは、点源からシャドウを算出するのに効果的である。具体的には、シャドウマップは、源上の多数の点に関して算出され得る。イラディアンスベクトルフィールドテーブルは、シャドウまたは関与媒体効果を考慮して、またはシャドウまたは関与媒体効果を考慮することなく算出され得る。イラディアンスエネルギー成分が、内積演算で得られた後に、イラディアンスエネルギー成分が、シャドウマップからの情報に基づいて、エミッタのどの程度の割合が可視であるかの推定値を用いて量られる。Williams,L.の「Casting curved shadows on curved surfaces」(Computer Graphics、SIGGRAPH’78予稿集、第12巻、1978年8月、270〜274頁)およびReeves,W.T.らの「Rendering antialiased shadows with depth maps」(Computer Graphics、SIGGRAPH’87予稿集、第21巻、Stone,M.C.編、1987年7月、283〜291頁)を参照のこと(これらは、本明細書中に参考として援用される)。シャドウマップ(および特に面光源に使用される複数のシャドウマップ)は、エミッタと受け取る側の点との間の可視度の概算にすぎないことに留意されたい。
【0075】
あるいは、背景映写アルゴリズムまたはシャドウ容積アルゴリズムが、シャドウマップの代わりに用いられ、それによって、光源可視度が算出され、次に、イラディアンスエネルギー成分が量られ得る。しかし、背景映写アルゴリズムは、典型的には、シャドウマップを用いて光源可視度を算出することに比べて、より非効率的である。例えば、本明細書中に全文が参考として援用される、Bouknight,W.JおよびKelley,K.Cが記載する背景映写アルゴリズム(「An Algorithm for Producing Half−Tone Computer Graphics Presentations with Shadows and Movable Light Sources」、Spring Joint Computer Conferenceの予稿集、AFIPS Press、Montvale、NJ、1970年、1〜10頁);および本明細書中に全文が参考として援用されるAtherton,P.R.、Weiler,K.およびGreenberg,Dの「Polygon Shadow Generation」(SIGGRAPH78の予稿集、275〜281頁);および本明細書中に全文が参考として援用されるCrow,F.Cが記載するシャドウ容積アルゴリズム(「Shadow Algorithms for Computer Graphics」、SIGGRAPH 1997の予稿集、242〜247頁)を参照のこと。シャドウマップ(および特に面光源に使用される複数のシャドウマップ)は、エミッタと受け取る側の点との間の可視度の概算にすぎないことに留意されたい。
【0076】
8.固定小数点および浮動小数点の実施
本発明は、固定小数点および/または浮動小数点演算を用いるコンピュータシステムに対して実施され得る。具体的には、Silicon Graphics,Inc.による現在のInfinite Realityシステム等のグラフィックスシステムが、ハードウェアレンダリングパイプラインの全ステージにおいて浮動小数点値をサポートしない場合に、ルーチン100が、固定小数点演算を用いて行われる。その結果、主に内積を算出するために多数の追加の計算が必要となる(内積の算出は、固定小数点演算ではより複雑である)。
【0077】
浮動小数点フレームバッファを備えたシミュレータを用いる、様々な光源を有する様々なシーンの高品質シェーディング画像が得られた。例えば、図10Aおよび図10Bは、本発明のシミュレーションで描かれた円形源およびディスク状源によって照明されるシーンを示すカラー画像である。
【0078】
ルーチン100は、本明細書の記載内容を与えられれば、当業者には明らかなように、ソフトウェア、ファームウェア、ハードウェア、およびこれらの任意の組み合わせにおいて実施され得る。例えば、ルーチン100は、グラフィックスエンジンのライティングおよびカラーリングステージにおいて実施され得る。ある例では、バーテックス毎の演算は、主にソフトウェアにおいて実施され得、画素毎の演算は、主にハードウェアにおいて実施され得る。
【0079】
本発明による複雑な点および面照明を提供するグラフィックス処理環境およびアーキテクチャの例は、図6から図9を参照してさらに詳しく説明される。
【0080】
9.複数のレンダリングパス
さらなる実施形態によれば、ルーチン100に関連して説明されたシェーディング計算が、複数のレンダリングパスおよびフレームバッファ記憶を行うことによって実施される。図3は、本発明による複雑な点および面照明を提供するための複数のレンダリングパスルーチン300のフローチャートである。ルーチン300では、複雑な点または面光源を有するシーンが、3回レンダリングされ、それによって、図1に示されるシェーディング計算が行われる。ステップ310では、イラディアンスベクトルフィールドテーブルが、ステップ110に関連して前に説明したように、2次元または3次元テクスチャマップに格納される。
【0081】
ステップ320では、格納された3次元テクスチャマップを用いてシーンがレンダリングされ、それによって、画素を着色し、その結果生じた第1の画像が、第1のフレームバッファ(FB1)中に格納される。このフレームバッファでは、各画素の赤、緑、および青の成分が、同点におけるイラディアンスベクトルのそれぞれのx、y、およびzの成分と等しい。例えば、ステップ320では、テクスチャジェネレータ機能(OpenGLTMにおける「texgen」等)が、空間中の点を、イラディアンスフィールドを保持する3次元テクスチャマップにマッピングするために使用され得る。これにより、シェーディングされている各可視性の点毎に、三線補間されたイラディアンスベクトルを有する画像が与えられる。次に、ステップ330において、赤、緑、および青(RGB)のカラー成分で符号化された法平面を用いてシーンがレンダリングされ、その結果生じた第2の画像が、第2のフレームバッファ(FB2)中に格納される。
【0082】
2つのフレームバッファ画像(FB1、FB2)は、内積Ie・Neを算出するために使用される(ステップ340および350)。ステップ340では、フレームバッファのコンテンツであるFB1およびFB2が乗算され、それによって第3の画像FB3が得られる。ステップ350では、第3の画像中の画素成分が、赤、緑、および青の各成分中に格納された結果と合計され、それによって、第4のフレームバッファ画像(FB4)が得られる。最後に、フレームバッファ画像FB4中のシーンジオメトリが、任意の別のカラーおよびテクスチャマップを用いてレンダリングされ、それによって第5のフレームバッファ画像(FB5)が得られる(ステップ360)。第4および第5のフレームバッファ画像(FB4およびFB5)が乗算され、それによって、最終的なフレームバッファ表示画像が得られる(ステップ370)。このように、第5の画像が、第4の画像に表される内積の画素毎の結果を用いて変調される。
【0083】
本明細書の記載内容を与えられれば、当業者には明らかなように、この6パスアルゴリズムは、所与のハードウェアアーキテクチャにおいて利用可能な資源に応じて、またはパスにおける演算速度に応じて、より多くのパスまたはより少ないパスを使用するように変更され得る。例えば、アーキテクチャは、単一パスで、2つのフレームバッファ間の内積演算をサポートすることが可能であり、これにより、ステップ340および350が単一のパスに組み合わせられることが可能となる。
【0084】
複数のレンダリングルーチン300は、コンピュータグラフィックスプロセッサにおいて、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組み合わせとして実施され得る。ある好適な実施では、ルーチン300は、Silicon Graphics,Inc.が製造するグラフィックスワークステーションを含む(但し、これに限定されることはない)任意のOpenGLTMマシンに対して実行されるOpenGLTMプログラムとして書かれる。
【0085】
10.クリップマップ
本発明の別の実施形態によれば、クリップマップが、2次元または3次元イラディアンスベクトルフィールドテーブルを格納するために使用される。クリップマップは、適応的詳細レベルおよびテクスチャメモリ量の多量の節約を提供し得る。
【0086】
本発明の発明者らは、2次元または3次元イラディアンスベクトルフィールドテーブルのためにクリップマップを使用することによって、イラディアンスフィールドのスムーズさがうまく利用され得ることも認めている。イラディアンスベクトルは、光源付近では素早く変化する。しかし、光源からより遠く離れた位置では、イラディアンスベクトルは、最終的に、放射状に対称的なフィールド(点源が生成するようなフィールド)に近づく(照明エンジニアは、光源の直径の5倍の距離離れた位置にある点に対しては、面光源は点源として扱われ得るという経験則を持つ(Ashdown,I、J.Illuminating Eng.Soc. 22(1):163〜180頁、1993年冬))。
【0087】
クリップマッピングは、限られたサイズのテーブル外の点に対する特別のケースを必要とすることなく、エミッタから遠く離れた点にうまく対処する。クリップマッピングでは、1組の2次元または3次元のイラディアンスベクトルフィールドが生成され、それによって、あるシーンのフィールドを保持する。連続するイラディアンスベクトルフィールドテーブルの各々は、解像度がより低くなる、または粗くなるにつれて、空間のより大きな容積に広がる。エミッタから非常に遠く離れて受け取られたイラディアンスに対応する最も粗いレベルは、シーンの全空間を包含し、長さがゼロのベクトルを有する。クリップマッピングによって、これらの複数の詳細レベルが上手く特定および編成されることも可能となる。
【0088】
例えば、図4Aに示されるように、面光源401を有するシーンは、該シーンの段階的により大きな領域を包含する3つの異なるフィールド領域400、422、および424に細分され得る。本発明によれば、イラディアンスベクトルフィールドテーブル410、412、および414は、それぞれ対応するフィールド領域400、422、および424に対して個々に生成される。各イラディアンスベクトルフィールドテーブル410、412、および414は、解像度がより低くなる、または粗くなるにつれて、空間のより大きな容積に広がる。このように、各イラディアンスベクトルフィールドテーブル410、412、および414は、等しい大きさ(例えば、16×16テクセル(texel))であり得、その結果、各テーブルがシーン全体を覆わなければならない完全なマルチ解像度イラディアンスフィールドベクトルテーブルの組を生成することと比較して、多量のメモリの節約が生じる。最初のテーブル(最も細かい解像度でシーンの最小の容積を包含する)の後は、各テーブルの8分の1は、算出および格納される必要がない。なぜなら、そのエントリがアクセスされることは決してないからである。もちろん、本発明は、クリップマップのみに限定されることはない。シーン全体に対して一定の解像度の単一のテーブルまたは完全なマルチ解像度イラディアンスフィールドベクトルテーブルの組が使用され得る。
【0089】
図5は、本発明の別の実施形態による、コンピュータグラフィックスシェーディングにおいてマルチ解像度イラディアンスフィールドテーブルのクリップマップを用いて複雑な点および面照明を提供するためのルーチン500のフローチャートである。第1に、1組のマルチ解像度イラディアンスフィールドテーブルが生成される(ステップ510)。この1組のマルチ解像度イラディアンスフィールドテーブルは、図4Aおよび図4Bに関連して上に説明したようなクリップマップ中の1組のメモリ領域またはタイルに対応する。好ましくは、このイラディアンスフィールドテーブルの組は、レンダリングの前に、予め算出され、3次元クリップマップとしてメモリ(テクスチャメモリ等)中に格納される。しかし、本発明は、その方法に限定されることはない。なぜなら、イラディアンスフィールドテーブルは、処理能力、時間、および他の設計基準に基づいて、レンダリング中に計算され、メモリ(テクスチャメモリ等)に格納され得るからである。
【0090】
ライティングステージ515は、ステップ522から540を含む。ライティングステージ515は、ステップ510で格納されたイラディアンスフィールドデータを用いて、レンダリングされているオブジェクト中の1つ以上の点を照明(またはシェーディング)する。第1に、エミッタ空間における点Peを包含する解像度(または詳細レベル)を有するイラディアンステーブルが選択される。好ましくは、点Peを包含する最も細かい解像度を有するクリップマップ内のイラディアンステーブルが選択される(ステップ522)。
【0091】
ステップ524、530、および540は、図1に関連して上に説明したステップ120から140と類似している。法平面においてライティングを算出し、且つそのカラーを算出するためには、該点におけるイラディアンスベクトルが、選択されたイラディアンスフィールドテーブル中でのルックアップによって算出される(ステップ522)。例えば、関心のある点を包囲するテーブル中の8つのベクトルが求められ、且つ、三線補間され得ることによって、点PeにおけるイラディアンスベクトルIeが得られる。トリキュービック(tricubic)等の他のフィルタリングもまた、イラディアンスベクトルIeを算出するために使用され得る。
【0092】
次に、イラディアンスエネルギー成分Eが、イラディアンスベクトルIeと、点Peにおける法平面Neとのベクトル演算に基づいて算出される(ステップ530)。例えば、ベクトル演算は、イラディアンスベクトルIeと、点Peにおける法平面Neとの内積を計算し、それによって入射するイラディアンスエネルギー成分Eを求めることを含み得る。イラディアンスエネルギー成分Eは、次に、表面カラーを変調させるために、あらゆるライティング式またはシェーディングモデル中で使用される(ステップ540)。
【0093】
ある実施例においては、ステップ522、524、および530は、バーテックス毎に計算されるが、ステップ540は、画素毎に行われる。しかし、本発明は、その方法に限定されることを意図していない。概して、本明細書の記載内容を与えられれば当業者には明らかなように、ステップ522から540の各々は、バーテックス毎および/または画素毎に算出され得る。
【0094】
本発明はまた、どの程度急速にフィールドが変化しているかに応じて、クリップマップの詳細に適応し得る。上記の説明では、クリップマップタイルは、エミッタの周りで同心状に配置され、これは、イラディアンスフィールドが同じレートであらゆる方向によりスムーズになると仮定して、最も効果的な構成である。指向性の高い放射を持つ光源の場合には、クリップマップは、ある方向では、その他の方向における場合よりも急速にフィールドが変化していることを反映するべきである(例えば、テーブルの形状が、長方形となってもよい)。
【0095】
11.アニメーション
本発明はまた、本明細書中の記載内容が与えられれば当業者には明らかなように、コンピュータグラフィックスアニメーションにおいて照明を提供するために使用され得る。エミッタの変換が、フレーム毎に変更され得る。これは、イラディアンスベクトルフィールドテーブルを再算出する必要なしに、エミッタが、非常に効率的にシーンの周りを移動させられることが可能であることを意味する。しかし、エミッタの形状または放射特性が変化する場合には、イラディアンスベクトルフィールドテーブルのある部分または全てが更新される。シーン中のジオメトリがアニメーション化されている場合には、アニメーション化シーケンスをレンダリングする際に典型的に必要とされるように、シェーディング計算が、各フレーム毎に再び行われる。従って、アニメーション化シーケンスをレンダリングする際に通常行われなければならない作業と比較して、追加の作業が必要とされない。例えば、本明細書中にその全文が参考として援用されるWattおよびWattの「Advanced Animation and Rendering Techniques:Theory and Practice」(ACM Press、Addison−Wesley Publ.:ニューヨーク、ニューヨーク州、1992年)、および上記の本明細書中で参考として援用されるFoleyら(第21章、1057〜1081頁)を参照のこと。
【0096】
12.実施例
本発明による複雑な点および面照明を提供するグラフィックス処理環境およびグラフィックスサブシステムアーキテクチャの例が、図6から図9に関連して以下に説明される。これらの例は、例示的なものであり、本発明を限定することを意図するものではない。
【0097】
図6は、上記のようなルーチン100、300、および500を実施するためのグラフィックス処理パイプライン環境例6000のブロック図である。グラフィックス処理環境6000は、Beiderらの「OpenGL Programming Guide、The Official Guide to Learning OpenGL」(Release 1、Silicon Graphics Inc.、Addison−Wesley Publishing Co.、米国、1993年)、および「OpenGL Reference Manual、The Official Reference Document for OpenGL」(Release 1、Silicon Graphics Inc.、Addison−Wesley Publishing Co.、米国、1992年)(これらは共に、本明細書中で参考として全文が援用される)に記載されるようなOpenGLTM動作を包含し得る(但し、これらに限定されることはない)。
【0098】
図6に示されるように、グラフィックス処理パイプライン6000は、表示リスト6007、評価器(evaluator)6010、バーテックス毎の演算およびプリミティブアセンブリステージ6020、ラスタ化ステージ6030、画素演算ステージ6040、テクスチャメモリ6050、フラグメント毎の演算ステージ6060、フレームバッファ6070、およびコンピュータグラフィックス表示装置6080から構成される。コマンド6005は、グラフィックス処理パイプライン6000に入力される。コマンド6005は、描かれる幾何オブジェクトを特定し、様々な処理ステージ中に、どのようにオブジェクトが扱われるかを制御する。コマンド6005は、パイプライン6000を通して即座に処理されてもよいし、後に処理するために、表示リスト6007中に蓄積されてもよい。
【0099】
評価器6010は、入力値の多項式コマンドを評価することによって、曲線および表面ジオメトリを概算する。次のステージ中に、バーテックス毎の演算およびプリミティブアセンブリステージ6020が、幾何プリミティブを処理する。幾何プリミティブは、点、ラインセグメント、三角形、および多角形であり、これらは全て、バーテックスによって記述される。バーテックスは変換および照明され、プリミティブは、ラスタ化ステージ6030に備えて、ビューポートにクリッピングされる。
【0100】
ラスタ化ステージ6030は、点、ラインセグメント、三角形、または多角形の2次元記述を用いて、一連のフレームバッファアドレスおよび関連の値を生成する。ラスタ化ステージ6030で生成された各フラグメントは、最後のステージである、フラグメント毎の演算ステージ6060に送られる。フラグメント毎の演算ステージ6060は、データがフレームバッファ6070中に画素として格納される前に、グラフィックスデータに対して最終的な演算を行う。これらの最終的な演算には、Zバッファリングの到来するZ値または以前に格納されたZ値に基づくフレームバッファ6070に対する条件付き更新、到来する画素カラーと格納されたカラーとの混合、マスキング、および画素値に対する他の論理演算が含まれ得る。
【0101】
入力グラフィックスデータは、バーテックスではなく、画素の形態であり得る。例えば、テクスチャマッピングに使用される画像は、画素演算ステージ6040で処理される。画素演算ステージ6040は、グラフィックスデータを画素として処理し、その結果生じたテクスチャマップをテクスチャメモリ6050中に格納する。次に、ラスタ化ステージ6030が、テクスチャ処理を行うために、テクスチャメモリ6050に格納されたテクスチャマップを用い得る。画素演算ステージ6040からの出力はまた、出力が幾何データから生成されたかのように、ラスタ化ステージ6030に直接与えられ、結果的に生じたフラグメントとマージされて、フレームバッファ6070内に入り得る。
【0102】
本発明のある実施形態では、複雑な点および面照明を提供するためのルーチン100が、以下のように、グラフィックス処理パイプライン6000において実施される。テクスチャメモリ6050は、ステップ110で生成されたイラディアンスベクトルフィールドテーブルを格納するために使用される。ステップ120は、バーテックス毎の演算およびプリミティブアセンブリステージ6020において、バーテックス毎の演算として処理される。
【0103】
ステップ130および140は、画素演算ステージ6040において、画素毎に処理される。画素演算ステージ6040(あるいは、バーテックス毎の演算およびプリミティブアセンブリステージ6020)は、ステップ140で計算された拡散および鏡面反射成分に基づくカラー値を、処理のためにラスタ化ステージ6030に出力し得る。
【0104】
図7は、本発明によるシェーディングにおいて複雑な面または点照明を実施するグラフィックスサブシステム例700を示す模式図である。ライティングおよびカラーリングモジュール710は、照明モジュール720を含む。メモリ730は、上記のステップ110、310、または510に従って生成された2次元または3次元イラディアンスベクトルフィールドテーブル(または1組のマルチ解像度イラディアンスベクトルフィールドテーブル)を格納する。ある例では、照明モジュール720は、グラフィックスプロセッサまたは別のプロセッサによって実行され得るプログラムモジュールとして、主にソフトウェア中でルーチン100を実施する。様々なフィルタリング関数(filtering function)もまた、イラディアンスベクトルフィールドテーブルのエントリ間の補間を行うために使用され得る。
【0105】
13.複雑な点および面光源の効率的なハードウェアシミュレーション
図8は、本発明の別の実施形態による、ハードウェア中で安価にルーチン100を実施する照明モジュール720のブロック図である。照明モジュール720は、ルックアップユニット810、内積ユニット820、および表面カラー変調ユニット830を含む。変換ユニット(不図示)は、点および法平面を、ワールド空間からエミッタ空間に変換するために使用され得る。概して、点または法平面の各変換は、16回の乗算演算および12回の加算演算を必要とする。
【0106】
ルックアップユニット810は、ステップ110に関連して説明したような、格納されたイラディアンスベクトルテーブルを用いて、点のイラディアンスベクトルを算出する。次に、ルックアップユニット810は、エミッタ空間中の変換された点に隣接する8個の予め算出されたベクトルを求め、且つ三線補間を行い、それによってイラディアンスベクトルフィールドを表すライティングベクトルが得られる。このルックアップおよび補間は、8回のベクトルルックアップ動作、21回の乗算演算、および42回の加算を必要とする。
【0107】
内積ユニット820は、ルックアップユニット810によって出力されたベクトルと、エミッタ空間中の法平面Nとの内積を算出する。この内積計算は、たった3回の乗算演算および2回の加算演算を必要とする。次に、内積ユニット820は、イラディアンスエネルギー成分Eを出力する。
【0108】
表面カラー変調器ユニット830は、イラディアンスエネルギー成分Eを用いて、3回の乗算演算のみを必要とする動作で表面カラーを変調させる。表面カラー変調器ユニット830は、入射する点または面照明を表すシェーディングカラーを出力し、これは次に、最終的なシェーディングカラーとして出力される、またはシェーダーにおけるさらなるライティングおよびカラーリング動作と組み合わせられる。
【0109】
上記のような光の可視度情報(または閉塞)を算出するための任意のユニット(不図示)が、内積ユニット820から出力されたイラディアンスエネルギー成分Eを量るため、および/または表面カラー変調器ユニット830の結果からシェーディングカラーを量るために使用され得る。
【0110】
従って、この実施形態では、本発明は、わずかなハードウェアの追加で、複雑な点および面光源を安価に表すことができる。
【0111】
14.GUIコンピュータシステム例
図9は、本発明が動作し得る環境例を示すブロック図である。この環境は、プロセッサ904等の1つ以上のプロセッサを含むコンピュータシステム900である。コンピュータシステム900は、任意の種類のコンピュータグラフィックスコンピュータ、仮想マシン、プロセッサ(単一バスプロセッサ、複数バスプロセッサ、またはバスを持たないプロセッサ)、ワークステーション、およびネットワークアーキテクチャを包含し得る。ある好適な実施では、Silicon Graphics,Inc.が製造するグラフィックスワークステーションを含む(但し、これに限定されることはない)OpenGLマシンが使用され得る。
【0112】
プロセッサ904は、通信バス902に接続されている。様々なソフトウェアの実施形態が、このコンピュータシステム例に関連して説明される。この説明は、例示的なものであり、本発明を限定することを意図したものではない。本明細書の記載内容を読めば、他のコンピュータシステムおよび/またはコンピュータアーキテクチャを用いて本発明を実施する方法が、当業者には明らかとなるであろう。
【0113】
コンピュータシステム900は、グラフィックスサブシステム903を含む。グラフィックスサブシステム903は、1つ以上のプロセッサチップとして実現され得る。グラフィックスサブシステム903は、図9に示されるように、プロセッサ904の一部として包含され得る、または別個のグラフィックスエンジンまたはプロセッサとして存在し得る。グラフィックスデータは、グラフィックスサブシステム903からバス902に出力される。ディスプレイインタフェース905は、表示装置906上での表示のために、バス902からのグラフィックスデータを転送する。
【0114】
コンピュータシステム900はまた、好ましくはランダムアクセスメモリ(RAM)であるメインメモリ908を含み、二次メモリ910も包含し得る。二次メモリ910は、例えば、ハードディスクドライブ912および/またはフロッピーディスクドライブ、磁気テープドライブ、または光ディスクドライブ等に代表される除去可能なストレージドライブ914を包含し得る。除去可能なストレージドライブ914は、周知の様式で、除去可能なストレージユニット918から読み取る、および/または除去可能なストレージユニット918に書き込む。除去可能なストレージユニット918は、フロッピーディスク、磁気テープ、または光ディスク等を表し、これは、除去可能なストレージドライブ914によって読み取られる、および除去可能なストレージドライブ914によって書き込まれる。理解されるように、除去可能なストレージユニット918は、内部にコンピュータソフトウェアおよび/またはデータを格納したコンピュータ使用可能記憶媒体を含む。
【0115】
代替の実施形態では、二次メモリ910は、コンピュータプログラムまたは他の命令がコンピュータシステム900にロードされることが可能となる他の類似の手段を包含し得る。このような手段には、例えば、除去可能なストレージユニット922およびインタフェース920が包含され得る。例には、プログラムカートリッジおよびカートリッジインタフェース(ビデオゲーム機器に見られるようなもの)、除去可能なメモリチップ(EPROMまたはPROM等)および関連のソケット、およびソフトウェアおよびデータが除去可能なストレージユニット922からコンピュータシステム900に転送されることが可能な他の除去可能なストレージユニット922およびインタフェース920が包含され得る。
【0116】
コンピュータシステム900はまた、通信インタフェース924を包含し得る。通信インタフェース924により、ソフトウェアおよびデータが、通信パス926を介して、コンピュータシステム900と外部装置との間で転送されることが可能となる。通信インタフェース924の例には、モデム、ネットワークインタフェース(イーサネットカード等)、および通信ポート等が包含され得る。通信インタフェース924を介して転送されるソフトウェアおよびデータは、通信パス926を介した通信インタフェース924による受信が可能な電子、電磁石、光、または他の信号であり得る信号の形態である。通信インタフェース924により、コンピュータシステム900がインターネット等のネットワークにインタフェースをとり得る手段が提供されることに注目されたい。
【0117】
グラフィカルユーザインタフェースモジュール930は、ユーザ入力を、周辺装置932からバス902に転送する。これらの周辺装置932は、マウス、キーボード、タッチスクリーン、マイクロホン、ジョイスティック、スタイラス、ライトペン、音声認識装置、または任意の他の種類の周辺装置であり得る。
【0118】
本発明は、この環境例に関連して説明される。これらの用語での説明は、便宜上のためだけに提供される。本発明がこの環境例における適用に限定されることは意図していない。実際、以下の記載内容を読めば、本発明を代替の環境でどのように実施するかが、当業者には明らかとなるであろう。
【0119】
本発明は、好ましくは、図9に関連して上に説明した環境に類似する環境でランされている(すなわち、実行されている)ソフトウェアを用いて実施される。本明細書中では、「コンピュータプログラムプロダクト」という用語は、概して、除去可能なストレージユニット918またはハードディスクドライブ912に設置されたハードディスクを指すために使用される。これらのコンピュータプログラムプロダクトは、ソフトウェアをコンピュータシステム900に提供するための手段である。
【0120】
コンピュータプログラム(コンピュータ制御理論とも呼ばれる)は、メインメモリおよび/または二次メモリ910中に格納される。コンピュータプログラムはまた、通信インタフェース924を介して受信され得る。このようなコンピュータプログラムは、実行されると、コンピュータシステム900が本明細書中に記載されるような本発明の特徴を行うことを可能にする。具体的には、コンピュータプログラムは、実行されると、プロセッサ904が本発明の特徴を行うことを可能にする。従って、このようなコンピュータプログラムは、コンピュータシステム900のコントローラを表す。
【0121】
本発明がソフトウェアを用いて実施されるある実施形態では、ソフトウェアは、コンピュータプログラムプロダクト中に格納され、除去可能なストレージドライブ914、ハードドライブ912、または通信インタフェース924を用いてコンピュータシステム900内にロードされ得る。あるいは、コンピュータプログラムプロダクトは、通信パス926上でコンピュータシステム900にダウンロードされ得る。制御論理(ソフトウェア)は、プロセッサ904によって実行される際に、プロセッサ904に本明細書中に記載されるような本発明の機能を行わせる。
【0122】
別の実施形態では、本発明は、例えば特定用途集積回路(ASIC)等のハードウェア構成機器を用いて、主にファームウェアおよび/またはハードウェア中で実施される。本明細書中に記載される機能が行われるようにハードウェア状態マシンを実現することは、当業者には明らかであろう。
【0123】
15.カラー照明
上記の複雑な点および面照明光は、純白でもよい。上記のイラディアンスベクトルは、スペクトル特性を持たない。実際には、光源は、運ぶ光の波長によって異なるイラディアンスベクトルの分布を生成する。つまり、カラー照明を提供するためには、上記のイラディアンスベクトルは、波長の関数となるように改変され得る。例えば、光源によって生成される成分(Px,Py,Pz)を有する波長λでの点Pにおけるイラディアンスカラーベクトルは、
【0124】
【数6】
Figure 0004219090
である。但し、積分値はエミッタの領域Aより上であり、Leは、方向ωにおけるエミッタ上の点xAにおける波長λの放射イラディアンスであり、r2は、PからxAへの距離rの二乗であり、Vは、xAからPへの正規化ベクトルである。ωおよびθ(VとxAにおけるエミッタの法平面との間の角度)は、Vによって決定される。Vis(P,xA)は、可視度の項であり、点PおよびxAが互いに可視であれば1の値を有し、点PとxAとの間に閉塞が存在すれば0の値を有する。Vol(P,xA)は、PとxAとの間の減衰媒体の容積散乱効果を表し、Vol(P,xA)は、Pに到達する前のxAから放射されている光の減衰およびPに到達する前のエミッタ上の他の点からの光のインスキャタリングの両方を包含し得る。変数λは、エミッタの波長を表す。明瞭にするために、波長の関数であるイラディアンスベクトルをさす「イラディアンスカラーベクトル」という用語が以下で使用されることに留意されたい。
【0125】
さらに、他のグラフィックスアプリケーションの場合のように、標準的な赤、緑、青(RGB)の近似が適用され得る。この場合には、単一のイラディアンスベクトルを有するのではなく、赤、緑、および青のイラディアンスカラーベクトルの組み合わせが使用され得る。
【0126】
あるアプリケーションにおいては、カラー光源を有することが望ましい。例えば、このようなカラー光源は、白ではない一定のカラーを有する光、表面(例えば、テレビ画面)上で異なるカラー有する光、または異なる波長の光を異なるように散乱させる非均一な霧を通る光であり得る。
【0127】
本発明によるカラー照明に対する3つの手法が提供される。カラー照明の第1の手法は、主に図11に関連して説明される。カラー照明の第2の手法は、主に図12から図14に関連して説明される。これらの2つの手法は、機能的に類似しており、概して、一定カラー源を含む全てのカラー源に適用可能である(但し、第2の手法では、必要とされる計算が少ない)。第3の手法は、一定のカラーを有するカラー源という特別なケースに向けられる。第3の手法は、第1および第2のより一般的な手法と比べて、はるかに効率的に、且つ少ない計算量で実施され得る。第3の手法の一例が、図15に関連して説明される。
【0128】
a.カラー照明の第1の手法
図11は、本発明の第1のカラー実施形態による、コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのルーチン1100のフローチャートである。ルーチン1100は、上記のルーチン100と類似しているので、カラー照明をサポートするための改変のみが、詳細に説明される必要がある。
【0129】
ステップ1110では、ステップ110で説明したような1つのイラディアンスベクトルフィールドテーブルの代わりに、3つのカラーイラディアンスベクトルフィールドテーブルが算出される。例えば、3つのカラーイラディアンスベクトルフィールドテーブルは、赤、緑、および青のカラーイラディアンスベクトルフィールドに対応し得る。ライティングステージ1115では、各シェーディング点Peにおいて、3つのカラーイラディアンスベクトル(IR,IG,IB)が、3つのカラーイラディアンスフィールドテーブルに対するルックアップ動作によって算出される(ステップ1120)。各カラー毎に、ルックアップ動作は、カラーイラディアンスベクトルの直接的ルックアップでもよく、あるいは、関心のある点に近いカラーイラディアンスベクトルの補間に関与していてもよい。次に、イラディアンスエネルギー成分Eが、各シェーディング点Peにおいて算出される(ステップ1130)。具体的には、ベクトル演算(例えば、内積)が、3つのカラーイラディアンスベクトル(IR,IG,IB)の各々と、エミッタ空間の法平面との間で行われる。これらの3つの内積が合計され、それによってイラディアンスエネルギー成分Eが得られ得る。
【0130】
最後に、ステップ1130で算出されたイラディアンスエネルギー成分Eが、ステップ140に関連して上に説明したように、シェーディング点の表面カラーを変調させるためにステップ1140で用いられる。
【0131】
b.カラー照明の第2の手法
第2の手法は、内積の場合のステップ1130におけるベクトル演算を最適化する。具体的には、第2の手法は、ベクトルの内積の以下の特性を利用することによって、内積がさらに最適化され得ることを認める。該特性とは、rが実数であり、且つv1およびv2がベクトルである場合に、
((r*v1)dot(v2))==r*(v1 dot(v2))である。この内積特性を、3つのカラーイラディアンスベクトル(IR,IG,IB)の各々と、エミッタ空間の法平面との3つの内積に適用することによって、1つのイラディアンスベクトルテーブルおよび1つのカラーテーブルが用いられることが可能となる。エミッタ空間中の各シェーディング点において、ステップ130に関連して上に説明したように、ただ1つの内積が、イラディアンスベクトル(スペクトル成分を持たない)と法平面との間で行われる。その結果生じたイラディアンスエネルギー成分は、次に、カラーテーブルからの補間カラーによって変調される。
【0132】
図12は、本発明の第2のカラー実施形態による、コンピュータグラフィックスシェーディングにおいてカラーの複雑な点または面照明を提供するためのルーチン1200のフローチャートである。ステップ1210において、1つのイラディアンスベクトルテーブルおよび1つのカラーテーブルが生成される。イラディアンスベクトルテーブルは、ステップ110に関連して上に説明したように予め算出される。エミッタ空間中の各点に割り当てられた1つ以上のカラーを有する1つのカラーテーブルが生成される。ある好適な実施形態では、赤、緑、および青の成分が、エミッタ空間中の各点に割り当てられる。
【0133】
ライティングステージ1215では、ステップ1220において、イラディアンスベクトルIe(スペクトル成分を持たない)が、ステップ120に関連して上に説明したように算出される。例えば、イラディアンスベクトルIeは、ステップ1210で生成されたイラディアンスベクトルフィールドテーブルから容易に取り出され得る。ルックアップ動作またはユニットが、エミッタ空間中のシェーディングされている点に対応するイラディアンスベクトルIeをルックアップするために使用され得る。直接的ルックアップまたは付近のイラディアンスベクトルの補間が行われ得る。
【0134】
同様に、ステップ1222において、イラディアンスカラーが算出される。例えば、イラディアンスカラーは、ステップ1210で生成されたイラディアンスカラーテーブルから取り出され得る。ルックアップ動作またはユニットが、エミッタ空間中のシェーディングされている点に対応するイラディアンスカラー成分(すなわち、赤、緑、および青)をルックアップするために使用され得る。補間器(interpolator)は、付近の点の取り出されたイラディアンスカラー成分を補間し、それによって、エミッタ空間中のシェーディングされている点に対応する補間イラディアンスカラー値を得ることもできる。
【0135】
ステップ1230では、エミッタ空間中の各シェーディング点において、ステップ130に関連して上に説明したように、ステップ1220で算出されたイラディアンスベクトルIeと、法平面Neとの内積計算を行う。ステップ1232では、その結果生じたイラディアンスエネルギー成分Eが、ステップ1222で算出されたイラディアンスカラーによって変調される。
【0136】
最後に、ステップ1240において、ステップ1232からの変調されたイラディアンスエネルギー成分Ecが、任意のライティング式またはシェーディングモデル中で使用され、それによって、表面カラーが変調される(上記のステップ140に類似する)。
【0137】
図13は、本発明の第2のカラー実施形態のある実施例による、照明を提供するための複数のレンダリングパスルーチン1300のフローチャートである。ルーチン1300は、上記のルーチン300に類似する。実際、ステップ1310、3120、1330、1340、1350、1360、および1370は、上記のステップ310、320、330、340、350、360、および370と同じであり、当業者には明白であるので、さらに説明される必要はない。
【0138】
ステップ1312、1362、および1372が加えられ、それによってカラー照明が提供される。ステップ1312では、イラディアンスカラーテーブルが生成され、3次元テクスチャマップ(イラディアンスカラーテクスチャと呼ぶ)として格納される。ステップ1362では、ステップ1312で格納されたイラディアンスカラーテクスチャを用いて、シーンがレンダリングされる。これにより、フレームバッファに格納される第6のフレームバッファ画像FB6が生成される。次に、ステップ1372では、第6のフレームバッファ画像FB6が、ステップ1370から出力されたフレームバッファ表示画像と乗算され、それによって、最終的なフレームバッファ表示画像が得られる。
【0139】
図14は、本発明の第2のカラー実施形態の別の実施例における照明モジュールを示すブロック図である。照明モジュールは、ルックアップユニット1410、内積ユニット1420、および表面カラー変調ユニット1430を含む。変換ユニット(不図示)は、点および法平面を、ワールド空間からエミッタ空間に変換するために使用され得る。概して、点または法平面の各変換は、16回の乗算演算および12回の加算演算を必要とする。
【0140】
ルックアップユニット1410は、ステップ110に関連して説明したような、メモリ730中の格納されたイラディアンスベクトルテーブルを用いて、点のイラディアンスベクトルを算出する。ルックアップユニット1410は、エミッタ空間中の変換された点に隣接する8個の予め算出されたベクトルを求め、且つ三線補間を行い、それによってイラディアンスベクトルフィールドを表すライティングベクトルIeが得られる。このルックアップおよび補間は、8回のベクトルルックアップ、21回の乗算演算、および42回の加算を必要とする。
【0141】
カラー照明を提供するために、ルックアップユニット1410は、メモリ1412からエミッタ空間中のシェーディングされている点に対応するイラディアンスカラー成分(すなわち、赤、緑、および青)を取り出す。ルックアップユニット1410中の補間器は、1つ以上の付近の点からのイラディアンスカラー成分を補間し、それによって、エミッタ空間中のシェーディングされている点に対応するイラディアンスカラー値を得る。次に、イラディアンスカラー値が、表面カラー変調器ユニット1430に出力される。
【0142】
内積ユニット1420は、ルックアップユニット1410が出力したベクトルIeと、エミッタ空間中の法平面Neとの内積を算出する。この内積計算は、たった3回の乗算演算および2回の加算演算を必要とする。内積ユニット1420は、次に、イラディアンスエネルギー成分Eを出力する。
【0143】
表面カラー変調器ユニット1430は、ステップ1232に関連して説明したように、ルックアップユニット1410が出力したイラディアンスカラーを用いてイラディアンスエネルギー成分Eを変調し、それによって、イラディアンスカラー変調イラディアンスエネルギー成分Ecを得る。次に、イラディアンスカラー変調イラディアンスエネルギー成分Ecが用いられ、それによって、3回の乗算演算のみを必要とする動作で表面カラーを変調させる。表面カラー変調器ユニット1430は、入射する点または面照明を表すシェーディングカラーを出力し、これは次に、最終的なシェーディングカラーとして出力される、またはシェーダーにおけるさらなるライティングおよびカラーリング動作と組み合わせられる。
【0144】
上記のような光の可視度情報(または閉塞)を算出するための任意のユニット(不図示)が、内積ユニット1420から出力されたイラディアンスエネルギー成分Eを量るため、および/または表面カラー変調器ユニット1430の結果からシェーディングカラーを量るために使用され得る。
【0145】
従って、この実施形態では、本発明は、わずかなハードウェアの追加で、複雑なカラーの点および面光源を安価に表すことができる。
【0146】
c.第3の手法:一定カラー源の特別なケース
上記の第1および第2の手法は、あらゆるカラー源に適用される。一定カラー源の場合には、さらに効率的な第3の手法が使用され得る。具体的には、図15の一定カラー照明を提供するためのルーチン1500に示されるように、ステップ140で得られた変調された表面カラーが、光源カラーによってさらに乗算される(ステップ1550)ように、ルーチン100が改変される必要があるだけである。
【0147】
同様に、一定カラー照明を提供するためには、ステップ360の後に、第5のフレームバッファ画像FB5がさらに光源カラーによって乗算され、それによって第6のフレームバッファ画像FB6が得られるように、ルーチン300が改変される必要があるだけである。次に、ステップ370では、第6のフレームバッファ画像FB6が、第4のフレームバッファ画像FB4によって乗算され、それによって最終的なフレームバッファ表示画像が得られる。
【0148】
図8のハードウェアを用いて一定カラー照明を提供するためには、追加の光源カラー入力が、表面カラー変調器ユニット830に提供される。表面カラー変調器ユニット830によって得られた変調表面カラーは、光源カラーによってさらに乗算される。図14のシステムと比較して、追加のメモリ1412またはメモリ1412中のイラディアンスカラーテーブルに対するルックアップ動作は、必要とされない。
【0149】
d.マルチ解像度フォーマットを用いたカラー照明
最後に、カラー照明に関する上記の3つの手法の各々が、本明細書の記載内容を与えられれば当業者には明らかなように、マルチ解像度イラディアンスフィールドテーブルに基づいて、ルーチン500でカラー照明を提供するために使用され得る。すなわち、第1の手法の下では、マルチ解像度のイラディアンスカラーベクトルフィールドテーブルの組が、ステップ510において生成される。ステップ522では、最も細かい解像度で点を包含するイラディアンスカラーテーブルが選択される。ステップ524では、イラディアンスカラーベクトルが、ステップ522で選択されたイラディアンスカラーテーブルを用いて算出される。ステップ530では、各シェーディング点において、内積演算が、各イラディアンスカラーベクトル(IR,B,R)と、法平面Neとの間で行われる。次に、ステップ540では、ステップ1140に関連して説明したように、表面カラーが、イラディアンスエネルギー成分に基づいて変調される。
【0150】
第2の手法の下においても、1組のマルチ解像度イラディアンスカラーテーブルが、ステップ510で生成される。ステップ522では、最も細かい解像度で点を包含するイラディアンスカラーテーブルが選択される。イラディアンスカラーが、ステップ1222に関連して説明したように算出される。ステップ1232およびステップ1240に関連して説明したように、ステップ530とステップ540との間で、イラディアンスエネルギー成分をさらに変調させるために該イラディアンスカラーが使用される。
【0151】
一定カラー源という特別なケースの第3の手法の下では、ステップ540で得られた変調された表面カラーが、光源カラーによってさらに乗算されるように、ルーチン500が改変される必要があるだけである。
【0152】
擬似コード
上記のカラー照明に対する第2の手法の一例の擬似コードを以下に示す。
【0153】
カラーの場合の例3
【0154】
【数7】
Figure 0004219090
16.結論
本発明の様々な実施形態を上に記載したが、これらの実施形態は、ただの例として提示されたものであり、限定的なものではないことが理解されるべきである。当業者は、形態および詳細における様々な変更が、添付の請求の範囲に規定されるような本発明の精神および範囲から逸脱することなく行われ得ることを理解するであろう。従って、本発明の広がりおよび範囲は、上記の例示的な実施形態の何れによっても限定されるべきではなく、以下の請求の範囲およびそれらの等価物によってのみ規定されるべきである。
【図面の簡単な説明】
【図1】 図1は、本発明のある実施形態による、コンピュータグラフィックスシェーディングにおいて照明を提供するためのルーチンのフローチャートである。
【図2A】 図2Aは、本発明によるイラディアンスベクトルフィールド例の模式図である。
【図2B】 図2Bは、本発明による図2Aのイラディアンスベクトルフィールド例を表すイラディアンスフィールドテーブルである。
【図2C】 図2Cは、本発明による図2Aのイラディアンスベクトルフィールド例を表すイラディアンスフィールドテーブルである。
【図3】 図3は、本発明による照明を提供するための複数のレンダリングパスルーチンのフローチャートである。
【図4A】 図4Aは、あるシーン内の複数の領域を示す図である。
【図4B】 図4Bは、本発明による1組のマルチ解像度イラディアンスフィールドテーブルによって覆われる図4Aの複数の領域を示す図である。
【図5】 図5は、本発明の別の実施形態による、コンピュータグラフィックスシェーディングにおいて1組のマルチ解像度イラディアンスフィールドテーブルを用いて照明を提供するためのルーチンのフローチャートである。
【図6】 図6は、本発明による照明をサポートするためのグラフィックス処理パイプラインである。
【図7】 図7は、本発明による照明をサポートするためのグラフィックスサブシステムを例示するブロック図である。
【図8】 図8は、本発明による照明をサポートするための追加ハードウェアを例示するブロック図である。
【図9】 図9は、図7のグラフィックスサブシステムを含むコンピュータシステム例を示す。
【図10A】 図10Aは、本発明のシミュレーションで描かれた円形源およびディスク状源によって照明されるシーンを示すカラー画像である。
【図10B】 図10Bは、本発明のシミュレーションで描かれた円形源およびディスク状源によって照明されるシーンを示すカラー画像である。
【図11】 図11は、本発明の第1のカラー実施形態による、コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのルーチンのフローチャートである。
【図12】 図12は、本発明の第2のカラー実施形態による、コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのルーチンのフローチャートである。
【図13】 図13は、本発明の第2のカラー実施形態のある実施例による、照明を提供するための複数のレンダリングパスルーチンのフローチャートである。
【図14】 図14は、本発明の第2のカラー実施形態の別の実施例による、照明をサポートするための追加ハードウェアを示すブロック図である。
【図15】 図15は、本発明の第3のカラー実施形態による、一定カラーの照明を提供するためのルーチンのフローチャートである。

Claims (63)

  1. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するための方法であって、
    少なくとも1つのカラーイラディアンスベクトルフィールドテーブルを格納するステップであって、該カラーイラディアンスベクトルフィールドテーブルの各々が、レンダリングされるシーンに関するそれぞれのスペクトル波長のイラディアンスフィールドを表している、ステップと、
    該イラディアンスベクトルフィールドテーブル中のカラーイラディアンスベクトルに基づいて該シーンのライティングを行うステップと、
    を包含する、方法。
  2. 前記格納ステップが、カラーイラディアンスベクトルフィールドテーブルの組を格納することを含み、該カラーイラディアンスベクトルフィールドテーブルの各々が、レンダリングされるシーンに関するそれぞれのスペクトル波長のイラディアンスフィールドを表しており;前記ライティングステップが、ライティングステップが行われている各点毎に、
    該イラディアンスベクトルフィールドテーブルの組を用いて、各点毎にカラーイラディアンスベクトルの組を算出するステップと、
    該カラーイラディアンスベクトルの組の中の各カラーイラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出するステップと、
    を包含し、それによって、該イラディアンスエネルギー成分が、該点に関する陰影値(shade value)を決定する際に使用され得る、請求項1に記載の方法。
  3. 前記ライティングステップが、ライティングが行われている各点毎に、前記イラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させるステップをさらに包含する、請求項2に記載の方法。
  4. 前記カラーイラディアンスベクトルを算出するステップが、算出される各カラーイラディアンスベクトル毎に、
    それぞれのカラーイラディアンスベクトルフィールドテーブル中で関心のある点の付近にある点のカラーイラディアンスベクトルをルックアップするステップと、
    該ルックアップステップで得られた該カラーイラディアンスベクトルを補間し、それによって、該関心のある点に関する前記それぞれのスペクトル波長の該カラーイラディアンスベクトルを算出するステップと、
    を包含する、請求項2に記載の方法。
  5. 前記ベクトル演算を行うステップが、前記カラーイラディアンスベクトルの組の中の各カラーイラディアンスベクトルと、前記点の法平面との内積を計算および加算するステップを包含する、請求項2に記載の方法。
  6. 前記格納ステップの前に、エミッタ空間で各カラーイラディアンスベクトルフィールドテーブルを生成するステップと、前記ライティングステップの前に、各点および対応する法平面を該エミッタ空間に変換するステップと、をさらに包含する、請求項1に記載の方法。
  7. 前記格納ステップが、それぞれのスペクトル波長で3次元イラディアンスフィールドを表す3次元カラーイラディアンスベクトルフィールドテーブルを格納する、請求項1に記載の方法。
  8. 前記格納ステップが、少なくとも1つのカラー点光源のイラディアンスフィールドを表すカラーイラディアンスベクトルフィールドテーブルを格納する、請求項1に記載の方法。
  9. 前記格納ステップが、照明器具ファイルフォーマットおよびスペクトル波長によって定義される少なくとも1つの点光源のイラディアンスフィールドを表すカラーイラディアンスベクトルフィールドテーブルを格納する、請求項8に記載の方法。
  10. 前記格納ステップが、少なくとも1つのカラー面光源のイラディアンスフィールドを表すカラーイラディアンスベクトルフィールドテーブルを格納する、請求項1に記載の方法。
  11. 各カラーイラディアンスベクトルフィールドテーブルを生成するステップをさらに包含する、請求項1に記載の方法。
  12. 前記格納ステップが、解像度が段階的に粗くなるにつれて、シーン中の段階的により広い領域をカバーするマルチ解像度カラーイラディアンスフィールドテーブルの組を格納する、請求項1に記載の方法。
  13. 前記格納ステップが、前記イラディアンスフィールドにおけるシャドウを表す符号化可視度情報を格納するステップをさらに包含する、請求項1に記載の方法。
  14. 前記格納ステップが、前記イラディアンスフィールドにおける関与媒体を表す符号化可視度情報を格納するステップをさらに包含する、請求項1に記載の方法。
  15. シャドウマップから可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項2に記載の方法。
  16. 背景映写計算を行い、それによって、可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項2に記載の方法。
  17. シャドウ容積計算を行い、それによって、可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項2に記載の方法。
  18. 前記ライティングステップが、アニメーションフレーム中のシーンのライティングを行い、それによって、コンピュータグラフィックスアニメーションにおいてカラー照明が提供される、請求項1に記載の方法。
  19. コンピュータグラフィックスシェーディングにおいて照明を提供するための方法であって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成するステップと、
    該イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルに基づいて該シーンのライティングを行うステップと、
    を包含する、方法。
  20. 前記ライティングステップが、ライティングが行われている各点毎に、
    前記イラディアンスベクトルフィールドテーブルを用いて、点のイラディアンスベクトルを算出するステップと、
    該イラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出するステップと、
    を包含し、それによって、該イラディアンスエネルギー成分が、該点に関する陰影値を決定する際に使用され得る、請求項19に記載の方法。
  21. 前記ライティングステップが、ライティングが行われている各点毎に、前記イラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させるステップをさらに包含する、請求項20に記載の方法。
  22. 前記イラディアンスベクトルを算出するステップが、
    前記イラディアンスベクトルフィールドテーブル中の関心のある点に隣接する点のイラディアンスベクトルをルックアップするステップと、
    該ルックアップステップで得られた該イラディアンスベクトルを補間し、それによって、該関心のある点の該イラディアンスベクトルを算出するステップと、
    を包含する、請求項20に記載の方法。
  23. 前記ベクトル演算を行うステップが、前記イラディアンスベクトルと、前記点の前記法平面との内積を計算するステップを包含する、請求項20に記載の方法。
  24. 前記生成ステップが、エミッタ空間で前記イラディアンスベクトルフィールドテーブルを生成し、前記ライティングステップの前に、各点および対応する法平面を該エミッタ空間に変換するステップをさらに包含する、請求項20に記載の方法。
  25. 前記生成ステップが、3次元イラディアンスフィールドを表す3次元イラディアンスベクトルフィールドテーブルを生成する、請求項19に記載の方法。
  26. 前記生成ステップが、少なくとも1つの点光源のイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成する、請求項19に記載の方法。
  27. 前記生成ステップが、照明器具ファイルフォーマットによって定義される少なくとも1つの点光源のイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成する、請求項26に記載の方法。
  28. 前記生成ステップが、少なくとも1つの面光源のイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成する、請求項19に記載の方法。
  29. 前記イラディアンスベクトルフィールドテーブルをメモリ中に格納するステップをさらに包含する、請求項19に記載の方法。
  30. 前記生成ステップが、解像度が段階的に粗くなるにつれて、シーン中の段階的により広い領域をカバーするマルチ解像度イラディアンスフィールドテーブルの組を生成する、請求項19に記載の方法。
  31. 前記生成ステップが、前記イラディアンスフィールドにおけるシャドウを表すために可視度情報を符号化するステップをさらに包含する、請求項19に記載の方法。
  32. 前記生成ステップが、前記イラディアンスフィールドにおける関与媒体を表すために、可視度情報を符号化するステップをさらに包含する、請求項19に記載の方法。
  33. シャドウマップから可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項20に記載の方法。
  34. 背景映写計算を行い、それによって、可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項20に記載の方法。
  35. シャドウ容積計算を行い、それによって、可視度情報を決定するステップと、
    該可視度情報に基づいて前記イラディアンスエネルギー成分を量るステップと、
    をさらに包含する、請求項20に記載の方法。
  36. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するための方法であって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するステップと、
    レンダリングされるシーンのカラーを表すイラディアンスカラーテーブルを格納するステップと、
    該イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルおよび該イラディアンスカラーテーブル中のイラディアンスカラー値に基づいて、該シーンのライティングを行うステップと、
    を包含する、方法。
  37. 前記ライティングステップが、ライティングが行われている各点毎に、
    前記イラディアンスベクトルフィールドテーブルを用いて、点のイラディアンスベクトルを算出するステップと、
    前記イラディアンスカラーテーブルを用いて、該点のイラディアンスカラーを算出するステップと、
    該イラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出するステップと、
    該算出されたイラディアンスカラーを用いて該イラディアンスエネルギー成分を変調させるステップと、
    を包含し、それによって、該変調されたイラディアンスエネルギー成分が、該点に関する陰影値を決定する際に使用され得る、請求項36に記載の方法。
  38. 前記ライティングステップが、ライティングが行われている各点毎に、前記変調されたイラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させるステップをさらに包含する、請求項37に記載の方法。
  39. 前記イラディアンスベクトルを算出するステップが、
    前記イラディアンスベクトルフィールドテーブル中で関心のある点の付近にある点のイラディアンスベクトルをルックアップするステップと、
    該ルックアップステップで得られた該イラディアンスベクトルを補間し、それによって、該関心のある点の該イラディアンスベクトルを算出するステップと、
    を包含する、請求項37に記載の方法。
  40. 前記ベクトル演算を行うステップが、前記イラディアンスベクトルと、前記点の法平面との内積を計算するステップを包含する、請求項37に記載の方法。
  41. 前記イラディアンスカラーを算出するステップが、
    前記イラディアンスカラーテーブル中で関心のある点の付近にある点のイラディアンスカラーをルックアップするステップと、
    該ルックアップステップで得られた該イラディアンスカラーを補間し、それによって、該関心のある点の該イラディアンスカラーを算出するステップと、
    を包含する、請求項37に記載の方法。
  42. 前記格納ステップが、解像度が段階的に粗くなるにつれて、シーン中の段階的により広い領域を包含する、マルチ解像度イラディアンスベクトルフィールドテーブルの組およびマルチ解像度イラディアンスカラーテーブルの組を格納する、請求項36に記載の方法。
  43. 前記ライティングステップが、最も細かい解像度で点を包含するイラディアンスベクトルフィールドテーブルおよびイラディアンスカラーテーブルを選択するステップを含む、請求項42に記載の方法。
  44. 前記格納ステップの前に、前記イラディアンスベクトルフィールドテーブルおよび前記イラディアンスカラーテーブルを生成するステップをさらに包含する、請求項36に記載の方法。
  45. コンピュータグラフィックス画像をシェーディングし、それによって源からのカラー照明を表す方法であって、
    イラディアンスベクトルフィールドテーブルを第1のテクスチャとして格納するステップと、
    イラディアンスカラーテーブルを第2のテクスチャとして格納するステップと、
    該第1のテクスチャを用いて第1の画像をレンダリングし、それによって、画素を着色するステップと、
    赤、緑、および青(RGB)のカラー成分で符号化された法平面を有する第2の画像をレンダリングするステップと、
    該第1および第2の画像を乗算し、それによって、第3の画像を得るステップと、
    該第3の画像の成分を累算し、それによって第4の画像を得るステップと、
    カラーおよびテクスチャの少なくとも1つを用いてシーンをレンダリングし、それによって、第5の画像を得るステップと、
    該第4および第5の画像を乗算し、それによって、フレームバッファ表示画像を得るステップと、
    該第2のテクスチャを用いてシーンをレンダリングし、それによって、第6の画像を得るステップと、
    該第6の画像および該フレームバッファ表示画像を乗算し、それによって、最終的なフレームバッファ表示画像を得るステップと、
    を包含する、方法。
  46. コンピュータグラフィックスシェーディングにおいて一定カラーの照明を提供するための方法であって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するステップと、
    該イラディアンスベクトルフィールドテーブルを用いて、ライティングが行われている点のイラディアンスベクトルを算出するステップと、
    該イラディアンスベクトルと該点の法平面とのベクトル演算を行い、それによって、イラディアンスエネルギー成分を算出するステップと、
    該イラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させ、それによって、変調表面カラー値を得るステップと、
    光源カラー値によって該変調された表面カラーを乗算するステップと、
    を包含する、方法。
  47. コンピュータグラフィックス画像をシェーディングし、それによって一定カラーの源からの照明を表す方法であって、
    イラディアンスベクトルフィールドテーブルをイラディアンステクスチャとして格納するステップと、
    該イラディアンステクスチャを用いて第1の画像をレンダリングし、それによって、画素を着色するステップと、
    赤、緑、および青(RGB)のカラー成分で符号化された法平面を有する第2の画像をレンダリングするステップと、
    該第1および第2の画像を乗算し、それによって、第3の画像を得るステップと、
    該第3の画像の成分を累算し、それによって第4の画像を得るステップと、
    カラーおよびテクスチャの少なくとも1つを用いてシーンをレンダリングし、それによって、第5の画像を得るステップと、
    該第5の画像を光源カラー値によって乗算し、それによって、第6のフレームバッファ画像を得るステップと、
    該第4および第6の画像を乗算し、それによって、最終的なフレームバッファ表示画像を得るステップと、
    を包含する、方法。
  48. コンピュータグラフィックス画像をシェーディングし、それによって源からの照明を表す方法であって、
    イラディアンスベクトルフィールドテーブルを生成するステップと、
    該イラディアンスベクトルフィールドテーブルを用いて第1の画像をレンダリングし、それによって、画素を着色するステップと、
    赤、緑、および青(RGB)のカラー成分で符号化された法平面を有する第2の画像をレンダリングするステップと、
    該第1および第2の画像を乗算し、それによって、第3の画像を得るステップと、
    該第3の画像の成分を累算し、それによって第4の画像を得るステップと、
    カラーおよびテクスチャの少なくとも1つを用いてシーンをレンダリングし、それによって、第5の画像を得るステップと、
    該第4および第5の画像を乗算し、それによって、最終的な表示画像を得るステップと、
    を包含する、方法。
  49. コンピュータグラフィックスアニメーションにおいて照明を提供するための方法であって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成するステップと、
    該イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルに基づいて、アニメーションフレーム中で該シーンのライティングを行うステップと、
    を包含する、方法。
  50. コンピュータグラフィックス画像の点をシェーディングし、それによって源からの照明を表すシステムであって、
    該源照明のイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するメモリと、
    該イラディアンスベクトルフィールドテーブル中の選択された点のイラディアンスベクトルをルックアップおよび補間し、それによって補間イラディアンスベクトルを算出するルックアップユニットと、
    該補間イラディアンスベクトルと、シェーディングされている該点の法平面との内積を計算し、イラディアンスエネルギー成分を出力する内積ユニットと、
    を備え、それによって、該イラディアンスエネルギー成分が、該点に関する最終的なシェーディングカラー値を決定する際に使用され得る、システム。
  51. 前記メモリが、3次元イラディアンスフィールドを表す3次元イラディアンスベクトルフィールドテーブルを格納するためのテクスチャメモリを含む、請求項50に記載のシステム。
  52. 前記源照明が、少なくとも1つの点または面光源を含み、前記メモリが、該少なくとも1つの点または面光源の前記イラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納する、請求項50に記載のシステム。
  53. コンピュータグラフィックス画像の点をシェーディングし、それによって一定カラーの源からの照明を表すシステムであって、
    該源照明のイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するメモリと、
    該イラディアンスベクトルフィールドテーブル中の選択された点のイラディアンスベクトルをルックアップおよび補間し、それによって補間イラディアンスベクトルを算出するルックアップユニットと、
    該補間イラディアンスベクトルと、シェーディングされている該点の法平面との内積を計算し、イラディアンスエネルギー成分を出力する内積ユニットと、
    該イラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させる表面カラー変調器と、
    該変調された表面カラーを、該点に関する光源カラー値によって乗算する、乗算器ユニットと、
    を備える、システム。
  54. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのシステムであって、
    少なくとも1つのカラーイラディアンスベクトルフィールドテーブルを格納するためのメモリであって、該カラーイラディアンスベクトルフィールドテーブルの各々は、レンダリングされるシーンに関するそれぞれのスペクトル波長のイラディアンスフィールドを表す、メモリと、
    該イラディアンスベクトルフィールドテーブルのカラーイラディアンスベクトルに基づいて、該シーンのライティングを行うためのライティング手段と、
    を備えた、システム。
  55. 前記メモリが、カラーイラディアンスベクトルフィールドテーブルの組を格納し、該カラーイラディアンスベクトルフィールドテーブルの各々が、レンダリングされるシーンに関するそれぞれのスペクトル波長のイラディアンスフィールドを表し;前記ライティング手段が、ライティングが行われている各点毎に、
    該イラディアンスベクトルフィールドテーブルの組を用いて、各点毎にカラーイラディアンスベクトルの組を算出するための算出手段と、
    該カラーイラディアンスベクトルの組の中の各カラーイラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出するためのベクトル演算を行う手段と、
    を備え、それによって、該イラディアンスエネルギー成分が、該点に関する陰影値を決定する際に使用され得る、請求項54に記載のシステム。
  56. 前記ライティング手段が、ライティングが行われている各点毎に、前記イラディアンスエネルギー成分に基づいて、該点の表面カラーを変調させるための手段をさらに備えた、請求項55に記載のシステム。
  57. 前記カラーイラディアンスベクトルを算出する手段が、
    それぞれのカラーイラディアンスベクトルフィールドテーブル中で関心のある点に隣接する点のカラーイラディアンスベクトルをルックアップするためのルックアップ手段と、
    該ルックアップ手段によって出力された該カラーイラディアンスベクトルを補間し、それによって、該関心のある点に関する前記それぞれのスペクトル波長の該カラーイラディアンスベクトルを得る補間器手段と、
    を備え、前記ベクトル演算を行う手段が、前記カラーイラディアンスベクトルの組の中の各カラーイラディアンスベクトルと、該点の法平面との内積を計算するための内積計算手段を含む、請求項55に記載のシステム。
  58. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのシステムであって、
    カラーイラディアンスベクトルフィールドテーブルの組を格納するためのメモリであって、該カラーイラディアンスベクトルフィールドテーブルの各々は、レンダリングされるシーンに関するそれぞれのスペクトル波長のイラディアンスフィールドを表している、メモリと、
    それぞれのカラーイラディアンスベクトルフィールドテーブル中で関心のある点に隣接する点のカラーイラディアンスベクトルをルックアップするルックアップユニットと、
    該ルックアップユニットによって出力された該カラーイラディアンスベクトルを補間し、それによって、該関心のある点に関する該それぞれのスペクトル波長の該カラーイラディアンスベクトルを得る補間器ユニットと、
    該カラーイラディアンスベクトルの組の中の各カラーイラディアンスベクトルと、該点の法平面との内積を計算し、それによってイラディアンスエネルギー成分を算出する内積ユニットと、
    を備え、それによって、該イラディアンスエネルギー成分が、該点に関する陰影値を決定する際に使用され得る、システム。
  59. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのシステムであって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するための第1のメモリ場所と、
    レンダリングされるシーンのカラー照明を表すイラディアンスカラーテーブルを格納するための第2のメモリ場所と、
    該イラディアンスベクトルフィールドテーブル中のカラーイラディアンスベクトルに基づいて、該シーンのライティングを行うためのライティング手段と、
    を備えた、システム。
  60. 前記ライティング手段が、ライティングが行われている各点毎に、
    前記イラディアンスベクトルフィールドテーブルを用いて、該各点のイラディアンスベクトルを算出するための算出手段と、
    前記イラディアンスカラーテーブルを用いて、該各点のイラディアンスカラーを算出するための算出手段と、
    該イラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出するためのベクトル演算を行う手段と、
    補間されたイラディアンスカラーを用いて該イラディアンスエネルギー成分を変調させ、それによって、シェーディングされる関心のある点の陰影値を決定するために使用され得る変調イラディアンスエネルギー成分が得られる変調手段と、
    を備えた、請求項59に記載のシステム。
  61. コンピュータグラフィックスシェーディングにおいてカラー照明を提供するためのシステムであって、
    レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを格納するための第1のメモリ場所と、
    レンダリングされるシーンのカラー照明を表すイラディアンスカラーテーブルを格納するための第2のメモリ場所と、
    該イラディアンスベクトルフィールドテーブル中で関心のある点に隣接する点のイラディアンスベクトルをルックアップし、且つ該イラディアンスカラーテーブル中で関心のある点に隣接する点のイラディアンカラーをルックアップするルックアップユニットと、
    該ルックアップユニットによって出力された該イラディアンスベクトルを補間し、それによって、該関心のある点の補間イラディアンスベクトルを得、且つ該ルックアップユニットによって出力された該イラディアンスカラーを補間し、それによって該関心のある点の補間イラディアンスカラーを得る補間器ユニットと、
    該補間イラディアンスベクトルと、該点の法平面との内積を計算し、それによってイラディアンスエネルギー成分を算出する内積ユニットと、
    該補間イラディアンスカラーを用いて該イラディアンスエネルギー成分を変調させ、それによって、シェーディングされる該関心のある点に関する陰影値を決定するために使用され得る変調イラディアンスエネルギー成分が得られる変調器ユニットと、
    を備えた、システム。
  62. コンピュータプログラムプロダクトであって、該コンピュータプログラムプロダクトは、コンピュータシステム中のグラフィックスプロセッサがコンピュータグラフィックスシェーディングにおいて照明を提供することを可能にする、その上に記録されたコンピュータプログラム論理を備えたコンピュータ使用可能媒体を備え、該コンピュータプログラム論理が、
    該グラフィックスプロセッサが、レンダリングされるシーンのイラディアンスフィールドを表すイラディアンスベクトルフィールドテーブルを生成することを可能にする手段と、
    該グラフィックスプロセッサが、該イラディアンスベクトルフィールドテーブル中のイラディアンスベクトルに基づいて、該シーンのライティングを行うことを可能にする手段と、
    を備えた、コンピュータプログラムプロダクト。
  63. 前記ライティングを可能にする手段が、
    前記グラフィックスプロセッサが、前記イラディアンスベクトルフィールドテーブルを用いて点に関するイラディアンスベクトルを算出し、且つ該イラディアンスベクトルと、該点の法平面とのベクトル演算を行い、それによってイラディアンスエネルギー成分を算出することを可能にする手段を備え、それによって、該イラディアンスエネルギー成分が、該点の陰影値を決定する際に用いられ得る、請求項62に記載のコンピュータプログラムプロダクト。
JP2000513245A 1997-09-25 1998-09-25 コンピュータグラフィックスシェーディングおよびアニメーションにおいて照明を提供するための方法、システム、およびコンピュータプログラムプロダクト Expired - Fee Related JP4219090B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/937,793 US6567083B1 (en) 1997-09-25 1997-09-25 Method, system, and computer program product for providing illumination in computer graphics shading and animation
US7080998A 1998-05-01 1998-05-01
US08/937,793 1998-05-01
US09/070,809 1998-05-01
PCT/US1998/020096 WO1999016021A1 (en) 1997-09-25 1998-09-25 Method, system, and computer program product for providing illumination in computer graphics shading and animation

Publications (2)

Publication Number Publication Date
JP2001517838A JP2001517838A (ja) 2001-10-09
JP4219090B2 true JP4219090B2 (ja) 2009-02-04

Family

ID=26751519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000513245A Expired - Fee Related JP4219090B2 (ja) 1997-09-25 1998-09-25 コンピュータグラフィックスシェーディングおよびアニメーションにおいて照明を提供するための方法、システム、およびコンピュータプログラムプロダクト

Country Status (3)

Country Link
EP (1) EP1018093A1 (ja)
JP (1) JP4219090B2 (ja)
WO (1) WO1999016021A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US7327365B2 (en) * 2004-07-23 2008-02-05 Microsoft Corporation Shell texture functions
GB201414144D0 (en) * 2014-08-08 2014-09-24 Imagination Tech Ltd Relightable texture for use in rendering an image

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0746391B2 (ja) * 1984-09-14 1995-05-17 株式会社日立製作所 図形シエ−デイング装置
US5268996A (en) * 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources

Also Published As

Publication number Publication date
WO1999016021A1 (en) 1999-04-01
JP2001517838A (ja) 2001-10-09
EP1018093A1 (en) 2000-07-12

Similar Documents

Publication Publication Date Title
US6567083B1 (en) Method, system, and computer program product for providing illumination in computer graphics shading and animation
US7212207B2 (en) Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing
Heckbert et al. Simulating soft shadows with graphics hardware
US5949424A (en) Method, system, and computer program product for bump mapping in tangent space
US6532013B1 (en) System, method and article of manufacture for pixel shaders for programmable shading
US8115767B2 (en) Computer graphics shadow volumes using hierarchical occlusion culling
US6639595B1 (en) Achromatic lighting in a graphics system and method
US6384824B1 (en) Method, system and computer program product for multi-pass bump-mapping into an environment map
US7256781B2 (en) Image processing apparatus and method of same
US7948490B2 (en) Hardware-accelerated computation of radiance transfer coefficients in computer graphics
US20080143720A1 (en) Method for rendering global illumination on a graphics processing unit
US20100060640A1 (en) Interactive atmosphere - active environmental rendering
CN114581589A (zh) 图像处理方法及相关装置
US6515674B1 (en) Apparatus for and of rendering 3d objects with parametric texture maps
US6806886B1 (en) System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
Nijasure et al. Real-time global illumination on gpus
US7116333B1 (en) Data retrieval method and system
US20180005432A1 (en) Shading Using Multiple Texture Maps
JP4219090B2 (ja) コンピュータグラフィックスシェーディングおよびアニメーションにおいて照明を提供するための方法、システム、およびコンピュータプログラムプロダクト
Fujita et al. Hardware-Assisted Relief Texture Mapping.
JP4847910B2 (ja) 人間の肌のような半透明の材質のための、曲率ベースレンダリング方法及び装置
JP2002197485A (ja) グラフィックシステムにおける無色光のライティングおよび方法
Lehn et al. Lighting Models
Vyatkin et al. Combined method of visualization of functionally defined surfaces and three-dimensional textures
US7733349B1 (en) Device, method, and system for generating per-pixel light values using texture parameters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050922

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061130

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081020

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081111

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees