JP6864495B2 - 3dシーンのグローバル・イルミネーションの描画 - Google Patents

3dシーンのグローバル・イルミネーションの描画 Download PDF

Info

Publication number
JP6864495B2
JP6864495B2 JP2017032388A JP2017032388A JP6864495B2 JP 6864495 B2 JP6864495 B2 JP 6864495B2 JP 2017032388 A JP2017032388 A JP 2017032388A JP 2017032388 A JP2017032388 A JP 2017032388A JP 6864495 B2 JP6864495 B2 JP 6864495B2
Authority
JP
Japan
Prior art keywords
triangle
triangles
computer
subset
scene
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.)
Active
Application number
JP2017032388A
Other languages
English (en)
Other versions
JP2017199354A (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.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
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 Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2017199354A publication Critical patent/JP2017199354A/ja
Application granted granted Critical
Publication of JP6864495B2 publication Critical patent/JP6864495B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

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

Description

本発明はコンピュータプログラムおよびシステムの分野に関連し、より詳細には、通常CADアプリケーションのシナリオにおいて見られる複雑なシーンのような大きなモデルの文脈における、三次元シーンのグローバル・イルミネーションを描画するための方法、システム、およびプログラムに関連する。
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer−Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer−Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer−Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
光輸送のシミュレーションは、現実的な画像合成の重要な要素である。この現象に関連する研究作業の根幹は、「グローバル・イルミネーション」と呼ばれ、物理法則がよく知られているにもかかわらず演算コストが高く、さらにはリアルタイムシナリオにとって重要な結果をもたらすため、依然として困難な課題である。KAJIYA,J.T.1986,The rendering equation,ACM Siggraph Computer Graphics,vol.20,ACM,143―150で論じられている描画方程式の再帰的性質の陰に隠れているが、グローバル・イルミネーションのシミュレーションは、特殊効果、プリビジュアライゼーション、アニメーション映画制作、およびビデオゲームに高度な現実感をもたらすために、多くのアプローチで取り組まれてきた。
現在、2つの研究が区別できる。1つ目は、視覚的に説得力のあるグローバル・イルミネーションの近似を迅速に提供することを目指す「インタラクティブ・レンダリング」である。2つ目は、可能な限り物理学に近いソリューションを目標とする「オフライン・レンダリング」である。
「インタラクティブ・レンダリング」のリアルタイムパフォーマンスを達成するために使用できるさまざまな戦略の中で、遠隔入射放射輝度の低周波挙動を利用することが、効果的であると証明されている。例えば、WALTER,B.,FERNANDEZ,S.,ARBREE,A.,BALA,K.,DONIKIAN,M.,およびGREENBERG,D.P.2005.Lightcuts:a scalable approach to illumination.ACM Transactions on Graphics(TOG),vol.24,ACM,1098―1107で論じられている階層的放射輝度キャッシュ法は、マルチスケールの放射輝度関数を格納するシーンのジオメトリ上のツリーを算出することによってこの特性を利用する。間接照明が、シーンのサーフェス上に配置された仮想点光源(VPL)によってモデル化されると仮定すると、このツリーのすべての内部ノードは、その関連するサブツリーの代表的な放射輝度応答を提供し、離れた場所から放射輝度が評価されるとすぐに、その代替物として使用される。ノードを集めることは、その子ノードを破棄することにつながるため、所与の点(例えば、投影されていない画像画素)における入射放射輝度を評価するために使用されるノードの集合は、ライト・カットと呼ばれる。
ライト・カット収集工程の高性能実装が多数提案されているが、それらの大部分はツリーを予め算出して維持することに依存しており、大規模なメモリと計算コストを要する可能性がある。
Mittringほか(MITTRING,M.2007.Finding next gen:Cryengine 2.ACM SIGGRAPH 2007 courses,ACM,97−121)は、シーンの実際の(大きい可能性がある)ジオメトリに対して経済的かつランダムアクセスが可能な代替物として深度バッファを使用し、スクリーン空間内のライト・キャッシュをパラメータ化する、アンビエント・オクルージョン近似法を導入した。その他の様々な方法では、いくつかの照明効果の計算上の複雑さを低減するために、スクリーン空間近似を利用する。しかしながら、そのようなアプローチは、リアルタイムで動的なパフォーマンスが実現できるものの、シーンの完全なジオメトリ、すなわち最初の深度レイヤを超えた、視錐台の外のジオメトリを明らかにするのに、深度剥離および複数ビューの描画に依拠するため、すぐにネイティブスピードに悪影響を及ぼす。
スクリーン空間のアプローチとは対照的に、オブジェクト空間での間接イルミネーションの解決策では、GPU負荷の少ないライト・キャッシュを犠牲にして、そのようなビューに依存したアーチファクトを回避する。例えば、KELLER,A.1997.Instant radiosity.In Proceedings of the 24th annual conference on Computer graphics and interactive techniques,ACM Press/Addison−Wesley Publishing Co.,49?56で論じられているインスタント・ラジオシティー(Instant Radiosity:IR)法では、主光源によって照らされたジオメトリ上に直接生成された、仮想点光源(Virtual Point Lights:VPLs)と呼ばれる、二次的点光源の集合が用いられる。このようにVPLの集合はシーンの間接照明の離散表現として機能し、光の反射を近似する際の演算を大幅に減らすことができる。しかしながら、大規模なデータへと拡張するには、膨大な量のVPLが必要となる。しかし、非常に多くのVPLを生成しシェーディングを行うためのコストは、動的シーンにおいては法外に高いため、困難である。
最後に、NALBACH,O.,RITSCHEL,T.,AND SEIDEL,H.−P.2014.Deep screen space. In Proceedings of the 18th meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games,ACM,79―86.2014で論じられているディープ・スクリーン空間(Deep Screen Space(DSS))では、スクリーン空間とオブジェクト空間の両方の放射輝度キャッシングの利点を利用することが提案されている。オブジェクト空間による戦略と同様、この方法では、画像に依然として影響を与えるかもしれない閉塞ジオメトリ上においても、オン・サーフェスVPLを生成する。そしてスクリーン空間のアプローチと同様、ラスタライザの代わりにテッセレータ・ユニットがVPLを生成するサーフェス・サンプラとして使用され、ネイティブGPUサポートから利益を得る。DSSは小規模から中規模のシーンをうまく描画することができるが、より大きなものに対応することはできず、リアルタイムの制約により、ジオメトリを精緻化させるのではなく、間引くことが必要になる。
このような文脈において、三次元シーンのグローバル・イルミネーションを描画するための、改良された方法が依然として求められている。
したがって、コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画(レンダリング)するための方法が提供される。本方法は、
・三角形の集合Lと、1つまたは複数の直接光源とを含む三次元シーンを提供するステップと、
・前記集合の各三角形tiが閾値So以下の面積を有すると判定するステップと、
・確率法則を用いて、前記集合の各三角形に影響半径を割り当てるステップと、
・前記三角形を、それぞれの影響半径に応じて選別することによって、三角形の部分集合L*を得るステップと、
・前記三次元シーンを、その三角形の集合へのライティングによって描画するステップであって、前記三角形の部分集合L*の三角形がその影響半径に応じて間接光源として用いられるような、描画するステップとを含む。
本方法は、以下のうちの1つまたは複数を含んでいてもよい。
・前記集合の各三角形が前記閾値以下の面積を有すると判定するステップは、前記三角形の集合Lを、それぞれが前記閾値以下の面積を有する三角形の第1の集合と、それぞれが前記閾値よりも大きい面積を有する三角形の第2の集合とに分割するステップと、第2の集合の各三角形をテッセレーションして、テッセレーションの結果として前記閾値以下の面積を有する三角形の第3の集合を得るステップを含み、ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップは、確率法則を用いて前記第1および第3の集合の各三角形に影響半径を割り当てるステップを含み、三角形の部分集合を取得するステップは、前記第1および第3の集合の三角形を、それらの影響半径に応じて選別することによって三角形の部分集合を取得するステップを含む。
・前記集合の各三角形が閾値以下の面積を有すると判定した後、前記三角形の集合を、前記確率法則に従って、前記三角形の集合を、三角形のN+2個の部分集合にランダムに分割するステップと、三角形の前記N+2個の部分集合のうち、前記3Dシーンの描画に対する寄与度が低いと判定された三角形を含む1つを破棄するステップであって、残りのN+1個の部分集合は、破棄されていない三角形を含むような、破棄するステップとを含む。
・三角形の前記N+2個の部分集合のうちの残りの部分集合L*は、A(ti)を三角形tiの表面積、Soを閾値としたとき、
Figure 0006864495
となるような前記集合の三角形tiを含む。
・前記残りの部分集合L*の各三角形は、三角形が
Figure 0006864495
で定義される部分集合Lk内に存在する確率に従って、残りの部分集合Lkのうちの1つに送出(S520)され、ここでSkの値はkが増加すると増加する。
・SkはSk=Soμkを満たす集合であり、ここでμ>1であり、μの値は[1;5]間の実数である。
・SkはSk=Soμkを満たす集合であり、ここでμの値は、三次元シーンの半径であるRsceneを用いて、
Figure 0006864495
で定義される。
・前記残りの部分集合L*の各三角形が送出された後、前記残りの部分集合L*の各三角形について単一の仮想点光源を算出し、ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップはさらに、前記残りの部分集合L*の各三角形の仮想点光源の出射放射輝度を算出するステップを含み、前記算出は、三角形が送出された前記部分集合に従って実行される。
・各三角形の仮想点光源について出射放射輝度を算出するステップは、仮想点光源の寄与度が大きい三次元シーン内の点の集合を表す入れ子状のボール群Bh(ti)を算出するステップを含む。
・前記N+2個の部分集合のうち、残りの部分集合のそれぞれについて、残りの部分集合上のサポート関数(support function)の集合(fkkが、入れ子状のボール群Bh(ti)の境界に亘って一定である1の分割を形成するようなサポート関数fk(ti,x)を算出する。
・前記サポート関数の集合(fkkの基底関数(base function)はBスプラインである。
・Bh(ti)は、
Figure 0006864495
で定義され、ここで、xは法線
Figure 0006864495
を有する三次元シーンの点であり、yiは三角形ti上の仮想点光源の中心となる点であり、ρxは点xにおけるアルベドであり、ρiは点yiにおけるアルベドであり、E(ti)は、三角形tiへの直接放射照度である。
・描画ステップにおいて、入れ子状のボール群Bh(ti)の球面を描画するときに、サポート関数の集合(fkkが、スプラッティング演算(splatting operations)を実行するのに用いられる。
・前記閾値Soは、
Figure 0006864495
で定義され、ここで、NAvgは、仮想点光源の平均個数であり、Dnearは、前記3Dシーンの画素とVPLとの間の最短距離である。
・前記集合の各三角形tiが閾値So以下の面積を有すると判定する前に、前記集合の三角形tiの各頂点について単一のランダムな整数を生成する(S20)。
・ここで、三角形の各頂点について単一のランダムな整数を算出するステップは、さらに、前記第3の集合の三角形の各副頂点について、当該副頂点の重心座標を決定するステップと、前記重心座標を用いてノイズ・テクスチャ内のランダムな値を取得するステップ(S210)と、前記取得したランダムな値を用いて前記第3の集合の三角形の前記各副頂点の前記単一のランダムな整数を生成するステップ(S220)とを含む。
さらには、前記方法を実行するための命令を含むコンピュータプログラムが提供される。さらには、前記方法を実行するための命令を含む、グラフィック・ライブラリ・コンピュータプログラムが提供される。
さらには、前記グラフィック・ライブラリ・コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
さらには、当該コンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィック処理ユニットを有するグラフィック・カードとを備えるシステムが提供される。
前記システムのグラフィック・カードは、前記集合の各三角形tiが閾値So以下の面積を有すると判定するジオメトリ・シェーダ・ユニットと、前記集合の三角形tiをテッセレーションするためのテッセレーション・ユニットとを備えていてもよく、前記メモリ上に記録された前記コンピュータプログラムは、前記単一のランダムな整数の生成を実行するために前記テッセレーション・ユニットを構成するように適合されている。
本方法の一例のフローチャートを示す。 本方法の一例のフローチャートを示す。 本方法の一例を示す。 本発明の間接イルミネーション・シェーダ・パイプラインの一例を示す。 本発明の間接イルミネーション・パイプラインの一例を示す。 点xにおける仮想点光源のイルミネーションの一例を示す。 0(黒)から1(白)の範囲の値について、平面部分上のサポート関数の視覚化の一例を示す。 一次元の1の分割の一例を示す。 三角形ごとの一様なランダム値生成の一例を示す。 本発明の非標準パイプラインを使用しない場合、および使用する場合における、同じシーンのイルミネーションの例を示すスクリーンショットである。 本発明の非標準パイプラインを使用しない場合、および使用する場合における、同じシーンのイルミネーションの例を示すスクリーンショットである。 本方法を実行するシステムの一例を示す。
図1および2のフローチャートを参照して、コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画するための方法を提案する。本方法は、三角形の集合Lと1つまたは複数の直接光源とを含む三次元シーンを提供することを含む。次いで、前記集合の各三角形tiが閾値So以下の面積を有すると判定する。次に、確率法則を用いて、前記集合の各三角形に影響半径を割り当てる。次いで、前記三角形を、それぞれの影響半径に応じて選別することによって、三角形の部分集合L*を得る。次に、前記三次元シーンが、その三角形の集合へのライティングによって描画される。前記三角形の部分集合L*の三角形がその影響半径に応じて間接光源として用いられる。
このような方法は、三次元シーンのグローバル・イルミネーションのリアルタイムでの描画を改善する。実際には、照明のマルチスケール表現が生成される。つまり、VPLが、入力される三角形の集合の確率的な間引き処理に基づいて生成される。そして、前方に向かって(すなわち、光源からセンサーまでの光空間を探索して)、カットで選択されたかのように、それぞれの有界影響領域を算出する。本発明は、グラフィック・カードのジオメトリ・シェーダとテッセレーション・ユニットの両方を利用して、間接照明に近似する仮想点光源(VPL)の集合をフレーム単位で構築している。本発明は、2パス戦略においてジオメトリ駆動型VPLの集合を精緻化および単純化することができる、イルミネーション用拡散グラフィック・パイプラインを提案する。膨大な数の三角形を有するシーンの文脈において、オブジェクト空間放射輝度キャッシュの解像度を調整するために、テッセレーション・ユニットとジオメトリ・シェーダの両方を利用する。本発明は、複雑な前処理を示唆するものではなく、また、フレームにわたって複雑なデータ構造を保持する必要もない。光照射野のマルチスケール表現を使用することで、リアルタイムのパフォーマンスを実現し、それは完全に動的であり、ツリー構造に頼らず、また、フレーム間でデータ構造を維持する必要もない。これは、ライト、ビューポイント、ジオメトリ・アニメーションなどを含む、完全に動的なシーンと互換性がある。最後に、統合に関して、本発明は、当然、標準的な現代のグラフィック・パイプラインに適合し、ホスト・アプリケーションによって採用される相補的描画技術について、強い仮定は何ら必要としない。
本方法は、コンピュータによって実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、場合により、完全に自動的に、あるいは半自動的に実行される。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、および/または、予め定義されていてもよい。
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィック処理ユニットを有するグラフィック・カードを備えていてもよい。コンピュータプログラムは、グラフィック・ライブラリ・コンピュータプログラムである可能性がある。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。データベースは、描画すべき3Dシーンを記憶していてもよく、例えば、データベースは、当該シーンの三角形の集合を記憶する。
図12は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD−ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
以下に、より詳細に論じるように、本発明は仮想点光源(Virtual Point Lights:VPLs)、すなわち、ある光がキャッシュされる点の集合を用いる。キャッシュされる照明は、直接照明であってもよい。VPLは、間接照明の反射を近似するのに使用される。図5は、当該技術分野で知られているVPLベースのパイプラインの一例を示す。VPLパイプラインは、典型的には、照明の3つの主要ステージ、すなわち(a)VPL生成、(b)間接ライト・キャッシング、および(c)VPLを用いた照明からなる。
本発明は、特に、(a)VPL生成、および(c)照明中にそれらを使用することに焦点を合わせる。図1は、VPLの生成の対象となる三角形の生成の一例を示す。
・前処理時に、動的ジオメトリ変換の下であっても一貫して三角形ごとの乱数を生成するのに描画時に使用される、単一の頂点ごとのランダムな整数を算出する。
・生のジオメトリから三角形の部分集合を生成する一例について説明する。特に、通常のパイプラインと非標準パイプラインの使用について示す。大きな三角形(本発明においては「非標準(divergent)」と呼ぶ)は、前述の戦略では十分にサンプリングされず、最終的な画像に、重大な照明アーチファクトをもたらす可能性がある。その結果、非標準三角形は、テッセレーション・ユニットを経由し、そこで適切な解像度に達するまで細分化される。
・生データの三角形の破棄の一例として、例えば、サンプリング情報の量を最適化しつつ、管理された三角形の数を大幅に減らすために、主に小さな三角形からなる特別な集合が完全に破棄される。
図2は、VPLの生成の一例を示し、ここでは、生データ(図1)から生成された三角形の完全な集合が、確率法則に従ってランダムに分割されている。各三角形に対してVPLが生成され、その出射放射輝度は、関連する区画(L0,・・・,LN)のみに基づいて算出される。最後に、間接イルミネーションは、典型的な遅延シェーディングプロセスで、VPL区画に応じてスプラット機能サポートを用いてスプラットされ、強力なVPLを確保することにより三日月形サポートを用いて遠隔照明を実行する。
図1に戻って、本発明の第1の態様、すなわち、VPLの生成対象である生データから三角形を生成することについて説明する。ステップS10において、3Dシーンが提供される。3Dシーンは、三角形の集合Lと、1つまたは複数の直接光源とを含む。提供するとは、生データ(3Dシーンの三角形の集合L)が、本発明の方法を実施するシステムおよび/またはプログラムによってアクセス可能であることを意味する。典型的には、3Dシーンは、当該技術分野で知られているように、アプリケーションの要求に応じて表示される画像を生成するフレームワークである描画エンジンにロードすることができる。例えば、CADシステムのCADアプリケーションは、3Dモデル化オブジェクトの3Dシーンを、入力として、描画エンジンに提供し、描画エンジンは、CADシステムの1つまたは複数のグラフィック・カードを用いて、3Dシーンをスクリーンに描く。3Dシーンの三角形はメッシュを形成する。例えば、3Dシーンのモデル化オブジェクトは、当該技術分野で知られているように、互いに接続された三角形によって表される。
次いで、ステップS20において、集合Lの各三角形の各頂点について単一のランダムな整数が生成される。その結果、頂点ごとのuint32属性v_randが追加される。この属性は、0から232、あるいはさらに0から264までの範囲(ただしこの範囲に限定されない)で一様に選択されたランダムな値を用いてメッシュをロードするときに初期化される。なお、この工程は、当該技術分野で知られているように行うことができる。
ステップS10およびS20は、図3の(a)に示されている。
次いで、ステップS30において、集合の各三角形tiが、閾値So以下の面積を有すると判定される。判定の結果に応じて、生のデータは、集合の、通常の三角形および非標準三角形に分割される(または分割されない)。ここで、非標準三角形は、図3の(d)および(e)に示すように、すべての新しい三角形が通常の三角形であると考えられるように細分化される、閾値Soより大きな面積を有する三角形であり、通常の三角形は、閾値So以下の面積を有する三角形である。ステップS310〜S312は、通常の三角形の通常のパイプラインについて論じ、ステップS320〜S322は、非標準パイプラインについて論じている。
通常の三角形は、非標準三角形、すなわち、ある閾値Soより大きい表面積A(ti)を有する三角形tiの集合と区別される。この閾値は、(式1)
Figure 0006864495
となるように設定することができ、これは、画素から少なくともDnearだけ離れているNAvg個のVPLを用いて画素をほぼ点灯させることを目的とするヒューリスティックである。Dnearは、画素とVPLとの間の最短距離を提供する変数である。NAvgは、3Dシーン上のVPLの個数である。Rsceneをシーン半径とすると、DnearはDnear=0.2×Rsceneと設定することが可能で、NAvgは、所望の品質/スピードのトレードオフに応じて、好ましくは、64と1024の間に設定される。なお、NAvgの値の範囲は変更可能であり、VPLの個数は、描画を実行するシステムの演算リソースに応じて、より多くなり得る。シーンの直径は、Diamscene=2×Rsceneと設定され、Diamsceneは、シーンの2点間の最長距離である。
したがって、ステップS300において、三角形tiの集合は、So以下の面積を有する三角形の第1の集合(S310)およびSoよりも大きい面積を有する三角形の第2の集合(S320)に分割される。なお、第1の集合が、So未満の三角形を含み、第2の集合が、So以上の三角形を含んでいてもよい。
ステップS312において、第1の集合の三角形が、例えばキャッシュ・メモリに格納される。
ステップS322において、第2の集合の三角形は、三角形の第3の集合へとテッセレーションされる。テッセレーションは、当該技術分野で知られているように実行される。テッセレーションされた三角形は、So以下の面積を有する。すなわち第3の集合の各三角形は、テッセレーションの結果として、閾値以下の面積を有する。
ここで、生データは、三角形の2つの集合からなる。これらの集合の三角形は、共にSo以下の面積を有する。これら集合の違いは、第1の集合の各三角形の各頂点は単一のランダムな整数に関連付けられているが、第2の集合の三角形はそうではないという点であり、これは、テッセレーションは、1つまたは複数の頂点が以前に生成された単一のランダムな整数を有していない、新たな三角形を作成するためである。図1の例では、単一のランダムな整数が生成され、生データに関連付けられている。なお、単一のランダムな整数は、後のステージで生成して関連付けてもよい。例えば、第1および第2の集合が決定されている間や、生データの分割が実行された後であってもよい。例えば、第1の集合が格納されると、第1の集合の三角形の頂点について単一のランダムな整数が生成されるかもしれない。
次いで、ステップS200〜S220は、第2の集合の各三角形の各頂点について単一のランダムな整数を生成する一例を提供する。好ましくは、これらのステップは、第2の集合の三角形をテッセレーションする間に実行される。第2の集合の、新たにテッセレーションされた三角形ごとに(S320)、ステップS200〜S220が実行される。あるいは、これらは、第3の集合が構築された後に実行されてもよい。ここで、ステップS200〜S220について、第2の集合の三角形がテッセレーションされるたびに生成が行われる場合について説明する。
ステップS200において、第3の集合の三角形の各副頂点を決定する。図9の(a)に示すように、第2の集合の三角形の各頂点は、uint32属性、すなわちv_randを含む。図9の(b)において、三角形90の副頂点90a、90b、90cが得られる。なお、三角形90は図9の(a)の三角形から得られた新しい10個の三角形のうちの1つであることが理解される。
次いで、ステップS210において、第3の集合の三角形の上記各副頂点の重心座標tess_coord[i]を特定する。重心座標は、第3の集合の三角形の上記各副頂点を得た第2の集合の三角形のテッセレーションの間に算出される。次いで、重心座標tess_coord[i]を用いて、ノイズ・テクスチャ内でランダムな値が取得される。より正確には、各tess_coord[i]について、ランダムな値が取得される。この取得は、当該技術分野で知られているように実行される。すなわち、テクスチャは、テーブルの各セルが値を格納する二次元のテーブルと考えることができ、例えば、値は32ビットの整数である。ランダムな値が取得されると、セルの1つが読み取られ、座標tess_coord[i]を用いて、テーブル内のセルに到達する。ノイズ・テクスチャは、一般に、予め、例えば、3Dシーンの描画が要求されたときに算出される。ノイズ・テクスチャは、例えば1024×1024など、所定のサイズのテーブルである。
次に、ステップS220において、取得されたランダムな値を用いて、第3の集合の三角形の各副頂点について、単一のランダムな整数を生成する。図9の(c)に示すように、三角形90の各頂点は、テッセレーションされた三角形上の頂点の重心座標tess_coord[i]から生成されたランダムな値v_rand_tess[1]に関連付けられる。
第3の集合の三角形のいくつかは、ステップS20で生成されたランダムな値にすでに関連付けられている。これらのランダム値は保持され、ランダム値を持たない副頂点のみがステップS200〜S220で考慮される。このように、単一のランダムな整数を持たない第3の集合の三角形の副頂点viを決定する。これにより、演算リソースを保存できる。
ここで、第1および第3の集合は、So以下の面積を有し、頂点が単一のランダム値に関連付けられた三角形を有する。第1および第3の集合は、非標準パイプラインが、非標準三角形を通常の三角形に変換するときに、マージすることができる(S40)。
ここで、図2を参照して、確率法則に従ったVPLの生成、およびマージされた第1および第3の集合をランダムに分割する方法について説明する。
ステップS50において、三角形の集合(S40)は、確率法則に従って三角形のN+2個の部分集合に分割され、これらのN+2個の部分集合のうちの1つは破棄される(S510)。すなわち、三角形が確実に除去される。
実際、ステップS510における三角形の間引きは、分割する前に行うことができるので、分割する際に分析すべき三角形が少なくて済み、区画を作成するために必要な演算リソースが少なくて済む。
三角形の間引きは、3Dシーンの小さな三角形を削除することを目的とする。これは、それらが、拡散した間接照明の最終的な描画に、あまり寄与しないためである。単純な解決策としては、面積が閾値以下の小さい三角形を除去することが考えられる。しかしながら、小さな三角形のグループは、全体として、光輸送に重要な影響を及ぼすことがある。確率的な間引きアプローチが用いられ、このアプローチでは、第1および第3の集合の各三角形に対して、0と1との間にある均一なランダム値utiを算出することにより、強くテッセレーションされたジオメトリの寄与度が保持される。そのルールは次の通りである。すなわち、A(ti)>utioの場合、三角形を保持し(すなわち、破棄しない)、A(ti)≦utioの場合、三角形を、破棄する三角形の集合に追加する(なお、三角形は即座に破棄されてもよい)。
すべての三角形が通常の三角形であると仮定できるとすると、三角形tiが維持される確率は以下のようになる(式2)。
Figure 0006864495
ここで、L*は、保持されている第1および第3の集合の三角形tiを示し(S40)、Lは第1および第3の集合の三角形を示す。直観的には、これは、三角形が小さいほど、破棄される可能性が高くなることを意味する。それと同時に、この分割は、シーン全体の表面上のサンプルの均一な分布に変換され、その結果、保持された三角形の数の期待値は、Asceneをシーン全体の面積として、
Figure 0006864495
となる。
三角形が破棄されるか、または少なくとも破棄される区画に関連付けられると、残りの三角形(すなわち、保持される三角形)が、三角形が部分集合Lk内に存在する確率に従って、N+1個の残りの部分集合Lkのうちの1つ(L0,・・・,LN)に送出される(ステップS520)。送出は、LNが少数の三角形を含み、kが0に近づくほどLkがより密集するように行われる。そのとき代表的なシーンの三角形のマルチスケール分割は、間引き戦略(ステップS510)から現れ、三角形が部分集合Lk内にある確率は(式3)
Figure 0006864495
であり、μ>1をユーザ定義による実数とすると、(式4)
Figure 0006864495
である。Sk=Soμkでは、部分集合Lk当たりのVPLの数は指数関数的に増加する。これは先行技術のいくつかの既存技術、例えばツリー構造のものの挙動に似ている。
μの値は、シーンと区画数によって異なる。μの値は、典型的には1、4と5の間である。μの許容値の要件については、本方法の実施の一例についての議論において後述する。実際、Sk=Soμkは実施上の選択肢であり、区画(または部分集合)Lkに存在する三角形の平均表面として理解してもよい。実際には、Skは、kが増加すると、その値が増加するように選択される。上述の式(式4)により、分割は、光照射野で使用される従来の階層表現に似た、ジオメトリ的に減少するサイズ期待値を有する部分集合が生じる。ただし、三角形は他の選択肢とは独立して特定の部分集合の影響を受けるため、維持、生成、あるいは管理されるような明示的な階層は存在しない。特に、これは、所与の部分集合内に位置する所与の三角形が、より細かい三角形によって運ばれる粗い情報を捕捉しないことを意味する。
以下のアルゴリズム1は、確率法則utiを変更せずに、式3から定義されるような区画の生成の一例を示す。
Figure 0006864495
各三角形についてアルゴリズム1を評価するために、変数utiに擬似ランダム値が使用される。一例では、この値の生成は、追加の頂点単位のuint32属性v randに依存する。上述のとおり、この属性は、例えば0と232の間で一様に選択されたランダムな値を用いてメッシュ(生データ)をロードするときに初期化される。通常のパイプラインでは、ジオメトリシェーディングステージで、utiが三角形tiの3つの頂点のランダム属性間のxorとして算出される。xor演算子を選択することにより、2つまたは3つの三角形の間の相関を避けることができる。さらに、新しいランダム値は、描画時にフレームごとに最大1回更新可能なグローバルで一様なランダム値であるu_randを用いることによって、いつでも生成することができる。元の頂点ごとの値でxorされているので、メッシュ上にまったく新しいランダム分布を得ることができる。これは以下のアルゴリズム2で明らかである。
非標準パイプライン(通常の三角形ではない三角形のためのもの)では、utiの構築は、さらに非常に微妙である。実際、この値は、カメラが動いたりメッシュが変形したりしても、すなわちメッシュトポロジが同じままである限り、変更されないままである。これらの特性を保持するために、モデル空間でテッセレーションを実行し、テッセレーションパターンが入力三角形の形状にのみ依存するという事実を利用する。実際に、テッセレーションパラメータは、ステップS200〜S220に関する議論で説明したように、元の三角形領域によってのみ決定される。したがって、細分化から出現する三角形についてutiを生成するために、アルゴリズム2に示すように、3つのv_rand_tess、3つの基本三角形v_rand、および最終的にグローバルで一様な乱数u randの間でxorが算出される。
Figure 0006864495
図3の(b)および(c)は、区画の生成、すなわち、生き残っている三角形(「小さい」三角形(b)の破棄後に残っているもの)を、変数utiに使用される擬似ランダム値を用いて、式3の確率法則
Figure 0006864495
に従って、部分集合L0、・・・Lk、・・・LNに分類する。
図2に戻って、ステップS60で、残りの部分集合L*の各三角形について、単一の仮想点光源が算出される。好ましくは、ハードウェアの制約に適切に対処するために、1つの三角形当たり1つのVPLしか算出されない。なお、いくつかの三角形は複数のVPLを有する。例えば、決定はそれらのA(ti)に従って行うことができる。残りの三角形それぞれについてのVPLの算出は、当該技術分野で知られているように実行される。
VPLの算出は、実際には、VPLを用いて照明を行うために、各VPLについての出射放射輝度の算出を含む。以下の数学的議論で明らかなように、出射放射輝度の算出(ステップS70)は、三角形が送出された部分集合に従って実行される。したがって、影響半径(すなわち、出射放射輝度)は、式3の、部分集合L0、・・・Lk、・・・LNを得るために用いられる確率法則を用いて、第1および第3の集合の各三角形に割り当てられる。したがって、確率法則は、影響半径の密度が減少するように実行される、影響半径の分布と考えることができる。実際、分割により、ジオメトリ的に減少するサイズ期待値を有する部分集合が生じ、これは光照射野で用いられる従来の階層表現に似ている。なお、3Dシーンの描画にあまり寄与しない三角形を破棄することは、その影響半径に応じて三角形を選別することにより、三角形の初期集合(生データ)の部分集合を得ることに相当する。
ステップS700〜710は、三角形が送出された部分集合L*に従って、L*の各三角形の仮想点光源についての出射放射輝度を算出する例を示す。入れ子状のボール群Bh(ti)が算出される。Bh(ti)は、仮想点光源の寄与度が大きい三次元シーン内の点の集合を表している(S700)。ステップS710において、残りのN+1個の部分集合のそれぞれについて、サポート関数fk(ti,x)が算出される。残りの部分集合に対するサポート関数の集合(fkkは、入れ子状のボール群Bh(ti)の境界上に亘って一定である1の分割を形成する。説明のために、この例で使用される出射放射輝度のモデルがここで論議され、ステップS700およびS710の演算がそれに応じて実行される。図3の(f)は、異なるサイズの影響半径の例を示す。三角形の仮想点光源について算出される出射放射輝度は、三角形が属する部分集合に依存する。
法線nxを有する点xの間接出射放射輝度
Figure 0006864495
は、式5によって次のように定義される。
Figure 0006864495
ここでLは、シーン内のすべての三角形の集合(すなわち生データ)を表し、
Figure 0006864495
は、
Figure 0006864495
によって方向づけられた、tiから始まりレシーバxへと向かう入射放射輝度伝達関数を表す。図6は、
Figure 0006864495
によって方向づけられた点xを有する画素60(レシーバ)を示し、ρxは、点xにおけるアルベドである。アルベドρxを用いてレシーバを拡散させるために、この伝達関数は次のように定義される(式6)。
Figure 0006864495
ここで、
Figure 0006864495
は、
Figure 0006864495
を中心とするVPLから
Figure 0006864495
の方向へと向かう放射輝度であり、
Figure 0006864495
は、特異点を避けるためにユーザパラメータεに固定されたyiとxとの間の距離である。典型的には、εは、[10-3;10-6]の範囲に含まれる値を有する。
光の第1の拡散反射は、以下のVPL出射放射輝度式(式7)を用いてモデル化することができる。
Figure 0006864495
ここで、E(ti)は、三角形tiへの直接放射照度である。なお、
Figure 0006864495
の項のために、レフレクタは、もはや完璧なランバート反射とはみなすことができない。したがって、光はジオメトリの法線の方向に反射されることが好ましいが、実験は顕著な変化が現れないことを示しており、これは後で説明するように、その後の演算を大幅に軽減する。
ハードウェアの制約に対処するために、
Figure 0006864495
の算出は、VPLの部分集合の寄与度を合計することによって、すなわち、部分集合Lkの三角形のVPLの寄与度を合計することによって近似することができる。したがって、
Figure 0006864495

Figure 0006864495
で表される推定量が定義できる(式8)。
Figure 0006864495
ここでFk(ti,x)は、位置x、エミッタti、およびインデックスkの未知関数である。その式は、以下のとおりである。
可能性のあるすべての区画(L0,・・・Lk,・・・LN)の集合に対する
Figure 0006864495
の期待値を算出することにより、以下の式9が得られる。
Figure 0006864495
ここで、
Figure 0006864495
は、
Figure 0006864495
の場合1に等しく、その他の場合0に等しい、インジケータ関数である。
仮に
Figure 0006864495
が、入射放射輝度
Figure 0006864495
の不偏推定量を表すようにしたいのであれば、関数Fk上で、次の関数方程式(式10)を検証する必要がある。
Figure 0006864495
式3で確立されたVPL分割戦略によれば、Fkは、次のように定義される(式11)。
Figure 0006864495
式11は、式10の不偏条件を、1の分割の問題として書き換えることを可能にする。1の分割は、集合X内のあらゆる点xについてxにおけるすべての関数値の合計が1であるような、集合Xから単位区間[0,1]への関数の集合である。これは、(式12)
Figure 0006864495
が成り立つような関数の集合(fkkを求めることにつながる。
このように、VPLを用いた照明は、三角形を部分集合(L0、・・・Lk、・・・LN)へと分割することにより近似されている。すなわち、三角形をN+1個の部分集合へと送出するために用いられる確率法則を用いて近似されている。この近似はまた、関数の集合(fkkを見出すことにもつながり、この集合における各関数は、部分集合のVPLの入射放射輝度をサポートする。関数の台(support)は、その関数の値がゼロでない点の集合である。このように、各部分集合(L0、・・・Lk、・・・LN)について、それが属する台に依存するサポート関数が算出される。例えば、式17〜18に示すように、関数fkの台は
Figure 0006864495
である。これは、fkの台が、h=Dk+1であるような特定のhについての関数Bhの1つであることを意味する。
CHRISTENSEN,P.2008.Point−based approximate color bleeding.Pixar Technical Notes 2,5,6.で議論されているPBGIツリーカット戦略からインスピレーションを受け、入れ子状のボール群Bh(ti)が導入される。Bh(ti)関数はh>0によって特徴づけられ、所与のhに対して、Bh(ti)は、VPLの寄与度が大きい点の集合を表す。言い換えれば、入れ子状のボール群Bh(ti)は、3D空間内でボリュームの集合を形成し、各h>0について、単一のボリュームBhが存在する。Bhのジオメトリ形状は、中心が、線(yi、ni)に拘束され(および通過し)、かつ直径D(h)を有する球面である。hはBhのパラメータである。Bh(ti)の外側の各点xについて、伝達関数
Figure 0006864495
(式6、8、9を参照して説明)は、レシーバ
Figure 0006864495
の向きに関わらず、hより小さい。これは式13に表されている。
Figure 0006864495
さらに、伝達関数
Figure 0006864495
(式6、8、9を参照して説明)は、レシーバがエミッタの正面を向いているとき、言い換えれば、
Figure 0006864495
のとき最大である。したがって、VPL放射輝度分布モデルでは、Bh(ti)関数を以下のように書くことができる(式14)。
Figure 0006864495
ここで、D(h)(Bh(ti)の球面の直径)は、所与の部分集合に属するVPLの直接出射放射輝度の寄与度の最大距離を表す。D(h)はxに依存しないため、
Figure 0006864495
は、境界がyiを有し、中心が線(yi,ni)上にある、入れ子状のボール群である。
3Dにおける1の分割(fkkはBh(ti)の境界の球面上で一定であり得る。Bh(ti)関数は、サポート関数の分離レベル(isolevel)である。次いで、
Figure 0006864495
から
Figure 0006864495
への以下のマッピング(式15)
Figure 0006864495
を定義することにより、取得する1Dにおける1の分割
Figure 0006864495
が次のように定義される(式16)。
Figure 0006864495
当該分野で知られているように、1の分割として、(fkkが、スプラッティング演算を実行するのに用いられる。したがって、各画素についてVPLの照明が算出されるとき、各画素上でテクスチャを混合するために各画素の評価が実行される。描画の間、1の分割(fkkは、算出を容易にしつつ可能な限り滑らかに作られ、それらを以下のように定義する(式17)。
Figure 0006864495
また、コンパクトな台を有する連続した区分的アフィン関数の集合が得られるように、(式18)
Figure 0006864495
を定義することが可能である。このように定義された関数は、DNがシーンの直径より大きい場合にのみ適しており、そうでない場合、シーン内に、光輸送に寄与できない点のペアが存在する可能性がある。これは、DN>Rsceneであることを意味する。これはμ(式4)についての以下の条件に変換される。
Figure 0006864495
ここで、図7を参照して、平面部分上のBh(ti)関数をサポートするサポート関数(fkkの視覚化の例について説明する。Bh(ti)関数は、サポート関数の分離レベルであり、サポート関数の輪郭を定義する。興味深いことに、そのサポート関数上のBh(ti)の球面の寄与度の距離(D0,D1,D3)は部分集合(L0,・・・Lk,・・・LN)に依存するため、VPLのパワーはそれが属する部分集合に依存する。したがって、kが0に近づくにつれて、Lkを占有する三角形(したがってVPL)の数が増加し、パワーが減少する。一方、kがNに近づくにつれて、Lkが含む三角形(したがってVPL)の数が減少し、パワーが増加する。図3の(f)に示すように、ローパワーVPLを使用してローカル・ライティングをキャプチャし、ハイパワーVPLを使用して三日月形サポート関数によるモデル遠隔照明をキャプチャする。
図8は、Bh(ti)の球面を描画する際にスプラッティング演算を実行するのに用いられる一次元の1の分割の例を示す。関数が平滑であればあるほど、演算結果はより良好なものとなる。図8の
Figure 0006864495
の例は、限られた数の重複しかなく、良好な結果となっており(横座標には、値がゼロではない関数が最大で2つある)、関数は連続的であり、凹状である。
Figure 0006864495
は、星を付した曲線で表され、
Figure 0006864495
は、三角形を付した曲線で、
Figure 0006864495
は、点を付した曲線で、
Figure 0006864495
は、ひし形を付した曲線で、それぞれ表される。いくつかのクラスの関数を用いることができる。特に、サポート関数の集合(fkkの、良好な基底関数は、Bスプラインである。
最後に、ステップS80において、三次元シーンが、その三角形の集合へのライティングによって描画される。三角形の部分集合L*の三角形がその影響半径に応じて間接光源として用いられる。上述のように、サポート関数(fkkは、入れ子状のボール群のBh(ti)関数の球面を描画するためのスプラッティング関数を実行するのに用いられる。描画は、当該技術分野で知られているように実行され、算出されたVPLを利用するために3Dシーンを備えた1つまたは複数の直接光源を用いる。
図10および図11は、グローバル・イルミネーションで描画された3Dシーンの画像(スクリーンショット)である。図10は、非標準パイプラインを用いずに描画されたシーンを示しており、強くテッセレーションされたジオメトリのみが間接照明を投影している。図11は、非標準パイプラインを用いて描画された同じ3Dシーンを示しており、地面(4つの三角形からなる)の反射光が、シーンの多くの部分を明るみに出している。したがって、最も大きな三角形は、遠隔照明をモデル化するために用いられるLNに近い部分集合(群)内のものである。
完全を期すため、実施の詳細について、図4を参照して説明する。パイプラインには、シーン全体の、2つのジオメトリ描画パス、すなわちG―バッファを生成するものと、VPLを生成してスプラットするもののみが含まれている。これらは通常のパイプラインである。この生のジオメトリの適度な使用は、例えばCAD(Computer−Aided Design)などのソフトウェアアプリケーションのような、膨大な数のポリゴンを必要とするアプリケーションにとって重要なメトリックである。典型的なCADシーンは、各オブジェクトが数百または数千、さらにはそれ以上の三角形を含む、数千の3Dモデル化オブジェクトを含む。実際には、第三のジオメトリ描画パスが発生するが、シーンのほんの一部のみ、すなわち、非標準パイプラインで処理される非標準三角形がこれに関与する。相違(divergence)の基準は、非標準三角形の数が少なく留まるように設定されるため、この最後のパスは、演算コストが法外に高いということはない。実際、通常のパイプラインは、フラグメント単位や頂点単位ではなく、三角形単位で演算を実行するため、ジオメトリ・シェーダ・ステージを集中的に利用する。興味深いことに、最近のGPUアーキテクチャでは、法外に大きかったジオメトリ・シェーダ・ステージのオーバーヘッドが大幅に削減され、より大きなストリームのポリゴン単位の演算が可能になった。
ハードウェア・テッセレーション・ユニットを利用する非標準パイプラインは、大量の三角形の集合を入力として管理するようには設計されておらず、三角形が細分化を必要としない場合であっても、三角形を処理する際に、顕著なオーバーヘッドを引き起こす。同時に、これらのアーキテクチャのジオメトリステージは、ポリゴンを破棄または通過させるとき、すなわちジオメトリの増幅が必須でないときに、非常に効率的である。通常のパイプラインの第1のパスでは、シーンジオメトリ(生データ)全体が処理されるが、テッセレーションのステージは無効になる。非標準三角形(S320)は、ジオメトリステージで検出され、通常の三角形が確率的にサンプリングされる間に、別のバッファに格納される(S520)。多数のマテリアルとテクスチャを有するシーンを管理するために、三角形ごとのマテリアルインデックスを格納し、後続のパスで、マテリアルまたはテクスチャ・アトラスから情報を取得するのに使用してもよい。
グラフィック・ライブラリは、描画演算を最適化する機能を提供する。例えば、OpenGLの「glDrawArrayIndirect」機能を用いれば、通常のものではない三角形が格納されている非標準バッファが、以降、CPU同期なしで、第2のパスの入力ジオメトリとして直接使用される。テッセレーションステージは、この特定のパスについてのみ起動され、それらの面積が通常のパイプラインによって処理されるのに十分に小さくなるように三角形を細分化する(S322)のに使用される。一般に、大きな三角形の数は、三角形の合計数に対し、比較的小さい。その結果、非標準バッファの充填および頂点処理によって引き起こされるオーバーヘッドは無視できる。
VPLサポート関数(fkkはできるだけ滑らかにすることができる。これにより、各フレームにおいて、高周波アーチファクトのない視覚的に妥当な描画をもたらすことができる。しかしながら、上述のグローバルで一様な変数u_randを用いると、同じシーンについて独立した多くの描画を生成することは容易である。さらに、各三角形について、u_randから2つの新しい独立した乱数値を簡単に導き出すことができる。これらの値は、式6で定義されたVPLの中心yiを三角形tiに対して変動させるのに用いられる。
次いで、変動するVPLを用いてこれらの描画のすべてを平均化することにより、式9は、拡散リフレクタで構成されるサーフェス上での第1の反射出射放射輝度の算出を可能にする結果を提供し、間接視界を無視する。これは間接照明が、あらゆるシーンの三角形上への統合によって算出されることを意味するが、本方法のこの進歩的なバージョンでは、任意の種類の乱れたジオメトリ(例えば、通常のマッピングやアルファテストされたもの)を管理することができ、また、放射テクスチャジオメトリを管理するために拡張することもできる。
間接照明をシミュレートするためにVPL寄与度を合計する方法は、前の説明とは関係しない。したがって、シンプルなパイプラインを維持するために、SAITO,T., AND TAKAHASHI,T.1990.Comprehensible rendering of 3−d shapes.ACM SIGGRAPH Computer Graphics,vol.24,ACM,197―206で論じられている遅延照明と同様のスプラッティング戦略を用いてもよい。特に、これにより、ジオメトリの間引き、VPL生成、ライティングを1つのシェーダプログラムで管理できる。実際には、ジオメトリ・シェーダは、三角形が非標準であるかどうか、および、どれが生成されたVPLのレベルであるかを判断する以外に、基になるVPLスクリーン空間関数サポートを含むサイズ指定されたポイントプリミティブの入力三角形を変換するのに用いることができる。結果として生じる信号をアンダーサンプリングすることが、良好な最適化である可能性がある。これを行うために、ビューポートは4Ntiling levelのタイルに分割され、ビューポート内の各画素に対し、同じ相対位置に、一意なタイル画素を割り当てる。この技術は、しばしばインターリーブサンプリングと呼ばれる(KELLER,A.,AND HEIDRICH,W.2001.Interleaved sampling.Springer)。次に、スプラッティング時に、VPLごとにランダムにタイルを選択し、タッチした画素数を4Ntiling levelで除算する。画像は、バッファを非タイル化し、発生したノイズを除去するためにぼかすことによって、再構成される。

Claims (18)

  1. コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画するための方法であって、
    三角形の集合Lと、1つまたは複数の直接光源とを含む三次元シーンを提供するステップ(S10)と、
    前記集合の各三角形tiが、閾値So以下の面積を有すると判定するステップ(S30)と、
    確率法則を用いて、前記集合の各三角形に影響半径を割り当てるステップ(S50)と、
    前記三角形を、それぞれの影響半径に応じて選別すること(S510)によって、三角形の部分集合L*を得るステップと、
    前記三次元シーンを、その三角形の集合へのライティングによって描画するステップであって、前記三角形の部分集合L*の三角形がその影響半径に応じて間接光源として用いられるような、描画するステップ(S80)と
    を含む方法。
  2. 請求項1に記載の、コンピュータによって実施される方法であって、
    前記集合の各三角形が前記閾値以下の面積を有すると判定するステップは、
    三角形の集合Lを
    それぞれが前記閾値以下の面積を有する三角形の第1の集合(S310)と、
    それぞれが前記閾値よりも大きい面積を有する三角形の第2の集合(S320)と
    に分割するステップと、
    第2の集合の各三角形をテッセレーションするステップ(S322)であって、テッセレーションの結果として前記閾値以下の面積を有する三角形の第3の集合を得るステップを含み、
    ここで、
    確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップは、確率法則を用いて前記第1および第3の集合の各三角形に影響半径を割り当てるステップを含み、
    三角形の部分集合を取得するステップは、前記第1および第3の集合の三角形を、それらの影響半径に応じて選別することによって三角形の部分集合を取得するステップを含む
    ことを特徴とする方法。
  3. 請求項1〜2のうちの1つに記載の、コンピュータによって実施される方法であって、
    前記集合の各三角形が閾値以下の面積を有すると判定した後、
    前記確率法則に従って、前記三角形の集合を、三角形のN+2個の部分集合にランダムに分割するステップ(S50)と、
    三角形の前記N+2個の部分集合のうち、前記三次元シーンの描画に対する寄与度が低いと判定された三角形を含む1つを破棄するステップ(S510)であって、残りのN+1個の部分集合L*が、破棄されていない三角形を含むステップと
    をさらに含む
    ことを特徴とする方法。
  4. 請求項3に記載の、コンピュータによって実施される方法であって、
    三角形の前記N+2個の部分集合のうちの残りの部分集合L*は、A(ti)を三角形tiの表面積、Soを閾値としたとき、
    Figure 0006864495
    となるような前記集合の三角形tiを含む
    ことを特徴とする方法。
  5. 請求項4に記載の、コンピュータによって実施される方法であって、
    前記残りの部分集合L*の各三角形は、三角形が、
    Figure 0006864495
    で定義される部分集合Lk内に存在する確率に従って、残りの部分集合Lkのうちの1つに送出され(S520)、
    kの値はkが増加すると増加する
    ことを特徴とする方法。
  6. 請求項5に記載の、コンピュータによって実施される方法であって、
    kはSk=Soμkを満たす集合であり、ここでμ>1であり、μの値は[1;5]間の実数である
    ことを特徴とする方法。
  7. 請求項5に記載の、コンピュータによって実施される方法であって、
    kはSk=Soμkを満たす集合であり、ここでμの値は、三次元シーンの半径であるRsceneを用いて、
    Figure 0006864495
    で定義される
    ことを特徴とする方法。
  8. 請求項5〜7のうちの1つに記載の、コンピュータによって実施される方法であって、
    前記残りの部分集合L*の各三角形が送出された後、
    前記残りの部分集合L*の各三角形について単一の仮想点光源を算出するステップ(S60)を含み、
    ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップはさらに、
    前記残りの部分集合L*の各三角形の仮想点光源の出射放射輝度を算出するステップ(S70)を含み、前記算出は、三角形が送出された前記部分集合に従って実行される
    ことを特徴とする方法。
  9. 請求項8に記載の、コンピュータによって実施される方法であって、
    各三角形の仮想点光源について出射放射輝度を算出するステップは、
    仮想点光源の寄与度が大きい三次元シーン内の点の集合を表す入れ子状のボール群Bh(ti)を算出するステップと、
    前記N+2個の部分集合のうち、残りの部分集合のそれぞれについて、残りの部分集合上のサポート関数の集合(fkkが、入れ子状のボール群Bh(ti)の境界に亘って一定である1の分割を形成するようなサポート関数fk(ti,x)を算出するステップと
    を含む
    ことを特徴とする方法。
  10. 請求項9に記載の、コンピュータによって実施される方法であって、前記サポート関数の集合(fkkの基底関数はBスプラインである
    ことを特徴とする方法。
  11. 請求項9または10に記載の、コンピュータによって実施される方法であって、Bh(ti)は、
    Figure 0006864495
    で定義され、
    ここで、xは法線
    Figure 0006864495
    を有する三次元シーンの点であり、
    iは三角形ti上の仮想点光源の中心となる点であり、
    ρxは点xにおけるアルベドであり、
    ρiは点yiにおけるアルベドであり、
    E(ti)は、三角形tiへの直接放射照度である
    ことを特徴とする方法。
  12. 請求項9〜11のうちの1つに記載の、コンピュータによって実施される方法であって、
    前記描画ステップにおいて、入れ子状のボール群Bh(ti)の球面を描画するときに、サポート関数の集合(fkkが、スプラッティング演算を実行するのに用いられる
    ことを特徴とする方法。
  13. 請求項1〜12のうちの1つに記載の、コンピュータによって実施される方法であって、
    前記閾値Soは、
    Figure 0006864495
    で定義され、
    ここで、NAvgは、仮想点光源の平均個数であり、
    nearは、前記3Dシーンの画素とVPLとの間の最短距離である
    ことを特徴とする方法。
  14. 請求項1〜13のうちの1つに記載の、コンピュータによって実施される方法であって、
    前記集合の各三角形tiが閾値So以下の面積を有すると判定する前に、
    前記集合の三角形tiの各頂点について単一のランダムな整数を生成する(S20)ステップをさらに含む
    ことを特徴とする方法。
  15. 請求項2と組み合わせた請求項14に記載の、コンピュータによって実施される方法であって、
    三角形の各頂点について単一のランダムな整数を算出するステップは、
    前記第3の集合の三角形の各副頂点について、当該副頂点の重心座標を決定するステップと、
    前記重心座標を用いてノイズ・テクスチャ内のランダムな値を取得するステップ(S210)と、
    前記取得したランダムな値を用いて前記第3の集合の三角形の前記各副頂点の前記単一のランダムな整数を生成するステップ(S220)と
    を含む
    ことを特徴とする方法。
  16. 請求項1〜15のいずれかに記載の方法を実行するための命令を含む、グラフィック・ライブラリ・コンピュータプログラム。
  17. 請求項16に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィック処理ユニットを有するグラフィック・カードとを備えるシステム。
  18. 請求項17に記載のシステムであって、前記グラフィック・カードは、
    前記集合の各三角形tiが閾値So以下の面積を有すると判定するジオメトリ・シェーダ・ユニットと、
    前記集合の三角形tiをテッセレーションするためのテッセレーション・ユニットとを備え、
    前記メモリ上に記録された前記コンピュータプログラムは、請求項14または15に記載の前記単一のランダムな整数の生成を実行するために前記テッセレーション・ユニットを構成するように適合されている
    ことを特徴とするシステム。
JP2017032388A 2016-02-25 2017-02-23 3dシーンのグローバル・イルミネーションの描画 Active JP6864495B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16305221.0 2016-02-25
EP16305221.0A EP3211601B1 (en) 2016-02-25 2016-02-25 Rendering the global illumination of a 3d scene

Publications (2)

Publication Number Publication Date
JP2017199354A JP2017199354A (ja) 2017-11-02
JP6864495B2 true JP6864495B2 (ja) 2021-04-28

Family

ID=55524271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017032388A Active JP6864495B2 (ja) 2016-02-25 2017-02-23 3dシーンのグローバル・イルミネーションの描画

Country Status (4)

Country Link
US (1) US10249077B2 (ja)
EP (1) EP3211601B1 (ja)
JP (1) JP6864495B2 (ja)
CN (1) CN107392990B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11103778B1 (en) * 2017-03-28 2021-08-31 Kabam, Inc. Multi-level lighting system
EP3503037A1 (en) 2017-12-24 2019-06-26 Dassault Systèmes Visibility function of a three-dimensional scene
WO2020005291A1 (en) * 2018-06-29 2020-01-02 Leia Inc. Multiview display and method with dynamically reconfigurable multiview pixels
KR20210030147A (ko) * 2019-09-09 2021-03-17 삼성전자주식회사 3d 렌더링 방법 및 장치
CN110866313B (zh) * 2019-10-22 2023-05-16 温州大学 一种实现断路器自动化检测流水线的数字孪生建模的方法
CN113012273B (zh) * 2021-03-24 2022-07-12 网易(杭州)网络有限公司 基于目标模型的光照渲染方法、装置、介质及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3522714B2 (ja) * 2001-06-05 2004-04-26 松下電器産業株式会社 画像生成方法
US6747659B2 (en) * 2001-10-23 2004-06-08 Sun Microsystems, Inc. Relative coordinates for triangle rendering
JP2003346177A (ja) * 2002-05-24 2003-12-05 Telecommunication Advancement Organization Of Japan 3角形パッチを用いたラジオシティ幾何処理方法
CN103700134A (zh) * 2013-12-24 2014-04-02 四川川大智胜软件股份有限公司 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法
JP2015228186A (ja) * 2014-06-02 2015-12-17 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
EP3211601A1 (en) 2017-08-30
JP2017199354A (ja) 2017-11-02
EP3211601B1 (en) 2018-10-31
CN107392990A (zh) 2017-11-24
CN107392990B (zh) 2023-11-17
US20170249778A1 (en) 2017-08-31
US10249077B2 (en) 2019-04-02

Similar Documents

Publication Publication Date Title
JP6864495B2 (ja) 3dシーンのグローバル・イルミネーションの描画
US11804002B2 (en) Techniques for traversing data employed in ray tracing
JP7421585B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
US11494970B2 (en) Importance sampling for determining a light map
US20240303906A1 (en) Ray tracing hardware acceleration with alternative world space transforms
CN113034656B (zh) 游戏场景中光照信息的渲染方法、装置及设备
US11816783B2 (en) Enhanced techniques for traversing ray tracing acceleration structures
US9208610B2 (en) Alternate scene representations for optimizing rendering of computer graphics
Wyman et al. Frustum-traced raster shadows: Revisiting irregular z-buffers
Kivi et al. Real-time rendering of point clouds with photorealistic effects: a survey
KR101090660B1 (ko) 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법
US20240009226A1 (en) Techniques for traversing data employed in ray tracing
US20040012587A1 (en) Method and system for forming an object proxy
Olsson et al. More efficient virtual shadow maps for many lights
Lensing et al. Efficient shading of indirect illumination applying reflective shadow maps
US12064688B2 (en) Methods and systems for determining decal projections intersecting spatial units in a frame of a game space
US20240087211A1 (en) Generation and Traversal of Partial Acceleration Structures for Ray Tracing
Chang et al. Ray tracing-based interactive diffuse indirect illumination
Koçdemir Visibility grid method for efficient crowd rendering wirh shadows

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

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: 20210309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210402

R150 Certificate of patent or registration of utility model

Ref document number: 6864495

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250