IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

<>
  • 特許-画像生成システムおよび方法 図1
  • 特許-画像生成システムおよび方法 図2
  • 特許-画像生成システムおよび方法 図3
  • 特許-画像生成システムおよび方法 図4
  • 特許-画像生成システムおよび方法 図5
  • 特許-画像生成システムおよび方法 図6
  • 特許-画像生成システムおよび方法 図7
  • 特許-画像生成システムおよび方法 図8
  • 特許-画像生成システムおよび方法 図9
  • 特許-画像生成システムおよび方法 図10
  • 特許-画像生成システムおよび方法 図11
  • 特許-画像生成システムおよび方法 図12
  • 特許-画像生成システムおよび方法 図13
  • 特許-画像生成システムおよび方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-09
(45)【発行日】2025-01-20
(54)【発明の名称】画像生成システムおよび方法
(51)【国際特許分類】
   G06T 15/06 20110101AFI20250110BHJP
   G06T 15/00 20110101ALI20250110BHJP
【FI】
G06T15/06
G06T15/00 501
【請求項の数】 13
【外国語出願】
(21)【出願番号】P 2020192438
(22)【出願日】2020-11-19
(65)【公開番号】P2021086623
(43)【公開日】2021-06-03
【審査請求日】2023-09-19
(31)【優先権主張番号】1917425.9
(32)【優先日】2019-11-29
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ロサリオ レオナルディ
【審査官】鈴木 肇
(56)【参考文献】
【文献】特表2018-513469(JP,A)
【文献】特開2003-271988(JP,A)
【文献】米国特許出願公開第2019/0156550(US,A1)
【文献】特表2017-534976(JP,A)
【文献】特開2003-263649(JP,A)
【文献】米国特許出願公開第2019/0057539(US,A1)
【文献】米国特許出願公開第2019/0318445(US,A1)
【文献】特開2009-157591(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/00-11/40
G06T 15/00-17/00
G06T 17/10-17/30
(57)【特許請求の範囲】
【請求項1】
レイトレーシングプロセスを実行するためのシステムであって、
仮想環境の画像を生成するために使用するためのバウンディングボリューム階層(BVH)構造を識別するように動作可能なBVH識別ユニットであって、前記BVH構造が前記仮想環境内の1つまたは複数の表面に関する情報を含む、BVH識別ユニットと、
入射光線の方向に応じて前記BVH構造の1つまたは複数の要素を破棄するように動作可能なBVH選択ユニットと、
残りのBVH要素を使用してレイトレーシングプロセスを実行するように動作可能なレイトレーシングユニットと
を備え
前記BVH構造の1つまたは複数の要素を破棄する動作は、レイトレーシングプロセスの実行の前に行われる、システム。
【請求項2】
前記BVH構造が、複数のノードを有する単一のBVHを含み、
前記複数のノードは、特定の向きまたは特定の向きの範囲の表面に対応しており、
前記BVH選択ユニットが、前記BVHの1つまたは複数のノードを破棄するように動作可能である、請求項1に記載のシステム。
【請求項3】
前記BVH構造が、複数のノードを有する複数のBVHを含み、
前記複数のノードは、特定の向きまたは特定の向きの範囲の表面に対応しており、
前記BVH選択ユニットが、1つまたは複数のBVHを破棄するように動作可能である、請求項1に記載のシステム。
【請求項4】
前記複数のBVHのうちの2つ以上が1つまたは複数のノードを共有する、請求項3に記載のシステム。
【請求項5】
前記BVH選択ユニットが、前記入射光線の前記方向に応じてレイトレーシングに使用されるBVH要素のグループを判定するように動作可能である、請求項1に記載のシステム。
【請求項6】
前記BVH選択ユニットが、前記入射光線のベクトル成分符号を共有する向きの表面に対応する1つまたは複数のBVH要素を破棄するように動作可能である、請求項1に記載のシステム。
【請求項7】
前記BVH構造が、前記表面の向きに応じて前記表面のグループ化を識別する情報を含む、請求項1に記載のシステム。
【請求項8】
前記グループのそれぞれが、3次元形状の面に対応し、
各表面が、前記表面の面法線を最も良く近似する面法線を有する面に対応するグループに割り当てられる、請求項7に記載のシステム。
【請求項9】
前記3次元形状が立方体である、請求項8に記載のシステム。
【請求項10】
レイトレーシングプロセスで使用するためのバウンディングボリューム階層(BVH)構造を生成するためのシステムであって、
仮想環境内の1つまたは複数の表面を識別するように動作可能な表面識別ユニットと、
識別された表面の向きに応じて表面の1つまたは複数のグループを生成するように動作可能な表面グループ化ユニットと、
前記生成されたグループに応じてBVHを生成するように動作可能なBVH構造生成ユニットであって、
前記BVH構造が、1つまたは複数の要素と前記1つまたは複数の表面に関する情報とを含む、BVH構造生成ユニットと
を備える、システム。
【請求項11】
画像を生成するための方法であって、
仮想環境の画像を生成するために使用するためのバウンディングボリューム階層BVH構造を識別することであって、前記BVH構造が前記仮想環境内の1つまたは複数の表面に関する情報を含む、ことと、
入射光線の方向に応じて前記BVH構造の1つまたは複数の要素を破棄することと、
残りのBVH要素を使用してレイトレーシングプロセスを実行することと
を含み、
前記BVH構造の1つまたは複数の要素を破棄することは、レイトレーシングプロセスを実行することの前に行われる、方法。
【請求項12】
レイトレーシングプロセスで使用するためのBVH構造を生成するための方法であって、
仮想環境内の1つまたは複数の表面を識別することと、
識別された表面の向きに応じて表面の1つまたは複数のグループを生成することと、
前記生成されたグループに応じてバウンディングボリューム階層BVHを生成することであって、
前記BVH構造が、1つまたは複数の要素と前記1つまたは複数の表面に関する情報とを含む、ことと
を含む、方法。
【請求項13】
レイトレーシングプロセスで使用するためのBVH構造を生成するための方法をコンピュータに実行させるコンピュータソフトウェアを格納する非一時的機械可読記憶媒体であって、
前記コンピュータによって実行されると、
仮想環境内の1つまたは複数の表面を識別することと、
識別された表面の向きに応じて表面の1つまたは複数のグループを生成することと、
前記生成されたグループに応じてバウンディングボリューム階層BVHを生成することであって、
前記BVH構造が、1つまたは複数の要素と前記1つまたは複数の表面に関する情報とを含む、ことと
を含む、非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像生成システムおよび方法に関する。
【背景技術】
【0002】
本明細書で提供される「背景技術」の説明は、本開示の文脈を一般的に提示することを目的とする。この背景技術のセクションに記載されている範囲の本発明者らの成果物、ならびに出願時において先行技術には該当し得ない本説明の態様は、明示的または黙示的にも本発明の先行技術であると認めるものではない。
【0003】
レイトレーシングは、高度な視覚的リアリズムを生成する能力で近年広く関心を集めているレンダリング技法である。レイトレーシングは、反射、影、および色収差など、画像内の多くの光学効果のシミュレーションでよく使用される。
【0004】
レイトレーシングは、コンピュータベースの画像生成プロセス、例えば、映画の特殊効果やコンピュータゲームの画像の生成に役立ち得る。このような技法は比較的長い間議論され、使用されてきているが、リアルタイムアプリケーションで、またはあるコンテンツ内での少なくともより広範な使用で許容できる程度に低遅延でレイトレーシング技法を実装可能となるのに処理ハードウェアが十分に強力になったのはごく最近のことである。
【0005】
このような技法は、シーン内の各ピクセルの光線をカメラからトレースすることにより、シーン内の物体の視覚的特性を判定することを事実上目的としている。当然のことながら、これはかなり計算量の多いプロセスであり、シーンを表示するには多数のピクセルが使用されることが予想されるため、単純なシーン(反射が少ないシーンなど)でも多数の計算が行われることになり得る。これを考慮して、スキャンラインレンダリングおよび他のレンダリング方法は、低画質ながらも、待ち時間が重要であると考えられるレンダリングに一般的に好まれてきた。
【0006】
レイトレーシングベースの方法に関連付けられるレンダリング時間を改善しようとする1つの技法は、物体のグループを表すためにバウンディングボリュームを使用することである。バウンディングボリュームを使用することは、物体ごとではなく、物体のグループをまとめて光線により交差判定できるという点で有利である。このことは、交差判定の数が減り、かつ物体を表す簡略化された形状(ボックスや球など)を使用することによりそれぞれの計算が簡略化されることを意味する。原則的には有利であるが、適切なバウンディングボリューム構造を定義する上での課題は問題になり得る。
【0007】
レイトレーシングは、生成されたビデオコンテンツの知覚されるリアリズムを高めることができる技法として、仮想現実(VR)アプリケーションにとって特に関心が寄せられている。そのようなアプリケーションでは、当然のことながら、ヘッドマウントディスプレイデバイス(HMD)のユーザなどのコンテンツの視聴者が体験する没入感を改善するために、提供されるビジュアルのリアリズムを高めることが望ましい。しかしながら、VRアプリケーションはレンダリング時間が長いことに特に影響を受けるため、レイトレーシング技法はVRアプリケーションでは広く使用されていない。
【0008】
したがって、画像レンダリングプロセスの待ち時間を望ましくないレベルまで増加させることなく、現実的な画像を生成できるようにレイトレーシングアルゴリズムを実装することが望ましい。
【0009】
本開示が対処するのは、上記の問題の文脈においてである。
【発明の概要】
【0010】
本開示は、請求項1によって定義される。
【0011】
本開示のさらなるそれぞれの態様および特徴は、添付の特許請求の範囲において定義される。本発明の上述の一般的な説明および以下の詳細な説明は両方とも本発明を例示するものであるが、限定するものではないことを理解されたい。
【図面の簡単な説明】
【0012】
本開示およびそれに付随する利点の多くのより完全な理解は、以下の詳細な説明を添付の図面と併せて検討することによりよく理解されるようになるため、より容易に得られるはずである。
【0013】
図1】バウンディングボリューム階層の概略図である。
図2】バウンディングボリュームの概略図である。
図3】複数のバウンディングボリュームの概略図である。
図4】3次元空間における立方体の概略図である。
図5】2次元グループ化の概略図である。
図6】入射光線による図5のグループ化の概略図である。
図7】別の2次元グループ化の概略図である。
図8】複数の関連のないBVHが提供される例示的なBVH構造の概略図である。
図9】単一のBVHが提供される例示的なBVH構造の概略図である。
図10】複数の関連するBVHが提供される例示的なBVH構造の概略図である。
図11】レイトレーシングプロセスを実行するためのシステムの概略図である。
図12】レイトレーシングプロセスで使用するためのBVHを生成するためのシステムの概略図である。
図13】レイトレーシングプロセスを実行するための方法の概略図である。
図14】レイトレーシングプロセスで使用するためのBVHを生成するための方法の概略図である。
【発明を実施するための形態】
【0014】
本開示は、バウンディングボリューム階層(BVH)が、物体が移動する能力および環境に関する情報を生成するために使用されるシステムおよび方法に関する。これは、レイトレーシング(つまり、グラフィックスレンダリング)技法をより効率的に実行できるように物体を順序付けて表すために使用される従来のBVHの使用法とは異なる。
【0015】
図1は、BVHの簡単な例を概略的に示している。この例では、各ボックス(バウンディングボリューム)は、所与の詳細レベルにおける1つまたは複数の物体を表す。ボックスのそれぞれは、階層内のその上のボックスに含まれる。例えば、ボックス110は、環境内のすべての物体に関する情報を含み、ボックス120のそれぞれは、物体のサブセットを含む。これらのサブセットは、任意の適切な方式で判定され得るが、環境内で互いに近接している物体をまとめてグループ化して同じバウンディングボリュームで表す方法が好ましいと考えられることが多い。
【0016】
各レベルの詳細レベルは、任意の適切な仕方で判定されてもよく、BVHは定義された最大詳細レベルを有することができる。例えば、BVHは、物体のグループを表すバウンディングボリュームで終了することができる。これにより、粗い表現になるが、サイズが小さくなり、非常にすばやくトラバースされ得る。あるいは、BVHは、物体の一部を表すバウンディングボリュームで終了することができる。これにより、物体のより細かい近似が提供されるが、当然のことながら、これにより、BVHが大きくなり、トラバースに時間がかかり得る。BVHは、いくつかの物体が他の物体よりも細かく/粗く表現されるように、両方の要素を含むように定義され得る。
【0017】
BVHは様々な仕方で生成され得るが、それぞれに長所および短所がある。例えば、可能な最大の集合から始めてバウンディングボリュームを定義するトップダウン手法を採用することができる。つまり、入力(環境内の物体の集合、またはそれらの物体の表現など)は、2つ以上のサブセットに分割され、サブセットのそれぞれが再分割される。つまり、ボックス110から始まり、ボックス120に進むなどのようにバウンディングボリュームが生成される。これは高速な実装を表すが、BVHがかなり非効率になることが多く、これにより、全体的なサイズが大きくなったり、ナビゲーションのしやすさが低下したりし得る。
【0018】
別の方法は、ボトムアップ手法の方法である。この手法では、バウンディングボリュームはBVHの最小ボリュームから始めて定義される。図1の例では、これは、バウンディングボリューム140が最初に定義された後に、バウンディングボリューム130に上向きに進むことを意味する。ボトムダウン手法は、一般に、トップダウン手法よりも優れた(つまり、より効率的な)BVHを生成できるが、効果的に実装することはより困難になり得る。
【0019】
これらの方法のそれぞれが、BVHが生成され得る前に、すべての物体に関する情報を利用可能にすることを必要とする。当然のことながら、これは多くのアプリケーションで受け入れられるが、他のアプリケーションでは、BVHをオンザフライで生成できることが好ましい場合がある。
【0020】
考慮され得る第3の手法は、挿入方法の手法である。これらはオンザフライで実行でき、物体ごとにBVHのバウンディングボリュームに物体を挿入することによって実行される。これは、挿入時に必要とされるのは、その物体に関する情報のみであることを意味する。挿入手法は、最適または適切な配置を特定するように物体の配置が判定される多様な関連方法を包含する。例えば、BVHへの影響を最小化するか、何らかの仕方で低減するように挿入が実行される状態で、BVHへの挿入の影響を(サイズまたはナビゲート可能性などの観点から)評価する関数が定義され得る。
【0021】
当然のことながら、上で論じたものに限定されるのではなく、本開示の教示に適合する任意の他の適切な手法が検討されてもよい。
【0022】
任意の適切な入力データが、BVHおよび関連するバウンディングボリュームを使用して表され得る。例えば、ビデオゲームは、そのような構造を生成するための適切な入力データのソースを提供することができ、この場合、入力情報は、それぞれの寸法および位置を定義する仮想物体に関するデータであり得る。同様に、実環境を記述する情報を情報ソースとして使用することができる。例えば、情報は実環境および環境内の物体の画像から生成され、この情報を使用して、その環境の画像をレンダリングするために使用され得るBVHを生成できる。
【0023】
図2および図3は、レイトレーシングアルゴリズムでのバウンディングボリュームの使用法を概略的に示している。
【0024】
図2は、光線が追跡されるビューポート200を概略的に示している。これは、例えば、視聴者に提示される仮想環境内のカメラビューであり得る。シーンは、バウンディングボリューム220によって囲まれた物体210を含む。かなり多数になり得る物体210を構成する多角形のそれぞれとの各光線の交差判定をするのではなく、バウンディングボリューム220に関してのみ交差判定される。当然のことながら、バウンディングボリューム220と交差しない光線は、物体210を形成する多角形と交差しない。ただし、当然のことながら、物体210を形成する多角形と交差しない光線は、バウンディングボリューム220と交差する場合がある。
【0025】
例えば、100の光線を交差判定する場合、この段階で必要とされるのは100の判定だけである。なぜなら、各光線について判定対象の物体(バウンディングボリューム220)は1つであり、100に物体210を構成する多角形の数を乗じた数ではないためである。
【0026】
図3は、バウンディングボリューム220を拡大して示しており、より小さなバウンディングボリューム230および231が、物体210を表すために使用されている。バウンディングボリューム230および231は、物体210の視覚的外観のより細かい近似を得るために、バウンディングボリューム220と交差することが判明した光線のそれぞれについて交差判定され得る。
【0027】
例えば、10本の光線だけがバウンディングボリューム220と交差することが判明した場合、この段階では30回の判定(つまり、各バウンディングボリュームでの各光線についての判定)が必要になる。これもまた、上で述べたように100に物体210を構成する多角形の数を乗じた判定に比べて非常に少量である。したがって、交差判定される総数が、バウンディングボリュームが定義されておらず、BVHが使用されない場合に必要とされる量よりも少なくなるように、交差について考慮される光線の減少数は、考慮されるバウンディングボリュームの増加数を相殺するのに十分であることは明らかである。
【0028】
実際の実装では、これらのボリュームは、多角形が代わりに使用され得る、バウンディングボリュームと物体を表す多角形(プリミティブ)とが同様の表示領域を占める時点など、物体210の表面がアプリケーションに適切なレベルの精度で表されるまで、さらに分割され得る。
【0029】
これらの例では、バウンディングボリューム220は、バウンディングボリューム230、231よりもBVHにおいて上位であると見なされ得る。例えば、バウンディングボリューム220は、図1の120などのボリュームに対応し得、より小さいバウンディングボリューム230、231は、図1の130などのボリュームに対応し得る。
【0030】
これらの図から、レイトレーシング法で実行される計算の数は、バウンディングボリュームおよびBVHを使用することで大幅に削減され得ることが明らかである。これは、評価される交点の数が大幅に削減され得るためである。
【0031】
このようなプロセスの効率は、BVHをより適切に定義することによってさらに向上され得る。本議論では、これは、必ずしもBVH構造自体のプロパティではなく、より高速またはより効率的なトラバーサルを可能にするBVH構造を指す。本開示の実施形態では、BVH構造は、トラバーサルを改善できるように方向依存性をサポートするように定義される。
【0032】
図4は、3次元空間における立方体を概略的に示している。図に示すように、面のそれぞれはデカルト座標系のそれぞれの軸に(正または負の方向に)整列されている。つまり、立方体400は、正のx方向に整列された第1の面410(および負のx方向に整列された立方体の反対側にある対応する面)と、正のy方向に整列された第2の面420(および負のy方向に整列された立方体の反対側にある対応する面)と、正のz方向に整列された第3の面430(および負のz方向に整列された立方体の反対側にある対応する面)とを有する。
【0033】
これを考慮して、物体の表面の向きを面410、420、430のうちの1つ(またはそれらの反対側にある面)と比較することによって、表面の主方向または支配的な方向を識別することが可能であると考えられる。つまり、物体の表面のそれぞれを、どの面が最も類似した方向を有するかを判定することによって、立方体400の面のうちの1つによって近似する(または他の方法で表す)ことができる。これは、例えば、面法線を比較することによって、または関連付けられているメタデータなどから方向を識別することによって判定され得る。
【0034】
図5は、上記の説明に沿って、物体の表面を、近似に使用される対応するグループにマッピングする2次元の例を概略的に示している。この図は十二角形500を示しており、十二角形500の辺のそれぞれが4つのグループ510、520、530、540のうちの1つに割り当てられている。これらのグループのそれぞれは、図4に示すように、面のうちの1つに対応する。例えば、グループ540は面410に対応し、グループ530は面420に対応する。
【0035】
図から明らかなように、形状500の辺は、辺が向けられる方向に応じてこれらのグループに割り当てられる。例えば、グループ530の表面のそれぞれは、実質的に+y方向の向きを有することは明らかである。つまり、その面の法線ベクトルのy成分は、他の成分に対して最大の大きさを有する。
【0036】
当然のことながら、同じプロセスが、3次元において適切であると見なされ得る。ここでは、わかりやすくするために2次元の場合を検討している。3次元の場合、同じ解析(つまり、表面の向きを判定するための解析)が、x成分およびy成分と同様に、z成分への検討に適用される。当然のことながら、任意の適切な座標系を使用できる。このプロセスの基礎を形成するためにデカルト座標を使用する必要はない。
【0037】
このような表面の向きに基づく表面のグループ化を実装することにより、それらのグループを使用して、仮想環境内の表面の向きに応じてBVH構造を生成することが可能になる。これは、生成されたBVH構造が、レンダリングされる物体の表面の向きに対するレイトレーシングに使用される光線の方向に関する情報に基づいて選択的にトラバースされ得るという点で有利である。BVHをトラバースする処理コストは、ノード数の対数に比例する。したがって、方向性に基づいていくつかの小さいBVHを提供することにより、各BVHをトラバースするコストが削減される。一般に、この削減は、複数のBVHのトラバーサルに関連付けられる処理コストの増加を少なくとも相殺するのに十分である。
【0038】
以下の説明は、各グループに対応する個々のBVHに言及しているが、これは限定的なものと見なされるべきではない。BVH構造に関連するさらなる説明を以下に示す。
【0039】
例えば、図5の物体500のレンダリングについて考える。図6は、物体500を含む仮想環境内における異なる仮想カメラ位置に関連付けられ得る、一対の入射光線600および610を示している。これらの光線が仮想カメラの一般的な方向を示し得る、または、レイトレーシングプロセスでどのBVHが着目の対象であるかを判定するときに、複数の光線が考慮され得る。当然のことながら、判定は、画像レンダリングプロセス中にレイトレーシングプロセスが連続的に(または繰り返し)実行され得るという事実を認識して動的に実行され得る。つまり、判定は、BVH構造のどの部分がその特定のレイトレーシングプロセスに使用されるかの判定であり得る。
【0040】
光線600は、グループ540に対して垂直方向に入射するため、グループ540に対応するBVHは、レイトレーシングプロセスに不可欠であると見なされ得る。このグループの表面は、遮られるなどしていない場合、確実に見える。グループ510および530に対応するBVHは、有用であると見なされ得る。これらのグループのそれぞれにおける表面のうちの少なくとも一部が光線600から見えることは明らかである。しかしながら、相対的な向きに起因する影響が低減され得るため、より高速またはより廉価なレイトレーシングプロセスを提供するために、これらのグループのBVHはいくつかの実施形態では省略され得る。
【0041】
当然のことながら、このような例では、最後のグループ520は完全に隠される。光線と同じ方向(または少なくとも実質的に同じ方向)に面する表面は、その光線と直接相互作用しない。したがって、グループ520に対応するBVHは、レイトレーシングプロセスに大きな影響を与えることなく完全に省略できると考えられる。したがって、これにより、そのレイトレーシングに関連付けられるトラバーサルプロセスが簡素化される。
【0042】
光線610に目を向けると、光線610がその方向に対して負のx成分と正のy成分との両方を含むことは明らかである。これは、光線610がグループ510および540の両方の表面に入射することを意味し、それは、これらのグループのそれぞれが、入射光線610の符号と少なくとも1つの符号が異なる成分を有する法線ベクトルを有する表面を含む(すなわち、これらのグループの表面のそれぞれが、正のx成分と負のy成分との一方または両方を持つ法線を有する)ためである。これらのグループのすべての表面が光線610と交差し得るわけではないが、それらのうちの少なくとも一部が交差していれば十分である。
【0043】
図6からさらに明らかなように、光線610は、グループ520または530のどの表面にも直接入射していない。したがって、これらのグループに対応するBVHのそれぞれは省略でき、つまり、光線610に関連付けられたBVHのトラバーサルは、グループ510および540に対応するBVHをトラバースするだけで済む。
【0044】
当然のことながら、これらは例示的な構成に過ぎず、BVH構造の方向ベースのトラバーサルの一般的な原理を示すことを目的としている。多数の修正および変形が以下で議論され、本開示を読めば当業者には明らかになるはずである。
【0045】
例えば、上記の説明は3つのデカルト座標軸に整列された立方体の表面の説明に限られているが、これは必須の特徴ではない。図7は、図5および図6の例の文脈において、グループの数が増加しているような修正を概略的に示している。
【0046】
図7の例では、4つのグループ510、520、530、540ではなく、(12の方向または表面の向きのうちの1つにそれぞれ対応する)12のグループ700が定義されている。当然のことながら、この数は純粋に例示的なものであり、本教示は、より多数のグループとより少数のグループとの両方を含み、必要に応じて任意の数のグループに拡張できる(また、上記のように、3次元に拡張できる)。
【0047】
より多数のグループを使用する場合、各グループに対応するBVHのサイズが削減されることが理解されよう。これにより、BVHのそれぞれのトラバーサル時間をさらに短縮でき、方向を考慮することに基づいて、より多数のBVHを破棄すること(またはトラバーサルしないこと)ができるようになる。
【0048】
例えば、光線600が更新されたグループ化構成で図7の形状に入射する場合、5つのグループ700のみが光線600と交差していると見なすことができる(下部のグループ、および下部のグループの両側にある2つのグループ)。これは、図6の例よりも定義されたグループの大きさが小さく(42%対75%)、そのため、トラバースされるノードの総数が少なくなるため、処理コストの全体的な削減を表し得る。
【0049】
上記は規則的な形状を使用して説明されたが、グループ化は、代わりに不規則な形状の表面の向きに基づいて実行されてもよい。例えば、環境内の表面の向きの相対的な比率を判定するために、仮想環境(または対応する仮想環境を生成するためにキャプチャされた実環境)の解析が実行され得る。環境内の表面をどのようにグループ化するかの判定は、この解析に応じてなされ得る。例えば、多くの物体を特定の方向から(例えば、壁に取り付けられているために)見ることができない環境では、より不規則なグループ化を検討できる。例えば、図5のグループ520を(壁に取り付けられた物体の背面と一致するように)グループ510、530、および540が対応するグループ700に置き換えられた状態で定義できる。
【0050】
表面のグループ化が実行されたならば、このグループ化に応じてBVHが生成されるべきである。当然のことながら、BVH構造は異なってもよい。これは、特定のアプリケーション、特定の環境もしくは物体構成、または個人的な好みなどに応じ得る。以下の説明は、図4に関連して説明したように、立方体の面に基づくBVHのグループ化の文脈で検討され得るいくつかの可能なBVH構造の例を提供する。
【0051】
図8は、複数の関連のないBVH800が提供される例示的なBVH構造を概略的に示している。この場合、6つのBVH800が提供され、1つのBVH800は図4の立方体の各面に対応する。BVH構造を利用する場合、使用されるBVH800は、BVHおよび1つまたは複数の入射光線に関連付けられる方向情報に基づいて、独立して選択され得る。
【0052】
図9は、単一のBVH900が、特定の表面の向きに対応するBVHの分岐をそれぞれ表すいくつかの上位ノード910を備える例示的なBVH構造を概略的に示している。例えば、BVHノード910のそれぞれは、図4の立方体の面によって近似された表面の向きにそれぞれ対応し得る。そのような構造では、ノード910は、向きの情報に基づいて選択的にトラバースされ得る。
【0053】
図10は、複数のBVH1000が提供され、ノード1010のサブセットにそれぞれ関連付けられる例示的なBVH構造を概略的に示している。この例では、図の明瞭さを保つために、BVH1000のうちの2つについての関連付けが示されている。具体的には、BVH1000は、5つのノード1010の異なる集合にそれぞれ関連付けられ、そのため、各BVH1000は、特定の方向に関連するBVHデータを省略する。当然のことながら、BVH1000は、効果的なBVH構造を提供するために、任意の適切な数のノード1010に関連付けられるように定義され得る。例えば、BVH1000のそれぞれは、代わりに(5つではなく)ノード1010の対に関連付けられ得、複数のBVH1000が、1つだけではなく選択され得る。
【0054】
このような構成は、図9のように単一のBVHを使用する場合のようにノードを無視する必要があるトラバーサルを必要とせずに、複数のBVHを格納する場合に比べてデータストレージ要件が軽減されるという点で有利であり得る。
【0055】
どのBVHが使用されるかの判定は、任意の適切な方式で判定され得る。上記のように、最初の例は、面法線が1つまたは複数の座標方向でベクトル方向を共有するか否かを検討する例である。別の例は、1つまたは複数の入射光線のベクトル成分のそれぞれ(デカルト座標が使用される実施形態では、x、y、およびz座標)の符号を考慮し、それらのベクトルを次式に入力する判定の例である。
BVH_index=sign(direction.x)+2*sign(direction.y)+4*sign(direction.z)
【0056】
sign()の値を、ベクトルが所与の方向に正の成分を有するものとする場合に1とし、負の方向を有する場合に0とすることにより、この式は、入射光線の方向に応じて8つの一意のBVHインデックスを定義する。BVHまたはBVH構造の何らかの構成(使用するノードの選択など)をこれらのBVHインデックスのそれぞれに関連付けることにより、方向情報に基づいてレイトレーシングを実行するために使用するBVH情報の適切な集合を選択できる。当然のことながら、変数を更新して様々なインデックスの数を判定できる状態で、必要なインデックスの数に関係なく同様の式を使用できる。
【0057】
代替的または追加的に、さらなる計算を使用して、上で計算されたBVHインデックスによって識別される特定のグループ内のBVHグループを識別することができる。例えば、各ベクトル成分の値が特定の閾値以上であるか否か、およびこれがレイトレーシングに必要とされ得るBVHを変化させるか否かが判定され得る。例えば、図6の光線600および610を使用して、光線600は、(ゼロであるため)正のy成分を有すると見なされ得る、または極めて小さいy成分を有する同様の光線が定義され得る。これにより、上記の式を使用して同じBVHインデックスが識別されるが、光線600はグループ530の表面と交差する可能性が依然として高い。したがって、各インデックス内でそのような異なるケースを識別することが有利であり得る。
【0058】
図11は、レイトレーシングプロセスを実行するためのシステムを概略的に示している。本システムは、BVH識別ユニット1100と、BVH選択ユニット1110と、レイトレーシングユニット1120とを備える。このようなシステムは、例えば、グラフィックス処理ユニット、またはコンピュータまたはゲームコンソールなどの任意の適切な処理デバイスに組み込まれ得る。
【0059】
BVH識別ユニット1100は、仮想環境の画像を生成するために使用するためのBVH構造を識別するように動作可能であり、BVH構造が仮想環境内の1つまたは複数の表面に関する情報を含む。これは、ハードドライブの読み取りまたはネットワークを介した伝送の受信などによるBVH構造の受信、およびBVHの構造の判定を含み得る。例えば、これは、使用されるグループ化(グループの数、およびそれらのグループの方向依存性など)、ならびにBVH構造がどのように構成されるかを識別すること(図8図10に関連して説明される構成または任意の他の適切な構成の中から選択することなど)を含み得る。
【0060】
仮想環境内の1つまたは複数の表面に関する情報への言及は、表面の特定の向きなどに関する情報に加えて、表面の形状、位置、および/またはサイズに関する情報を意味すると解釈され得る。色情報、反射率情報、または物体識別子など、表面の他の特徴もまた、必要に応じて情報に示され得る。
【0061】
上記のように、BVH構造は、任意の適切な形態をとることができる。
【0062】
いくつかの実施形態では、BVH構造が、それぞれの向きまたは向きの範囲の表面にそれぞれ対応する複数のBVHを含み、BVH選択ユニットが、1つまたは複数のBVHを破棄するように動作可能である。このような構造は、例えば図8に示されている。
【0063】
いくつかの実施形態では、BVH構造が、それぞれの向きまたは向きの範囲の表面にそれぞれ対応する複数のノードを有する単一のBVHを含み、BVH選択ユニットが、BVHの1つまたは複数のノードを破棄するように動作可能である。このような構造は、例えば図9に示されている。
【0064】
いくつかの実施形態では、BVH構造が、それぞれの向きまたは向きの範囲の表面にそれぞれ対応する複数のBVHを含み、複数のBVHのうちの2つ以上が1つまたは複数のノードを共有し、BVH選択ユニットが、1つまたは複数のBVHを破棄するように動作可能である。このような構造は、例えば図10に示されている。
【0065】
上記のように、BVH構造は、表面に関する任意の適切な情報を含み得る。いくつかの実施形態では、BVH構造は、表面の向きに応じて表面のグループ化を識別する情報を含む。これは、グループの識別情報(およびグループに関連付けられた向きなどの関連パラメータ)およびこれらのグループへの表面の割り当ての両方を含み得る。場合によっては、グループのそれぞれが、3次元形状の面に対応し(当然のことながら、2次元の実装形態など、他の形状も考慮され得る)、各表面が、表面の法線を最も良く近似する面法線を有する面に対応するグループに割り当てられる。図4に関連して論じたように、いくつかの実施形態では、3次元形状が立方体であることが適切であると考えられ得るが、他の場合には、他の形状がより適切であり得る。
【0066】
BVH選択ユニット1110は、入射光線の方向に応じてBVH構造の1つまたは複数の要素を破棄するように動作可能である。つまり、BVH選択ユニット1110が、入射光線の方向に応じてレイトレーシングに使用されるBVH要素のグループを判定するように動作可能である。
【0067】
換言すれば、BVH選択ユニット1110は、BVH構造のどの部分がレイトレーシングプロセス(またはその時点で実行されているプロセスの少なくとも一部、例えば、単一の画像フレームなどのレンダリングに関連付けられたプロセスなど)に使用されるかを判定するように動作可能である。要素は、必要に応じてBVH構造と呼ばれるBVHのグループを形成する個々のBVH、および/またはBVHのノードを指すことができる。
【0068】
選択プロセスは、任意の適切な方式で実行され得る。いくつかの実施形態では、BVH選択ユニット1110は、入射光線と少なくとも第1のベクトル成分符号を共有する向きの表面に対応する1つまたは複数のBVH要素を破棄するように動作可能である。
【0069】
いくつかの実施形態では、破棄プロセスは、レイトレーシングプロセスの実行に必要ではないBVH構造のすべての要素の破棄をもたらし得る。例えば、利用されるものを除くBVHのすべてのノードが破棄され得る、または特定の向きの表面のノードを含まないすべてのBVHが破棄され得る。換言すれば、BVH構造の要素の破棄は、任意の適切な程度に考慮されるノードの数を減らすために実行され得る。
【0070】
例えば、図8の例では、これにより、BVH800のうちの1つまたは複数が破棄され得る。図9およびBVHノード910に関連して論じた実施形態に関して、同様の破棄を実行し得る。図10の実施形態では、任意の数(5などであるが、他の任意の数が適切な場合もある)のBVH構造1000(および対応する使用されないBVHノード1010)を破棄することができる。
【0071】
レイトレーシングユニット1120は、残りのBVH要素を使用してレイトレーシングプロセスを実行するように動作可能である。上記のように、レイトレーシングプロセスは、コンピュータゲームまたはビデオなどの一般的な画像レンダリングプロセスの一部を形成し得る。
【0072】
図11の構成は、レイトレーシングプロセスを(例えば、画像レンダリング機能の一部として)実行するように動作可能であり、特に、
仮想環境の画像を生成するために使用するためのBVH構造を識別し、BVH構造が前記仮想環境内の1つまたは複数の表面に関する情報を含み、
入射光線の方向に応じてBVH構造の1つまたは複数の要素を破棄し、
残りのBVH要素を使用してレイトレーシングプロセスを実行する
ように動作可能であるプロセッサ(例えば、ゲームコンソールまたは任意の他のコンピューティングデバイスに配置されたGPUおよび/またはCPU)の例である。
【0073】
図12は、レイトレーシングプロセスで使用するためのBVHを生成するためのシステムを概略的に示している。本システムは、表面識別ユニット1200と、表面グループ化ユニット1210と、BVH構造生成ユニット1220とを備える。本システムは、例えば、仮想環境を設計するために、または入力された実世界の環境情報から仮想環境を生成するために使用されるコンピュータなどのコンテンツ作成システムに実装され得る。
【0074】
表面識別ユニット1200は、仮想環境内の1つまたは複数の表面を識別するように動作可能である。この識別は、環境内の表面に関する任意の適切な情報、例えば、向き、サイズ、形状、色、反射率、または表面が属する物体の識別情報の判定を含み得る。ここでは仮想環境について言及しているが、仮想環境の生成プロセスの一部として、同じ技法を実環境の画像またはビデオに適用することができると想定されている。
【0075】
表面グループ化ユニット1210は、識別された表面の向きに応じて表面の1つまたは複数のグループを生成するように動作可能である。グループ化プロセスは、上記の例のいずれか、または実際に任意の適切なプロセスに沿って実施され得る。例えば、グループ化プロセスは、各グループの代表的な向きを識別することと(単位立方体の各面の面法線方向を判定するなど)、次に、識別された各表面を、最も類似した(または適切に類似した)面法線を有する1つまたは複数のグループに割り当てることとを含み得る。
【0076】
この説明から明らかなように、必要に応じて、表面が複数のグループに割り当てられ得る。例えば、2つのグループが等しく(または実質的に等しく)適切である場合(例えば、各グループの面法線が、割り当てられている表面の面法線の差分閾値内にある場合)、表面は両方のグループに配置され得る。当然のことながら、これは繰り返しに起因してBVH構造のサイズを大きくするが、適切な仕方で実装すると、より効率的なBVH構造トラバーサルを得ることができる。例えば、グループを効果的に重ね合わせることができれば、少なくとも一部のユースケースでは、少数のBVHまたはBVHノードを利用できる可能性がある。
【0077】
BVH構造生成ユニット1220は、生成されたグループに応じてBVHを生成するように動作可能であり、BVH構造は、1つまたは複数の要素および1つまたは複数の表面に関する情報を含む。
【0078】
図12の構成は、レイトレーシングプロセスで使用するためのBVHを生成するように動作可能であり、特に、
仮想環境内の1つまたは複数の表面を識別し、
識別された表面の向きに応じて表面の1つまたは複数のグループを生成し、
生成されたグループに応じてBVHを生成し、BVH構造が、1つまたは複数の要素と1つまたは複数の表面に関する情報とを含む、
ように動作可能であるプロセッサ(例えば、ゲームコンソールまたは任意の他のコンピューティングデバイスに配置されたGPUおよび/またはCPU)の例である。
【0079】
図13は、レイトレーシングプロセスを実行するための方法を概略的に示しており、これは、例えば、図11の構成を使用して実施することができる。本方法は、いくつかの実施形態では、画像レンダリングプロセスの一部を形成することができる。
【0080】
ステップ1300は、仮想環境の画像を生成するために使用するためのバウンディングボリューム階層BVH構造を識別することであって、BVH構造が仮想環境内の1つまたは複数の表面に関する情報を含む、ことを含む。
【0081】
ステップ1310は、入射光線の方向に応じてBVH構造の1つまたは複数の要素を破棄することを含む。
【0082】
ステップ1320は、残りのBVH要素を使用してレイトレーシングプロセスを実行することを含む。
【0083】
図14は、レイトレーシングプロセスで使用するためのBVHを生成するための方法を概略的に示している。図14の方法は、例えば、図11の構成を使用して実施することができる。
【0084】
ステップ1400は、仮想環境内の1つまたは複数の表面を識別することを含む。
【0085】
ステップ1410は、識別された表面の向きに応じて表面の1つまたは複数のグループを生成することを含む。
【0086】
ステップ1420は、生成されたグループに応じてBVHを生成することであって、BVH構造は、1つまたは複数の要素および1つまたは複数の表面に関する情報を含む、ことを含む。
【0087】
上記のように、本開示の実施形態は、生成されたBVH構造のトラバースが低減されたコストを有し得るという点で、より効率的なBVH構造が生成されることを可能にし得る。トラバーサルプロセスのコストのそのような削減は、レイトレーシングプロセス時間の削減、または関連する処理コストの実質的な増加なしに高品質の画像の生成を可能にすることにより、より応答性の高い画像レンダリング時間につながり得る。
【0088】
上記の技法は、ハードウェア、ソフトウェア、またはこれら2つの組み合わせで実装され得る。ソフトウェア制御データ処理装置を使用して実施形態の1つまたは複数の特徴を実装する場合、そのようなソフトウェア、およびそのようなソフトウェアが提供される非一時的機械可読記憶媒体などの記憶媒体または伝送媒体はまた、本開示の実施形態と見なされることが理解されよう。
【0089】
したがって、上述の議論は、本発明の例示的な実施形態を開示および説明しているに過ぎない。当業者には理解されるように、本発明は、本発明の趣旨または本質的な特徴から逸脱することなく、他の特定の形態で具体化され得る。したがって、本発明の開示は、本発明の範囲、ならびに他の特許請求の範囲を例示することを意図しているが、限定するものではない。本明細書の教示の容易に識別可能な変形を含む本開示は、発明の主題の知的財産権が失われることのないように、上述の特許請求の範囲の用語の範囲を部分的に定義する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14