(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022151742
(43)【公開日】2022-10-07
(54)【発明の名称】画像レンダリング方法及び装置
(51)【国際特許分類】
G06T 15/06 20110101AFI20220929BHJP
【FI】
G06T15/06
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022042215
(22)【出願日】2022-03-17
(31)【優先権主張番号】2104113.2
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】GB
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】アンドリュー ジェイムズ ビゴス
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA18
5B080DA06
5B080FA02
5B080FA08
5B080GA06
(57)【要約】 (修正有)
【課題】仮想シーンのレンダリング方法を提供する。
【解決手段】方法は、複数のIDそれぞれに関連付けられたシーンの要素を識別するそれぞれのマスクを生成するステップと、結果として得られた複数のマスクに対して、それぞれのマスクを複数のタイルに分割するステップ及び如何なる画像要素も識別しないタイルを破棄するステップと、結果として生じる複数の残りのタイルについて、複数の機械学習モデルの中からそれぞれの訓練済み機械学習モデルを選択するステップと、それぞれの学習済み機械学習モデルを使用して、それぞれのタイルにおける識別された要素についての少なくとも入力データに基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成するステップと、を備える。
【選択図】
図10
【特許請求の範囲】
【請求項1】
仮想シーンの画像レンダリング方法であって、
複数のIDについて、
それぞれのIDに関連付けられたシーンの要素を識別するそれぞれのマスクを生成するステップと、
前記結果として生じる複数のマスクについて、
それぞれのマスクを複数のタイルに分割するステップと、
如何なる画像要素も識別しないタイルを破棄するステップと、
前記結果として生じる残りの前記複数のタイルについて、
複数の機械学習モデルの中からそれぞれの訓練済み機械学習モデルを選択するステップであって、前記それぞれの機械学習モデルは、前記それぞれのタイルが分割されたマスクにおいて識別される要素と同じそれぞれのIDに関連付けられた前記シーンの要素に基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成するように訓練されている、ステップと、
前記それぞれの訓練された機械学習モデルを使用して、前記それぞれのタイルの前記識別された要素についての少なくとも入力データに基づいて、前記画像の少なくとも一部のレンダリングに寄与するデータを生成するステップと、
を含む、画像レンダリング方法。
【請求項2】
前記タイルのサイズは、処理ハードウェアの能力に応じて選択される、請求項1に記載の画像レンダリング方法。
【請求項3】
複数のそれぞれの訓練済み機械学習モデルによって、タイルのバッチが並列に処理される、請求項1または2に記載の画像レンダリング方法。
【請求項4】
前記バッチのサイズは、処理ハードウェアの能力に応じて選択される、請求項3に記載の画像レンダリング方法。
【請求項5】
前記それぞれの訓練された機械学習モデルは、
i.前記それぞれのタイルにおいて識別された要素のみについての入力データと、
ii.それぞれのタイル全体に対する入力データと、
からなるリストから選択された1つに基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成する、請求項1から4のいずれか1項に記載の画像レンダリング方法。
【請求項6】
前記それぞれの訓練された機械学習モデルは、前記それぞれのタイルにおける前記識別された要素が占有基準を満たすか否かに応じて、前記それぞれのタイルにおける前記識別された要素についてのみの入力データに基づいて、または前記それぞれのタイル全体についての入力データに基づいて、前記画像の少なくとも一部のレンダリングに寄与するデータを生成する、請求項1から5のいずれか1項に記載の画像レンダリング方法。
【請求項7】
前記生成されたデータは、仮想環境のそれぞれの部分と光の相互作用を特徴付ける分布関数とを結合したときに、前記仮想環境のそれぞれの部分を含むレンダリング済み画像の画素に対応する画素値を生成する係数を含む、請求項1から6のいずれか1項に記載の画像レンダリング方法。
【請求項8】
それぞれの訓練済み機械学習システムが前記画像の複数の寄与構成要素のそれぞれについて訓練され、
それぞれの分布関数が前記画像の前記複数の寄与構成要素のそれぞれについて使用され、
前記それぞれの生成された画素値は、表示のための前記レンダリング済み画像に組み込まれる最終的な結合画素値を作成するように結合される、請求項7に記載の画像レンダリング方法。
【請求項9】
前記要素の材料プロパティは、前記それぞれのIDを参照して得られることができ、
前記それぞれのIDに対応する少なくとも第1のそれぞれの分布関数は、
i.分布関数をストレージから取り出すステップと、
ii.データを生成するために少なくとも第1のそれぞれの訓練済み機械学習モデルを使用することと並行して前記分布関数を計算するステップと、
からなるリストから選択される1つによって取得される、請求項7または8に記載の画像レンダリング方法。
【請求項10】
前記それぞれの訓練済み機械学習システムは、ニューラルネットワークであり、
前記ニューラルネットワークの第1の部分への入力は、前記仮想環境内の要素の位置を含み、
前記ニューラルネットワークの第2の部分への入力は、前記第1の部分の出力と、前記レンダリング済み画像の前記少なくとも一部の前記視点に基づく方向と、を含む、請求項1から9のいずれか1項に記載の画像レンダリング方法。
【請求項11】
コンピュータシステムに請求項1から10のいずれか1項に記載の方法を実行させるように適合されたコンピュータ実行可能命令を含む、コンピュータプログラム。
【請求項12】
仮想シーンの画像をレンダリングするように動作可能なエンターテインメントデバイスであって、
複数のIDに対して、それぞれのIDに関連付けられた前記シーンの要素を識別するそれぞれのマスクを生成するように適合されたマスクプロセッサと、
結果として生じる前記複数のマスクに対して、それぞれのマスクを複数のタイルに分割し、如何なる画像要素も識別しないタイルを破棄するように適合されたタイルプロセッサと、
結果として生じる残りの前記複数のタイルについて、複数の機械学習モデルの中からそれぞれの訓練済み機械学習モデルを選択するように適合された選択プロセッサであって、前記それぞれの機械学習モデルは、前記それぞれのタイルが分割された前記マスクにおいて識別された前記要素と同じ前記それぞれのIDに関連付けられた前記シーンの要素に基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成するように訓練されている、選択プロセッサと、
少なくとも前記それぞれのタイルにおける前記識別された要素についての入力データに基づいて、前記それぞれの訓練済み機械学習モデルを使用して、前記画像の少なくとも一部のレンダリングに寄与するデータを生成するように適合されたレンダリングプロセッサと、
を含む、エンターテインメントデバイス。
【請求項13】
i.前記タイルのサイズと、
ii.複数のそれぞれの訓練済み機械学習モデルによって並列に処理されるタイルのバッチのサイズと、
からなるリストの中から、その処理ハードウェアの能力に応じて1つまたは複数が選択される、請求項12に記載のエンターテインメントデバイス。
【請求項14】
前記それぞれの訓練済み機械学習モデルは、
i.前記それぞれのタイルにおける前記識別された要素についてのみの入力データと、
ii.前記それぞれのタイル全体についての入力データと、
からなるリストから選択される1つに基づいて、前記画像の少なくとも一部のレンダリングに寄与するデータを生成する、請求項12または13に記載のエンターテインメントデバイス。
【請求項15】
前記レンダリングプロセッサは、前記それぞれのタイルにおける前記識別された要素が占有基準を満たすかどうかに応じて、前記それぞれのタイルにおける前記識別された要素についてのみの入力データに基づいて、または前記それぞれのタイル全体についての入力データに基づいて、前記それぞれの訓練済み機械学習モデルが前記画像の少なくとも一部のレンダリングに寄与するデータを生成するか否かを選択するように適合される、請求項12から14のいずれか1項に記載のエンターテインメントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像レンダリング方法及び装置に関する。
【背景技術】
【0002】
レイトレーシングは、光路が仮想シーン内で追跡されるレンダリング処理である。シーン内のオブジェクト又は表面での各光線の相互作用が次にシミュレートされる。リアリズムの度合いを達成するために、典型的には、このシミュレーションは、色及び反射率など、これらのオブジェクト又は表面の素材プロパティを考慮する。
【0003】
その結果、レイトレーシングは計算コストの高いプロセスである。さらに、そのコストは、どのシーンに、どの照明で、どの視点から光を当てるかによって、画像フレーム毎に変化する。
【0004】
これは達成することが困難なそのような画像をレンダリングするために好ましいフレームレートを維持させ、平均の画像完成時間(すなわちフレームレート)に対応する平均的な計算コストとレイトレーシングによるその平均値付近の所定の変動とに対して、変動がフレームレートにほとんど影響しない程度に平均画質を低く設定しなければならないか、または平均画質を好ましいフレームレートの最大値に近く設定した場合にレイトレーシングの需要が平均よりも変動したときにそのフレームレートの一貫性を犠牲にしなければならない。
【0005】
どちらも望ましい結果ではないが、レイトレーシングの処理の計算負荷がデータ駆動で予測不可能である以上、簡単に回避することはできない。
【0006】
本発明は、この問題を対処又は緩和しようとする。
【発明の概要】
【0007】
本発明の様々な態様及び特徴は、添付の特許請求の範囲において及び付随する説明のテキスト内で定められ、少なくとも、
-第1の例における、請求項1に係る画像レンダリング方法と、
-第2の例における、請求項12に係るエンターテインメントデバイスと、
を含む。
【0008】
本開示およびそれに付随する利点の多くについてのより完全な理解は、添付の図面と関連して考慮した場合に、以下の詳細な説明を参照することによってよりよく理解されるようになるにつれて、容易に得られるであろう。
【図面の簡単な説明】
【0009】
【
図1】本明細書の実施形態に係るエンターテインメントデバイスの模式図である。
【
図2】本明細書の実施形態に係るレイトレーシング済みのオブジェクトを例示す図である。
【
図3】本明細書の実施形態に係るレイトレーシング済みのオブジェクトに対する寄与構成要素の模式図である。
【
図4】本明細書の実施形態に係る個々の構成要素に関連付けられた分布関数の模式図である。
【
図5】本明細書の実施形態に係る散乱分布の模式図である。
【
図6】本明細書の実施形態に係る機械学習システムに関する訓練スキームの模式図である。
【
図7】本明細書の実施形態に係るレンダリング済みの画像に関するレンダリング経路の模式図である。
【
図8】本明細書の実施形態に係る機械学習システムの模式図である。
【
図9】本明細書の実施形態に係る画像レンダリング方法のフロー図である。
【
図10】本明細書の実施形態に係る画像レンダリング方法のフロー図である。
【
図11】本明細書の実施形態に係る訓練セットを生成する方法の模式図である。
【
図12】本明細書の実施形態に係るタイルを生成する方法の模式図である。
【発明を実施するための形態】
【0010】
画像レンダリング方法および装置が開示されている。以下の説明では、本発明の実施形態を十分に理解するために、多くの具体的な詳細が示される。しかしながら、これらの具体的な詳細は、本発明を実施するために採用する必要がないことは、当業者には明らかであろう。逆に、当業者に知られている具体的な詳細は、適切な場合には、明確化のために省略される。
【0011】
本明細書の実施形態は、所与のオブジェクトまたはシーンについて画素表面プロパティとレンダリング済み画素との間の関係を学習する機械学習システムを用いることによって、上記の問題に対処または軽減しようとするものである。このような機械学習システムを用いることによって、次に、(機械学習システムを実行することの)比較的一貫した計算バジェット(computational budget)に基づいてオブジェクトまたはシーンのレイトレーシング済みのレンダリングを近似的に行うことが可能である。
【0012】
異なる機械学習システムは、本明細書で後ほど説明するように、異なるシーン、場所若しくはその一部、または1つまたは複数のシーン内で使用するための異なるオブジェクト若しくは材料について学習されることができる。
【0013】
機械学習システムは比較的小さく(通常100KBから1MBのオーダー)、そのためGPU(30)で実行する目的で、シーンのテクスチャのようにメモリに引き込まれ、その後捨てられ得る。システムは、GPUのシェーダによって実行されることができる。また、原理的には、機械学習システムは、代替的にまたは追加的に、CPU(20)、またはニューラルネットワークプロセッサ若しくはASICなどの一般的若しくは専門的なコプロセッサによって実行できることが理解されるであろう。
【0014】
次に、図面を参照すると、同様の参照符号は、いくつかの図全体を通して同一または対応する部分を示し、
図2~7は、機械学習システムが訓練される問題空間を示す図である。
【0015】
図2は、例示的なオブジェクトまたはシーン、この場合、ひな壇上の車の高品質にレイトレーシング済みのレンダリング200である。
【0016】
図3は、このレンダリングの背後にある異なる寄与構成要素(contributing component)を示す図である。第1に、拡散照明構成要素200-Dは、通常、表面のマットカラーと、光及び形状の相互作用によって生じるシェーディングとをキャプチャする。一方、第2に、鏡面照明構成要素200-Sは、表面の反射率をキャプチャし、結果として、きらめき及びハイライトをもたらす。任意選択で、光沢または「コート」200-Cなど、1または複数の追加構成要素を含むことができ、これは追加の光沢またはパターニングを含む第2の外面である。このようなコートの変化形は、例えば、皮膚又は布に類似した方法で、部分的な透明及び/又は部分的な拡散を可能にし得る。これらの構成要素のそれぞれは、個々のレイトレーシング処理を用いて従来通り生成されることができる。
【0017】
これらの構成要素が加算されて、先に
図2で見たような全体像が形成される。典型的には2つまたは3つのこのような構成要素がレンダリングに寄与するが、状況によっては、より少ない数(例えば、拡散構成要素だけが望まれる場合)またはより多い数(例えば、オブジェクトが半透明であるため透過構成要素を必要とする場合)があることを理解されるであろう。
【0018】
次に、
図4は、画像の上記寄与構成要素を生じさせるオブジェクトの材料プロパティを含む。
【0019】
材料プロパティは、いわゆる双方向散乱分布関数(BSDF)または双方向反射率分布関数(BRDF)として表される。
【0020】
BRDFは不透明な表面で光がどのように反射するかを定義し、同様にBSDFは光線が特定の方向に反射または散乱する確率を定義する。したがって、BRDFまたはBSDFは、表面の照明プロパティ(入射/出射放射輝度そのものを除く)を記述する関数である。また、光が材料をどのように透過するかを定義する双方向透過率分布関数(BTDF)など、他の関数も適宜使用され得る。
【0021】
図5を参照すると、典型的なレイトレーシングのアプリケーションでは、一組の光線(例えばコンパクトな光源からの)に対して、特定のBSDF、BRDF、および/またはBTDFを有するモデル上の点への入射放射輝度(それ自体は直接または以前に反射したもの)の計算が行われる。入射放射輝度は、特定の寄与構成要素の応答に関してBSDF、BRDF、またはBTDFと結合(combined)され(例えば乗算)、その結果がモデル上のその点の画素値に加算される。
図5に示すように、BSDFにおける光線経路ωiの典型的な散乱パターンは、鏡面反射方向ωaに偏りを持つが、どの方向にも散乱し得る。このような挙動を正確にモデル化することは、レイトレーシングの計算コストが高くなる理由の一つである。
【0022】
それぞれの点におけるモデルの色情報と(すなわち、所定の点によって表される特定の材料について)その点に対応するBSDF、BRDF及び/又はBTDFとを用いて、所定の最終視点に対する光線の挙動は、したがって、例えば車両の表面上のきらめき及びハイライトの現実的な分布を決定する光線反射率又は散乱によって、計算されることができる。
【0023】
別個のBSDF、BRDFまたはBTDFが各寄与構成要素に対して使用されてもよい。したがって、非限定的な例として、BSDFが拡散構成要素に対して使用され、BRDFが鏡面構成要素に対して使用され及びこの例ではコート構成要素に対しても(BTDFがまたそのようなコート構成要素に対して使用され得るが)使用され得る。BSDF、BRDF、又はBTDFのいずれかが適宜使用され得ることが理解され、したがって、以下では、BSDFへの言及は、特に断らない限り、適宜のBRDF又はBTDFへの言及を包含する。
【0024】
図4に示すように、オブジェクトの色プロパティおよびBSDFの拡散材料プロパティを用いてレイトレーシングを実行すると(200-BSDF-D)、拡散画像構成要素200-Dが得られる。同様にBSDFの鏡面または反射材料プロパティ(200-BSDF-S)を使用すると、鏡面画像構成要素200-Sが得られる。同様にBSDF(200-BSDF-C)の材料プロパティ、この場合も典型的には鏡面であり、コート画像構成要素200-Cが得られる。これらの構成要素を結合することにより、最終的なレイトレーシング画像200が得られる。
【0025】
しかしながら、問題は、先に述べたように、異なるBSDFを有する異なる表面と交差する光線の反射および散乱経路を計算し、特定の視点におけるシーンの各画素について結果を合計することは、計算上高価であり、また潜在的に非常に変動しやすいということである。
【0026】
したがって、本明細書の実施形態は、
図4のレイトレーシングステップを、適切な品質の最終画像に対してより予測可能な計算負荷を有する何か他のものと置き換えることを求める。
【0027】
ここで
図6も参照すると、本明細書の実施形態では、画像の各寄与構成要素(例えば、拡散、鏡面、及び任意選択でコート又は他の任意の寄与構成要素)に対して、それぞれの機械学習システムが提供される。
【0028】
機械学習システムは、典型的には、本明細書で後述するように、シーン内の異なる視点における複数の画像について、BSDF(例えば200-BSDF-D)と画像の寄与構成要素のレイトレーシング済みのグランドトゥルース(例えば200-D)との間の変換を学習するように訓練されるニューラルネットワークである。
【0029】
別の言い方をすれば、レイトレーシング済みの画像(又は寄与構成要素の1つ)が、照明がオブジェクト上でどのように再生するかと、そのオブジェクトが光にどのように反応するかを記述するBSDFとの組み合わせである場合、レイトレーシング済みの画像を取ってそれをBSDFと結合解除する(uncombine)ことによって、結果は、「放射輝度(radiance)」又は「シェーディング」と呼ばれ得る品質となるが、より一般的には光が(レイトレーシング処理によって集合的に計算される)オブジェクト上でいかに再生するかを説明するものである。
【0030】
機械学習システム又はニューラルネットワークがこの品質を予測することを学習できる場合、レイトレーシング済みの画像に近似する予測画像を生成するために、BSDFと再び結合させることができる。したがって、このネットワークは、ニューラル・プリコンピューテッド・ライト・モデルまたはNPLMネットワークと呼ばれることがある。
【0031】
より具体的には、オブジェクトの仮想画像上の所与の位置、及びビューの方向について、機械学習システム又はニューラルネットワークは、その同じ位置/画素についてBSDFと結合されると、その画素における画像のレイトレーシングから生じるであろうものと同様の画素値をもたらす値を出力することを学習しなければならない。その結果、学習中に、訓練画像から示唆される照明条件(例えば、点光源又はスカイドームによる)および表面照明プロパティの内部表現を生成する。
【0032】
したがって、例示的な実施形態において、画像は、ラスタライズされるか、さもなければ、所定の視点において生成され、これは、次に照明されるべき画素で画像を埋めることになるであろう。これらの想定画素の各々について、NPLMネットワークを使用して適切な「輝度」または「シェーディング」を得ることができるシーン内の対応する3D位置が存在する。
【0033】
図6は、このようなネットワークのための学習環境、具体的には例としてのみ、拡散寄与構成要素のためのネットワーク600-Dを示す。
【0034】
拡散寄与構成要素のためのネットワークへの入力は、物体又はシーン上の(x,y,z)位置610(例えば画像内の画素に対応する)及びその点における物体/シーンの法線620である。法線Nを視点方向の代わりに使用するのは、拡散寄与構成要素については、照度は方向/視点に依存しないと考えることができるので、既知の値である法線を一貫性のために使用することができるためである。これらの入力を、本説明の例の自動車画像について、それぞれの代表的な値を用いて概念的に示したのが
図6である。
【0035】
任意選択で、関連するBSDFから導出され得る粗さ(roughness)又はマット-光沢スカラー値などの追加入力が提供され得る(図示せず)。
【0036】
NPLMネットワークの出力(本明細書で後に説明する)は、入力位置に対する光の学習済みの品質又は照度630であり、同じ位置に対する関連する拡散BSDF(200-BSDF-D)と640とを結合すると、予測画像650における(x,y)位置の予測画素値が生成される。
【0037】
図6は、予測画素と対象のレイトレーシング済み拡散構成要素200-Dのグランドトゥルース画素との間の画素毎の差がネットワークを訓練するための損失関数として使用されることを例示する。しかし、これは必要ではなく、むしろグランドトゥルース画像は、BSDFと結合解除され(すなわち、逆関数を行うことによって)、レイトレーシング済みの光が画像内のオブジェクトに累積的にどのように影響するかのプロキシを各(x,y)画素に対して生成し、これはネットワークが学習するために訓練する品質である。
【0038】
したがって、ネットワークの誤差関数は、その1画素(x,y)の出力値と、その位置の対応するBSDFから合成されない場合のグランドトゥルース画像の対応する1画素(x,y)との間の差に基づく。
【0039】
グランドトゥルース画像の画素は、予め各位置の対応するBSDFから一度結合解除されることができるため、ネットワークは、実際の予測画像画素を生成するために、自身の出力を任意のBSDFと結合する必要なく学習することができる。これにより、訓練時の計算負荷が軽減される。
【0040】
上述したように、訓練済みニューラルネットワークによって出力された学習済みの品質は、環境内の光が、シーン内の表面の位置に応じて、また視点に応じて、オブジェクトまたはシーンの上でどのように再生されるかをキャプチャする。このように、それは、シーンのための光マップ及び表面応答モデルの内部表現を効果的に生成する。これがどのように発生するかは、本明細書において後でより詳細に議論される。
【0041】
次に
図7を参照すると、最終出力画像の各寄与構成要素について要約すると、機械学習システムは、その寄与構成要素についてオブジェクト/シーン上の位置に局所的に適用されるBSDFに適用される変換を実行するように訓練される。この変換は、オブジェクト/シーン上の点の(x,y,z)位置及び方向値に基づく、訓練済み関数である。前述のように、最終画像の寄与構成要素の数に応じて、1つ、2つ、3つ、4つ、またはそれ以上の機械学習システムが採用され得る。以下、「訓練済み関数(trained function)」という用語は、このような変換を学習した機械学習システムを指すために使用され得る。
【0042】
拡散構成要素について注記したように、拡散シェーディングは方向不変であると仮定されるため、方向値は所与の点における法線に等しいと仮定することができる。
【0043】
一方、少なくとも部分的に反射するため視点によって変化することになる鏡面構成要素について、方向値は、画像の視点における現在の画素の(x,y)位置(これは仮想空間における位置を有する)と機械学習システムへの入力としてのオブジェクトの(x,y,z)位置との間の視角であるかまたはこれに基づき、それによってシーン表面上の入力点と学習された量(learned quantity)が出力されることになる現在の画素との間に視点依存関係を提供する。
【0044】
この場合、コート構成要素も鏡面であるため、同様の視点または同様に入力に関する方向に基づく視点を使用する。
【0045】
従って、方向依存構成要素の方向値は、出力画素位置と物体表面位置との間の視点方向、またはこれに基づく値、例えば表面鏡面視点方向(すなわち、入力位置における表面の法線を考えると、視点方向が反射する主方向)であり得る。視点方向の情報を取り入れた任意の適切な方向値を考慮することができる。
【0046】
各場合において、訓練済み関数は、本明細書で先に説明したように、学習された品質(learned quality)をカプセル化する。適切なBSDFを各位置のネットワーク出力と結合することで、各構成要素のシェーディング済み画像を構築することができる。代替的に又は追加的に、各構成要素からのシェーディング済み画像について画素値を結合することにより、最終的な出力が生成される。
【0047】
画像のレンダリング中に、画像の全てがレイトレーシングの対象となるとは限らず、同様に、画像の全てが上記の技術を使用して生成されるとは限らないことが理解されよう。例えば、NPLMネットワークは、代表的な照明を有するグランドトゥルースのレイトレーシング済み画像に基づいて、特定のオブジェクト又は材料に対して訓練され得る。
【0048】
これらのオブジェクト又は材料が、本明細書に記載される訓練済み関数によって提供される見かけのレイトレーシングを使用してその後リアルタイムでレンダリングされるとき、関連するNPLMネットワークは、メモリにロードされ、適切なBSDFと結合されたとき、シーンにおける関連の表面位置及び視線方向について実行され、関連する画素へのそれらの寄与を生成する。他の画素は、他の任意の適切な技術(レイトレーシング自体を含む)を使用してレンダリングされ得る。
【0049】
典型的には、適切な機械学習システムは、オブジェクトまたは材料のテクスチャを選択しロードするために使用される同じアセット識別スキームに基づき、GPUによって使用されるメモリに選択されロードされる。したがって、例えば、オブジェクトが関連付けられたテクスチャにアクセスするために使用されるID「1234」を有する場合、このIDは関連する機械学習システムにも関連付けられることができる。逆に、テクスチャがオブジェクトに関連付けられたID「5678」を有する場合(例えば、テクスチャが複数のオブジェクトに共通の材料を表す場合)、このIDは関連する機械学習システムとも関連付けられることができる。このようにして、エンターテインメントデバイスは、テクスチャをロードするのと同様のプロセスを使用して、機械学習システムをロードすることができる。テクスチャが解凍された機械学習システムの動作に影響を与える非可逆圧縮で格納される場合、実際の格納およびアクセス技術は、テクスチャと機械学習システムとの間で異なる場合があることが理解されよう。したがって、機械学習システムは、圧縮なしで、または可逆圧縮を使用して、または損失の程度が解凍された機械学習システムがまだ適切に動作するのに十分低い非可逆圧縮を使用して格納されてもよい。これは、機械学習システムの出力エラー/コスト関数を、圧縮の損失の漸増度について、エラーが絶対または相対(圧縮されていない機械学習システムに対して)品質閾値に達するまで比較することによって評価されることができる。
【0050】
ここで
図8を参照すると、本明細書の実施形態において、機械学習システムまたはNPLMネットワークは、任意の適切な機械学習システムであり得る。したがって、例えば単一のニューラルネットワークが、入力として位置および視点方向を使用して訓練され、出力として学習されたプロパティに対するRGB値を生成し得る。
【0051】
しかしながら、特に有利なネットワークは、明確な分割アーキテクチャから構成される。
【0052】
図8に示すように、非限定的な例では、ネットワークは2つの部分から構成される。第1の部分は位置ネットワークと考えることができ、一方、第2の部分は方向ネットワークと考えることができる。
【0053】
これらのネットワークの各々は、3つ以上の層を有し、任意の適切な活性化関数を使用し得る。
【0054】
位置ネットワークは、オブジェクト/シーン内の点に対する既述の(x、y、z)位置を入力として受け取り、本明細書で後述する中間表現を出力する。
【0055】
方向ネットワークは、この中間表現と、例えば(θ、φ)形式で、又は正規化(x、y、z)ベクトルなどのような方向入力(例えば、法線、又は画素視点、画素の視点方向を映した表面点(surface point mirrored pixel viewpoint direction)若しくは他の視点ベースの方向値)と、を受信する。オブジェクト/シーンと共有される空間内の仮想カメラ位置からレンダリングされる画像内の現在の画素の(x,y)位置(したがって、画素視点)に対して、先に述べた学習された量に対応するRGB値を出力する。
【0056】
したがって、非限定的な例では、位置ネットワークは3層を有し、第1層に3入力ノード(例えばx,y,z位置のための)、中間層に128の隠れノード、最終層に8の出力がある。
【0057】
ネットワークには任意の適切な活性化関数を選択することができるが、位置ネットワークの層間の活性化関数として、整流線形ユニット(ReLU)関数が特に有効であると評価された。これは、未訓練の位置に対してよく汎化し、オーバーフィッティングを回避するのに役立つ。
【0058】
同様に非限定的な例では、方向ネットワークは4つの層を有し、位置ネットワークの8の出力と方向に対する2または3の追加値は、第1の層の128のノードに供給され、次に128のノードの2つのさらなる層に供給され、現在の画素における学習された量に対するR、G、B値に対応する最後の層の3の出力が出力される。これはその後、この訓練済み関数(例えば、拡散、鏡面など)からの最終的な画素寄与を得るために、その位置のBSDFと結合する(例えば、乗算する)ことができるが、前述のようにこれは訓練中に必要ではない。
【0059】
方向ネットワークのために任意の適切な活性化関数が選択され得る一方で、正弦関数(sine function)は方向ネットワークの層間の特に効果的な活性化関数として評価されている。角度領域における光挙動変動は大きく、多くの角度周波数における詳細を含むが、低次元の入力(例えば、正規化されたx,y,zベクトル)に基づくため、正弦活性化関数は特に良好であることが判明している。
【0060】
注目すべきは、したがって、ネットワークの2つの半分が、異なる活性化関数を使用してもよいことである。
【0061】
しかし、ネットワークは、2つの別々のネットワークとしてではなく、分割アーキテクチャネットワークとして扱われる。なぜなら、特に、学習スキームは、1つのコスト関数しか持たないからである。方向ネットワークによって出力されたRGB値と、適切なBSDFと結合されない後の、グランドトゥルースのレイトレーシング済み画像の対応する画素からの目標値との間の誤差である。
【0062】
この誤差は両方のネットワークを通じて逆伝播され、位置ネットワークには個別の目標値またはコスト関数は存在しない。したがって、実際には、位置ネットワークの出力層は、方向値の追加入力で補強された結合ネットワークの隠れ層であり、層内で第1の活性化関数から可能な第2の異なる活性化関数への移行を表す。
【0063】
前述のように、ニューラルネットワークは、照明されたオブジェクト、材料、またはシーンに対する光モデルを構築する。特に、上記の非限定的な例では、位置ネットワークは、(x、y、z)位置を照明タイプ(例えば、明るいまたは暗い、及び/または相対反射率または拡散など、光がそれぞれのBSDFとどのように相互作用するかに関連する他のカテゴリー)に有効にソートする。この部分によって出力される中間表現は、入力位置における光のタイプを特徴付ける照明空間におけるN次元位置として考えることができ、シーンの異なる部分における位置を、それが同じ方法で照明された場合に同じN次元位置に投影することになる。鏡面構成要素用に訓練された位置ネットワークは、拡散構成要素用のものよりも多くの出力、例えば、鏡面構成要素で発生し得る照明のタイプのより大きな変動を考慮するために、8に対して32の出力を有し得る。
【0064】
次に、方向ネットワークは、照明されたオブジェクト、材料、又はシーンについて、ある入力角度で入力位置の表面で見たときに光モデルがどのように振る舞うかをモデル化し、画像内のその位置について学習されたプロパティを生成する。
【0065】
したがって、要約すると、位置及び方向ネットワークは、表面プロパティを記述するBSDFとその表面の所望のレンダリング画像との間の係数または変換を予測するための1つとして一緒に訓練される。そして、このネットワークは、その表面のレンダリングのためのレイトレーシングの代わりに使用することができる。典型的には、必ずしもそうではないが、ネットワークは、鏡面構成要素の拡散など、画像の1つの寄与構成要素だけで訓練され、複数のネットワークが最終画像または画像部分に必要な構成要素を生成するために使用されるが、これは必要ではない(すなわち、原理的には、ネットワークは、完全に結合された画像または2以上の寄与構成要素の結合、例えば全ての鏡面または全ての拡散寄与で訓練されることが可能である)。
【0066】
訓練
ネットワークは、複数の異なる視点から撮影されたオブジェクト、シーン、又は表面の複数のレイトレーシング済み画像を用いて、本明細書の他の箇所で説明したように訓練される。これにより、ネットワークは、鏡面反射が位置によってどのように変化するかについて特に学習することができる。視点は、ランダムな分布であってもよく、及び/又は、例えば、ビューのボリューム、すなわち、視点が発生し得る空間のボリュームとして知られる、レンダリング環境をナビゲートする際にユーザが利用できる視点の範囲内から選択(又は優位に選択)されてもよく、したがって、訓練に含まれる必要があるであろう。
【0067】
本明細書の一実施形態では、訓練データは、以下のように生成され得る。
【0068】
任意の機械学習システムにとって、システムを訓練するために使用される訓練データは、その性能の鍵となり得ることが理解されよう。その結果、良好な性能につながる訓練データを生成することは、非常に有益である。
【0069】
本明細書の他の場所で説明したように、本明細書で説明するNPLMシステムのための訓練データは、シーン/オブジェクト/材料/表面(以下、一般的にシーンと呼ぶ)の高品質のレンダリング済み画像のセットに基づき、典型的には1または複数の関連分布関数(例えば、BSDF、BRDF、または本明細書の他の場所で説明されるような同種のもの)と結合解除される。その結果、本明細書で言及される学習された品質は、直接的な訓練ターゲットとして提供され、訓練中に予測画像を生成する計算上の負担を取り除き、また誤差関数がNPLM自体の出力から一度に派生しないことを保証することが可能である。
【0070】
異なるNPLMは、ビュー依存およびビュー独立のシェーディング効果(例えば、拡散、鏡面など)を取り扱うことができる。したがって、典型的には、オブジェクトがビュー依存シェーディング(例えば、鏡面性、またはミラー反射など)を有する場合、シーン内のオブジェクトの単一のビューでは不十分である。
【0071】
その結果、訓練データ画像の数及び位置は、シーンのジオメトリ(例えば、オブジェクトがビューのボリューム内で可視である場合)だけでなく、潜在的に、シーン内のオブジェクトの材料プロパティにも依存し得る。
【0072】
したがって、本明細書の実施形態では、複数のカメラ視点で撮影されたシーンの画像の形態のNPLM訓練データは、少なくとも部分的に、シーン内の材料(例えば、拡散または鏡面応答のような光応答プロパティなどの材料プロパティ、しかし潜在的には、表面の複雑さなどの他の材料プロパティ-例えば構造的におよび/または質感に狭いまたは広い空間周波数構成要素の存在)に基づいて生成されることが可能である。
【0073】
これらの画像は通常、サードパーティの高品質レンダリング部から生成され、内部データへのアクセスは利用できない。したがって、最終的な完全な画像のみが利用可能であり、画像内でシェーディングを実行する際の特定のキャスト光線またはその方向に関するいかなる情報(または制御)も利用できない場合がある。
【0074】
したがって、訓練の目的のために、ビューのボリューム内の好ましくは全ての有効なビューについて、シーンの外観を効率的にキャプチャする画像のセットを生成し、使用することが望ましい。
【0075】
ここで
図11を参照すると、この目的のために、ステップ1110において、まず、ビューのボリューム内のカメラ位置のセットが、低解像度画像のセットをレンダリングするために使用される。位置は、(操作可能なオブジェクトなど、任意の角度から見ることができる場合)シーンの周囲の球面上に等距離であるか、またはランダムに分布していてもよく、(仮想地面をベースにしているため下から見ることができない場合)シーンの周囲の半球上であっても、(地面ベースの視点、例えばアバターの一人称視点などから見ることができる場合)シーンの周囲のリング上であってもよい。このようなリングは、アバター視点に対応する固定高さであってもよいし、アバター視点のしゃがみ高さとジャンプ高さの1又は複数を包含する視円筒のような高さ範囲を占めるようにしてもよい。
【0076】
ステップ1110は、
図11に例示される車のオブジェクトの周りのカメラ位置の軌道(リング)を示す。
【0077】
この初期セットにおけるカメラ位置の数は、1つと少ないかもしれないが、典型的には3つ以上であり、より典型的には、数十または数百のオーダーである。例えば、軌道の1度につき1台のカメラであれば、360台のカメラとなる。本実施例では、非限定的な数として200台のカメラが使用される。
【0078】
画像当たりの解像度は低く、例えば128×84画素である。ステップs1120の画像例を示す。
【0079】
注目すべきは、各画像の各画素について、ステップs1130において、メタデータは、画素に対応するシーン表面の3D位置、画素に対応するシーン表面の法線、及び任意選択でテクスチャID又はオブジェクトIDなどの材料表面識別子又は記述子を含むそれに関連付けられることである。
【0080】
視点選択プロセスの第1の例において、これらの低解像度画像の一部又は典型的には全てにおける画素によってレンダリングされたシーン表面の3D位置は、シーン内のどの位置がカメラ位置の第1のセット内で可視であるかを識別するために照合される。これらは、NPLMが訓練されることによって恩恵を受ける3D位置である。
【0081】
したがって、任意選択で、最初の低解像度画像の少なくとも1つにおいてレンダリングされていると識別された各3D位置について、3D空間における新しい位置が表面法線に沿ったその位置からのオフセットとして計算される。表面からのオフセットの距離は、変更することができる変数である。この新しい位置は、高品質(例えば、高解像度レイトレーシング)レンダリングを生成するための仮想カメラの候補視点である。
【0082】
しかしながら、これは、訓練画像として生成するための多数の潜在的な高品質レイトレーシング済みのレンダリングをもたらし、これは計算上負担となり、またNPLMのための訓練セットとして使用する場合、著しい冗長性を含む場合がある。
【0083】
したがって、第一の例では、シーンに関するNPLMの訓練に関連し及び有用である何らかの方法で、これらの候補視点位置をフィルタリングまたはカリング(culling)することが望ましい。
【0084】
特に、ビュー依存材料(例えば、鏡面又は光沢)を含むシーンの部分について、ビュー独立材料(例えば、拡散又はマット)よりも多くの訓練例を有することが有益である。
【0085】
従って、2つのアプローチのうちの1つをとることができる。
【0086】
第1のアプローチでは、ステップ1140において、表面位置における法線に対応する候補視点の各々について、その位置における表面の対応する材料プロパティが検討される。上述したように、特にその拡散応答または鏡面応答、あるいはその半透明性などが使用され得る。
【0087】
実際には、材料ID等と材料表面の拡散性または鏡面性(例えばマットまたは光沢)を示す値とを関連付けたルックアップテーブルを使用することにより行うことができる。より詳細には、このプロパティは、非限定的な例として、完全に拡散している場合の0から鏡面反射の場合の1までの範囲の値で表されることができる。これは確率関数への入力として扱うことができ、そのため、鏡面または光沢(ビュー依存)材料は比較的高い確率を有し、拡散またはマット(ビュー独立)材料は比較的に低い確率を有する。
【0088】
この確率関数を用いて、カメラ位置の候補を保持する。したがって、鏡面に面したカメラ位置は、拡散面に比べ、より高い割合で保持されることになる。
【0089】
逆に、値の規則が逆であれば(例えば、低い確率と高い確率が逆)、確率関数は、同じ効果でカメラ位置の候補を除去するために使用され得る。
【0090】
第2のアプローチでは、代替的に又は追加的に、ステップs1140において、低解像度画像で見たようなシーン表面の同じ3D位置に対応する画素値の変動が評価され、各キャプチャ済み3D位置の画素値の分散(variance)が決定され得る。この方法では、ビュー不変(例えば、拡散または大きく影になっている)の表面位置は低い分散を有する(すなわち、異なる低解像度画像においてその位置を示す画素は類似している)一方、ビュー依存(例えば、鏡面または光沢)表面位置は高い分散を有する(すなわち、例えば、光の輝きまたは反射をいくつかキャッチするので異なる低解像度画像においてその位置を示す画素はより幅広い値の範囲を示すことになる)。この分散、またはその正規化されたバージョンは、再び確率関数への入力として使用することができ、鏡面または光沢のある(ビュー依存)材料は比較的高い確率を有し、拡散またはマット(ビュー独立)材料は比較的低い確率を有するようにする。
【0091】
したがって、いずれの場合も、ステップs1140において、ビューのボリューム内の各キャプチャ済み3D位置における材料の光応答性のビュー依存性の推定値が得られ(材料プロパティ若しくは画素変動、又は潜在的にその両方に基づく)、これを確率関数への入力として使用することができる。
【0092】
確率関数は、次に、ステップs1150において、それぞれの候補視点が保持されるかまたはカリングされるかを決定するために使用され、ビュー依存の表面を中心とする視点は、ビュー独立の表面を中心とする視点よりもより頻繁に保持される。
【0093】
この確率関数の出力範囲は、可能な候補の元の数及び最終的な所望の数に基づいて、訓練のためのカメラ視点の所望の全体の数をほぼ生成するように調整されることができ、あるいは代わりに、確率関数は、残りのカメラ視点の数が所望の数の閾値内になるまで保持/カリングの連続ラウンドに適用されることができる。
【0094】
いずれの場合においても、結果は所望のビューのボリュームにわたってランダムに分布する管理可能な数のカメラ視点であるが、カメラの前面に直ちに集中する材料の材料プロパティ(例えば、輝き又はその他)に反応する可変の確率密度を有するものである。これは、ステップs1150の図にある生存している点(surviving point)の集まり(constellation)によって例示される。実際には、カメラ位置は、この図に示されるよりも物体/シーン表面から遠く離れることができるが、点は、その分布を説明するために、図において表面の近くに配置されている。
【0095】
管理可能な数のカメラ視点の量は、結果として得られるNPLMの所望の性能、高品質のレイトレーシング済み画像を生成し、それに対してNPLMを訓練することの計算負荷、メモリまたはストレージ制約などの因子に基づいて選択することが可能である。訓練目的のための典型的な管理可能な数は、非限定的な例として、10~10,000であってよく、典型的な数は200~2000である。
【0096】
最後に、ステップs1160において、画像は、生存している視点においてレンダリングされる。任意選択で、
図11に示すように、これらのレンダリングは、最初の低解像度画像に使用されたレンズ又はゲームプレイ中に使用されたレンズよりも広角の仮想レンズを使用して生成される。
【0097】
これは、シーンの多すぎる部分(すなわち、ビューのボリュームの点から直接見えない部分)をレンダリングする結果となる傾向がある。これは、例えば、ゲーム中のオブジェクトのクリッピング又は小さな設計修正によるビューのボリュームの予期せぬ拡張の場合に、特にビューのボリュームの端に近いビュー位置に対して、NPLM出力をより堅牢にする傾向がある。
【0098】
上記のアプローチは、最初の低解像度画像でキャプチャされたシーン表面の法線に基づいて候補カメラ視点を生成したが、これは唯一の可能なアプローチではない。
【0099】
上記のアプローチの1つの可能な問題は、シーン内のビュー不変の位置がその位置における法線に沿ってその方向に向けるカメラによって撮像され得る一方で、それは近くの位置の他の画像において異なる角度からのみレンダリングされ、今度は、これらの角度はそれらの位置におけるシーン表面の法線によって規定される、ということである。その結果、シーンのビュー依存部分やその近辺で撮影された画像が比較的多くなる一方で、画像自体がシーン自体のジオメトリに過度に影響される可能性がある。
【0100】
したがって、最初の低解像度画像に戻り、視点選択プロセスの別の例において、各低解像度画像の各画素(又は少なくともシーンの表面を表すこれらの画素)に対して潜在的な視点位置が検討され得る。上記の128×84画素の200枚の画像の例では、最大で160万枚の候補があることになる。これらの画像は、典型的には、シーン自体のトポロジーとは無関係に、異なる角度からシーン上の特定の位置の複数のインスタンスをキャプチャする。その結果、訓練セットは潜在的によりロバストである。
【0101】
再び、低解像度画像内の所与の画素、したがって候補視点に対応する表面位置のビュー依存性由来の表面材料(および/または画素分散)を使用して、その視点を保持またはカリングする確率を操作することができる。このようにして、160万点の候補視点を再び管理可能な数まで絞り込むことができる。
【0102】
この場合、シーン内の同じ位置の視点が複数存在する可能性があるため、結果として得られるカメラビューの分布は、ほとんどのビューに依存するのではなく、シーン内で最も見える位置に偏る可能性がある。例えば、シーン内のある(拡散)位置がある(鏡面)位置の20倍以上の画像において可視である場合、拡散位置を見る視点がカリングされる可能性は高くなるが、20倍以上あるため最終的には拡散位置の画像が光沢のものよりも多くなってしまう可能性がある。
【0103】
したがって、任意選択で、視点を保持またはカリングする確率は、(異なる角度からではあるが)シーン内の同じ位置を中心とする視点の数に基づいて正規化されることができる。この正規化は完全であってもよい(従って、上記の例では、拡散位置の画像を保持する確率は20倍少なくされるので、視点数の影響は除去される)。代替的には、正規化は部分的であってもよい。例えば、拡散位置の画像を保持する確率は10倍だけ少なくされるので、ビューの数の効果は著しく減少するが、完全に除去されない。これは、ビュー依存(例えば、鏡面/光沢)であるために多くの訓練例が得られるかどうかにかかわらず、ユーザによって多く見られる可能性のある領域がより多くの訓練例を得ることになることを意味している。
【0104】
原理的には、視点の両方のセット(表面法線ベースの視点および低解像度画像画素ベースの視点)は、訓練目的のために高品質のレイトレーシング済みレンダリングを生成する前に、結合された視点のセットを作成するために生成およびカリングされ得る。実際に、いずれの場合でも、可視の表面位置の少なくともいくつかの法線と一致する低解像度画像画素ベースの視点のサブセットが実質的に存在すると可能性がある。
【0105】
分散訓練技術
上記第2のアプローチは、利用可能な視点をカリングする際に、シーン内の同じ位置の複数のビューを補償する問題を任意に考慮する。訓練バイアスの制御を可能にすることに加えて、シーン内の特定の位置に対する繰り返しを減らすことにより、この第2のアプローチの訓練時間を短縮する。
【0106】
しかし、代替的にまたは追加的に、以下のように訓練時間を(さらに)短縮することができる。
【0107】
前述の通り、ビューのボリューム内(または表面上)の視点の最初の集合を選択する。
【0108】
ここで、任意選択で、ビューのボリューム内の位置のセットについて最初の低解像度画像を生成する。
【0109】
ここで、任意選択で、次に、本明細書で前述したように、低解像度画像で見つかったシーン内の位置の法線に基づくか、及び/又は低解像度画像の画素とシーン内の表された位置との間の線に基づいて、候補視点を生成する。
【0110】
再び任意選択で、これらの視点は、シーン内のそれぞれの位置の鏡面性/拡散の度合いに基づく確率でカリングされることができる。さらに任意選択で、それぞれの位置を中心とする複数の画像がある場合、確率は、少なくとも部分的にこれを考慮するように修正されることができる。
【0111】
したがって、取られるアプローチに応じて、結果は、生成された一連の視点であり、低解像度画像を生成するために任意選択で使用される元の分布、及び上記の生成及びカリング技術のうちの1つから生じる分布のいずれかである。
【0112】
いずれの場合も、本明細書の実施形態において、視点が生成されると(そして、任意選択で、適宜、カリングされていないことが確認されると)、それは、本明細書の他の場所で説明されるように、任意選択で広い角度の形態で、高品質の画像を生成するためのレイトレーシング処理に提供またはキューに入れられる。
【0113】
生成された画像に対する訓練は、それぞれの画像が完了したときに開始される。したがって、訓練画像の生成(レイトレーシング画像であるため、ある程度の時間がかかる)及びそれらの画像に対する訓練(これもある程度の時間がかかり得る)の処理が並列に存在する。訓練を開始する前に完全な訓練セットが生成されるのを待つ必要があるという問題を回避することができる。
【0114】
任意選択で、視点が生成された場合、またはそれらがカリングされるかどうかを決定するために生成された視点が選択される場合、これらの利用できるものからの視点の選択はランダムであることができ、その結果、レイトレーシング済み画像の最終的な生成シーケンスが使用される視点の最終セット内でもランダムである。
【0115】
これにより、NPLMがシーンの1つのセクションで初期に過剰に訓練される可能性を低減し、また、例えば、時間の制約のために訓練を縮小しなければならない場合、NPLMは依然としてシーンの多様なビューの集合に晒されることを意味する。
【0116】
別の分散訓練技術では、レイトレーシングアプリケーションの制御が利用可能であってそれを可能にする場合、任意選択で、所定の視点からの画像の画素のサブセットのみをレンダリングする必要がある。視点の元のセットに基づくか、カリングされなかった視点に基づくかにかかわらず、所定の画像内に、訓練セット内の他の画像において何回もレンダリングされたシーンの部分が存在し得る。例えば、シーン内のある位置が既に閾値以上の回数レンダリングされている場合、その位置には既に十分な数の訓練例があるため、現在のレンダリングではスキップされることがある。画像の未レンダリング部分は、マスク値として機能する画素値でタグ付けされることができる。その結果、入力位置、方向情報、およびマスクされていない画素位置の目標値のみを使用して学習が実行されることができる。これにより、訓練画像をレイトレーシングするときとNPLMを訓練するときの両方において、訓練セット内の冗長性を大幅に削減し、関連する計算負荷も削減することができる。
【0117】
任意選択で、例外を適用することができる。例えば、場合によっては本明細書の他の箇所で説明したようにその表面プロパティに応じて、典型的には中心画素が選択された(又はカリングされなかった)シーン内の位置に関連するため、画像の中心付近の画素は、常にレンダリングされ得る。シーン内の意図しない不要な反復点をキャプチャしやすいのは、典型的には画像の中心ではない部分の画素である。
【0118】
ネットワークの構成
上述のように、位置ネットワーク(すなわち、本明細書に記載の分割アーキテクチャネットワークの第1の部分)は、それが鏡面タイプの画像構成要素の拡散に対して訓練されるかどうかに応じて、異なる数の出力を有し得る。これは、より一般的なアプローチの特定の例であることが理解されよう。
【0119】
一般に、NPLMの能力は、行うことが要求されるモデリングタスクの複雑さに従って、想定されるデフォルト設定から能力を増加または減少させることによって変化させることができる。その際、ネットワークのアーキテクチャは、典型的には、能力を変更するために変更される。
【0120】
第1の態様において、能力は、NPLMのサイズに基づいて変化させ得る(例えば、層の数、層のサイズ及び/又はNPLMの部分間の層の分布であり、それによって、その能力を変更するためにNPLMのアーキテクチャが変更される)。
【0121】
したがって、任意選択で、サイズは、NPLMがモデル化している寄与構成要素のタイプ(例えば、拡散性、鏡面性、または半透明/透過性)に応じて変化し得る。
【0122】
特に、位置ネットワークのサイズは、これらの構成要素に固有の照明応答のより大きな変動性のために、他の全てが等しい場合、拡散構成要素と比較して鏡面または半透明/透過構成要素に対して有益に大きくされ得る。同様の理由で、位置ネットワークのサイズは、部分反射、透過及び内部反射の結合が関与し得るため、他の全てが等しい場合、鏡面構成要素と比較して、半透明/透過性構成要素に対して有益に大きくされ得る。
【0123】
サイズは、隠れ層の数又は1つ若しくは複数のそのような隠れ層内のノードの数を変更することによって変化させ得る。同様に、出力層(例えば、NPLMネットワーク全体の位置ネットワークと方向ネットワークとの間の隠れ層又はインターフェース/中間層でもある位置ネットワークの出力層)の数に応じてサイズを変化させてもよい。層の数を増やすと、ネットワークが入力データに適用して異なるタイプの情報を分類またはフィルタリングできる空間歪みが増加する。一方、層内のノードの数を増やすと、ネットワークがモデル化できる訓練セット内の特定の条件の数が増え、その結果、忠実度が改善される。一方、出力ノードの数を増やすと(位置ネットワークの出力のように、特定のフォーマットにマッピングするために選択されていない場合)、データセットの内部表現に対してより厳密でない次元削減を実施することにより、出力ネットワーク(および出力ノード値で動作する後続ネットワーク)による識別を向上させることができる。
【0124】
代替的に又は追加的に、方向ネットワークのサイズは、NPLMがモデル化している寄与構成要素のタイプ(例えば、拡散性、鏡面性、又は半透明/透過性)に応じて変化させることができる。
【0125】
上述のように、方向ネットワークの入力層は、全体的なNPLM分割アーキテクチャネットワーク内の位置ネットワークのより高い次元の出力に対応するようにサイズを変更することができる。
【0126】
同様に、層の数及び/又は層のサイズは、位置ネットワークについて次に概説したのと同様の効果、すなわち、識別能力及びまたモデルの忠実度の増加のために変化させることができる。
【0127】
位置ネットワークと同様に、方向ネットワークのサイズは、これらの構成要素に固有の照明応答のより大きな変動性のために、他の全てが等しい場合には鏡面または半透明/透過構成要素について拡散構成要素と比較して有益に大きくされ得る。同様の理由で、方向ネットワークのサイズは、関与し得る部分反射、透過および内部反射の結合のために、他の全てが同じである場合には半透明/透過構成要素について鏡面構成要素と比較して有益に大きくされ得る。したがって、位置ネットワークと同様に、そのアーキテクチャを変更して、その能力を変更することができる。
【0128】
したがって、NPLM(例えば、位置ネットワーク、方向ネットワーク、またはその両方)は、例えば、要求される照明モデルの要求に応じて、(例えば、隠れ層や出力次元の増加によって)識別能力を向上させるために、および/または(例えば、隠れ層のノードを増やすことによって)モデルの忠実度を向上させるために、その変更された能力を有し得る(例えば、層数、内部ノード数、入力または出力次元の増加など、そのアーキテクチャを変更する)。例えば、拡散寄与構成要素の要求は典型的には鏡面寄与構成要素の要求よりも少ない。
【0129】
逆に、NPLMの想定標準またはデフォルトセットアップから、NPLMは、能力を増加させる代わりに、適切な場合には(例えば、拡散構成要素について)その能力を減少させるように有益に変更され得る(例えば、能力の増加について上述したものと反対のステップによって)。この場合、利点は、典型的には、低減されたメモリフットプリント及び計算コストの観点である。
【0130】
異なる寄与チャネルによってモデル化されるような材料の反射プロパティ(又はプロパティ)のタイプに加えて、代替的に又は追加的に、NPLMの能力は、照明モデル/レンダリング処理の複雑さに関連する他の因子に対応して増加又は減少され得る。
【0131】
例えば、拡散光源(スカイドームなど)は、オブジェクト/シーンに衝突する照明の空間/角度変動が少ないため、点光源よりも複雑ではない場合がある。逆に、それ自体の空間的な変動が大きいスカイドーム(例えば、日没を示す)は、より複雑になる場合がある。光源の複雑さは、その空間および色の変動に基づいて、例えば、物体/シーンを含まない照明空間の2次元フーリエ変換の積分に基づいて評価されてもよく、典型的にはDC成分がディスカウントされる。この場合、均一なスカイドームはほぼゼロの積分を有することになり、1または複数の点光源はより大きな積分を有することになり、複雑なスカイドーム(街の風景や日没のような)はさらに大きな積分を有し得る。NPLMの能力(例えばサイズ)は、このような光源の複雑さの分析に基づいて、例えば性能の経験的分析に基づいて、設定されることができる。
【0132】
同様に、移動する、動的な、又は配置可能な光は変化する照明条件を作り出すため、増加したNPLMの複雑さを必要とし得る。この場合、NPLMへの入力は、照明状態の入力と、出力画素についてレンダリングされるオブジェクト/シーンの特定の部分についての(x,y,z)オブジェクト位置とを含み得る。したがって、太陽が空を横切るシーンのモデルについて、太陽の位置に相関する1日の時間に関する入力を含み得る。光源の現在の状態を識別するための他の入力は、1または複数の光の(x,y,z)位置、光のサイズに関する(r)半径または同様の入力、および/または光の(支配)色に関するRGB入力などを含み得る。訓練データ(例えば、レイトレーシング済みのグランドトゥルースに基づく)は、これらの変化する条件の例も組み込むことが理解されよう。より一般的には、NPLMが環境の動的な態様をモデル化するために訓練される場合、訓練データは、適切な代表的な数の例を含むであろう。
【0133】
太陽の場合、丸一日の横断は、例えば、本明細書の他の箇所で説明するように、NPLMのメモリフットプリントまたは計算コストが好ましい最大値よりも大きくなるのを避けるために、連続していくつかのNPLMによってモデル化される必要があり得る(例えば、夜明け、朝、真昼、午後および薄暮をモデル化する)。
【0134】
同様に、シーン内の移動する、動的な、または配置可能なオブジェクトは、それらがNPLMを使用してレンダリングされる場合、増加したNPLMの複雑さを必要とし得る(任意選択で、NPLMは、静的シーン構成要素のみのレンダリング、および/または位置に独立であるシーンの一部分に寄与するために使用することができる)。したがって、再びこの場合、入力は、例えば、オブジェクトの位置及び/又は方向データから構成され得る。
【0135】
代替的に又は追加的に、他の因子は、NPLMのモデリングを単純化し、従って、NPLMの能力を低減することを可能にし得る(又は、他の全てが等しい場合、モデルの忠実度を比較的に改善することを可能にし得る)。例えば、レンダリングされたシーンが固定された経路(例えば、レーストラック上、衝突防止バリア内)を含む場合、ユーザがアクセスできない視点からの訓練を減らすことができ、または完全に避けることができる。同様に、レンダリングシーンが限定された、または優先される視線方向を含む場合(例えば、ほとんどの視線が走行方向で行われるレーストラック)、異なる視点に対する訓練は、それらの視点の最終ユースケースに対する比例した重要性を反映することができる。
【0136】
同様に、背景であるかまたはゲームの焦点(中心窩レンダリングの観点から、またはメインキャラクターなどの関心のある点の観点から)から遠いために、シーンの一部がユーザによってあまり批判的に見られない可能性がある場合、NPLMは、比較的能力が低くされ得る。例えば、オブジェクトまたはテクスチャへの異なる描画距離に対して異なるNPLMを訓練し、異なる描画距離/詳細度(LOD)において能力(例えば、サイズ)を低下させ得る。
【0137】
代替的に又は追加的に、本明細書の他の箇所で述べたように、NPLMは、特定のシーン、オブジェクト、材料、又はテクスチャのために訓練され得る。その結果、NPLMの能力は、それが照度を表すものの複雑さに従って変化させることができる。大きなまたは複雑なシーンは、より大きなNPLM(および/または、シーンおよび結果のNPLMのサイズに応じて、それぞれの部分を取り扱う複数のNPLM)を必要とし得る。同様に、複雑な物体(車など)は,単純な物体(球体など)よりも高性能なNPLMの恩恵を受け得る。シーンまたはオブジェクトの複雑さを評価する1つの方法は、ポリゴンの数を数えることで、ポリゴンが多ければ多いほど、シーンがより複雑であると推測される。さらに改良して、ポリゴン間の平面角の分散を利用して、複雑さを推測することも可能である。例えば、図の車のモデルと同じ数のポリゴンを持つ球体は、車自体と比べて角度の分散が非常に小さく、車が構造的に複雑であることを示す。ポリゴン数と角度分散/分布の両方を結合することは、照度がNPLMによってモデル化されるシーン/オブジェクトの複雑さの良い代用品を提供するであろう。
【0138】
同様に、複雑な材料(肌や毛皮など)は、単純な材料(金属など)よりも高性能なNPLM(および/または複数のNPLM寄与部)から恩恵を受け得る。さらにまた、複雑なテクスチャ(例えば、広い空間スペクトルを持つ)は、狭いまたは凝縮された空間スペクトルを持つテクスチャよりも、より能力の高いNPLMから利益を得ることができる。
【0139】
これまで、能力はサイズ(入出力数、層数、ノード数など)の観点から言及されたが、これに代えて、あるいは加えて、NPLMの異なる層のノード間の活性化関数の選択によって、能力を変化させることができる。本明細書の他の箇所で述べたように、位置ネットワークの好ましい活性化関数はReLU関数であり、一方、方向ネットワークの好ましい活性化関数は正弦関数(sin関数)であるが、他のシナリオをモデル化するために他の関数を選択することができる。
【0140】
NPLMの能力は、例えば、NPLMのメモリフットプリントが閾値サイズに達したときに、上限の対象とすることができる。その閾値サイズは、典型的にはシーン/オブジェクト/材料のテクスチャにアクセスしロードする目的で選択されるようなメモリページまたはメモリページの部分的または複数のグループなどのメモリの動作単位サイズに等しい場合がある。閾値サイズは、GPUにグラフィック画像データをロードするためにGPU及び/又はゲームによって使用されるテクスチャ又はミマップサイズ(mimmap size)に等しくてもよい。
【0141】
NPLMの複雑さがこの閾値を超えることになる場合、それがモデル化するタスクは簡略化されるか、NPLM間で共有されなければならないか、または結果の精度が低くなることを受け入れなければならない場合がある。
【0142】
ネットワークの選択
ネットワークは、ゲーム又はアプリケーションの開発段階において訓練される。ディベロッパは、NPLMベースのレンダリングが有利であるときまたは場所を選択し得る。たとえば、フレームレートが所定の品質閾値を下回ることが一貫して判明しているシーンにのみ使用し得る。そのような場合、ネットワークはそれらのシーンまたはその一部で訓練され、それらのシーンに遭遇したときに使用される。
【0143】
他の場合、ディベロッパは、特定のオブジェクトまたは特定の材料にNPLMベースのレンダリングを使用することを選択し得る。この場合、ネットワークは、それらのオブジェクトまたは材料がレンダリングされるシーン内にあると識別されたときに、そのために訓練され、使用される。同様に、ディベロッパは、特定の描画距離(z-距離)、または画像中心もしくはユーザの中心窩のビューから離れた角度/距離、または特定の照明条件に対して、NPLMベースのレンダリングを使用することを選択し得る。この場合、ネットワークはそのような状況に合わせて学習され、使用される。
【0144】
同様に、これらの基準の任意の好適な組み合わせが、訓練及び使用のために選択され得ることが理解されよう。
【0145】
一方、上述のように、システムの使用中に、複数の理由のために、シーンに関連する複数のNPLMが存在し得る。例えば、複数のNPLMは、大きなシーンをモデル化するために(各部分が、閾値のサイズ内及び/又は閾値の画像再生の品質にNPLMによって十分によくモデル化されるように)存在する場合がある。同様に、照明条件、詳細度/描画距離などが異なるため、複数のNPLMが存在する場合がある。
【0146】
状況に適したNPLMは、GPUのアクセス可能なワーキングメモリに選択及び取り出され、画像の少なくとも一部をレンダリングする目的でまたは実行され得る。テクスチャ及び他のグラフィックアセットをプリフェッチ及びキャッシュするために適用される戦略もまた、NPLMに適用され得ることが理解されるであろう。
【0147】
タイル状NPLM
画像をレンダリングするために、画像内の各画素(または、例えば特定のオブジェクトまたは材料など、この方法でレンダリングされる画像のその部分)の各寄与構成要素について、1つのNPLMを評価することが必要である。典型的には、少なくとも2つの構成要素(例えば、本明細書の他の箇所で説明するような、拡散および鏡面)があり、したがって、典型的には少なくとも2つのNPLMが各画素に対して使用される。
【0148】
その結果、画像を迅速にレンダリングする1つの方法は、検討中の全ての画素について寄与するNPLMのインスタンスのリスペクト(respect)を実行し、それらを全て並行して評価することであろう。しかし、これはメモリ要件が既存のGPUで利用可能なよりも大きくなるため、現状では非現実的である。
【0149】
それにもかかわらず、NPLMベースのレンダリングの効率的な並列化が望まれる。
【0150】
NPLMによって使用される位置情報は、シーンの3Dジオメトリがレンダリングされた(例えば、ジオメトリを組み立て、隠れた表面などを除去することによって)入力バッファまたは同様のものによって生成される。従来のレンダリングプロセスは、このジオメトリにテクスチャ及び照明を適用することになる。
【0151】
本明細書の他の箇所で述べたように、NPLMは、(方向入力によって示される)画像の画素のレンダリングに寄与する構成要素を作成するために、照明に関する位置におけるシーンの材料プロパティのBSDF又は同様の記述的なものと結合される学習された量を生成する。
【0152】
したがって、入力バッファに適切なデータを関連付けることによって、NPLMの効率的な並列化が実装されることができる。
【0153】
このデータは、クラスタID及び材料IDの一方または両方を含む。クラスタID自体は、ジオメトリ構成要素、オブジェクト、シーンのゾーン(例えば、シーンの体積分割に基づいて、等しいキューボイドにまたは任意の適切な分割スキームに従う)に対応することができ、または実際にオブジェクトの材料および/またはシーン内に対応することができる。
【0154】
データはまた、本明細書の他の箇所で論じるように、NPLMに入力されるシーンの表面に対する表面位置情報を含み、及び任意選択で、画像に対する現在の仮想カメラ位置に応答する方向情報を含む。
【0155】
画像の各画素について、対応する表面位置について、クラスタID又は材料IDは、そのクラスタ又は材料について適切なNPLMを選択するために使用される。
【0156】
その表面位置の材料IDのデータが入力バッファに関連付けられる(又は、例えばルックアップテーブルを介してクラスタIDから導出可能である)場合、任意選択で、BSDF(又は本明細書の他の場所で説明するような他の分布関数)はその表面位置の材料について計算され、現在の画素に対する寄与を生成するために選択されたNPLMの出力と掛け合わされることが可能である。代替的には、BSDFはストアから取得することができる。
【0157】
したがって、NPLMは、その表面位置における所定のクラスタIDまたは材料IDに対して選択され、その表面位置に対する学習量を生成するために用いられる。並行して、BSDFまたは他の分布関数が、材料IDに応答して生成され得るか、または代替的には、材料IDに応答して、または表面位置に応答して検索され得る。
【0158】
NPLMは、クラスタIDまたは材料IDに固有のものであってもよいし、2つ以上のクラスタIDまたは材料IDに対して使用されてもよい。
【0159】
使用され得る異なるNPLMの数は、クラスタIDまたは材料IDの粒度、およびNPLMとクラスタIDまたは材料IDとの間の1対1または1対多の関係によって異なる。
【0160】
画像の異なる要素に対して実行されるべき複数のNPLMを有する可能性があり、そのための効率的な方法が検討され得る。
【0161】
したがって、次に
図12を参照すると、特定の仮想カメラ視点におけるシーンの画像について、そのようなプロセスは、以下のように構成され得る。
【0162】
i.入力バッファを走査して、一意のID(例えば、クラスタID、又はクラスタIDを使用しない場合は材料ID;より一般的には、特定のNPLMに関連付けられたシーン要素の任意の適切なID)の数を見出す。
図12では、これは、例示的な自動車画像1210における特徴の色またはグレースケール分化によって示される。
【0163】
ii.このようなID毎に2値マスク(binary mask)などのマスクを作成する。ここで、マスクの各画素は1に設定され、特定のIDが見つけられ(以下、「ID付き画素」)、それ以外は0に設定される。
図12において、例の自動車では、9種類のクラスタIDに対応する9つのマスク1220が得られる。
【0164】
iii.各マスクを2次元タイルの集合に分割する。タイルのサイズは、GPUのメモリ容量に応じて調整されることができる(たとえば、スレッド毎またはシェーダ毎の効率的なメモリ割り当てのため)。非限定的な例のサイズは、64×64画素であるが、GPUのメモリ及び処理能力に適した任意のサイズが考慮されることができる。空のタイル(たとえば、全て0のタイル)は廃棄されるか、さもなければ、さらに処理されるわけではない。
図12において、タイル状マスク1230は、空のタイル、高占有タイル、および疎(sparse)な占有タイルの混合物を示す。
【0165】
iv.残りの(空でない)各タイルについて、マスク内の各ID付き画素に対する位置および方向入力のタイル(または等価なデータセット)を作成する。
この結果、NPLMの位置及び方向の入力を指定するタイル(または同等のデータセット)のリストが得られ、関連するNPLMはID(例えばクラスタIDまたは材料ID)から識別される。
【0166】
v.これらのタイルのバッチを並行して処理する。バッチのサイズは、例えば、必要なスレッド/シェーダの数及び現在利用可能な数に基づいて、利用可能なリソースに応じて調整されることができる。
与えられたタイルについて、任意選択でタイルの全体をNPLMで処理することができる。これはデータおよびメモリ管理の観点からより単純になり得るが(例えば、メモリおよび計算要件がタイルに対して予測可能であるため、バッチが同期して完了することを可能にする)、ID付き画素が少ないタイルについては、望ましくないオーバーヘッドとなり得るNPLMによる冗長処理を生じさせる。非ID画素の場合、ヌルまたはデフォルトの入力データをNPLMに適用することができる。このアプローチでは、ID付き画素に関連するNPLMからの有効な出力を識別するために、マスクを再利用することができる。
代替的に、ID付き画素のみが、関連する位置及び方向データを使用してNPLMによって処理され、出力を生成することができる。これは、ID付き画素についてのタイルを走査する必要があるため、データ及びメモリ管理の観点からより複雑であり、また、メモリ及び計算バジェットが不明確になる。むしろ、完全なタイルについてバジェットを作るのではなく、各タイルの計算バジェットが異なり、また、タイルの最初の走査後に格納されるID付き画素の位置の可変レコードを必要とするか、又は操作及びNPLMプロセスが順次行われる(すなわち、見つかったときにID付き画素を処理する)場合には計算バジェットはタイルの終わりまで不明のままである。同様に、タイルの処理にかかる時間も可変であり、未知の可能性があるため、メモリ管理および並列化がより複雑になる。しかし、より疎なタイルでは、非ID付き画素でNPLMの不必要な使用を避けることができる。
一方または他方のアプローチを採用することができ、またはシステムは、例えばタイル内のID付き画素の閾値占有率(数または割合)に応じてアプローチを切り替えることができる(カウントは、マスクを生成するときに実行されることができる)。この閾値は、システム内の計算又はメモリリソースの相対的な不足を反映するように選択されることができる。したがって、計算リソースがメモリリソースよりも比較的少ない場合、冗長な(未使用の)NPLM処理の数を減らすため、タイル全体の処理からID付き画素の処理に切り替える閾値占有率を高くすることが可能である。
【0167】
vi.次に、各ID付き画素に対するNPLMの出力は、本明細書の他の箇所で説明されるように、レンダリング画像に寄与するために使用され得る。
各NPLMからの出力が受信されると、それは、各画素が対応するタイル(及び必要であればマスク)から更新されて、画像用のグローバルラディアンスバッファ(global radiance buffer)に追加され得る。本明細書の他の箇所で述べたように、典型的には2つ以上のNPLMが各画素に寄与するため、バッファは2つ以上のチャンネル(例えば、拡散構成要素及び鏡面構成要素)を有することができる。その結果は、レンダリングのラディアンス部分である。
これは、NPLMインスタンスの数と並行して処理されるタイルが現在利用可能なリソース(例えば、GPU上)を効率的に使用するように、タイルのサイズ及びバッチ処理のサイズを調整することによって、任意の時点で使用するリソースを制御しながら、達成されることに注目される。
【0168】
vii.任意選択で、BSDFまたは他の分布関数が、材料ID(使用される場合)に関連付けられた材料情報から、上記と並行して計算することができる。代替的に、BSDFまたは他の分布関数は、メモリから取得することができる(任意選択で、材料IDに対して一度計算され、その後、実行中に保存された後)。
【0169】
viii.いずれにしても、グローバルラディアンスバッファ内の各寄与構成要素は、次に、関連する分布関数と結合され(例えば、乗算され)、その結果は、画像(又はこの技術を使用してレンダリングされるその部分)を生成するために結合される。
【0170】
したがって、上記の技法は、シーンの画像を、シーン内のそれぞれのIDに対応する複数のマスクに分割し、これらのマスクの各々を集合タイルに分解することが理解されよう。そして、タイルのバッチは、与えられたタイルの対応するIDに適切なそれぞれのNPLMを使用して並列に処理される。この処理は、任意選択で、所与のタイルまたはタイルのバッチについて、タイル全体ベースまたはID付き画素ベースであり得る。
【0171】
本技術内で、利用可能なコンピューティング及び/又はメモリ資源を有効に利用するために、以下のいずれかを調整することができる。
【0172】
IDの数:これは、処理されるマスクの数(したがって、間接的にタイルの数)に影響を与える。生成されるタイルの数とNPLMの潜在的な精度との間のトレードオフも考慮され得る(より多くのIDはより特化したNPLMをもたらすことができ、より少ないIDはより特化しないNPLMをもたらすか、または本明細書の他の箇所で説明されているように、同等の精度でより大きい/より複雑なNPLMを使用することができる)。
【0173】
タイルのサイズ:典型的には、これは、タイルを処理するスレッド/シェーダのローカルメモリ容量によって決定され得る。
【0174】
バッチ内のタイルの数:典型的には、これは、現在利用可能な(または予約された)スレッド/シェーダの数によって決定され得る。
【0175】
タイル全体またはID付き画素ベースの処理の間で移行するために使用されるタイルまたはタイルのバッチのID付き画素占有率の閾値:この閾値はGPUの使用率によって調整されることができる。タイル全体の処理を実行するのに十分な容量がある場合、不要なNPLM処理を犠牲にして、バッチ処理の同期という点でメリットをもたらす(不要な処理の割合は、タイル内の非ID画素数に応じる)。
【0176】
異なるマスクからのタイルが同じバッチで処理され得ることが理解されるであろう。また、タイルが任意の順序で処理され得ることも理解されよう。これは共に、全タイルアプローチを使用するためのID付き画素占有率の閾値を全て満たすタイルの最も可能なバッチの組み立てを可能にし、同期して処理できるバッチの数を増大させる。
【0177】
さらに、フレーム毎のレンダリングサイクル中に、他のプロセスがより多くのまたはより少ない計算リソースを必要とすることがあり、したがって、任意選択で、上記技術は、例えば閾値を適宜変更することによって、計算リソースの変動する利用可能性に従ってレンダリングサイクル中に処理する全体タイルバッチまたはID付き画素毎のバッチのいずれかを選択できることが理解されよう。
【0178】
要約
次に
図9を参照すると、本明細書の要約実施形態において、視点において画素をレンダリングするための画像レンダリング方法は、そのシーン内の位置で所定の表面を有する仮想シーンの第1の要素について、以下のステップを備える。
【0179】
第1のステップs910において、本明細書の他の箇所で説明するように、所定の表面との光の相互作用を特徴付ける分布関数と結合したときに、その位置で照明されるように仮想シーンの第1の要素に対応する画素値を生成する係数(factor)を予測するように予め訓練された機械学習システムに、視点に基づく位置および方向を提供する。
【0180】
第2のステップs920において、機械学習システムからの予測された係数を分布関数と結合して、本明細書の他の箇所で説明するように、位置において照明された仮想シーンの第1の要素に対応する画素値を生成する。
【0181】
そして、第3のステップs930において、本明細書の他の箇所で説明するように、表示のために画素値をレンダリング画像に組み込む。その後、画像は、A/Vポート(90)を介してディスプレイへ出力され得る。
【0182】
本明細書で説明され請求されたような方法及び/又は装置の様々な実施形態の動作に対応する上記方法における1つ又は複数の変形が、以下を含むがこれに限定されない本開示の範囲内で考えられることは、当業者には明らかであろう。
-本明細書の他の箇所で説明されるように、それぞれの機械学習システムは、画像の複数の寄与構成要素(例えば、拡散、鏡面、コートなど)のそれぞれについて訓練され、それぞれの分布関数は、画像の複数の寄与構成要素のそれぞれについて使用され、それぞれの生成画素値が結合されて表示のためにレンダリング画像に組み込まれる画素値を作成する。
-本明細書の他の箇所で説明されるように、それぞれの分布関数は、双方向散乱分布関数、双方向反射率分布関数、及び双方向透過率分布関数を含むリストから選択される1つ又は複数である。
-本明細書の他の箇所で説明されるように、機械学習システムはニューラルネットワークであり、ニューラルネットワークの第1の部分への入力は位置を含み、ニューラルネットワークの第2の部分への入力は第1の部分の出力及び方向を含む。
-本明細書の他の箇所で説明されるように、この例では、第1の部分の活性化関数は、第2の部分の活性化関数と異なる。
-本明細書の他の箇所で説明されるように、この例では、第1の部分の活性化関数は、ReLU関数であり、第2の部分の活性化関数は、正弦(sin)関数である。
-本明細書の他の箇所で説明されるように、この例では、ニューラルネットワークのコスト関数は、第2の部分の出力と、分布関数での逆結合が実行された訓練画像に対する画素のレイトレーシングバージョンから得られる値との間の差に基づく。
-本明細書の他の箇所で説明されるように、この例では、ネットワークのためのコスト関数は、訓練中に第2の部分及び第1の部分の両方を逆伝播される。
-本明細書の他の箇所で説明されるように、この例では、ニューラルネットワークは、完全接続ネットワークである。
-本明細書の他の箇所で説明されるように、機械学習システムのコスト関数は、機械学習システムの出力と、分布関数での逆結合が実行された訓練画像に対する画素のレイトレーシングバージョンから得られる値との間の差に基づく。
-機械学習システムは、シーンの第1の要素に対するテクスチャを選択及びロードするために使用される同じアセット識別スキームに基づいて、グラフィックス処理部によって使用されるメモリに選択及びロードされる。
【0183】
次に、
図10を参照して、本明細書の別の要約実施形態において、仮想シーンのための画像レンダリング方法(NPLMの並列化に焦点を当てることおよび画像の異なる態様をタイルすること)は、以下のステップを含む。
【0184】
本明細書の他の箇所で説明されるように、複数のIDについて、第1のステップs1010は、それぞれのID(例えば、クラスタID又は材料ID)に関連付けられるシーンの要素を識別するそれぞれのマスクを生成することを含む。
【0185】
本明細書の他の箇所で説明されるように、得られた複数のマスクについて、第2のステップs1020は、それぞれのマスクを複数のタイルに分割することと、如何なる画像要素も識別しないタイルを破棄すること(または等価的に、マスクの他の全てのタイルが後続のステップで処理されるまでそのタイルを無視し、その後にマスクの全てのタイルを破棄できる)と、を含む。
【0186】
本明細書の他の箇所で説明されるように、結果として生じる複数の残りのタイルについて、第3のステップs1030は、複数の機械学習モデルの中からそれぞれの訓練済み機械学習モデルを選択することを含み、それぞれの機械学習モデルは、それぞれのタイルが分割されたマスクにおいて識別された要素と同じそれぞれのIDに関連付けられたシーンの要素に基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成するように訓練されている。
【0187】
次に、本明細書の他の箇所で説明されるように、第4のステップs1040は、それぞれのタイル内の識別された要素に関する少なくとも入力データに基づいて画像の少なくとも一部のレンダリングに寄与するデータを生成するためにそれぞれの訓練済み機械学習モデルを使用することを含む。
【0188】
本明細書で説明及び請求されたような方法および/または装置の様々な実施形態の動作に対応する上記方法における1つまたは複数の変形が、以下を含むがこれに限定されない本開示の範囲内で考えられることは、当業者には明らかであろう。
-本明細書の他の箇所で説明されるように、タイルのサイズは、処理ハードウェアの能力に従って選択される。
-本明細書の他の箇所で説明されるように、タイルのバッチは、複数のそれぞれの訓練された機械学習モデルによって並列に処理される。
-本明細書の他の箇所で説明されるように、この例では、任意選択で、バッチのサイズは、処理ハードウェアの能力に従って選択される。
-本明細書の他の箇所で説明されるように、それぞれの学習済み機械学習モデルは、それぞれのタイル内の識別された要素についてのみの入力データ、およびそれぞれのタイル全体についての入力データを含むリストから選択された1つに基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成する。
-本明細書の他の箇所で説明されるように、それぞれの学習された機械学習モデルは、それぞれのタイル内の識別された要素についてのみの入力データに基づいて画像の少なくとも一部のレンダリングに寄与するデータを生成するか、またはそれぞれのタイル全体についての入力データに基づいてそれぞれのタイル内の識別された要素が占有基準に合致するかどうかに依存する。
-本明細書の他の箇所で説明されるように、生成されたデータは、仮想環境のそれぞれの部分と光との相互作用を特徴付ける分布関数と結合されたとき、仮想環境のそのそれぞれの部分を含むレンダリング画像の画素に対応する画素値を生成する係数を含む。
-本明細書の他の場所で説明されるように、この例では、任意選択で、画像の複数の寄与構成要素のそれぞれについてそれぞれの訓練済み機械学習システムが学習され、画像の複数の寄与構成要素のそれぞれについてそれぞれの分布関数が使用され、それぞれの生成された画素値が結合されて、表示のためにレンダリング画像に組み込まれる最終的な結合画素値が生成される。
-本明細書の他の箇所に記載されるように、同様にこの例では、代替的に又は追加的に、要素の材料プロパティがそれぞれのIDを参照して得られることができ、それぞれのIDに対応する少なくとも第1のそれぞれの分布関数が、分布関数をストレージから取り出すことと、データを生成するための少なくとも第1のそれぞれの訓練済み機械学習モデルの使用と並行して分布関数を計算することとを含むリストから選択したものによって得られる。
-本明細書の他の箇所に記載されるように、それぞれの訓練された機械学習システムはニューラルネットワークであり、ニューラルネットワークの第1の部分への入力は仮想環境内の要素の位置を含み、ニューラルネットワークの第2の部分への入力は第1の部分の出力とレンダリングされる画像の少なくとも一部の視点に基づく方向とを含む。
【0189】
上記の方法は、ソフトウェア命令によって、または専用ハードウェアの包含もしくは置換によって適用可能なように好適に適合された従来のハードウェアで実施され得ることが理解されるであろう。
【0190】
したがって、従来の等価デバイスの既存の部分への必要な適合は、フロッピー(登録商標)ディスク、光ディスク、ハードディスク、ソリッドステートディスク、PROM、RAM、フラッシュメモリ、またはこれらの任意の組み合わせ、または他の記憶媒体などの非一時的機械可読媒体に格納されたプロセッサ実装可能命令を含むコンピュータプログラム製品の形態で実装されてもよく、またはASIC(アプリケーション特定集積回路)またはFPGA(フィールドプログラマブルゲートアレイ)などの従来の等価デバイスの適合において用いるために適した設定可能回路としてハードウェアで実現されてもよい。これとは別に、このようなコンピュータプログラムは、イーサネット、無線ネットワーク、インターネット、またはこれらや他のネットワークの任意の組み合わせなどのネットワーク上のデータ信号によって送信され得る。
【0191】
図1を参照すると、本明細書に記載された方法および技術は、仮想シーンから画像を生成するエンターテインメントシステム10などの従来のハードウェアに実装され得る。このようなエンターテインメントシステム10の例は、ソニー(登録商標)のプレイステーション5(登録商標)(PS5)などのコンピュータまたはコンソールである。
【0192】
エンターテインメントシステム10は、中央処理装置20を含む。これは、例えばPS5のように8つのコアを含むシングルコアまたはマルチコアプロセッサであり得る。また、エンターテインメントシステムは、グラフィカル処理部またはGPU30を含む。GPUは、CPUと物理的に分離されていてもよいし、又はPS5(登録商標)のようにSoC(System on a Chip)としてCPUと一体化されていてもよい。
【0193】
エンターテインメントデバイスはまた、RAM40を含み、CPUとGPUとのそれぞれに対して別々のRAMを有するか、またはPS5(登録商標)のように共有RAMを有するかのいずれかであり得る。または各RAMは、物理的に別々であってもよいし、PS5(登録商標)のようにSoCの一部として統合されていてもよい。さらなるストレージは、ディスク50によって提供され、外部または内部ハードドライブとして、または外部ソリッドステートドライブとして、またはPS5(登録商標)のように内部ソリッドステートドライブとして提供される。
【0194】
エンターテインメントデバイスは、適宜、USBポート、イーサネット(登録商標)ポート、WiFi(登録商標)ポート、Bluetooth(登録商標)ポートなどの1つまたは複数のデータポート60を介してデータを送信または受信し得る。また、任意選択で、光学ドライブ70を介してデータを受信し得る。
【0195】
システムとの対話は、通常、PS5(登録商標)の場合のDualSense(登録商標)コントローラなど、1または複数の携帯型コントローラ80を用いて提供される。
【0196】
エンターテインメントデバイスからのオーディオ/ビジュアル出力は、典型的には、1または複数のA/Vポート90を介して、または有線または無線データポート60の1つまたは複数を通じて提供される。
【0197】
構成要素が統合されていない場合、それらは、専用のデータリンクによって、またはバス100を介して、適宜接続され得る。
【0198】
したがって、本明細書の要約実施形態では、エンターテインメントデバイス(ソニー(登録商標)のプレイステーション5(登録商標)など)は、以下を備える。
【0199】
第1に、本明細書の他の箇所で説明されるように、(GPU30など、任意選択でCPU20と連動する)グラフィックス処理部は、そのシーン内の位置に所定の表面を有する第1の要素を含む仮想シーンの画像内の視点に画素をレンダリングするように(例えば適切なソフトウェア命令によって)構成される。
【0200】
第2に、本明細書の他の箇所で説明されるように、(GPU30など、任意選択でCPU20と連動する)機械学習プロセッサは、所定の表面との光の相互作用を特徴付ける分布関数と結合されたときに、その位置で照らされるように仮想シーンの第1の要素に対応する画素値を生成する係数を予測するように予め訓練された機械学習システムに視点に基づく位置および方向を提供するように(例えば適切なソフトウェア命令によって)構成される。
【0201】
グラフィックス処理部は、本明細書の他の箇所で説明されるように、機械学習システムからの予測された係数を分布関数と結合して、位置における仮想シーンの照明された第1の要素に対応する画素値を生成するように(再び、例えば適切なソフトウェア命令によって)構成される。
【0202】
さらに、グラフィックス処理部は、本明細書の他の箇所で説明されるように、表示のために画素値をレンダリング画像に組み込むように(再び例えば適切なソフトウェア命令によって)構成されることもできる。
【0203】
上記のハードウェアは、同様に、本明細書に記載される方法および技術を実行するように構成されてもよく、例えば、以下のように構成されることが理解されるであろう。
-本明細書の他の箇所で説明されるように、エンターテインメントデバイスは、画像の複数の寄与構成要素のうちの1つ(例えば、拡散、鏡面、コートなど)についてそれぞれ訓練されたそれぞれの機械学習システムを実行する複数の機械学習プロセッサ(例えば、GPUおよび/またはCPUのそれぞれのプロセッサ、シードおよび/またはシェーダ)を備える。それぞれの分布関数が画像の複数の寄与構成要素のそれぞれに対して使用され、グラフィックス処理部は、それぞれの生成された画素値を結合して、表示のためにレンダリング画像に組み込まれる画素値を作成するように(再び例えば適切なソフトウェア命令によって)構成される。
-該または各機械学習システムはニューラルネットワークであり、ニューラルネットワークの第1の部分への入力は位置を含み、ニューラルネットワークの第2の部分への入力は第1の部分の出力及び方向を含む。
【0204】
同様に、本発明の別の要約実施形態では、エンターテインメントデバイス(ソニー(登録商標)のプレイステーション5(登録商標)など)は、以下を備える。
【0205】
本明細書の他の箇所で説明されるように、第1に、マスクプロセッサ(CPU20及び/又はGPU30など)は、複数のIDについて、それぞれのIDに関連付けられたシーンの要素を識別するそれぞれのマスクを生成するように(例えば適切なソフトウェア命令によって)適合される。
【0206】
さらに、本明細書の他の箇所で説明されるように、タイルプロセッサ(CPU20及び/又はGPU30など)は、得られた複数のマスクに対して、それぞれのマスクを複数のタイルに分割し、任意の画像要素を識別しないタイルを破棄するように(例えば好適なソフトウェア命令によって)適合される。
【0207】
さらに、本明細書の他の箇所に記載されるように、選択プロセッサ(CPU20および/またはGPU30など)は、結果として生じる複数の残りのタイルについて、複数の機械学習モデルの中からそれぞれの学習済み機械学習モデルを選択するように(例えば適切なソフトウェア命令によって)適合され、それぞれの機械学習モデルは、それぞれのタイルが分割されたマスクにおいて識別された要素と同じそれぞれのIDに関連付けられたシーンの要素に基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成するように学習されている。
【0208】
さらに、本明細書の他の箇所で説明されるように、レンダリングプロセッサ(GPU30など)は、それぞれの学習済み機械学習モデルを使用して、少なくともそれぞれのタイル内の識別された要素についての入力データに基づいて画像の少なくとも一部のレンダリングに寄与するデータを生成するように(例えば適切なソフトウェア命令によって)適合される。
【0209】
上記のハードウェアは、同様に、本明細書に記載される方法および技術を実行するように構成され得ること、例えば、以下のことが理解されよう。
-本明細書の他の箇所で説明されるように、タイルのサイズ、および複数のそれぞれの訓練された機械学習モデルによって並行して処理されるタイルのバッチのサイズを含むリストから、処理ハードウェアの能力に従って1つまたは複数が選択される。
-本明細書の他の箇所で説明されるように、それぞれの訓練された機械学習モデルは、それぞれのタイル内の識別された要素のみについての入力データ、およびそれぞれのタイル全体についての入力データを含むリストから選択された1つに基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成する。
-本明細書の他の箇所で説明されるように、レンダリングプロセッサは、それぞれの学習された機械学習モデルが、それぞれのタイルにおける識別された要素が占有基準を満たすかどうかに応じて、それぞれのタイルにおける識別された要素のみについて入力データに基づいて、またはそれぞれのタイル全体についての入力データに基づいて、画像の少なくとも一部のレンダリングに寄与するデータを生成する否かを選択するように適合される。
【0210】
前述の議論は、本発明の単なる例示的な実施形態を開示し、説明するものである。当業者によって理解されるように、本発明は、その精神または本質的な特徴から逸脱することなく、他の特定の形態で具現化することができる。したがって、本発明の開示は、他の請求項と同様に、例示的であるが、本発明の範囲を限定するものではないことを意図している。本明細書の教示の任意の容易に識別可能な変形を含む本開示は、発明的主題が公共に捧げられないように、前述の請求項の用語の範囲を部分的に規定するものである。
【外国語明細書】