JP6281006B1 - 交差判定プログラム、交差判定方法及び交差判定装置 - Google Patents

交差判定プログラム、交差判定方法及び交差判定装置 Download PDF

Info

Publication number
JP6281006B1
JP6281006B1 JP2017067594A JP2017067594A JP6281006B1 JP 6281006 B1 JP6281006 B1 JP 6281006B1 JP 2017067594 A JP2017067594 A JP 2017067594A JP 2017067594 A JP2017067594 A JP 2017067594A JP 6281006 B1 JP6281006 B1 JP 6281006B1
Authority
JP
Japan
Prior art keywords
cone
intersection determination
sphere
ellipsoid
expansion
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
JP2017067594A
Other languages
English (en)
Other versions
JP2018169875A (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.)
Square Enix Co Ltd
Original Assignee
Square Enix Co Ltd
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 Square Enix Co Ltd filed Critical Square Enix Co Ltd
Priority to JP2017067594A priority Critical patent/JP6281006B1/ja
Application granted granted Critical
Publication of JP6281006B1 publication Critical patent/JP6281006B1/ja
Priority to US15/936,933 priority patent/US20180286111A1/en
Publication of JP2018169875A publication Critical patent/JP2018169875A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

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

Abstract

【課題】三次元仮想空間に定義された対象物が楕円体であってもカリングにおける楕円体と視錐体の交差判定を行うことを可能とすること。【解決手段】タイルベースカリングにおける各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定を行う交差判定手法であり、対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮処理を行って、伸縮処理後の球体の座標情報と伸縮処理後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行うようにした。【選択図】図3

Description

本発明の実施形態の少なくとも1つは、描画するシーンを複数の視錐体に分割した場合の各視錐体が描画シーンに配置された対象物と交差するか否かの判定を行うための交差判定プログラム、交差判定方法及び交差判定装置に関する。
近年、グラフィックス描画の分野では、より現実に近いグラフィックス表現を行うために大域照明(グローバルイルミネーション)の適用が行われている。グローバルイルミネーションに係る演算は、1つの点について様々な光源からの光路を考慮して演算を行うため、全ての光路について演算を行おうと思うと演算量が膨大となる。リアルタイムレンダリングの分野では、リアルタイムに演算を行う必要があることから時間的な制約が存在し、写実的なグラフィックスを目指しつつも演算量を低減する必要があるという課題がある。
演算量を低減するための方法として、ライトカリングが行われている。ライトカリングは、三次元仮想空間において光源からの光の影響範囲を所定範囲に限定し、所定範囲の外の点については光源の影響を無視することで演算量を低減させるという手法である。
ライトカリングの手法の1つとして、タイルベースライトカリング(Tile-based Light Culling)が存在する。タイルベースライトカリングは、描画画面を複数のタイルに分割して各タイルごとに視錐体(frustum)を設定して、視錐体と光源の影響範囲との間で交差判定を行う。ここで、交差判定とは、視錐体と光源の影響範囲とが重なる部分が存在するか否かを判定することである。視錐体と交差している光源についてはタイル内の描画点の演算時に光源からの影響を演算し、視錐体と交差していない光源についてはカリングして演算を省略するものである。具体的には、対象物としての光源の影響範囲は球体(bounding sphere)で表現されるため、球体と視錐体の交差判定によってライトカリングが行われる。タイルベースライトカリングを行っているものとしては、例えば、非特許文献1が挙げられる。
また、カリングの対象物は光源のみとは限らず、影響範囲を演算する必要のある対象物であれば、カリング処理を行う必要が生じる場合がある。例えば、非特許文献2においては、微粒子(particle)の影響範囲の演算について、タイルベースカリングを行うことが提案されている。
また、視錐体と球体との交差判定時に視錐体に軸平行境界ボックス(AABB)を適用して演算量を低減させたものとしては、例えば、非特許文献3が挙げられる。
Advanced Visual Effects With DirectX 11 & 12: Advancements in Tile-based Compute Rendering(http://www.gdcvault.com/play/1021764/Advanced-Visual-Effects-With-DirectX) Advanced Visual Effects with DirectX 11: Compute-Based GPU Particle Systems(http://www.gdcvault.com/play/1020002/Advanced-Visual-Effects-with-DirectX) STEWART J.: Compute-based tiled culling. In GPU Pro 6: Advanced Rendering Techniques. A K Peters/CRC Press, 2015, pp. 435-458. 1, 4
ところで、グローバルイルミネーションを行うにあたって、例えば、描画範囲外にある太陽等の光源からの光が壁面に当たって壁面及びその近辺が明るくなった状態などの間接照明を表現するために、仮想点光源(VPL:Virtual Point Light)が用いられている。壁面部分にVPLを多数配置することで壁面が太陽光を反射しているように見せるといった手法によって間接照明を表現している。このVPLの影響範囲については、従来は球体で影響範囲を表現していたが、鏡面反射の影響範囲については、球体よりも楕円体(bounding ellipsoid)で表現する方がより現実に近いグローバルイルミネーションを行えることが分かってきた。
しかし、従来のタイルベースカリングにおいては、対象物を球体ではなく楕円体で表現してカリングを行った例はなかった。仮に対象物を球体から楕円体にそのまま置き換えたとしても、楕円体と視錐体の交差判定の演算が複雑になってしまうことから演算量が増加して、リアルタイムレンダリングに支障が生じるおそれがある。
本発明の少なくとも1つの実施形態の目的は、上記問題を解決し、三次元仮想空間に定義された対象物が楕円体であってもカリングにおける楕円体と視錐体の交差判定を高速に行うことを可能とする交差判定プログラム、交差判定方法及び交差判定装置を提供することである。
非限定的な観点によると、本発明の一実施形態に係る交差判定プログラムは、三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定をコンピュータに実行させる交差判定プログラムであって、判定対象の視錐体の空間座標を取得する視錐体座標取得処理と、判定対象の対象物の空間座標を取得する対象物座標取得処理と、前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮処理と、伸縮処理後の球体の座標情報と伸縮処理後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定処理とをコンピュータに実行させることを特徴とする。
非限定的な観点によると、本発明の一実施形態に係る交差判定方法は、三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定を行うための交差判定方法であって、判定対象の視錐体の空間座標を取得する視錐体座標取得手順と、判定対象の対象物の空間座標を取得する対象物座標取得手順と、前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮手順と、伸縮手順後の球体の座標情報と伸縮手順後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定手順とを含むことを特徴とする。
非限定的な観点によると、本発明の一実施形態に係る交差判定装置は、三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定を実行する交差判定装置であって、判定対象の視錐体の空間座標を取得する視錐体座標取得手段と、判定対象の対象物の空間座標を取得する対象物座標取得手段と、前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮手段と、伸縮手段によって伸縮後の球体の座標情報と伸縮後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定手段とを具備したことを特徴とする。
本願の各実施形態により1または2以上の不足が解決される。
本発明の実施形態の少なくとも一つに対応する交差判定装置の構成の例を示すブロック図である。 本発明の実施形態の少なくとも一つに対応する交差判定処理の例を示すフローチャートである。 対象物が楕円体である場合の視錐体と楕円体の配置の一例を表した平面図である。 図3における視錐体と楕円体について伸縮処理を行った場合の視錐体及び球体を表した平面図である。 図4における視錐体と楕円体について回転処理を行った場合の視錐体及び球体を表した平面図である。 本発明の実施形態の少なくとも一つに対応する交差判定装置の構成の例を示すブロック図である。 本発明の実施形態の少なくとも一つに対応する交差判定処理の例を示すフローチャートである。 楕円体に対して伸縮処理を行った後の状態を表す図4の視錐体と球体に対して軸平行境界ボックスを設定した様子を表した平面図である。 回転処理を行った後の状態を表す図5の視錐体と球体に対して軸平行境界ボックスを設定した様子を表した平面図である。
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
[第1の実施形態]
図1は、本発明の一実施の形態における交差判定装置10Aの構成の例を示すブロック図である。図1に示す交差判定装置10Aは、専用マシンとして設計した装置であってもよいが、一般的なコンピュータによって実現可能なものであるものとする。この場合に、交差判定装置10Aは、一般的なコンピュータが通常備えているであろうCPU(Central Processing Unit:中央演算処理装置)、GPU(Graphics Processing Unit:画像処理装置)、メモリ、ハードディスクドライブ等のストレージを具備しているものとする(図示省略)。また、これらの一般的なコンピュータを本例の交差判定装置10Aとして機能させるためにプログラムよって各種処理が実行されることは言うまでもない。
本発明に係る交差判定装置10Aが適用されるのは、描画画面を複数のタイルに分割してカリングの処理を行うタイルベースカリングにおける各タイルに対応した視錐体と対象物との交差判定処理である。ここで交差判定とは、視錐体と対象物の影響範囲とが重なる部分が存在するか否かを判定することである。なお、タイルベースカリングに限らず、三次元仮想空間を所定単位の領域に分割して処理を行うものであれば同様に適用できるものであり、例えば、三次元仮想空間をさらに細かく分割して処理を行うクラスタードシェーディング(clustered shading)についても本発明を適用可能である。また、カリングを行いたい対象物についてはどのようなものであってもよいが、以下においては、対象物が光源である場合のライトカリングを例として説明を行う。
三次元仮想空間に複数の光源が存在する場合、複数の光源からの影響を各描画点ごとに計算することが理想ではあるが、演算量が膨大となるため、複数の描画点を一纏まりにしたタイル(長方形)によって描画画面を複数に分割して、タイルごとに視錐体を設定して、視錐体が対象物としての光源と交差するか否かによって、タイル内の各描画点の演算時に光源からの影響を演算するか否かを決定する。各タイル内の描画点の深さ情報からタイルに対応して設定される視錐体の手前の面の大きさ及び座標位置と底面の大きさ及び座標位置が決定されるため、視錐体の形状が定まる。三次元仮想空間に複数の光源が配置される場合、各光源の影響範囲を決定するために境界ボリューム(bounding volume)が設定される。視錐体ごとに三次元仮想空間に存在する全ての対象物としての光源との間で交差判定を行って、交差した光源については、視錐体の描画点に対して影響がある可能性があると判断して、描画点ごとに正確に光源からの影響量を演算するようにする。すなわち、描画点に対して光源からの影響を計算する必要があるか否かを決定するために、光源と視錐体の交差判定を行う。従来は、境界ボリュームとして球体が用いられてきたが、本発明においては、境界ボリュームとして楕円体が適用された場合についての交差判定に特徴を有するものである。
図1に示すように、交差判定装置10Aは、視錐体座標取得部11と、対象物座標取得部12と、伸縮処理部13と、回転処理部14aと、交差判定部16aとを具備している。
視錐体座標取得部11は、判定対象の視錐体の空間座標を取得する機能を有する。視錐体は、空間の奥行方向軸であるZ軸に垂直な四角形からなる上面とZ軸に垂直な四角形からなる底面を有した角錐台であり、上面の4点の座標位置と底面の4点の座標位置によって位置が決定される。
対象物座標取得部12は、判定対象の対象物の空間座標を取得する機能を有する。対象物が球体の場合には、中心座標と半径の情報によって位置が確定する。対象物が楕円体の場合には、中心座標と3つの軸の方向と、その半軸a、b、cによって位置が確定する。
伸縮処理部13は、対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる機能を有する。楕円体3つの軸の長さが異なる場合に、全ての軸を同一長さとするように、視錐体と楕円体が配置された空間全体を伸縮させることで、楕円体を球体へと変換する。視錐体を含む空間全体を同一比率で伸縮させることで、楕円体と視錐体の位置関係を崩すことなく球体と視錐体を変形したものに変化させる。さらに好ましくは、球体の半径が1となるように伸縮処理を行うことで、その後の交差判定処理の演算がより容易になる。
回転処理部14aは、伸縮処理後の球体と視錐体について、視錐体の底面が計算上の奥行方向軸に垂直となるように視錐体及び球体を回転させる機能を有する。交差判定の演算処理を容易にするために、視錐体の底面が奥行方向軸(Z軸)に垂直、すなわちX−Y平面と平行となるように回転処理を行う。
交差判定部16aは、球体の座標情報と視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する機能を有する。交差判定は、視錐体の各面と球体との間でそれぞれ判定を行い、何れか1つの面との間で交差していると判定された場合、視錐体と球体が交差していると判定する。交差判定の手法はどのようなものであってもよいが、例えば、面の垂直方向の距離を用いて行い、面の境界に関する判定は省略することが考えられる。つまり、各面において、N:法線ベクトル、O:面上の任意の点、C:球体の中心、R:球体の半径としたとき、面上の任意の点Oから球体の中心までのベクトルは(C−O)で表される。これを法線ベクトルNとの間で内積を演算すると、面上の任意の点Oからの法線方向の距離が求められる。面上の任意の点Oからの法線方向の距離が球体の半径Rより小さい場合には、交差していると判定する。すなわち、面上の任意の点について{N・(C−O)}<R(以下、交差判定式という)をひとつでも満たしていたら交差しているとみなす荒い交差判定とする。この球体と面との交差判定式は従来から既知の手法である。
次に、本例の交差判定装置10Aにおいて行われる交差判定処理の流れについて説明を行う。図2は、本発明の実施形態の少なくとも一つに対応する交差判定処理の例を示すフローチャートである。この図2に示すように、交差判定処理は、先ず、交差判定の判定対象である視錐体について三次元仮想空間における座標情報を取得する(ステップS101)。続いて、交差判定の判定対象である対象物について三次元仮想空間における座標情報を取得する(ステップS102)。
対象物が楕円体である場合、視錐体と楕円体の配置された空間全体について、楕円体が球体となるように伸縮処理を行う(ステップS103)。図3は、対象物が楕円体である場合の視錐体と楕円体の配置の一例を表した平面図である。この図3の状況の場合には、上記交差判定式をそのまま用いて交差判定を行うことができない。そこで、図3のように視錐体と楕円体の配置された空間全体について伸縮処理を行うことで楕円体を球体に変換する。図4は、図3における視錐体と楕円体について伸縮処理を行った場合の視錐体及び球体を表した平面図である。空間全体について伸縮処理を行う限りにおいては視錐体と楕円体の交差関係は、伸縮処理後の視錐体と球体においても引き継がれて交差関係が変化しないといえる。伸縮処理を行って楕円体を球体に変換することができれば、上記交差判定式を利用して交差判定を行うことが可能となる。なお、対象物が球体である場合については、半軸について最初からa=b=cの条件を満たした楕円体であるので、伸縮処理を行わずに次のステップに移行するだけである。
伸縮処理の後、視錐体の底面が計算上の奥行方向軸(Z軸)に垂直となる、すなわち、X−Y平面と平行となるように、視錐体及び球体を視点を中心として回転させる回転処理を実行する(ステップS104)。図5は、図4における視錐体と楕円体について回転処理を行った場合の視錐体及び球体を表した平面図である。図4における伸縮処理後の視錐体の状態でも交差判定処理は可能であるが、図5に示すように、視錐体の底面がZ軸と垂直となるように回転処理を行うことによって、交差判定時の演算量を低減することが可能となる。というのも、視錐体と球体との交差判定を行うには、視錐体の各面と球との距離を計算する必要があり、上記交差判定式において説明した通り、各面の法線と球の中心との内積によって計算される。このとき深度面がZ軸と垂直であれば、視錐体の上面と底面に関しては、距離の計算を法線や内積を行なわずに単純にZ軸方向の距離によって置き換えることが可能となるため、計算量を小さくすることが出来る。
最後に、視錐体と球体との間で交差判定を行って判定結果を出力して(ステップS105)、交差判定処理を終了する。三次元仮想空間に複数の対象物が定義されている場合には、各対象物との間で当該交差判定処理を行う。全ての対象物と交差判定処理を終えたら、視錐体内の各描画点に対する対象物の影響を詳細に演算するが、その時、交差していると判定された対象物のみとの間で詳細な演算を行う。
以上のように、本例の交差判定装置10Aによれば、対象物が楕円体である場合であっても、伸縮処理を行うことで既知の交差判定式を適用可能となる。また、回転処理を行うことによって視錐体の上面と底面がZ軸と垂直となり、単純にZ軸方向の距離を用いて交差判定を行えるようになるため、演算量を低減することが可能となる。すなわち、対象物として楕円体を適用したとしても交差判定処理を高速に行うことが可能となるため、リアルタイムレンダリングにおいても適切に交差判定を行うことが可能となる。
[第2の実施形態]
図6は、本発明の一実施の形態における交差判定装置10Bの構成の例を示すブロック図である。なお、第1の実施形態における交差判定装置10Aと同様の構成箇所については同一符号を付して説明を省略する。また、図6に示す交差判定装置10Bが、専用マシンとして設計した装置であってもよいが、一般的なコンピュータによって実現可能なものである点についても、第1の実施形態と同様である。
回転処理部14bは、伸縮処理後の球体と視錐体について、視錐体の底面が計算上の奥行方向軸に垂直となるように視錐体及び球体を回転させる機能を有する。交差判定の演算処理を容易にするために、視錐体の底面が奥行方向軸(Z軸)に垂直、すなわちX−Y平面と平行となるように回転処理を行う。また、回転処理部14bは、視錐体の底面を構成する何れか一辺が奥行方向軸に垂直な平面における縦軸又は横軸と平行となるように視錐体及び球体を回転させる機能を有する。すなわち、視錐体の底面を構成する一辺がX−Y平面のX軸又はY軸と平行となるように回転処理を行う。
軸平行境界ボックス設定部15は、視錐体を内包する軸平行境界ボックスを設定する機能を有する。ここで、軸平行境界ボックスとは、AABB(Axis-Aligned Bounding Box)とも呼ばれるものであり、X−Y平面に平行な面、X−Z平面に平行な面、及び、Y−Z平面に平行な面のみによって形成される直方体であり、視錐体を内包する大きさに設定される直方体である。視錐体がはみ出さずに内包される必要があり、条件を満たす直方体の中で最小サイズであることが好ましい。
交差判定部16bは、球体の座標情報と軸平行境界ボックスの座標情報とを用いて球体と軸平行境界ボックスの交差判定を行って判定結果を出力する機能を有する。交差判定の手法はどのようなものであってもよいが、例えば、上記交差判定式を用いて行うものとする。また、交差判定の手法として、非特許文献1に記載されている判定法を用いることで、各面と球との間で交差判定を行うよりも高速に計算できる。
次に、本例の交差判定装置10Bにおいて行われる交差判定処理の流れについて説明を行う。図7は、本発明の実施形態の少なくとも一つに対応する交差判定処理の例を示すフローチャートである。この図7に示すように、交差判定処理は、先ず、交差判定の判定対象である視錐体について三次元仮想空間における座標情報を取得する(ステップS201)。続いて、交差判定の判定対象である対象物について三次元仮想空間における座標情報を取得する(ステップS202)。
対象物が楕円体である場合、視錐体と楕円体の配置された空間全体について、楕円体が球体となるように伸縮処理を行う(ステップS203)。空間全体について伸縮処理を行う限りにおいては視錐体と楕円体の交差関係は、伸縮処理後の視錐体と球体においても引き継がれて交差関係が変化しないといえる。伸縮処理の後、視錐体の底面が計算上の奥行方向軸(Z軸)に垂直となる、すなわち、X−Y平面と平行となるように、視錐体及び球体を視点を中心として回転させる回転処理を実行する(ステップS204)。さらに、視錐体の底面の一辺がX軸又はY軸と平行となるように、視錐体及び球体を視点を中心として回転させる回転処理を実行する(ステップS205)。その後、回転処理後の視錐体を内包する軸平行境界ボックスを設定する(ステップS206)。最後に、軸平行境界ボックスと球体との間で交差判定を行って判定結果を出力して(ステップS207)、交差判定処理を終了する。三次元仮想空間に複数の対象物が定義されている場合には、各対象物との間で当該交差判定処理を行う。全ての対象物と交差判定処理を終えたら、視錐体内の各描画点に対する対象物の影響を詳細に演算するが、その時、交差していると判定された対象物のみとの間で詳細な演算を行う。
非特許文献1に示す通り軸平行境界ボックスを設定して交差判定を行う手法は従来から行われており、より演算量を低減することが可能となり有用である。ここで、図8は、楕円体に対して伸縮処理を行った後の状態を表す図4の視錐体と球体に対して軸平行境界ボックスを設定した様子を表した平面図である。この図8のように伸縮処理後の視錐体と球体に対して軸平行境界ボックスを設定した場合であっても、演算量の低減という効果は期待できる。しかし、本来の判定対象である視錐体が伸縮処理によって変形しているため、変形した視錐体を内包するように軸平行境界ボックスを設定すると、図8に示すように、元の視錐体に比較して体積の大きい軸平行境界ボックスを設定せざるを得ない。この場合、元の視錐体との間では交差していないのに、軸平行境界ボックスとの間では交差していると判定されてしまう偽陽性(false-positive)という判定ミスが生じる可能性が高まるという問題がある。
そこで、本例においては、伸縮処理の後、視錐体の底面が計算上の奥行方向軸(Z軸)に垂直となる、すなわち、X−Y平面と平行となるように、視錐体及び球体を視点を中心として回転させ、さらに、視錐体の底面の一辺がX軸又はY軸と平行となるように、視錐体及び球体を視点を中心として回転させる回転処理を実行する。図9は、回転処理を行った後の状態を表す図5の視錐体と球体に対して軸平行境界ボックスを設定した様子を表した平面図である。この図9に示すように、回転処理を行ってから軸平行境界ボックスを設定することで、視錐体と軸平行境界ボックスの体積差を小さくすることができるため、偽陽性と判定されてしまう可能性を低減することが可能となる。また、AABBの構築処理においても、視錐体の底面をZ軸に垂直にすることによってZ軸方向の境界を求める処理の計算量を抑えることができる。これはZ軸の境界を調べるために8頂点の全てを調べる必要がなく、上面と底面の深度を代わりに用いることができるようになるためである。
以上のように、本例の交差判定装置10Bによれば、対象物が楕円体である場合であっても、伸縮処理を行うことで既知の球体と視錐体の交差判定の関係に変換し、かつ、視錐体に対して軸平行境界ボックスを設定して、軸平行境界ボックスと球体の間で交差判定処理を行うようにしたので、演算量を低減することが可能となる。また、伸縮処理の後、回転処理を行ってから軸平行境界ボックスを設定するようにすることで、視錐体と軸平行境界ボックスの体積差を小さくすることができ、これによって偽陽性と判定されてしまう可能性を低減することが可能となる。また、この回転処理によって軸平行境界ボックスの構築に関わる計算量を低減することが可能となる。
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
本発明の実施形態の一つによれば、グラフィックス描画の分野において三次元仮想空間に定義される対象物の影響範囲の表現として楕円体を採用しても演算量を低減した交差判定を行うことが可能となるため、様々なグラフィックス描画において楕円体を用いた表現方法が増加してより好適な画像表現が可能となる。
10A、10B 交差判定装置
11 視錐体座標取得部
12 対象物座標取得部
13 伸縮処理部
14a、14b 回転処理部
15 軸平行境界ボックス設定部
16a、16b 交差判定部

Claims (8)

  1. 三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定をコンピュータに実行させる交差判定プログラムであって、
    判定対象の視錐体の空間座標を取得する視錐体座標取得処理と、
    判定対象の対象物の空間座標を取得する対象物座標取得処理と、
    前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮処理と、
    伸縮処理後の球体の座標情報と伸縮処理後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定処理と
    をコンピュータに実行させる交差判定プログラム。
  2. 伸縮処理の後、視錐体の底面が計算上の奥行方向軸に垂直となるように視錐体及び球体を視点を中心として回転させる回転処理を実行してから交差判定処理を行うようにした
    請求項1記載の交差判定プログラム。
  3. 前記回転処理において、視錐体の底面を構成する何れか一辺が奥行方向軸に垂直な平面における縦軸又は横軸と平行となるように視錐体及び球体を視点を中心として回転させるようにした
    請求項2記載の交差判定プログラム。
  4. 三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定をコンピュータに実行させる交差判定プログラムであって、
    判定対象の視錐体の空間座標を取得する視錐体座標取得処理と、
    判定対象の対象物の空間座標を取得する対象物座標取得処理と、
    前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮処理と、
    視錐体を内包する軸平行境界ボックスを設定する軸平行境界ボックス設定処理と、
    伸縮処理後の球体の座標情報と軸平行境界ボックスの座標情報とを用いて球体と軸平行境界ボックスの交差判定を行って判定結果を出力する交差判定処理と
    をコンピュータに実行させる交差判定プログラム。
  5. 伸縮処理の後、視錐体の底面が計算上の奥行方向軸に垂直となるように視錐体及び球体を視点を中心として回転させる回転処理を実行してから軸平行境界ボックス設定処理を行うようにした
    請求項4記載の交差判定プログラム。
  6. 前記回転処理において、視錐体の底面を構成する何れか一辺が奥行方向軸に垂直な平面における縦軸又は横軸と平行となるように視錐体及び球体を視点を中心として回転させるようにした
    請求項5記載の交差判定プログラム。
  7. 三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定を行うための交差判定方法であって、
    判定対象の視錐体の空間座標を取得する視錐体座標取得手順と、
    判定対象の対象物の空間座標を取得する対象物座標取得手順と、
    前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮手順と、
    伸縮手順後の球体の座標情報と伸縮手順後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定手順と
    を含む交差判定方法。
  8. 三次元仮想空間に定義された対象物が描画画面の描画点に影響するか否かを判断してカリングを行うために、描画画面を複数の視錐体に分割し、各視錐体が三次元仮想空間に配置された対象物と交差するか否かの判定を実行する交差判定装置であって、
    判定対象の視錐体の空間座標を取得する視錐体座標取得手段と、
    判定対象の対象物の空間座標を取得する対象物座標取得手段と、
    前記対象物の形状が楕円体である場合に、視点を原点とした空間全体について楕円体が球体となるように視錐体と楕円体が配置された空間を伸縮させる伸縮手段と、
    伸縮手段によって伸縮後の球体の座標情報と伸縮後の視錐体の座標情報とを用いて球体と視錐体の交差判定を行って判定結果を出力する交差判定手段と
    を具備した交差判定装置。
JP2017067594A 2017-03-30 2017-03-30 交差判定プログラム、交差判定方法及び交差判定装置 Active JP6281006B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017067594A JP6281006B1 (ja) 2017-03-30 2017-03-30 交差判定プログラム、交差判定方法及び交差判定装置
US15/936,933 US20180286111A1 (en) 2017-03-30 2018-03-27 Cross determining program, cross determining method, and cross determining apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017067594A JP6281006B1 (ja) 2017-03-30 2017-03-30 交差判定プログラム、交差判定方法及び交差判定装置

Publications (2)

Publication Number Publication Date
JP6281006B1 true JP6281006B1 (ja) 2018-02-14
JP2018169875A JP2018169875A (ja) 2018-11-01

Family

ID=61195806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017067594A Active JP6281006B1 (ja) 2017-03-30 2017-03-30 交差判定プログラム、交差判定方法及び交差判定装置

Country Status (2)

Country Link
US (1) US20180286111A1 (ja)
JP (1) JP6281006B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6466004B1 (ja) * 2018-01-23 2019-02-06 株式会社スクウェア・エニックス 影響光源特定プログラム、影響光源特定方法、影響光源特定装置及び描画処理プログラム
CN113168367A (zh) * 2018-10-23 2021-07-23 微软技术许可有限责任公司 位精确跟踪中的处理器存储器重排序提示

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108955520B (zh) * 2018-04-17 2020-09-15 武汉工程大学 一种结构光三维扫描可达性分析方法及分析系统
CN112837370A (zh) * 2021-02-26 2021-05-25 梅卡曼德(北京)机器人科技有限公司 基于3d包围盒的物体堆叠判断方法、装置及计算设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08293041A (ja) * 1995-04-24 1996-11-05 Daikin Ind Ltd 高速レンダリング方法およびその装置
JPH10293862A (ja) * 1997-04-21 1998-11-04 Power Reactor & Nuclear Fuel Dev Corp 三次元オブジェクトデータ処理方法
JP2000222603A (ja) * 1999-01-29 2000-08-11 Mitsubishi Electric Inf Technol Center America Inc サ―フェスエレメントで表現されるグラフィックオブジェクトをレンダリングする方法
US20020171644A1 (en) * 2001-03-31 2002-11-21 Reshetov Alexander V. Spatial patches for graphics rendering
JP2004348702A (ja) * 2002-09-06 2004-12-09 Sony Computer Entertainment Inc 画像処理方法、画像処理装置、および画像処理システム
JP2005353047A (ja) * 2004-05-13 2005-12-22 Sanyo Electric Co Ltd 立体画像処理方法および立体画像処理装置
US20150070353A1 (en) * 2013-09-12 2015-03-12 Analytical Graphics Inc. Visualization of field of view obstruction by an ellipsoid

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08293041A (ja) * 1995-04-24 1996-11-05 Daikin Ind Ltd 高速レンダリング方法およびその装置
JPH10293862A (ja) * 1997-04-21 1998-11-04 Power Reactor & Nuclear Fuel Dev Corp 三次元オブジェクトデータ処理方法
JP2000222603A (ja) * 1999-01-29 2000-08-11 Mitsubishi Electric Inf Technol Center America Inc サ―フェスエレメントで表現されるグラフィックオブジェクトをレンダリングする方法
US20020171644A1 (en) * 2001-03-31 2002-11-21 Reshetov Alexander V. Spatial patches for graphics rendering
JP2004348702A (ja) * 2002-09-06 2004-12-09 Sony Computer Entertainment Inc 画像処理方法、画像処理装置、および画像処理システム
JP2005353047A (ja) * 2004-05-13 2005-12-22 Sanyo Electric Co Ltd 立体画像処理方法および立体画像処理装置
US20150070353A1 (en) * 2013-09-12 2015-03-12 Analytical Graphics Inc. Visualization of field of view obstruction by an ellipsoid

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6466004B1 (ja) * 2018-01-23 2019-02-06 株式会社スクウェア・エニックス 影響光源特定プログラム、影響光源特定方法、影響光源特定装置及び描画処理プログラム
CN113168367A (zh) * 2018-10-23 2021-07-23 微软技术许可有限责任公司 位精确跟踪中的处理器存储器重排序提示

Also Published As

Publication number Publication date
JP2018169875A (ja) 2018-11-01
US20180286111A1 (en) 2018-10-04

Similar Documents

Publication Publication Date Title
CN109509138B (zh) 针对射线跟踪系统的减小的加速结构
US9177414B2 (en) Apparatus and method for rendering point cloud using voxel grid
JP6281006B1 (ja) 交差判定プログラム、交差判定方法及び交差判定装置
JP6333405B2 (ja) 曲面ビューポート上に頂点の投影を近似することによる、グラフィックス処理における画面位置に基づく有効解像度の変化
KR101923562B1 (ko) 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
JP7184503B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
JP6476090B2 (ja) 加速構造の生成及び探索を行う方法並びに装置
US10198851B2 (en) Rendering system and method
KR101145260B1 (ko) 3d 객체 모델에 텍스쳐를 매핑하는 방법 및 장치
US10713844B2 (en) Rendering based generation of occlusion culling models
KR100888528B1 (ko) 3D 오브젝트의 셀프 셰도우(self-shadow)를만들기 위해 데이터를 미리-저장할 수 있는 장치, 방법,응용프로그램 및 컴퓨터 판독가능한 매체
US10325403B2 (en) Image based rendering techniques for virtual reality
US20150091904A1 (en) Ray tracing processing apparatus and method
KR102242566B1 (ko) 레이 트레이싱 처리 장치 및 방법
CN106530379B (zh) 用于执行路径描边的方法和设备
US9401044B1 (en) Method for conformal visualization
US20240233242A9 (en) Frustum-bounding volume intersection detection using hemispherical projection
KR102193683B1 (ko) 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법
WO2023169002A1 (zh) 软光栅化的方法、装置、设备、介质及程序产品
EP3748585A1 (en) Method for fast rendering of very large 3d models
CN118648028A (zh) 紧密世界空间包围区域的生成
KR101227155B1 (ko) 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
CN107798734A (zh) 三维模型自适应变形方法
JP6025615B2 (ja) 画像描画装置
JP2009163469A (ja) 大局照明回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6281006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250