JP7161154B2 - 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置 - Google Patents

階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置 Download PDF

Info

Publication number
JP7161154B2
JP7161154B2 JP2018240066A JP2018240066A JP7161154B2 JP 7161154 B2 JP7161154 B2 JP 7161154B2 JP 2018240066 A JP2018240066 A JP 2018240066A JP 2018240066 A JP2018240066 A JP 2018240066A JP 7161154 B2 JP7161154 B2 JP 7161154B2
Authority
JP
Japan
Prior art keywords
grid
hierarchical
bounding volume
node
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018240066A
Other languages
English (en)
Other versions
JP2020102022A (ja
Inventor
憲 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Aizu
Original Assignee
University of Aizu
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Aizu filed Critical University of Aizu
Priority to JP2018240066A priority Critical patent/JP7161154B2/ja
Publication of JP2020102022A publication Critical patent/JP2020102022A/ja
Application granted granted Critical
Publication of JP7161154B2 publication Critical patent/JP7161154B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は、階層バウンディングボリュームを用いた光線追跡法により画像生成するための階層バウンディングボリューム生成方法及び当該階層バウンディングボリューム生成方法をコンピュータ装置に実行させるためのコンピュータプログラムに関する。
光線追跡法(Ray Tracing)は、視点から物体(プリミティブ)の方向に向かって光線を追跡し、光線と物体との交差判定を行い、光線が物体と交差すれば、その交点における物体の光の状態(輝度など)を求め、画像面(スクリーン)に投影させて2次元の画像を生成する手法である。この光線追跡法は、光の物理現象を模倣することによって高品位の画像生成を行うことができ、工業デザインやインテリアシミュレーションなど幅広い分野で活用されている。
光線追跡法による演算処理は、特に光線と物体との交差判定に非常に多くの時間を費やし、基本的なアルゴリズムでは計算量が膨大となる。そのため、光線と物体との交差判定にかかる演算量を減らし、この演算処理を高速化する手法として例えば階層バウンディングボリューム(Bounding Volume Hierachy:BVH)を利用した手法が提案されている(特許文献1-8、非特許文献1-4)。
BVHを使用した光線追跡法では、形状データに対してBVH木と呼ばれる木構造のデータ構造を生成し、そのBVH木を利用することで画像生成(レンダリング)を高速に行うことができる。
図7は、階層バウンディングボリュームを模式的に説明するための図である。バウンディングボリュームは、物体を取り囲む立体を表す。光線追跡法による画像生成は、3次元空間を取り扱うものであるが、図示の都合上、2次元空間として示される。図7(a)において、それぞれ破線矩形で表される、物体1(丸数字1)及び4(丸数字4)を囲むバウンディングボリュームC、物体3、2及び5(丸数字3、2及び5)を囲むバウンディングボリュームD、物体6、7及び8(丸数字6、7及び8)を囲むバウンディングボリュームB、さらに、バウンディングボリュームC、Dを囲むバウンディングボリュームAが生成され、各バウンディングボリュームと光線(ray)との交差判定を行い、交差しない場合は、その中の物体との交差判定を省略される。各バウンディングボリュームとその中に包含される物体のデータ構造として、図7(b)に示す階層関係を有する木構造の階層バウンディングボリュームが生成される。
図8は、光線追跡法による画像生成の概略手順を示す図である。3次元空間内における物体のリストについて、演算処理を高速化させるデータ構造である階層バウンディングボリューム(BVH)を生成・更新し、その階層バウンディングボリュームを用いてレンダリング処理を実行し、画像を生成する。
特開平5-028280号公報 特開2001-067493号公報 特開2003-271988号公報 特開2009-157591号公報 特開2013-037691号公報 特開2014-026652号公報 特開2018-073427号公報 特許第6273380号公報
Thomas Larsson and Tomas Akenine-moeller. 2006 A Dynamic Bounding Volume Hierarchy for Generalized Collision Detection. Computer and Graphics 30, 3 (2006), 450-459. Ingo Wald. 2007. On Fast Construction of SAH-based Bounding Volume Hierarchies. In Proceedings of the 2007 IEEE Symposium on Interactive Ray tracing 33-40. Ingo Wald, Solomon Boulos, and Peter Shirley. 2007. Ray Tracing Deformable Scenes Using Dynamic Bounding Volume Hierarchies. ACM Trans. Graph. 26,1 (2007), 6:1-6:18. Sung-Eui Yoon, Sean Curtis, and Dinesh Manocha. 2007. Ray Tracing Dynamics Scenes Using Selective Restructuring. In Proceedings of the 18thEurographics Conference on Rendering Techniques. 73-84.
しかしながら、階層バウンディングボリューム(BVH)を使用する場合、静的シーン(物体が動かないシーン)に対してはBVHは比較的効率的に作用するが、動的シーン(物体が動くシーン)では、フレーム間で物体が動くたびに、BVH木全体を一から作り直す必要があり効率が悪くなる。すなわち、物体の動きに応じてその都度フレーム毎にBVH木全体を更新する処理が必要となりその更新処理に多くの時間を費やすことになり、その結果、BVHを利用する効果が発揮されにくくなり、画像生成時間が長くなるという問題がある。
そこで、本発明の目的は、階層バウンディングボリューム(BVH)木を高速に生成することができる手法を提案し、それにより高速に画像を生成するための階層バウンディングボリューム生成方法及びその階層バウンディングボリューム生成方法をコンピュータ装置に実行させるためのコンピュータプログラムを提供することにある。
上記目的を達成するための本発明は、階層バウンディングボリュームを用いた光線追跡法により3次元空間内の物体群を2次元スクリーンに投影させた画像生成を行うための階層バウンディングボリューム生成方法であって、物体群を構成する複数の物体の存在位置情報に基づいて、3次元空間をグリッド状に分割して形成される木構造の階層グリッドを生成する第一のステップと、木構造の階層バウンディングボリュームの一部分であって階層グリッドを構成する各グリッドノードに対応する部分である断片を生成し、階層グリッドの構造に基づいて当該断片を接続することにより階層バウンディングボリュームを生成する第二のステップとを備えることを特徴とする。
好ましくは、第一のステップは、フレーム毎に、生成された階層グリッドに対して、フレーム間で移動した物体に対応するグリッドノードを更新する処理を含み、第二のステップは、フレーム毎に、更新されたグリッドノードに対応する前記断片を再生成し、当該再生成された断片を接続して階層バウンディングボリュームを再構成する処理を含む。
さらに好ましくは、グリッドノードは、更新の有無を識別する識別情報を含み、グリッドノードが更新されると、識別情報は更新有りに設定され、当該更新有りに設定されている識別情報を含むグリッドノードに対応する断片を再生成する。また、断片が再生成されると、当該再生成された断片に対応するグリッドノードの識別情報を更新無しに設定する。例えば、存在位置情報は、物体の中心位置の座標である。
また、上記階層バウンディングボリューム生成方法をコンピュータ装置に実行させるためのコンピュータプログラム及びそのコンピュータ装置が提供される。コンピュータ装置は、サーバ装置、パーソナルコンピュータや携帯デバイスのような端末装置であり、さらに、サーバ装置及び端末装置を複数台接続した構成であってもよい。
本発明によれば、階層バウンディングボリュームを高速に生成することができ、動画においても、階層バウンディングボリュームを劣化させずに高速且つ効率的に更新することができ、光線追跡法による画像生成の高速化を図ることができる。
本発明の実施の形態における階層バウンディングボリューム生成装置(コンピュータ装置)の構成例を示すブロック図である。 本発明の実施の形態における階層バウンディングボリューム生成処理を説明するための模式図である。 本発明の実施の形態における階層バウンディングボリューム生成処理のフローチャートである。 本発明の実施の形態における階層バウンディングボリューム生成処理のフローチャートである。 本発明の実施の形態における階層バウンディングボリューム生成処理のフローチャートである。 本発明の実施の形態における階層バウンディングボリューム生成処理のフローチャートである。 階層バウンディングボリュームを模式的に説明するための図である。 光線追跡法による画像生成の概略手順を示す図である。
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
図1は、本発明の実施の形態における階層バウンディングボリューム生成装置の構成例を示すブロック図である。図1において、階層バウンディングボリューム生成装置10は、例えば、汎用的なコンピュータ装置で構成することができ、バス11に接続される構成要素として、演算処理を有する演算処理素子であるCPU12、本発明の階層バウンディングボリューム生成処理を実行するためのコンピュータプログラム及び必要なデータを格納する固定記憶素子であるROM13、演算処理中にデータを保存する一時記憶素子であるRAM14、キーボード、マイク、タッチパネルなど外部から情報を入力するための入力部15、ディスプレイなどの表示部16、及び通信ネットワークを含む外部と情報をやりとりするための通信機能を有する通信部17などを有して構成される。また、階層バウンディングボリューム生成装置は、本発明の画像生成機能を含む専用ハードウェア装置であってもよい。
階層バウンディングボリューム生成装置10は、画像生成装置の一部機能を実行するものであって、例えば汎用的なコンピュータ装置で実現される画像生成装置は、本発明における階層バウンディングボリューム生成処理により生成された階層バウンディングボリュームを利用した光線追跡法により二次元画像を生成する。すなわち、光線と階層バウンディングボリュームとの交差判定を行い、光線が階層バウンディングボリュームと交差すれば、階層バウンディングボリュームに含まれる一つの物体との交点を算出し、その交点における光の状態(輝度など)を求め、画像面(スクリーン)に投影させて2次元の画像を生成する。
図2は、本発明の実施の形態における階層バウンディングボリューム生成処理を説明するための模式図である。図2(a)は複数の物体(物体群と称する場合がある)が存在する所定の3次元空間(Scene space)を示し、説明のために、2次元領域として示される。3次元空間は、例えば4×4×4(図2(a)では4×4)のグリッド状に分割され(グリッド状に分割された空間をグリッドと称する)、グリッドにおける分割された一つ一つの空間であるセル(cell)は、さらにグリッド状に分割可能であり、一つのセル内に存在する物体の数が所定の上限数となるまで(図2(a)の例では、一つのセルに一つの物体)、複数階層にわたってグリッド状に分割される。物体の存在位置は、例えば物体の中心位置の座標であり、物体の重心の座標若しくは物体を囲むバウンディングボリュームの重心の座標を用いることができる。図2(a)では、左下の2つのセルが、さらに4×4×4(図2(a)では4×4)のグリッド状に分割されている状態が示され、一つのセルに一つの物体の重心が内包される状態が例示される。
図2(b)は、複数階層のグリッドのデータ構造である木構造の階層グリッド(グリッド木:grid tree)を示す。階層グリッドは、少なくとも一層のグリッドノード(grid node)と、グリッドノードと接続する末端の葉ノード(リーフノード:leaf node)とを有し、葉ノードには、上限数(例えば1つ)以下の物体が内包される。
図2(c)は、階層グリッドから変換されたデータ構造である木構造の階層バウンディングボリューム(BVH木:BVH tree)を示す。本発明の階層バウンディングボリューム生成処理は、物体群を構成する複数の物体(object)それぞれの存在位置情報(例えば物体の中心位置である重心の座標(centroid))に基づいて、3次元空間をグリッド状に分割して形成される木構造の階層グリッドを生成し、そして、木構造の階層バウンディングボリュームの一部分であって上記階層グリッドを構成する各グリッドノードに対応する部分である断片(fragment)を生成し、上記階層グリッドの構造に基づいて当該断片(fragment)を接続することにより階層バウンディングボリュームを生成する。
階層グリッド及び階層バウンディングボリュームはフレーム毎に更新され、フレーム毎に、階層グリッドに対して、フレーム間で移動した物体に対応するグリッドノードを更新し、さらに、フレーム毎に、その更新されたグリッドノードに対応する上記断片を再生成し、当該再生成された断片を接続して階層バウンディングボリューム(BVH木)を再構成する。物体が移動することにより、物体を囲むバウンディングボリュームの形状に変化が生じ、そのバウンディングボリュームの形状変化に伴い、グリッドノードが更新される。
BVH木において、階層グリッド(グリッド木)のグリッドノードと対応する断片を生成して、BVH木を更新する手法を採用することにより、更新されたグリッドノードのみを断片に変換することで、BVH木を更新することが可能となり、効率よく高速にBVH木を生成・更新することができる。フレーム間における物体の動きは、例えばシーン情報から取得できる。
図3乃至図6は、本発明の実施の形態における階層バウンディングボリューム生成処理のフローチャートである。図2を参照しつつ、図3乃至図6のフローチャートについて説明する。
図3は、階層グリッドの生成における階層グリッドに物体を挿入する処理のフローチャートである。図3の処理は、初期フレームにおいて、階層グリッドを新たに生成する処理として全ての物体(プリミティブ)を一つ一つ登録する処理、及び初期フレーム以降において、階層グリッドを更新する処理として、移動した物体のみを再登録する処理である。
図3において、「node」は階層グリッドのノード(グリッドノード又は葉ノード)を指すポインタ(pointer)、「level」はノードのレベル、「object」は挿入する物体、「c」はセルへのポインタであることを示す。物体を階層グリッド(グリッド木)に挿入するには、まず最初に、ポインタ(node)をグリッド木の根(root)へのポインタ、levelを0(ゼロ)として、当該図3の処理を開始する。
ポインタ(node)が空ポインタかどうかは判定する(S100)。空ポインタである場合は、階層グリッドが生成されていない初期段階である。S100がYesであれば、登録(挿入)対象となる一つの物体からなる新しい葉ノードを生成し、ポインタ(node)をその生成された葉ノードへのポインタで置き換える(S101)。
S100がNoであれば、さらにポインタ(node)がグリッドノードを指しているかどうか判定する(S102)。S102がYesであれば、そのグリッドノードの物体数を1増やす(S103)。さらに、そのグリッドノードのダーティビット(dirty bit)をセットする(S104)。ダーティビットは、ノード(グリッドノード及び葉ノード)に変更が生じたこと(この場合は物体数が1増えたこと)を識別する識別情報(フラグ)であり、後述するように、ダーティビットがセットされたノードに対して、対応する階層バウンディングボリュームの部分を生成・更新する。
グリッドノードにおいて、物体の位置を代表する中心位置を含むセルへのポインタ(c)を設定する(S105)。物体の中心位置として、例えば物体の重心の座標(物体が多角形である場合は物体頂点座標の平均値)、若しくは、演算量の削減のため、その物体を囲むバウンディングボリュームの重心の座標(中心点)を用いることができる。
そして、そのポインタ(c)について、S100に戻って図3の処理を再帰的に実行する(S106)。再帰処理を実行することで、木構造のグリッドノードを辿っていき、葉ノードに行き着くまで、処理が繰り返される。
S102がNoであれば、ポインタ(node)は葉ノードを指しているので、葉ノードに物体を登録し(S107)、その葉ノードのダーティビットをセットする(S108)。
その葉ノードに登録される物体数が所定の上限数を超えているかどうか、かつレベルが制限値以内かどうか判定する(S109)。葉ノードに登録される物体数の上限数はあらかじめ定められる。上限数は1又は複数であってもよい。レベルは、階層グリッドにおける木の高さである。
S109がYesであれば、新しい空のグリッドノードを生成し、そのポインタをgridnodeとし(S110)、葉ノードに登録された物体について、グリッドノードでの登録とするために、S100に戻って図3の処理を再帰的に実行する(S111)。そして、ポインタ(node)をグリッドノードを指すポインタ(gridnode)で置き換え(S112)、処理を終了する。
上記処理により、初期フレームにおける全ての物体について、階層グリッドが生成され、また、初期フレーム以降において、3次元空間内の位置が変更された物体(移動した物体)について、その移動した物体の位置(物体の重心の座標)に対応する葉ノード及びグリッドノードに物体を登録することで、階層グリッドが更新される。
図4は、階層グリッドの生成における階層グリッドから物体を削除する処理のフローチャートである。図4の処理は、初期フレーム以降において、直前のフレームまで3次元空間内に存在していた物体が3次元空間に存在しなくなった場合、若しくはその物体の移動により再登録の必要を生じた場合に、階層グリッドからその物体を削除する処理である。図4において、「node」は階層グリッドのノード(グリッドノード又は葉ノード)を指すポインタ、「object」は挿入する物体を示す。
ポインタ(node)がグリッドノードを指すポインタ(gridnode)であるかどうか判定する(S200)。S200がYesであれば、そのグリッドノードの物体数を1減らす(S201)。さらに、そのグリッドノードのダーティビットをセットする(S202)。ダーティビットは、上述したように、ノード(グリッドノード及び葉ノード)に変更が生じたこと(この場合は物体数が1減少したこと)を識別する識別情報(フラグ)であり、ダーティビットがセットされたノードに対して、対応する階層バウンディングボリュームの部分を生成・更新する。
グリッドノードにおいて、削除対象の物体の中心位置を含むセルへのポインタ(c)を設定する(S203)。物体の中心位置として、例えば物体の重心の座標(物体が多角形である場合は物体頂点座標の平均値)、若しくは、演算量の削減のため、その物体を囲むバウンディングボリュームの重心の座標(中心点)を用いることができる。
そして、そのポインタ(c)について、S200に戻って図4の処理を再帰的に実行する(S204)。再帰処理を実行することで、木構造のグリッドノードを辿っていき、葉ノードに行き着くまで、処理が繰り返される。
グリッドノードの物体数が0(ゼロ)になったかどうか判定する(S205)。S205がYesであれば、ポインタ(node)を空ポインタで置き換え(S213)、処理を終了する。S205がNoであれば、グリッドノードの物体数が葉ノードの上限数以下になったかどうか判定する(S206)。S206がYesであれば、新しい空の葉ノードを生成し、その葉ノードを指すポインタ(leafnode)を設定する(S207)。そして、グリッド以下にあるすべての物体をその生成された葉ノードに登録し(S208)、ポインタ(node)を葉ノードを指すポインタ(leafnode)で置き換える(S209)。
S200がNoであれば(ポインタ(node)が葉ノードを指している場合)、葉ノードから削除対象の物体を削除し(S210)、その葉ノードのダーティビットをセットする(S211)。
葉ノードの物体数が0(ゼロ)になったかどうか判定し(S212)、0(ゼロ)になった場合は、ポインタ(node)を空ポインタで置き換え(S213)、処理を終了する。
上記処理により、初期フレーム以降において、3次元空間内で存在しなくなった物体、若しくは移動によって再登録の必要を生じた物体について、葉ノード及びグリッドノードから削除され、階層グリッドが更新される。
図5は、生成・更新された階層グリッドを階層バウンディングボリュームに変換して、階層バウンディングボリュームを生成する処理のフローチャートである。図5の処理では、図3及び図4の処理により生成・更新された階層グリッドにおいて、グリッドノードをBVHノードに変換することにより、木構造の階層バウンディングボリューム(BVH木)を生成・更新する。
階層グリッド(グリッド木)のノードを指すポインタ(node)が葉ノードを指しているかどうか判定する(S300)。S300がNoである場合(ポインタ(node)がグリッドノードを指している場合)、そのグリッドノードのダーティビットがセットされているかどうか判定する(S301)。S301がYesであれば(そのグリッドノードにダーティビットがセットされている場合)、BVHノードへのポインタのリストLを空リストに設定し、そのグリッドノード内の全ての非空セルのポインタ(c)(物体が存在するセルを指すポインタ(c))について、S300に戻って図5の処理を再帰的に実行し、戻り値をリストLに加える(S303)。戻り値は階層バウンディングボリューム(BVH木)の根(root)である。つづいて、グリッドノードのダーティビットをクリアする(S304)。
そして、階層バウンディングボリュームの一部分であってグリッドノードに対応する部分のBVHノードを生成する(S305)。階層バウンディングボリュームの一部分であって一つのグリッドノードに対応する部分を「断片」(fragment)と称し、「断片」(fragment)はBVHノードで構成される。このS305の処理は、図6の処理として詳述する。S305の処理によりBVHノードが生成されると、グリッドノードに、生成されたBVHノードを記録し(S306)、BVHノードを返す(S307)。
S301がNoであれば(そのグリッドノードにダーティビットがセットされていない場合)、そのグリッドノードに記録されているBVHノードを返す(S312)。
S300がYesであれば(ポインタ(node)が葉ノードを指している場合)、その葉ノードにダーティビットがセットされているかどうか判定する(S308)。S308がYesであれば(葉ノードにダーティビットがセットされている場合)、バウンディングボックスを再計算し(S309)、ダーティビットをクリアし(S310)、葉ノードを返す(S311)。
上記処理により、階層グリッドを構成する各グリッドノードに対応するBVHノードが生成・更新され、階層バウンディングボリュームが生成・更新される。初期フレームにおいては、階層グリッド全体において、グリッドノードがBVHノードに変換されて、階層バウンディングボリュームが生成され、初期フレーム以降において、3次元空間内の位置が変更された物体(移動した物体)について、物体の移動に伴って更新されたグリッドノードに対応するBVHノードが更新される。葉ノードは、階層グリッドと階層バウンディングボリュームにおいて共有される。
図6は、階層グリッドにおけるグリッドノードを、階層バウンディングボリュームにおけるBVHノードで構成される「断片」(fragment)に変換する処理のフローチャートであって、図5のS305の処理を示す。図6において、「grid」はグリッドノード、「range」はグリッド中の有効範囲、「L」は各セルに対応するBVH木のリストを示す。
図6の処理において、ポインタ(node)が指すグリッドノードについて、図5のS303で求められるリストLの要素数が「1」であるかどうか判定する(S400)。要素数はリストLに登録されている戻り値に対応するポインタ数である。なお、S400がYesであれば(リストLの要素数が「1」である場合)、リストLの要素を返し(S410)、処理は終了する。
S400がNoであれば(リストLの要素数が「1」より大きい複数である場合)、リストLを走査して、グリッドノードのグリッド中の有効範囲(range)内の各スラブについて、合成バウンディングボックスとコストを求める(S401)。スラブは、グリッド中の2枚の平行する平面に挟まれた区間であり、所定の軸を基準に左右方向に分割された区間となる。
S401の処理に基づいて、グリッドの最良の分割面を求める(S402)。求めた分割面によって、リストLを2つのリストL_l、L_Rに分ける(S403)。さらに、分割面によってグリッドの範囲range_lとrange_Rに分ける(S404)。リストL_lとグリッドの範囲range_lは分割面の左側のグリッド部分に対応し、リストL_Rとグリッドの範囲range_Rは分割面の右側のグリッド部分に対応する。
分割された一方(左側)のリストL_lとそれに対応するグリッドの範囲range_lについて、S400に戻って図6の処理を再帰的に実行する(S405)。再帰処理を実行することで、対象のグリッドノードの分割面から左側の部分に対応するBVHノードが生成される(S407)。同様に、分割された他方(右側)のリストL_Rとそれに対応するグリッドの範囲range_Rについて、S400に戻って図6の処理を再帰的に実行する(S406)。再帰処理を実行することで、対象のグリッドノードの分割面から右側の部分に対応するBVHノードが生成される(S407)。生成されるBVHノードは、グリッドノードに対応する階層バウンディングボリューム(BVH木)の一部分である「断片」を構成する。
S407で生成されたBVHノードにバウンディングボックスを設定し(S408)、BVHノードを返す処理を行う(S409)。
上記処理により、階層グリッドのグリッドノードを、階層バウンディングボリューム(BVH木)の一部分を構成する「断片」に変換することができ、階層グリッドの構造に基づいて断片を接続することにより階層バウンディングボリュームが生成される。
上述した図3乃至図6の処理により、階層グリッドが生成され、階層グリッドを構成するグリッドノードを、階層バウンディングボリュームの一部分であってそのグリッドノードに対応する部分である断片に変換することで、階層バウンディングボリュームが生成される。初期フレームにおける階層バウンディングボリュームの生成時間も高速化される。
そして、階層グリッドにおいて、フレーム間で移動した物体に対応するグリッドノードが更新されると、その更新されたグリッドノードに対応する階層バウンディングボリュームの断片を更新することで、動画のように物体の移動(物体の位置変化のみならず、物体の追加や削除も含む)が伴う画像であっても、高速に階層バウンディングボリュームを更新することができ、その木構造が劣化しない。これにより、光線追跡における交差判定を高速かつ効率的に実行することができる。
本発明は、前記実施の形態に限定されるものではなく、本発明の分野における通常の知識を有する者であれば想到し得る各種変形、修正を含む要旨を逸脱しない範囲の設計変更があっても、本発明に含まれることは勿論である。

Claims (11)

  1. 階層バウンディングボリュームを用いた光線追跡法により3次元空間内の物体群を2次元スクリーンに投影させた画像生成を行うための階層バウンディングボリューム生成方法において、
    物体群を構成する複数の物体の存在位置情報に基づいて、3次元空間をグリッド状に分割して形成される木構造の階層グリッドを生成する第一のステップと、
    木構造の階層バウンディングボリュームの一部分であって前記階層グリッドを構成する各グリッドノードに対応する部分である断片を生成し、前記階層グリッドの構造に基づいて当該断片を接続することにより階層バウンディングボリュームを生成する第二のステップとを備えることを特徴とする階層バウンディングボリューム生成方法。
  2. 前記第一のステップは、フレーム毎に、前記生成された階層グリッドに対して、フレーム間で移動した物体に対応するグリッドノードを更新する処理を含み、
    前記第二のステップは、フレーム毎に、前記更新されたグリッドノードに対応する前記断片を再生成し、当該再生成された断片を接続して前記階層バウンディングボリュームを再構成する処理を含むことを特徴とする請求項1に記載の階層バウンディングボリューム生成方法。
  3. 前記グリッドノードは、更新の有無を識別する識別情報を含み、前記グリッドノードが更新されると、前記識別情報は更新有りに設定され、当該更新有りに設定されている識別情報を含む前記グリッドノードに対応する前記断片を再生成することを特徴とする請求項2に記載の階層バウンディングボリューム生成方法。
  4. 前記断片が再生成されると、当該再生成された断片に対応する前記グリッドノードの識別情報を更新無しに設定することを特徴とする請求項3に記載の階層バウンディングボリューム生成方法。
  5. 前記存在位置情報は、物体の中心位置の座標であることを特徴とする請求項1乃至4のいずれかに記載の階層バウンディングボリューム生成方法。
  6. 階層バウンディングボリュームを用いた光線追跡法により3次元空間内の物体群を2次元スクリーンに投影させた画像生成を行うための階層バウンディングボリューム生成方法をコンピュータ装置に実行させるコンピュータプログラムにおいて、前記コンピュータ装置に、
    物体群を構成する複数の物体の存在位置情報に基づいて、3次元空間をグリッド状に分割して形成される木構造の階層グリッドを生成する第一のステップと、
    木構造の階層バウンディングボリュームの一部分であって前記階層グリッドを構成する各グリッドノードに対応する部分である断片を生成し、前記階層グリッドの構造に基づいて当該断片を接続することにより階層バウンディングボリュームを生成する第二のステップとを実行させることを特徴とするコンピュータプログラム。
  7. 前記第一のステップは、フレーム毎に、前記生成された階層グリッドに対して、フレーム間で移動した物体に対応するグリッドノードを更新する処理を含み、
    前記第二のステップは、フレーム毎に、前記更新されたグリッドノードに対応する前記断片を再生成し、当該再生成された断片を接続して前記階層バウンディングボリュームを再構成する処理を含むことを特徴とする請求項6に記載のコンピュータプログラム。
  8. 前記グリッドノードは、更新の有無を識別する識別情報を含み、前記グリッドノードが更新されると、前記識別情報は更新有りに設定され、当該更新有りに設定されている識別情報を含む前記グリッドノードに対応する前記断片を再生成することを特徴とする請求項7に記載のコンピュータプログラム。
  9. 前記断片が再生成されると、当該再生成された断片に対応する前記グリッドノードの識別情報を更新無しに設定することを特徴とする請求項8に記載のコンピュータプログラム。
  10. 前記存在位置情報は、物体の中心位置の座標であることを特徴とする請求項6乃至9のいずれかに記載のコンピュータプログラム。
  11. 請求項6乃至10のいずれか記載のコンピュータプログラムを実行する前記コンピュータ装置。
JP2018240066A 2018-12-21 2018-12-21 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置 Active JP7161154B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018240066A JP7161154B2 (ja) 2018-12-21 2018-12-21 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018240066A JP7161154B2 (ja) 2018-12-21 2018-12-21 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置

Publications (2)

Publication Number Publication Date
JP2020102022A JP2020102022A (ja) 2020-07-02
JP7161154B2 true JP7161154B2 (ja) 2022-10-26

Family

ID=71139635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018240066A Active JP7161154B2 (ja) 2018-12-21 2018-12-21 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置

Country Status (1)

Country Link
JP (1) JP7161154B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220414824A1 (en) * 2021-06-23 2022-12-29 Apple Inc. Hierarchical Grid Interpolation Systems and Methods
US11989854B2 (en) 2021-06-23 2024-05-21 Apple Inc. Point-of-view image warp systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140368504A1 (en) 2013-06-12 2014-12-18 Microsoft Corporation Scalable volumetric 3d reconstruction
US20170200303A1 (en) 2016-01-11 2017-07-13 Samsung Electronics Co., Ltd. Rendering method and apparatus
JP2017188098A (ja) 2016-03-21 2017-10-12 イマジネイション テクノロジーズ リミテッド 階層融合

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140368504A1 (en) 2013-06-12 2014-12-18 Microsoft Corporation Scalable volumetric 3d reconstruction
US20170200303A1 (en) 2016-01-11 2017-07-13 Samsung Electronics Co., Ltd. Rendering method and apparatus
JP2017188098A (ja) 2016-03-21 2017-10-12 イマジネイション テクノロジーズ リミテッド 階層融合

Also Published As

Publication number Publication date
JP2020102022A (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
US6154215A (en) Method and apparatus for maintaining multiple representations of a same scene in computer generated graphics
EP3223244B1 (en) Hierarchy merging
CN112347546A (zh) 基于轻量级设备的bim渲染方法、设备和计算机可读存储介质
US8570322B2 (en) Method, system, and computer program product for efficient ray tracing of micropolygon geometry
CN111161428B (zh) 三维地图矢量瓦片数据的生成方法、存储介质及终端
CN106600679A (zh) 一种三维模型数据简化的方法
JPH0927046A (ja) 干渉チェック方法
WO2022121525A1 (zh) 三维场景数据的渲染方法及装置、存储介质、电子装置
CN111127637A (zh) 一种三维模型的数据处理方法、装置及电子设备
JP3034483B2 (ja) オブジェクト探索方法およびその方法を用いた装置
CN111127615A (zh) 一种三维模型的数据调度方法、装置及电子设备
KR100959349B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법
CN112669463A (zh) 三维点云的曲面重建方法、计算机设备和计算机可读存储介质
JP7161154B2 (ja) 階層バウンディングボリューム生成方法、コンピュータプログラム及びコンピュータ装置
KR100903777B1 (ko) 3차원 광선 추적 시스템에서 적응형 다중 계층 케이디-트리구조 알고리즘을 이용한 광선 추적 방법 및 장치
Liu et al. Real-time, dynamic level-of-detail management for three-axis NC milling simulation
US10460506B2 (en) Method and apparatus for generating acceleration structure
CN115578536A (zh) 一种分层分块三维模型节点合并方法、装置和电子装置
Rivara Lepp-bisection algorithms, applications and mathematical properties
KR101769013B1 (ko) 공간타일 기반의 3차원 객체 모델 병합을 통한 3차원 모델 가시화 방법
JP2915363B2 (ja) 空間探索システム
CN117036567A (zh) 一种三维场景模型渲染方法
JPH10293862A (ja) 三次元オブジェクトデータ処理方法
CN110443891B (zh) 一种3d模型的网格化处理方法及系统
Li et al. A comparative analysis of spatial partitioning methods for large-scale, real-time crowd simulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220823

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220929

R150 Certificate of patent or registration of utility model

Ref document number: 7161154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150