(57)【要約】      （修正有）【課題】三次元シーンのグローバル・イルミネーションと描画するための、改良された方法を提供する。【解決手段】三角形の集合と、１つまたは複数の直接光源とを含む３Ｄシーンを提供することと、前記集合の各三角形が、閾値以下の面積を有すると判定することと、確率法則を用いて、前記集合の各三角形に影響半径を割り当てることと、前記三角形を、それぞれの影響半径に応じて選別することによって、三角形の部分集合を得ることと、前記三次元シーンを、その三角形の集合へのライティングによって描画することを含む。描画には、前記三角形の部分集合の三角形が、その影響半径に応じて間接光源として用いられる。【選択図】図３
2017199354.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画するための方法であって、
三角形の集合Ｌと、１つまたは複数の直接光源とを含む三次元シーンを提供するステップ（Ｓ１０）と、
前記集合の各三角形ｔiが、閾値Ｓo以下の面積を有すると判定するステップ（Ｓ３０）と、
確率法則を用いて、前記集合の各三角形に影響半径を割り当てるステップ（Ｓ５０）と、
前記三角形を、それぞれの影響半径に応じて選別すること（Ｓ５１０）によって、三角形の部分集合Ｌ*を得るステップと、
前記三次元シーンを、その三角形の集合へのライティングによって描画するステップであって、前記三角形の部分集合Ｌ*の三角形がその影響半径に応じて間接光源として用いられるような、描画するステップ（Ｓ８０）と
を含む方法。
【請求項２】
請求項１に記載の、コンピュータによって実施される方法であって、
前記集合の各三角形が前記閾値以下の面積を有すると判定するステップは、
三角形の集合Ｌを
それぞれが前記閾値以下の面積を有する三角形の第１の集合（Ｓ３１０）と、
それぞれが前記閾値よりも大きい面積を有する三角形の第２の集合（Ｓ３２０）と
に分割するステップと、
第２の集合の各三角形をテッセレーションするステップ（Ｓ３２２）であって、テッセレーションの結果として前記閾値以下の面積を有する三角形の第３の集合を得るステップを含み、
ここで、
確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップは、確率法則を用いて前記第１および第３の集合の各三角形に影響半径を割り当てるステップを含み、
三角形の部分集合を取得するステップは、前記第１および第３の集合の三角形を、それらの影響半径に応じて選別することによって三角形の部分集合を取得するステップを含む
ことを特徴とする方法。
【請求項３】
請求項１〜２のうちの１つに記載の、コンピュータによって実施される方法であって、
前記集合の各三角形が閾値以下の面積を有すると判定した後、
前記確率法則に従って、前記三角形の集合を、三角形のＮ＋２個の部分集合にランダムに分割するステップ（Ｓ５０）と、
三角形の前記Ｎ＋２個の部分集合のうち、前記三次元シーンの描画に対する寄与度が低いと判定された三角形を含む１つを破棄するステップ（Ｓ５１０）であって、残りのＮ＋１個の部分集合Ｌ*が、破棄されていない三角形を含むステップと
をさらに含む
ことを特徴とする方法。
【請求項４】
請求項３に記載の、コンピュータによって実施される方法であって、
三角形の前記Ｎ＋２個の部分集合のうちの残りの部分集合Ｌ*は、Ａ（ｔi）を三角形ｔiの表面積、Ｓoを閾値としたとき、
【数１】
2017199354.tif 000063
となるような前記集合の三角形ｔiを含む
ことを特徴とする方法。
【請求項５】
請求項４に記載の、コンピュータによって実施される方法であって、
前記残りの部分集合Ｌ*の各三角形は、三角形が、
【数２】
2017199354.tif 000064
で定義される部分集合Ｌk内に存在する確率に従って、残りの部分集合Ｌkのうちの１つに送出され（S５２０）、
Ｓkの値はｋが増加すると増加する
ことを特徴とする方法。
【請求項６】
請求項５に記載の、コンピュータによって実施される方法であって、
ＳkはＳk＝Ｓoμkを満たす集合であり、ここでμ＞１であり、μの値は［１；５］間の実数である
ことを特徴とする方法。
【請求項７】
請求項５に記載の、コンピュータによって実施される方法であって、
ＳkはＳk＝Ｓoμkを満たす集合であり、ここでμの値は、三次元シーンの半径であるＲsceneを用いて、
【数３】
2017199354.tif 000065
で定義される
ことを特徴とする方法。
【請求項８】
請求項５〜７のうちの１つに記載の、コンピュータによって実施される方法であって、
前記残りの部分集合Ｌ*の各三角形が送出された後、
前記残りの部分集合Ｌ*の各三角形について単一の仮想点光源を算出するステップ（Ｓ６０）を含み、
ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップはさらに、
前記残りの部分集合Ｌ*の各三角形の仮想点光源の出射放射輝度を算出するステップ（Ｓ７０）を含み、前記算出は、三角形が送出された前記部分集合に従って実行される
ことを特徴とする方法。
【請求項９】
請求項８に記載の、コンピュータによって実施される方法であって、
各三角形の仮想点光源について出射放射輝度を算出するステップは、
仮想点光源の寄与度が大きい三次元シーン内の点の集合を表す入れ子状のボール群Ｂh（ｔi）を算出するステップと、
前記Ｎ＋２個の部分集合のうち、残りの部分集合のそれぞれについて、残りの部分集合上のサポート関数の集合（ｆk）kが、入れ子状のボール群Ｂh（ｔi）の境界に亘って一定である１の分割を形成するようなサポート関数ｆk（ｔi，ｘ）を算出するステップと
を含む
ことを特徴とする方法。
【請求項１０】
請求項９に記載の、コンピュータによって実施される方法であって、前記サポート関数の集合（ｆk）kの基底関数はＢスプラインである
ことを特徴とする方法。
【請求項１１】
請求項９または１０に記載の、コンピュータによって実施される方法であって、Ｂh（ｔi）は、
【数４】
2017199354.tif 000066
で定義され、
ここで、ｘは法線
【数５】
2017199354.tif 000067
を有する三次元シーンの点であり、
ｙiは三角形ｔi上の仮想点光源の中心となる点であり、
ρxは点ｘにおけるアルベドであり、
ρiは点ｙiにおけるアルベドであり、
Ｅ（ｔi）は、三角形ｔiへの直接放射照度である
ことを特徴とする方法。
【請求項１２】
請求項９〜１１のうちの１つに記載の、コンピュータによって実施される方法であって、
前記描画ステップにおいて、入れ子状のボール群Ｂh（ｔi）の球面を描画するときに、サポート関数の集合（ｆk）kが、スプラッティング演算を実行するのに用いられる
ことを特徴とする方法。
【請求項１３】
請求項１〜１２のうちの１つに記載の、コンピュータによって実施される方法であって、
前記閾値Ｓoは、
【数６】
2017199354.tif 000068
で定義され、
ここで、ＮAvgは、仮想点光源の平均個数であり、
Ｄnearは、前記３Ｄシーンの画素とＶＰＬとの間の最短距離である
ことを特徴とする方法。
【請求項１４】
請求項１〜１３のうちの１つに記載の、コンピュータによって実施される方法であって、
前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定する前に、
前記集合の三角形ｔiの各頂点について単一のランダムな整数を生成する（Ｓ２０）ステップをさらに含む
ことを特徴とする方法。
【請求項１５】
請求項２と組み合わせた請求項１４に記載の、コンピュータによって実施される方法であって、
三角形の各頂点について単一のランダムな整数を算出するステップは、
前記第３の集合の三角形の各副頂点について、当該副頂点の重心座標を決定するステップと、
前記重心座標を用いてノイズ・テクスチャ内のランダムな値を取得するステップ（Ｓ２１０）と、
前記取得したランダムな値を用いて前記第３の集合の三角形の前記各副頂点の前記単一のランダムな整数を生成するステップ（Ｓ２２０）と
を含む
ことを特徴とする方法。
【請求項１６】
請求項１〜１５のいずれかに記載の方法を実行するための命令を含む、グラフィック・ライブラリ・コンピュータプログラム。
【請求項１７】
請求項１６に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィック処理ユニットを有するグラフィック・カードとを備えるシステム。
【請求項１８】
請求項１７に記載のシステムであって、前記グラフィック・カードは、
前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定するジオメトリ・シェーダ・ユニットと、
前記集合の三角形ｔiをテッセレーションするためのテッセレーション・ユニットとを備え、
前記メモリ上に記録された前記コンピュータプログラムは、請求項１４または１５に記載の前記単一のランダムな整数の生成を実行するために前記テッセレーション・ユニットを構成するように適合されている
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータプログラムおよびシステムの分野に関連し、より詳細には、通常ＣＡＤアプリケーションのシナリオにおいて見られる複雑なシーンのような大きなモデルの文脈における、三次元シーンのグローバル・イルミネーションを描画するための方法、システム、およびプログラムに関連する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：  ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
光輸送のシミュレーションは、現実的な画像合成の重要な要素である。この現象に関連する研究作業の根幹は、「グローバル・イルミネーション」と呼ばれ、物理法則がよく知られているにもかかわらず演算コストが高く、さらにはリアルタイムシナリオにとって重要な結果をもたらすため、依然として困難な課題である。ＫＡＪＩＹＡ，Ｊ．Ｔ．１９８６，Ｔｈｅ  ｒｅｎｄｅｒｉｎｇ  ｅｑｕａｔｉｏｎ，ＡＣＭ  Ｓｉｇｇｒａｐｈ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，ｖｏｌ．２０，ＡＣＭ，１４３―１５０で論じられている描画方程式の再帰的性質の陰に隠れているが、グローバル・イルミネーションのシミュレーションは、特殊効果、プリビジュアライゼーション、アニメーション映画制作、およびビデオゲームに高度な現実感をもたらすために、多くのアプローチで取り組まれてきた。
【０００４】
現在、２つの研究が区別できる。１つ目は、視覚的に説得力のあるグローバル・イルミネーションの近似を迅速に提供することを目指す「インタラクティブ・レンダリング」である。２つ目は、可能な限り物理学に近いソリューションを目標とする「オフライン・レンダリング」である。
【０００５】
「インタラクティブ・レンダリング」のリアルタイムパフォーマンスを達成するために使用できるさまざまな戦略の中で、遠隔入射放射輝度の低周波挙動を利用することが、効果的であると証明されている。例えば、ＷＡＬＴＥＲ，Ｂ．，ＦＥＲＮＡＮＤＥＺ，Ｓ．，ＡＲＢＲＥＥ，Ａ．，ＢＡＬＡ，Ｋ．，ＤＯＮＩＫＩＡＮ，Ｍ．，およびＧＲＥＥＮＢＥＲＧ，Ｄ．Ｐ．２００５．Ｌｉｇｈｔｃｕｔｓ：ａ  ｓｃａｌａｂｌｅ  ａｐｐｒｏａｃｈ  ｔｏ  ｉｌｌｕｍｉｎａｔｉｏｎ．ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ（ＴＯＧ），ｖｏｌ．２４，ＡＣＭ，１０９８―１１０７で論じられている階層的放射輝度キャッシュ法は、マルチスケールの放射輝度関数を格納するシーンのジオメトリ上のツリーを算出することによってこの特性を利用する。間接照明が、シーンのサーフェス上に配置された仮想点光源（ＶＰＬ）によってモデル化されると仮定すると、このツリーのすべての内部ノードは、その関連するサブツリーの代表的な放射輝度応答を提供し、離れた場所から放射輝度が評価されるとすぐに、その代替物として使用される。ノードを集めることは、その子ノードを破棄することにつながるため、所与の点（例えば、投影されていない画像画素）における入射放射輝度を評価するために使用されるノードの集合は、ライト・カットと呼ばれる。
【０００６】
ライト・カット収集工程の高性能実装が多数提案されているが、それらの大部分はツリーを予め算出して維持することに依存しており、大規模なメモリと計算コストを要する可能性がある。
【０００７】
Ｍｉｔｔｒｉｎｇほか（ＭＩＴＴＲＩＮＧ，Ｍ．２００７．Ｆｉｎｄｉｎｇ  ｎｅｘｔ  ｇｅｎ：Ｃｒｙｅｎｇｉｎｅ  ２．ＡＣＭ  ＳＩＧＧＲＡＰＨ  ２００７  ｃｏｕｒｓｅｓ，ＡＣＭ，９７−１２１）は、シーンの実際の（大きい可能性がある）ジオメトリに対して経済的かつランダムアクセスが可能な代替物として深度バッファを使用し、スクリーン空間内のライト・キャッシュをパラメータ化する、アンビエント・オクルージョン近似法を導入した。その他の様々な方法では、いくつかの照明効果の計算上の複雑さを低減するために、スクリーン空間近似を利用する。しかしながら、そのようなアプローチは、リアルタイムで動的なパフォーマンスが実現できるものの、シーンの完全なジオメトリ、すなわち最初の深度レイヤを超えた、視錐台の外のジオメトリを明らかにするのに、深度剥離および複数ビューの描画に依拠するため、すぐにネイティブスピードに悪影響を及ぼす。
【０００８】
スクリーン空間のアプローチとは対照的に、オブジェクト空間での間接イルミネーションの解決策では、ＧＰＵ負荷の少ないライト・キャッシュを犠牲にして、そのようなビューに依存したアーチファクトを回避する。例えば、ＫＥＬＬＥＲ，Ａ．１９９７．Ｉｎｓｔａｎｔ  ｒａｄｉｏｓｉｔｙ．Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２４ｔｈ  ａｎｎｕａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ｇｒａｐｈｉｃｓ  ａｎｄ  ｉｎｔｅｒａｃｔｉｖｅ  ｔｅｃｈｎｉｑｕｅｓ，ＡＣＭ  Ｐｒｅｓｓ／Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ  Ｐｕｂｌｉｓｈｉｎｇ  Ｃｏ．，４９？５６で論じられているインスタント・ラジオシティー（Ｉｎｓｔａｎｔ  Ｒａｄｉｏｓｉｔｙ：ＩＲ）法では、主光源によって照らされたジオメトリ上に直接生成された、仮想点光源（Ｖｉｒｔｕａｌ  Ｐｏｉｎｔ  Ｌｉｇｈｔｓ：ＶＰＬｓ）と呼ばれる、二次的点光源の集合が用いられる。このようにＶＰＬの集合はシーンの間接照明の離散表現として機能し、光の反射を近似する際の演算を大幅に減らすことができる。しかしながら、大規模なデータへと拡張するには、膨大な量のＶＰＬが必要となる。しかし、非常に多くのＶＰＬを生成しシェーディングを行うためのコストは、動的シーンにおいては法外に高いため、困難である。
【０００９】
最後に、ＮＡＬＢＡＣＨ，Ｏ．，ＲＩＴＳＣＨＥＬ，Ｔ．，ＡＮＤ  ＳＥＩＤＥＬ，Ｈ．−Ｐ．２０１４．Ｄｅｅｐ  ｓｃｒｅｅｎ  ｓｐａｃｅ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １８ｔｈ  ｍｅｅｔｉｎｇ  ｏｆ  ｔｈｅ  ＡＣＭ  ＳＩＧＧＲＡＰＨ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｔｅｒａｃｔｉｖｅ  ３Ｄ  Ｇｒａｐｈｉｃｓ  ａｎｄ  Ｇａｍｅｓ，ＡＣＭ，７９―８６．２０１４で論じられているディープ・スクリーン空間（Ｄｅｅｐ  Ｓｃｒｅｅｎ  Ｓｐａｃｅ（ＤＳＳ））では、スクリーン空間とオブジェクト空間の両方の放射輝度キャッシングの利点を利用することが提案されている。オブジェクト空間による戦略と同様、この方法では、画像に依然として影響を与えるかもしれない閉塞ジオメトリ上においても、オン・サーフェスＶＰＬを生成する。そしてスクリーン空間のアプローチと同様、ラスタライザの代わりにテッセレータ・ユニットがＶＰＬを生成するサーフェス・サンプラとして使用され、ネイティブＧＰＵサポートから利益を得る。ＤＳＳは小規模から中規模のシーンをうまく描画することができるが、より大きなものに対応することはできず、リアルタイムの制約により、ジオメトリを精緻化させるのではなく、間引くことが必要になる。
【００１０】
このような文脈において、三次元シーンのグローバル・イルミネーションを描画するための、改良された方法が依然として求められている。
【発明の概要】
【００１１】
したがって、コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画（レンダリング）するための方法が提供される。本方法は、
・三角形の集合Ｌと、１つまたは複数の直接光源とを含む三次元シーンを提供するステップと、
・前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定するステップと、
・確率法則を用いて、前記集合の各三角形に影響半径を割り当てるステップと、
・前記三角形を、それぞれの影響半径に応じて選別することによって、三角形の部分集合Ｌ*を得るステップと、
・前記三次元シーンを、その三角形の集合へのライティングによって描画するステップであって、前記三角形の部分集合Ｌ*の三角形がその影響半径に応じて間接光源として用いられるような、描画するステップとを含む。
【００１２】
本方法は、以下のうちの１つまたは複数を含んでいてもよい。
・前記集合の各三角形が前記閾値以下の面積を有すると判定するステップは、前記三角形の集合Ｌを、それぞれが前記閾値以下の面積を有する三角形の第１の集合と、それぞれが前記閾値よりも大きい面積を有する三角形の第２の集合とに分割するステップと、第２の集合の各三角形をテッセレーションして、テッセレーションの結果として前記閾値以下の面積を有する三角形の第３の集合を得るステップを含み、ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップは、確率法則を用いて前記第１および第３の集合の各三角形に影響半径を割り当てるステップを含み、三角形の部分集合を取得するステップは、前記第１および第３の集合の三角形を、それらの影響半径に応じて選別することによって三角形の部分集合を取得するステップを含む。
【００１３】
・前記集合の各三角形が閾値以下の面積を有すると判定した後、前記三角形の集合を、前記確率法則に従って、前記三角形の集合を、三角形のＮ＋２個の部分集合にランダムに分割するステップと、三角形の前記Ｎ＋２個の部分集合のうち、前記３Ｄシーンの描画に対する寄与度が低いと判定された三角形を含む１つを破棄するステップであって、残りのＮ＋１個の部分集合は、破棄されていない三角形を含むような、破棄するステップとを含む。
【００１４】
・三角形の前記Ｎ＋２個の部分集合のうちの残りの部分集合Ｌ*は、Ａ（ｔi）を三角形ｔiの表面積、Ｓoを閾値としたとき、
【数１】
2017199354.tif 000003
となるような前記集合の三角形ｔiを含む。
【００１５】
・前記残りの部分集合Ｌ*の各三角形は、三角形が
【数２】
2017199354.tif 000004
で定義される部分集合Ｌk内に存在する確率に従って、残りの部分集合Ｌkのうちの１つに送出（Ｓ５２０）され、ここでＳkの値はｋが増加すると増加する。
【００１６】
・ＳkはＳk＝Ｓoμkを満たす集合であり、ここでμ＞１であり、μの値は［１；５］間の実数である。
【００１７】
・ＳkはＳk＝Ｓoμkを満たす集合であり、ここでμの値は、三次元シーンの半径であるＲsceneを用いて、
【数３】
2017199354.tif 000005
で定義される。
【００１８】
・前記残りの部分集合Ｌ*の各三角形が送出された後、前記残りの部分集合Ｌ*の各三角形について単一の仮想点光源を算出し、ここで、確率法則を用いて前記集合の各三角形に影響半径を割り当てるステップはさらに、前記残りの部分集合Ｌ*の各三角形の仮想点光源の出射放射輝度を算出するステップを含み、前記算出は、三角形が送出された前記部分集合に従って実行される。
【００１９】
・各三角形の仮想点光源について出射放射輝度を算出するステップは、仮想点光源の寄与度が大きい三次元シーン内の点の集合を表す入れ子状のボール群Ｂh（ｔi）を算出するステップを含む。
【００２０】
・前記Ｎ＋２個の部分集合のうち、残りの部分集合のそれぞれについて、残りの部分集合上のサポート関数（ｓｕｐｐｏｒｔ  ｆｕｎｃｔｉｏｎ）の集合（ｆk）kが、入れ子状のボール群Ｂh（ｔi）の境界に亘って一定である１の分割を形成するようなサポート関数ｆk（ｔi，ｘ）を算出する。
【００２１】
・前記サポート関数の集合（ｆk）kの基底関数（ｂａｓｅ  ｆｕｎｃｔｉｏｎ）はＢスプラインである。
【００２２】
・Ｂh（ｔi）は、
【数４】
2017199354.tif 000006
で定義され、ここで、ｘは法線
【数５】
2017199354.tif 000007
を有する三次元シーンの点であり、ｙiは三角形ｔi上の仮想点光源の中心となる点であり、ρxは点ｘにおけるアルベドであり、ρiは点ｙiにおけるアルベドであり、Ｅ（ｔi）は、三角形ｔiへの直接放射照度である。
【００２３】
・描画ステップにおいて、入れ子状のボール群Ｂh（ｔi）の球面を描画するときに、サポート関数の集合（ｆk）kが、スプラッティング演算（ｓｐｌａｔｔｉｎｇ  ｏｐｅｒａｔｉｏｎｓ）を実行するのに用いられる。
【００２４】
・前記閾値Ｓoは、
【数６】
2017199354.tif 000008
で定義され、ここで、ＮAvgは、仮想点光源の平均個数であり、Ｄnearは、前記３Ｄシーンの画素とＶＰＬとの間の最短距離である。
【００２５】
・前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定する前に、前記集合の三角形ｔiの各頂点について単一のランダムな整数を生成する（Ｓ２０）。
【００２６】
・ここで、三角形の各頂点について単一のランダムな整数を算出するステップは、さらに、前記第３の集合の三角形の各副頂点について、当該副頂点の重心座標を決定するステップと、前記重心座標を用いてノイズ・テクスチャ内のランダムな値を取得するステップ（Ｓ２１０）と、前記取得したランダムな値を用いて前記第３の集合の三角形の前記各副頂点の前記単一のランダムな整数を生成するステップ（Ｓ２２０）とを含む。
【００２７】
さらには、前記方法を実行するための命令を含むコンピュータプログラムが提供される。さらには、前記方法を実行するための命令を含む、グラフィック・ライブラリ・コンピュータプログラムが提供される。
【００２８】
さらには、前記グラフィック・ライブラリ・コンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体が提供される。
【００２９】
さらには、当該コンピュータプログラムを記録したメモリに接続されたプロセッサと、グラフィック処理ユニットを有するグラフィック・カードとを備えるシステムが提供される。
【００３０】
前記システムのグラフィック・カードは、前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定するジオメトリ・シェーダ・ユニットと、前記集合の三角形ｔiをテッセレーションするためのテッセレーション・ユニットとを備えていてもよく、前記メモリ上に記録された前記コンピュータプログラムは、前記単一のランダムな整数の生成を実行するために前記テッセレーション・ユニットを構成するように適合されている。
【図面の簡単な説明】
【００３１】
【図１】本方法の一例のフローチャートを示す。
【図２】本方法の一例のフローチャートを示す。
【図３】本方法の一例を示す。
【図４】本発明の間接イルミネーション・シェーダ・パイプラインの一例を示す。
【図５】本発明の間接イルミネーション・パイプラインの一例を示す。
【図６】点ｘにおける仮想点光源のイルミネーションの一例を示す。
【図７】０（黒）から１（白）の範囲の値について、平面部分上のサポート関数の視覚化の一例を示す。
【図８】一次元の１の分割の一例を示す。
【図９】三角形ごとの一様なランダム値生成の一例を示す。
【図１０】本発明の非標準パイプラインを使用しない場合、および使用する場合における、同じシーンのイルミネーションの例を示すスクリーンショットである。
【図１１】本発明の非標準パイプラインを使用しない場合、および使用する場合における、同じシーンのイルミネーションの例を示すスクリーンショットである。
【図１２】本方法を実行するシステムの一例を示す。
【発明を実施するための形態】
【００３２】
図１および２のフローチャートを参照して、コンピュータによって実施される、三次元シーンのグローバル・イルミネーションを描画するための方法を提案する。本方法は、三角形の集合Ｌと１つまたは複数の直接光源とを含む三次元シーンを提供することを含む。次いで、前記集合の各三角形ｔiが閾値Ｓo以下の面積を有すると判定する。次に、確率法則を用いて、前記集合の各三角形に影響半径を割り当てる。次いで、前記三角形を、それぞれの影響半径に応じて選別することによって、三角形の部分集合Ｌ*を得る。次に、前記三次元シーンが、その三角形の集合へのライティングによって描画される。前記三角形の部分集合Ｌ*の三角形がその影響半径に応じて間接光源として用いられる。
【００３３】
このような方法は、三次元シーンのグローバル・イルミネーションのリアルタイムでの描画を改善する。実際には、照明のマルチスケール表現が生成される。つまり、ＶＰＬが、入力される三角形の集合の確率的な間引き処理に基づいて生成される。そして、前方に向かって（すなわち、光源からセンサーまでの光空間を探索して）、カットで選択されたかのように、それぞれの有界影響領域を算出する。本発明は、グラフィック・カードのジオメトリ・シェーダとテッセレーション・ユニットの両方を利用して、間接照明に近似する仮想点光源（ＶＰＬ）の集合をフレーム単位で構築している。本発明は、２パス戦略においてジオメトリ駆動型ＶＰＬの集合を精緻化および単純化することができる、イルミネーション用拡散グラフィック・パイプラインを提案する。膨大な数の三角形を有するシーンの文脈において、オブジェクト空間放射輝度キャッシュの解像度を調整するために、テッセレーション・ユニットとジオメトリ・シェーダの両方を利用する。本発明は、複雑な前処理を示唆するものではなく、また、フレームにわたって複雑なデータ構造を保持する必要もない。光照射野のマルチスケール表現を使用することで、リアルタイムのパフォーマンスを実現し、それは完全に動的であり、ツリー構造に頼らず、また、フレーム間でデータ構造を維持する必要もない。これは、ライト、ビューポイント、ジオメトリ・アニメーションなどを含む、完全に動的なシーンと互換性がある。最後に、統合に関して、本発明は、当然、標準的な現代のグラフィック・パイプラインに適合し、ホスト・アプリケーションによって採用される相補的描画技術について、強い仮定は何ら必要としない。
【００３４】
本方法は、コンピュータによって実施される。すなわち、本方法のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、場合により、完全に自動的に、あるいは半自動的に実行される。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、および／または、予め定義されていてもよい。
【００３５】
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィック処理ユニットを有するグラフィック・カードを備えていてもよい。コンピュータプログラムは、グラフィック・ライブラリ・コンピュータプログラムである可能性がある。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。データベースは、描画すべき３Ｄシーンを記憶していてもよく、例えば、データベースは、当該シーンの三角形の集合を記憶する。
【００３６】
図１２は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【００３７】
本例のクライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置１０９０を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてもよい。
【００３８】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００３９】
以下に、より詳細に論じるように、本発明は仮想点光源（Ｖｉｒｔｕａｌ  Ｐｏｉｎｔ  Ｌｉｇｈｔｓ：ＶＰＬｓ）、すなわち、ある光がキャッシュされる点の集合を用いる。キャッシュされる照明は、直接照明であってもよい。ＶＰＬは、間接照明の反射を近似するのに使用される。図５は、当該技術分野で知られているＶＰＬベースのパイプラインの一例を示す。ＶＰＬパイプラインは、典型的には、照明の３つの主要ステージ、すなわち（ａ）ＶＰＬ生成、（ｂ）間接ライト・キャッシング、および（ｃ）ＶＰＬを用いた照明からなる。
【００４０】
本発明は、特に、（ａ）ＶＰＬ生成、および（ｃ）照明中にそれらを使用することに焦点を合わせる。図１は、ＶＰＬの生成の対象となる三角形の生成の一例を示す。
・前処理時に、動的ジオメトリ変換の下であっても一貫して三角形ごとの乱数を生成するのに描画時に使用される、単一の頂点ごとのランダムな整数を算出する。
・生のジオメトリから三角形の部分集合を生成する一例について説明する。特に、通常のパイプラインと非標準パイプラインの使用について示す。大きな三角形（本発明においては「非標準（ｄｉｖｅｒｇｅｎｔ）」と呼ぶ）は、前述の戦略では十分にサンプリングされず、最終的な画像に、重大な照明アーチファクトをもたらす可能性がある。その結果、非標準三角形は、テッセレーション・ユニットを経由し、そこで適切な解像度に達するまで細分化される。
・生データの三角形の破棄の一例として、例えば、サンプリング情報の量を最適化しつつ、管理された三角形の数を大幅に減らすために、主に小さな三角形からなる特別な集合が完全に破棄される。
【００４１】
図２は、ＶＰＬの生成の一例を示し、ここでは、生データ（図１）から生成された三角形の完全な集合が、確率法則に従ってランダムに分割されている。各三角形に対してＶＰＬが生成され、その出射放射輝度は、関連する区画（Ｌ0，・・・，ＬN）のみに基づいて算出される。最後に、間接イルミネーションは、典型的な遅延シェーディングプロセスで、ＶＰＬ区画に応じてスプラット機能サポートを用いてスプラットされ、強力なＶＰＬを確保することにより三日月形サポートを用いて遠隔照明を実行する。
【００４２】
図１に戻って、本発明の第１の態様、すなわち、ＶＰＬの生成対象である生データから三角形を生成することについて説明する。ステップＳ１０において、３Ｄシーンが提供される。３Ｄシーンは、三角形の集合Ｌと、１つまたは複数の直接光源とを含む。提供するとは、生データ（３Ｄシーンの三角形の集合Ｌ）が、本発明の方法を実施するシステムおよび／またはプログラムによってアクセス可能であることを意味する。典型的には、３Ｄシーンは、当該技術分野で知られているように、アプリケーションの要求に応じて表示される画像を生成するフレームワークである描画エンジンにロードすることができる。例えば、ＣＡＤシステムのＣＡＤアプリケーションは、３Ｄモデル化オブジェクトの３Ｄシーンを、入力として、描画エンジンに提供し、描画エンジンは、ＣＡＤシステムの１つまたは複数のグラフィック・カードを用いて、３Ｄシーンをスクリーンに描く。３Ｄシーンの三角形はメッシュを形成する。例えば、３Ｄシーンのモデル化オブジェクトは、当該技術分野で知られているように、互いに接続された三角形によって表される。
【００４３】
次いで、ステップＳ２０において、集合Ｌの各三角形の各頂点について単一のランダムな整数が生成される。その結果、頂点ごとのｕｉｎｔ３２属性ｖ＿ｒａｎｄが追加される。この属性は、０から２32、あるいはさらに０から２64までの範囲（ただしこの範囲に限定されない）で一様に選択されたランダムな値を用いてメッシュをロードするときに初期化される。なお、この工程は、当該技術分野で知られているように行うことができる。
【００４４】
ステップＳ１０およびＳ２０は、図３の（ａ）に示されている。
【００４５】
次いで、ステップＳ３０において、集合の各三角形ｔiが、閾値Ｓo以下の面積を有すると判定される。判定の結果に応じて、生のデータは、集合の、通常の三角形および非標準三角形に分割される（または分割されない）。ここで、非標準三角形は、図３の（ｄ）および（ｅ）に示すように、すべての新しい三角形が通常の三角形であると考えられるように細分化される、閾値Ｓoより大きな面積を有する三角形であり、通常の三角形は、閾値Ｓo以下の面積を有する三角形である。ステップＳ３１０〜Ｓ３１２は、通常の三角形の通常のパイプラインについて論じ、ステップＳ３２０〜Ｓ３２２は、非標準パイプラインについて論じている。
【００４６】
通常の三角形は、非標準三角形、すなわち、ある閾値Ｓｏより大きい表面積Ａ（ｔi）を有する三角形ｔiの集合と区別される。この閾値は、（式１）
【数７】
2017199354.tif 000009
となるように設定することができ、これは、画素から少なくともＤnearだけ離れているＮAvg個のＶＰＬを用いて画素をほぼ点灯させることを目的とするヒューリスティックである。Ｄnearは、画素とＶＰＬとの間の最短距離を提供する変数である。ＮAvgは、３Ｄシーン上のＶＰＬの個数である。Ｒsceneをシーン半径とすると、ＤnearはＤnear＝０．２×Ｒsceneと設定することが可能で、ＮAvgは、所望の品質／スピードのトレードオフに応じて、好ましくは、６４と１０２４の間に設定される。なお、ＮAvgの値の範囲は変更可能であり、ＶＰＬの個数は、描画を実行するシステムの演算リソースに応じて、より多くなり得る。シーンの直径は、Ｄｉａｍscene＝２×Ｒsceneと設定され、Ｄｉａｍsceneは、シーンの２点間の最長距離である。
【００４７】
したがって、ステップＳ３００において、三角形ｔiの集合は、Ｓo以下の面積を有する三角形の第１の集合（Ｓ３１０）およびＳoよりも大きい面積を有する三角形の第２の集合（Ｓ３２０）に分割される。なお、第１の集合が、Ｓo未満の三角形を含み、第２の集合が、Ｓo以上の三角形を含んでいてもよい。
【００４８】
ステップＳ３１２において、第１の集合の三角形が、例えばキャッシュ・メモリに格納される。
【００４９】
ステップＳ３２２において、第２の集合の三角形は、三角形の第３の集合へとテッセレーションされる。テッセレーションは、当該技術分野で知られているように実行される。テッセレーションされた三角形は、Ｓo以下の面積を有する。すなわち第３の集合の各三角形は、テッセレーションの結果として、閾値以下の面積を有する。
【００５０】
ここで、生データは、三角形の２つの集合からなる。これらの集合の三角形は、共にＳo以下の面積を有する。これら集合の違いは、第１の集合の各三角形の各頂点は単一のランダムな整数に関連付けられているが、第２の集合の三角形はそうではないという点であり、これは、テッセレーションは、１つまたは複数の頂点が以前に生成された単一のランダムな整数を有していない、新たな三角形を作成するためである。図１の例では、単一のランダムな整数が生成され、生データに関連付けられている。なお、単一のランダムな整数は、後のステージで生成して関連付けてもよい。例えば、第１および第２の集合が決定されている間や、生データの分割が実行された後であってもよい。例えば、第１の集合が格納されると、第１の集合の三角形の頂点について単一のランダムな整数が生成されるかもしれない。
【００５１】
次いで、ステップＳ２００〜Ｓ２２０は、第２の集合の各三角形の各頂点について単一のランダムな整数を生成する一例を提供する。好ましくは、これらのステップは、第２の集合の三角形をテッセレーションする間に実行される。第２の集合の、新たにテッセレーションされた三角形ごとに（Ｓ３２０）、ステップＳ２００〜Ｓ２２０が実行される。あるいは、これらは、第３の集合が構築された後に実行されてもよい。ここで、ステップＳ２００〜Ｓ２２０について、第２の集合の三角形がテッセレーションされるたびに生成が行われる場合について説明する。
【００５２】
ステップＳ２００において、第３の集合の三角形の各副頂点を決定する。図９の（ａ）に示すように、第２の集合の三角形の各頂点は、ｕｉｎｔ３２属性、すなわちｖ＿ｒａｎｄを含む。図９の（ｂ）において、三角形９０の副頂点９０ａ、９０ｂ、９０ｃが得られる。なお、三角形９０は図９の（ａ）の三角形から得られた新しい１０個の三角形のうちの１つであることが理解される。
【００５３】
次いで、ステップＳ２１０において、第３の集合の三角形の上記各副頂点の重心座標ｔｅｓｓ＿ｃｏｏｒｄ［ｉ］を特定する。重心座標は、第３の集合の三角形の上記各副頂点を得た第２の集合の三角形のテッセレーションの間に算出される。次いで、重心座標ｔｅｓｓ＿ｃｏｏｒｄ［ｉ］を用いて、ノイズ・テクスチャ内でランダムな値が取得される。より正確には、各ｔｅｓｓ＿ｃｏｏｒｄ［ｉ］について、ランダムな値が取得される。この取得は、当該技術分野で知られているように実行される。すなわち、テクスチャは、テーブルの各セルが値を格納する二次元のテーブルと考えることができ、例えば、値は３２ビットの整数である。ランダムな値が取得されると、セルの１つが読み取られ、座標ｔｅｓｓ＿ｃｏｏｒｄ［ｉ］を用いて、テーブル内のセルに到達する。ノイズ・テクスチャは、一般に、予め、例えば、３Ｄシーンの描画が要求されたときに算出される。ノイズ・テクスチャは、例えば１０２４×１０２４など、所定のサイズのテーブルである。
【００５４】
次に、ステップＳ２２０において、取得されたランダムな値を用いて、第３の集合の三角形の各副頂点について、単一のランダムな整数を生成する。図９の（ｃ）に示すように、三角形９０の各頂点は、テッセレーションされた三角形上の頂点の重心座標ｔｅｓｓ＿ｃｏｏｒｄ［ｉ］から生成されたランダムな値ｖ＿ｒａｎｄ＿ｔｅｓｓ［１］に関連付けられる。
【００５５】
第３の集合の三角形のいくつかは、ステップＳ２０で生成されたランダムな値にすでに関連付けられている。これらのランダム値は保持され、ランダム値を持たない副頂点のみがステップＳ２００〜Ｓ２２０で考慮される。このように、単一のランダムな整数を持たない第３の集合の三角形の副頂点ｖiを決定する。これにより、演算リソースを保存できる。
【００５６】
ここで、第１および第３の集合は、Ｓo以下の面積を有し、頂点が単一のランダム値に関連付けられた三角形を有する。第１および第３の集合は、非標準パイプラインが、非標準三角形を通常の三角形に変換するときに、マージすることができる（Ｓ４０）。
ここで、図２を参照して、確率法則に従ったＶＰＬの生成、およびマージされた第１および第３の集合をランダムに分割する方法について説明する。
【００５７】
ステップＳ５０において、三角形の集合（Ｓ４０）は、確率法則に従って三角形のＮ＋２個の部分集合に分割され、これらのＮ＋２個の部分集合のうちの１つは破棄される（Ｓ５１０）。すなわち、三角形が確実に除去される。
【００５８】
実際、ステップＳ５１０における三角形の間引きは、分割する前に行うことができるので、分割する際に分析すべき三角形が少なくて済み、区画を作成するために必要な演算リソースが少なくて済む。
【００５９】
三角形の間引きは、３Ｄシーンの小さな三角形を削除することを目的とする。これは、それらが、拡散した間接照明の最終的な描画に、あまり寄与しないためである。単純な解決策としては、面積が閾値以下の小さい三角形を除去することが考えられる。しかしながら、小さな三角形のグループは、全体として、光輸送に重要な影響を及ぼすことがある。確率的な間引きアプローチが用いられ、このアプローチでは、第１および第３の集合の各三角形に対して、０と１との間にある均一なランダム値ｕtiを算出することにより、強くテッセレーションされたジオメトリの寄与度が保持される。そのルールは次の通りである。すなわち、Ａ（ｔi）＞ｕtiＳoの場合、三角形を保持し（すなわち、破棄しない）、Ａ（ｔi）≦ｕtiＳoの場合、三角形を、破棄する三角形の集合に追加する（なお、三角形は即座に破棄されてもよい）。
【００６０】
すべての三角形が通常の三角形であると仮定できるとすると、三角形ｔiが維持される確率は以下のようになる（式２）。
【数８】
2017199354.tif 000010
ここで、Ｌ*は、保持されている第１および第３の集合の三角形ｔiを示し（Ｓ４０）、Ｌは第１および第３の集合の三角形を示す。直観的には、これは、三角形が小さいほど、破棄される可能性が高くなることを意味する。それと同時に、この分割は、シーン全体の表面上のサンプルの均一な分布に変換され、その結果、保持された三角形の数の期待値は、Ａsceneをシーン全体の面積として、
【数９】
2017199354.tif 000011
となる。
【００６１】
三角形が破棄されるか、または少なくとも破棄される区画に関連付けられると、残りの三角形（すなわち、保持される三角形）が、三角形が部分集合Ｌk内に存在する確率に従って、Ｎ＋１個の残りの部分集合Ｌkのうちの１つ（Ｌ0，・・・，ＬN）に送出される（ステップＳ５２０）。送出は、ＬNが少数の三角形を含み、ｋが０に近づくほどＬkがより密集するように行われる。そのとき代表的なシーンの三角形のマルチスケール分割は、間引き戦略（ステップＳ５１０）から現れ、三角形が部分集合Ｌk内にある確率は（式３）
【数１０】
2017199354.tif 000012
であり、μ＞１をユーザ定義による実数とすると、（式４）
【数１１】
2017199354.tif 000013
である。Ｓk＝Ｓoμkでは、部分集合Ｌk当たりのＶＰＬの数は指数関数的に増加する。これは先行技術のいくつかの既存技術、例えばツリー構造のものの挙動に似ている。
【００６２】
μの値は、シーンと区画数によって異なる。μの値は、典型的には１、４と５の間である。μの許容値の要件については、本方法の実施の一例についての議論において後述する。実際、Ｓk＝Ｓoμkは実施上の選択肢であり、区画（または部分集合）Ｌkに存在する三角形の平均表面として理解してもよい。実際には、Ｓkは、ｋが増加すると、その値が増加するように選択される。上述の式（式４）により、分割は、光照射野で使用される従来の階層表現に似た、ジオメトリ的に減少するサイズ期待値を有する部分集合が生じる。ただし、三角形は他の選択肢とは独立して特定の部分集合の影響を受けるため、維持、生成、あるいは管理されるような明示的な階層は存在しない。特に、これは、所与の部分集合内に位置する所与の三角形が、より細かい三角形によって運ばれる粗い情報を捕捉しないことを意味する。
【００６３】
以下のアルゴリズム１は、確率法則ｕtiを変更せずに、式３から定義されるような区画の生成の一例を示す。
【数１２】
2017199354.tif 000014
【００６４】
各三角形についてアルゴリズム１を評価するために、変数ｕtiに擬似ランダム値が使用される。一例では、この値の生成は、追加の頂点単位のｕｉｎｔ３２属性ｖ  ｒａｎｄに依存する。上述のとおり、この属性は、例えば０と２32の間で一様に選択されたランダムな値を用いてメッシュ（生データ）をロードするときに初期化される。通常のパイプラインでは、ジオメトリシェーディングステージで、ｕtiが三角形ｔｉの３つの頂点のランダム属性間のｘｏｒとして算出される。ｘｏｒ演算子を選択することにより、２つまたは３つの三角形の間の相関を避けることができる。さらに、新しいランダム値は、描画時にフレームごとに最大１回更新可能なグローバルで一様なランダム値であるｕ＿ｒａｎｄを用いることによって、いつでも生成することができる。元の頂点ごとの値でｘｏｒされているので、メッシュ上にまったく新しいランダム分布を得ることができる。これは以下のアルゴリズム２で明らかである。
【００６５】
非標準パイプライン（通常の三角形ではない三角形のためのもの）では、ｕtiの構築は、さらに非常に微妙である。実際、この値は、カメラが動いたりメッシュが変形したりしても、すなわちメッシュトポロジが同じままである限り、変更されないままである。これらの特性を保持するために、モデル空間でテッセレーションを実行し、テッセレーションパターンが入力三角形の形状にのみ依存するという事実を利用する。実際に、テッセレーションパラメータは、ステップＳ２００〜Ｓ２２０に関する議論で説明したように、元の三角形領域によってのみ決定される。したがって、細分化から出現する三角形についてｕtiを生成するために、アルゴリズム２に示すように、３つのｖ＿ｒａｎｄ＿ｔｅｓｓ、３つの基本三角形ｖ＿ｒａｎｄ、および最終的にグローバルで一様な乱数ｕ  ｒａｎｄの間でｘｏｒが算出される。
【数１３】
2017199354.tif 000015
【００６６】
図３の（ｂ）および（ｃ）は、区画の生成、すなわち、生き残っている三角形（「小さい」三角形（ｂ）の破棄後に残っているもの）を、変数ｕtiに使用される擬似ランダム値を用いて、式３の確率法則
【数１４】
2017199354.tif 000016
に従って、部分集合Ｌ0、・・・Ｌk、・・・ＬNに分類する。
【００６７】
図２に戻って、ステップＳ６０で、残りの部分集合Ｌ*の各三角形について、単一の仮想点光源が算出される。好ましくは、ハードウェアの制約に適切に対処するために、１つの三角形当たり１つのＶＰＬしか算出されない。なお、いくつかの三角形は複数のＶＰＬを有する。例えば、決定はそれらのＡ（ｔi）に従って行うことができる。残りの三角形それぞれについてのＶＰＬの算出は、当該技術分野で知られているように実行される。
【００６８】
ＶＰＬの算出は、実際には、ＶＰＬを用いて照明を行うために、各ＶＰＬについての出射放射輝度の算出を含む。以下の数学的議論で明らかなように、出射放射輝度の算出（ステップＳ７０）は、三角形が送出された部分集合に従って実行される。したがって、影響半径（すなわち、出射放射輝度）は、式３の、部分集合Ｌ0、・・・Ｌk、・・・ＬNを得るために用いられる確率法則を用いて、第１および第３の集合の各三角形に割り当てられる。したがって、確率法則は、影響半径の密度が減少するように実行される、影響半径の分布と考えることができる。実際、分割により、ジオメトリ的に減少するサイズ期待値を有する部分集合が生じ、これは光照射野で用いられる従来の階層表現に似ている。なお、３Ｄシーンの描画にあまり寄与しない三角形を破棄することは、その影響半径に応じて三角形を選別することにより、三角形の初期集合（生データ）の部分集合を得ることに相当する。
【００６９】
ステップＳ７００〜７１０は、三角形が送出された部分集合Ｌ*に従って、Ｌ*の各三角形の仮想点光源についての出射放射輝度を算出する例を示す。入れ子状のボール群Ｂh（ｔi）が算出される。Ｂh（ｔi）は、仮想点光源の寄与度が大きい三次元シーン内の点の集合を表している（Ｓ７００）。ステップＳ７１０において、残りのＮ＋１個の部分集合のそれぞれについて、サポート関数ｆk（ｔi，ｘ）が算出される。残りの部分集合に対するサポート関数の集合（ｆk）kは、入れ子状のボール群Ｂh（ｔi）の境界上に亘って一定である１の分割を形成する。説明のために、この例で使用される出射放射輝度のモデルがここで論議され、ステップＳ７００およびＳ７１０の演算がそれに応じて実行される。図３の（ｆ）は、異なるサイズの影響半径の例を示す。三角形の仮想点光源について算出される出射放射輝度は、三角形が属する部分集合に依存する。
【００７０】
法線ｎxを有する点ｘの間接出射放射輝度
【数１５】
2017199354.tif 000017
は、式５によって次のように定義される。
【数１６】
2017199354.tif 000018
【００７１】
ここでＬは、シーン内のすべての三角形の集合（すなわち生データ）を表し、
【数１７】
2017199354.tif 000019
は、
【数１８】
2017199354.tif 000020
によって方向づけられた、ｔiから始まりレシーバｘへと向かう入射放射輝度伝達関数を表す。図６は、
【数１９】
2017199354.tif 000021
によって方向づけられた点ｘを有する画素６０（レシーバ）を示し、ρxは、点ｘにおけるアルベドである。アルベドρxを用いてレシーバを拡散させるために、この伝達関数は次のように定義される（式６）。
【数２０】
2017199354.tif 000022
【００７２】
ここで、
【数２１】
2017199354.tif 000023
は、
【数２２】
2017199354.tif 000024
を中心とするＶＰＬから
【数２３】
2017199354.tif 000025
の方向へと向かう放射輝度であり、
【数２４】
2017199354.tif 000026
は、特異点を避けるためにユーザパラメータεに固定されたｙiとｘとの間の距離である。典型的には、εは、［１０-3；１０-6］の範囲に含まれる値を有する。
【００７３】
光の第１の拡散反射は、以下のＶＰＬ出射放射輝度式（式７）を用いてモデル化することができる。
【数２５】
2017199354.tif 000027
【００７４】
ここで、Ｅ（ｔi）は、三角形ｔiへの直接放射照度である。なお、
【数２６】
2017199354.tif 000028
の項のために、レフレクタは、もはや完璧なランバート反射とはみなすことができない。したがって、光はジオメトリの法線の方向に反射されることが好ましいが、実験は顕著な変化が現れないことを示しており、これは後で説明するように、その後の演算を大幅に軽減する。
【００７５】
ハードウェアの制約に対処するために、
【数２７】
2017199354.tif 000029
の算出は、ＶＰＬの部分集合の寄与度を合計することによって、すなわち、部分集合Ｌkの三角形のＶＰＬの寄与度を合計することによって近似することができる。したがって、
【数２８】
2017199354.tif 000030
の
【数２９】
2017199354.tif 000031
で表される推定量が定義できる（式８）。
【数３０】
2017199354.tif 000032
【００７６】
ここでＦk（ｔi，ｘ）は、位置ｘ、エミッタｔi、およびインデックスｋの未知関数である。その式は、以下のとおりである。
【００７７】
可能性のあるすべての区画（Ｌ0，・・・Ｌk，・・・ＬN）の集合に対する
【数３１】
2017199354.tif 000033
の期待値を算出することにより、以下の式９が得られる。
【数３２】
2017199354.tif 000034
ここで、
【数３３】
2017199354.tif 000035
は、
【数３４】
2017199354.tif 000036
の場合１に等しく、その他の場合０に等しい、インジケータ関数である。
【００７８】
仮に
【数３５】
2017199354.tif 000037
が、入射放射輝度
【数３６】
2017199354.tif 000038
の不偏推定量を表すようにしたいのであれば、関数Ｆk上で、次の関数方程式（式１０）を検証する必要がある。
【数３７】
2017199354.tif 000039
【００７９】
式３で確立されたＶＰＬ分割戦略によれば、Ｆkは、次のように定義される（式１１）。
【数３８】
2017199354.tif 000040
【００８０】
式１１は、式１０の不偏条件を、１の分割の問題として書き換えることを可能にする。１の分割は、集合Ｘ内のあらゆる点ｘについてｘにおけるすべての関数値の合計が１であるような、集合Ｘから単位区間［０，１］への関数の集合である。これは、（式１２）
【数３９】
2017199354.tif 000041
が成り立つような関数の集合（ｆk）kを求めることにつながる。
【００８１】
このように、ＶＰＬを用いた照明は、三角形を部分集合（Ｌ0、・・・Ｌk、・・・ＬN）へと分割することにより近似されている。すなわち、三角形をＮ＋１個の部分集合へと送出するために用いられる確率法則を用いて近似されている。この近似はまた、関数の集合（ｆk）kを見出すことにもつながり、この集合における各関数は、部分集合のＶＰＬの入射放射輝度をサポートする。関数の台（ｓｕｐｐｏｒｔ）は、その関数の値がゼロでない点の集合である。このように、各部分集合（Ｌ0、・・・Ｌk、・・・ＬN）について、それが属する台に依存するサポート関数が算出される。例えば、式１７〜１８に示すように、関数ｆkの台は
【数４０】
2017199354.tif 000042
である。これは、ｆkの台が、ｈ＝Ｄk+1であるような特定のｈについての関数Ｂhの１つであることを意味する。
【００８２】
ＣＨＲＩＳＴＥＮＳＥＮ，Ｐ．２００８．Ｐｏｉｎｔ−ｂａｓｅｄ  ａｐｐｒｏｘｉｍａｔｅ  ｃｏｌｏｒ  ｂｌｅｅｄｉｎｇ．Ｐｉｘａｒ  Ｔｅｃｈｎｉｃａｌ  Ｎｏｔｅｓ  ２，５，６．で議論されているＰＢＧＩツリーカット戦略からインスピレーションを受け、入れ子状のボール群Ｂh（ｔi）が導入される。Ｂh（ｔi）関数はｈ＞０によって特徴づけられ、所与のｈに対して、Ｂh（ｔi）は、ＶＰＬの寄与度が大きい点の集合を表す。言い換えれば、入れ子状のボール群Ｂh（ｔi）は、３Ｄ空間内でボリュームの集合を形成し、各ｈ＞０について、単一のボリュームＢhが存在する。Ｂhのジオメトリ形状は、中心が、線（ｙi、ｎi）に拘束され（および通過し）、かつ直径Ｄ（ｈ）を有する球面である。ｈはＢhのパラメータである。Ｂh（ｔi）の外側の各点ｘについて、伝達関数
【数４１】
2017199354.tif 000043
（式６、８、９を参照して説明）は、レシーバ
【数４２】
2017199354.tif 000044
の向きに関わらず、ｈより小さい。これは式１３に表されている。
【数４３】
2017199354.tif 000045
【００８３】
さらに、伝達関数
【数４４】
2017199354.tif 000046
（式６、８、９を参照して説明）は、レシーバがエミッタの正面を向いているとき、言い換えれば、
【数４５】
2017199354.tif 000047
のとき最大である。したがって、ＶＰＬ放射輝度分布モデルでは、Ｂh（ｔi）関数を以下のように書くことができる（式１４）。
【数４６】
2017199354.tif 000048
【００８４】
ここで、Ｄ（ｈ）（Ｂh（ｔi）の球面の直径）は、所与の部分集合に属するＶＰＬの直接出射放射輝度の寄与度の最大距離を表す。Ｄ（ｈ）はｘに依存しないため、
【数４７】
2017199354.tif 000049
は、境界がｙiを有し、中心が線（ｙi，ｎi）上にある、入れ子状のボール群である。
【００８５】
３Ｄにおける１の分割（ｆk）kはＢh（ｔi）の境界の球面上で一定であり得る。Ｂh（ｔi）関数は、サポート関数の分離レベル（ｉｓｏｌｅｖｅｌ）である。次いで、
【数４８】
2017199354.tif 000050
から
【数４９】
2017199354.tif 000051
への以下のマッピング（式１５）
【数５０】
2017199354.tif 000052
を定義することにより、取得する１Ｄにおける１の分割
【数５１】
2017199354.tif 000053
が次のように定義される（式１６）。
【数５２】
2017199354.tif 000054
当該分野で知られているように、１の分割として、（ｆk）kが、スプラッティング演算を実行するのに用いられる。したがって、各画素についてＶＰＬの照明が算出されるとき、各画素上でテクスチャを混合するために各画素の評価が実行される。描画の間、１の分割（ｆk）kは、算出を容易にしつつ可能な限り滑らかに作られ、それらを以下のように定義する（式１７）。
【数５３】
2017199354.tif 000055
【００８６】
また、コンパクトな台を有する連続した区分的アフィン関数の集合が得られるように、（式１８）
【数５４】
2017199354.tif 000056
を定義することが可能である。このように定義された関数は、ＤNがシーンの直径より大きい場合にのみ適しており、そうでない場合、シーン内に、光輸送に寄与できない点のペアが存在する可能性がある。これは、ＤN＞Ｒsceneであることを意味する。これはμ（式４）についての以下の条件に変換される。
【数５５】
2017199354.tif 000057
【００８７】
ここで、図７を参照して、平面部分上のＢh（ｔi）関数をサポートするサポート関数（ｆk）kの視覚化の例について説明する。Ｂh（ｔi）関数は、サポート関数の分離レベルであり、サポート関数の輪郭を定義する。興味深いことに、そのサポート関数上のＢh（ｔi）の球面の寄与度の距離（Ｄ0，Ｄ1，Ｄ3）は部分集合（Ｌ0，・・・Ｌk，・・・ＬN）に依存するため、ＶＰＬのパワーはそれが属する部分集合に依存する。したがって、ｋが０に近づくにつれて、Ｌkを占有する三角形（したがってＶＰＬ）の数が増加し、パワーが減少する。一方、ｋがＮに近づくにつれて、Ｌkが含む三角形（したがってＶＰＬ）の数が減少し、パワーが増加する。図３の（ｆ）に示すように、ローパワーＶＰＬを使用してローカル・ライティングをキャプチャし、ハイパワーＶＰＬを使用して三日月形サポート関数によるモデル遠隔照明をキャプチャする。
【００８８】
図８は、Ｂh（ｔi）の球面を描画する際にスプラッティング演算を実行するのに用いられる一次元の１の分割の例を示す。関数が平滑であればあるほど、演算結果はより良好なものとなる。図８の
【数５６】
2017199354.tif 000058
の例は、限られた数の重複しかなく、良好な結果となっており（横座標には、値がゼロではない関数が最大で２つある）、関数は連続的であり、凹状である。
【数５７】
2017199354.tif 000059
は、星を付した曲線で表され、
【数５８】
2017199354.tif 000060
は、三角形を付した曲線で、
【数５９】
2017199354.tif 000061
は、点を付した曲線で、
【数６０】
2017199354.tif 000062
は、ひし形を付した曲線で、それぞれ表される。いくつかのクラスの関数を用いることができる。特に、サポート関数の集合（ｆk）kの、良好な基底関数は、Ｂスプラインである。
【００８９】
最後に、ステップＳ８０において、三次元シーンが、その三角形の集合へのライティングによって描画される。三角形の部分集合Ｌ*の三角形がその影響半径に応じて間接光源として用いられる。上述のように、サポート関数（ｆk）kは、入れ子状のボール群のＢh（ｔi）関数の球面を描画するためのスプラッティング関数を実行するのに用いられる。描画は、当該技術分野で知られているように実行され、算出されたＶＰＬを利用するために３Ｄシーンを備えた１つまたは複数の直接光源を用いる。
【００９０】
図１０および図１１は、グローバル・イルミネーションで描画された３Ｄシーンの画像（スクリーンショット）である。図１０は、非標準パイプラインを用いずに描画されたシーンを示しており、強くテッセレーションされたジオメトリのみが間接照明を投影している。図１１は、非標準パイプラインを用いて描画された同じ３Ｄシーンを示しており、地面（４つの三角形からなる）の反射光が、シーンの多くの部分を明るみに出している。したがって、最も大きな三角形は、遠隔照明をモデル化するために用いられるＬNに近い部分集合（群）内のものである。
【００９１】
完全を期すため、実施の詳細について、図４を参照して説明する。パイプラインには、シーン全体の、２つのジオメトリ描画パス、すなわちＧ―バッファを生成するものと、ＶＰＬを生成してスプラットするもののみが含まれている。これらは通常のパイプラインである。この生のジオメトリの適度な使用は、例えばＣＡＤ（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）などのソフトウェアアプリケーションのような、膨大な数のポリゴンを必要とするアプリケーションにとって重要なメトリックである。典型的なＣＡＤシーンは、各オブジェクトが数百または数千、さらにはそれ以上の三角形を含む、数千の３Ｄモデル化オブジェクトを含む。実際には、第三のジオメトリ描画パスが発生するが、シーンのほんの一部のみ、すなわち、非標準パイプラインで処理される非標準三角形がこれに関与する。相違（ｄｉｖｅｒｇｅｎｃｅ）の基準は、非標準三角形の数が少なく留まるように設定されるため、この最後のパスは、演算コストが法外に高いということはない。実際、通常のパイプラインは、フラグメント単位や頂点単位ではなく、三角形単位で演算を実行するため、ジオメトリ・シェーダ・ステージを集中的に利用する。興味深いことに、最近のＧＰＵアーキテクチャでは、法外に大きかったジオメトリ・シェーダ・ステージのオーバーヘッドが大幅に削減され、より大きなストリームのポリゴン単位の演算が可能になった。
【００９２】
ハードウェア・テッセレーション・ユニットを利用する非標準パイプラインは、大量の三角形の集合を入力として管理するようには設計されておらず、三角形が細分化を必要としない場合であっても、三角形を処理する際に、顕著なオーバーヘッドを引き起こす。同時に、これらのアーキテクチャのジオメトリステージは、ポリゴンを破棄または通過させるとき、すなわちジオメトリの増幅が必須でないときに、非常に効率的である。通常のパイプラインの第１のパスでは、シーンジオメトリ（生データ）全体が処理されるが、テッセレーションのステージは無効になる。非標準三角形（Ｓ３２０）は、ジオメトリステージで検出され、通常の三角形が確率的にサンプリングされる間に、別のバッファに格納される（Ｓ５２０）。多数のマテリアルとテクスチャを有するシーンを管理するために、三角形ごとのマテリアルインデックスを格納し、後続のパスで、マテリアルまたはテクスチャ・アトラスから情報を取得するのに使用してもよい。
【００９３】
グラフィック・ライブラリは、描画演算を最適化する機能を提供する。例えば、ＯｐｅｎＧＬの「ｇｌＤｒａｗＡｒｒａｙＩｎｄｉｒｅｃｔ」機能を用いれば、通常のものではない三角形が格納されている非標準バッファが、以降、ＣＰＵ同期なしで、第２のパスの入力ジオメトリとして直接使用される。テッセレーションステージは、この特定のパスについてのみ起動され、それらの面積が通常のパイプラインによって処理されるのに十分に小さくなるように三角形を細分化する（Ｓ３２２）のに使用される。一般に、大きな三角形の数は、三角形の合計数に対し、比較的小さい。その結果、非標準バッファの充填および頂点処理によって引き起こされるオーバーヘッドは無視できる。
ＶＰＬサポート関数（ｆk）kはできるだけ滑らかにすることができる。これにより、各フレームにおいて、高周波アーチファクトのない視覚的に妥当な描画をもたらすことができる。しかしながら、上述のグローバルで一様な変数ｕ＿ｒａｎｄを用いると、同じシーンについて独立した多くの描画を生成することは容易である。さらに、各三角形について、ｕ＿ｒａｎｄから２つの新しい独立した乱数値を簡単に導き出すことができる。これらの値は、式６で定義されたＶＰＬの中心ｙiを三角形ｔiに対して変動させるのに用いられる。
次いで、変動するＶＰＬを用いてこれらの描画のすべてを平均化することにより、式９は、拡散リフレクタで構成されるサーフェス上での第１の反射出射放射輝度の算出を可能にする結果を提供し、間接視界を無視する。これは間接照明が、あらゆるシーンの三角形上への統合によって算出されることを意味するが、本方法のこの進歩的なバージョンでは、任意の種類の乱れたジオメトリ（例えば、通常のマッピングやアルファテストされたもの）を管理することができ、また、放射テクスチャジオメトリを管理するために拡張することもできる。
【００９４】
間接照明をシミュレートするためにＶＰＬ寄与度を合計する方法は、前の説明とは関係しない。したがって、シンプルなパイプラインを維持するために、ＳＡＩＴＯ，Ｔ．，  ＡＮＤ  ＴＡＫＡＨＡＳＨＩ，Ｔ．１９９０．Ｃｏｍｐｒｅｈｅｎｓｉｂｌｅ  ｒｅｎｄｅｒｉｎｇ  ｏｆ  ３−ｄ  ｓｈａｐｅｓ．ＡＣＭ  ＳＩＧＧＲＡＰＨ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，ｖｏｌ．２４，ＡＣＭ，１９７―２０６で論じられている遅延照明と同様のスプラッティング戦略を用いてもよい。特に、これにより、ジオメトリの間引き、ＶＰＬ生成、ライティングを１つのシェーダプログラムで管理できる。実際には、ジオメトリ・シェーダは、三角形が非標準であるかどうか、および、どれが生成されたＶＰＬのレベルであるかを判断する以外に、基になるＶＰＬスクリーン空間関数サポートを含むサイズ指定されたポイントプリミティブの入力三角形を変換するのに用いることができる。結果として生じる信号をアンダーサンプリングすることが、良好な最適化である可能性がある。これを行うために、ビューポートは４Ntiling levelのタイルに分割され、ビューポート内の各画素に対し、同じ相対位置に、一意なタイル画素を割り当てる。この技術は、しばしばインターリーブサンプリングと呼ばれる（ＫＥＬＬＥＲ，Ａ．，ＡＮＤ  ＨＥＩＤＲＩＣＨ，Ｗ．２００１．Ｉｎｔｅｒｌｅａｖｅｄ  ｓａｍｐｌｉｎｇ．Ｓｐｒｉｎｇｅｒ）。次に、スプラッティング時に、ＶＰＬごとにランダムにタイルを選択し、タッチした画素数を４Ntiling levelで除算する。画像は、バッファを非タイル化し、発生したノイズを除去するためにぼかすことによって、再構成される。
【図１】
2017199354.tif 000069
【図２】
2017199354.tif 000070
【図３】
2017199354.tif 000071
【図４】
2017199354.tif 000072
【図５】
2017199354.tif 000073
【図６】
2017199354.tif 000074
【図７】
2017199354.tif 000075
【図８】
2017199354.tif 000076
【図９】
2017199354.tif 000077
【図１０】
2017199354.tif 000078
【図１１】
2017199354.tif 000079
【図１２】
2017199354.tif 000080
【外国語明細書】
2017199354.tif 000081
2017199354.tif 000082
2017199354.tif 000083
2017199354.tif 000084
2017199354.tif 000085
2017199354.tif 000086
2017199354.tif 000087
2017199354.tif 000088
2017199354.tif 000089
2017199354.tif 000090
2017199354.tif 000091
2017199354.tif 000092
2017199354.tif 000093
2017199354.tif 000094
2017199354.tif 000095
2017199354.tif 000096
2017199354.tif 000097
2017199354.tif 000098
2017199354.tif 000099
2017199354.tif 000100
2017199354.tif 000101
2017199354.tif 000102
2017199354.tif 000103
2017199354.tif 000104
2017199354.tif 000105
2017199354.tif 000106
2017199354.tif 000107
2017199354.tif 000108
2017199354.tif 000109
2017199354.tif 000110
2017199354.tif 000111
2017199354.tif 000112
【図１】
2017199354.tif 000113
【図２】
2017199354.tif 000114
【図３】
2017199354.tif 000115
【図４】
2017199354.tif 000116
【図５】
2017199354.tif 000117
【図６】
2017199354.tif 000118
【図７】
2017199354.tif 000119
【図８】
2017199354.tif 000120
【図９】
2017199354.tif 000121
【図１０】
2017199354.tif 000122
【図１１】
2017199354.tif 000123
【図１２】
2017199354.tif 000124