[Laine 2013Laine, S. 2013. A topological approach to voxelization. Computer Graphics Forum 32, 4, 77–86. 10.1111/cgf.12153. https://research.nvidia.com/sites/default/files/pubs/2013-06_A-Topological-Approach/laine2013egsr_paper.pdf.]
1. まえがき(Introduction)#
1.1. 基本定義(Basic definitions)#
我々の表記法は主に Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] に従う。整数の座標を持つ3次元の点の集合をする。我々は点の集合とボクセルを関連付ける。ここで、であり、とに対しても同様である。に組み込まれた連続で単純で閉じた2次元多様体の表面を考えるとすると、は過不足なく2つの連結成分およびを持つ。
との全体に含まれるボクセルの空でない集合をそれぞれととする表面のボクセル化とはやと共通の要素を持たないボクセルの離散集合である。ボクセルの連結経路が存在しないならば、は分離であると言われる。ここで、、すなわち、であり、であり、である。別の言い方をすれば、との間のすべてのがにあるボクセルを含むならば、はの分離ボクセル化である。はボクセルの近傍の集合であり、において、我々にとって関心のある近傍集合は以下である。
ここで、はデカルト積を表す。ゆえに、任意のに対して、は6個の要素を持ち、は26個の要素を持つ。したがって、6連結経路はボクセルの面を通って隣接するボクセルをたどることのみが可能であるものであり、26連結経路ではそれに加えて対角線上をたどることが可能である。紙面の都合により、本論では18分離および18連結のボクセル化および経路を考慮しない。
2Dボクセル化においても状況は変わらず、この場合において、我々はそれらに対応する意味で、、、、、を用いる。その次元は文脈により明らかとなるだろう。2Dにおける近傍関係は以下である。
ここで、は3Dにおけると類似し、はと類似している。近傍集合の図は、例えば、[Huang et al. 1998Huang, J., Yagel, R., Filippov, V. and Kurzion, Y. 1998. An accurate method for voxelizing polygon meshes. Proceedings of the 1998 IEEE symposium on volume visualization 119–126. 10.1145/288126.288181. https://web.eecs.utk.edu/~huangj/papers/polygon.pdf.]に見ることができる。
我々は、その表面が依然としてにおいて対応するボリュームを2つの連結成分に分けるようなボクセル空間の部分集合を考慮することによって、閉じていない表面に分離可能性の概念を拡張できる。これについては図1を参照のこと。閉じている表面と閉じていない表面のどちらでも、対応するおよびが空でない場合に制限していることに注意したい。そうでない場合、で分離する手段が存在しないので、分離可能性を論じる意味がなくなってしまう。
(図1:閉じていない表面への分離可能性の概念の拡張。(a)が依然としてにおける対応するボリュームを2つの連結成分およびに分離するような部分集合が存在する閉じていない表面を考える。そして、対応するおよびは空ではない。(b)におけるボクセルに制限されるとの間のすべてのがにおけるボクセルを含むならば、はの分離ボクセル化であると言える。そして、これは部分集合の任意の有効な選択に対して成り立つ。この2Dの例では、は8分離ではなく4分離である。)
2. 関連研究(Previous work)#
Kaufman and Shimony [1987Kaufman, A. and Shimony, E. 1987. 3D scan-conversion algorithms for voxel-based graphics. Proceedings of the 1986 workshop on interactive 3D graphics 45–75. 10.1145/319120.319126.] は線分や多角形、曲面を含む様々なタイプのプリミティブをボクセル化するためのアルゴリズムを提示する。彼らはいくつかの生来の忠実性と接続性の要件を明示的に列挙しており、我々もこの論文に従うものとする。特に、接続性はボクセル化された1D物体の忠実度に対する定義的要件である一方、2D物体は分離可能性と密接に関わる”トンネルの欠如”要件を満たさなければならない。 Cohen-Or and Kaufman [1997Cohen-Or, D. and Kaufman, A. 1997. 3D line voxelization and connectivity control. IEEE Computer Graphics and Applications 17, 6, 80–87. 10.1109/38.626973.] は3D直線のボクセル化に対する特定の接続性要件の満たし方を更に詳しく述べる。
Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] は3Dにおける表面のボクセル化の精緻な取り扱いに対しての基礎を築く。彼らは、のいわゆるsupercoverがに接するすべてのボクセルから成り、任意のに対して分離である、ということを示す。その証明の性質はsupercover以外のボクセル化に対してこの論文で使われるものと似ている。彼らはがボクセルの境界面か辺、頂点のみと接する所の退化のケースの適切な扱い方も詳細に議論する。我々はこの論文にあるような退化に対するより単純でより一般的な解を提示する。
上記の論文はtunnel-freeボクセル化の概念を導入したりもする。これは、の外側でにある、ある種の接続されたパスが入力表面と交差しないことを保証する幾何的特性である。2Dおよび3Dにおける我々の4分離および6分離ボクセル化はtunnel-freeである。そして、我々は主に分離可能性に焦点を当てるが、他のtunnel-freeボクセル化を容易に得られるだろう。これは節5.2.2で議論しようと思う。
Wang and Kaufman [1993Wang, S.W. and Kaufman, A.E. 1993. Volume sampled voxelization of geometric primitives. Proceedings visualization '93 78–84. 10.1109/VISUAL.1993.398854.] はボリュームサンプリングのボクセル化を検討する。これは、ボクセルの状態が入力プリミティブと重み付き球状ボリュームとの交差によって決定され、本質的には3Dにおける入力を事前にフィルタリングしている。これは、例えば、ボクセル化したデータにおける正確な表面位置の推定を難しくするエイリアシングアーティファクトを除こうとすることで行われる。ボリュームサンプリングの結果はより忠実度の高い表面の再構築を可能にする距離フィールドとして解釈できる。ボリュームサンプリングは我々の交差対象と接点を持つが、我々の目標は入力を事前フィルタリングしないことである。
Huang et al. [1998Huang, J., Yagel, R., Filippov, V. and Kurzion, Y. 1998. An accurate method for voxelizing polygon meshes. Proceedings of the 1998 IEEE symposium on volume visualization 119–126. 10.1145/288126.288181. https://web.eecs.utk.edu/~huangj/papers/polygon.pdf.] は最小限の6分離および26分離ボクセル化を生成することを目標としたポリゴンメッシュのボクセル化の正確さを議論する。彼らは2D直線と3D平面に対する最小性を証明し、それらの結果を三角形で構成される3Dメッシュに拡張する。しかしながら、三角形の辺と頂点は保守的なやり方で扱われることで、その手法が入力メッシュのテッセレーションに影響されやすかったり、最小性が損なわれたりする。これは26分離のケースに関して Schwarz and Seidel [2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.] によって指摘された。そして、図2に示される通り、辺と頂点の特別な扱いもまた6分離のケースで最小性を破壊する。 Widjaya et al. [2003Widjaya, H., Moller, T. and Entezari, A. 2003. Voxelization in common sampling lattices. 11th pacific conference onComputer graphics and applications, 2003. Proceedings. 497–501. 10.1109/PCCGA.2003.1238302. https://eprints.cs.univie.ac.at/5027/1/2003_-_voxelization.pdf.] は無限の直線および平面に対する分離可能性と最小性の証明を伴う一般的な2Dおよび3D格子への拡張を提示する。
(図2:三角形メッシュ(ここに図示される通り、2Dにおけるポリラインに対応)のボクセル化に関する Huang et al. [1998Huang, J., Yagel, R., Filippov, V. and Kurzion, Y. 1998. An accurate method for voxelizing polygon meshes. Proceedings of the 1998 IEEE symposium on volume visualization 119–126. 10.1145/288126.288181. https://web.eecs.utk.edu/~huangj/papers/polygon.pdf.] の手法は最小ではなく、テッセレーションに影響されやすい。(a)[Schwarz and Seidel 2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.]で指摘される通り、26分離ボクセル化(2Dにおける8分離に対応)において、を持つ辺を覆う円筒や頂点を覆う球を用いると、平坦な表面の辺や頂点の近くに余計なボクセルがタグ付けされてしまうかもしれない。(b)加えて、6分離ボクセル化(2Dにおける4分離を参照)において、は、左図([Huang et al. 1998Huang, J., Yagel, R., Filippov, V. and Kurzion, Y. 1998. An accurate method for voxelizing polygon meshes. Proceedings of the 1998 IEEE symposium on volume visualization 119–126. 10.1145/288126.288181. https://web.eecs.utk.edu/~huangj/papers/polygon.pdf.]における図13より抜粋)に示されるように、分離を保証する最小半径であるが、右図に示される通り、これもまた、平坦な表面上に余計なボクセルを生成するかもしれない。)
Schwarz and Seidel [2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.] は入力の三角形の軸平行な2D投影に基づく三角形メッシュの効率的なGPUボクセル化を検討する。彼らは6分離および26分離ボクセル化の両方を検討しており、その後者は入力表面のcover、すなわち、におけるすべての点がにおけるボクセルによってカバーされるようなボクセルの集合である。彼らの6分離ボクセル化は2Dテストに起因する非自明な幾何的等価性という点で興味深くあり、それは我々のボクセル化スキームを八面体の交差対象に適用する際の保守的な近似として見なすことができる。さらなる詳細は図3を参照のこと。我々は節5.2.2においてこの手法の分離可能性と非最小性を示す。 Pantaleoni [2011Pantaleoni, J. 2011. VoxelPipe: a programmable pipeline for 3D voxelization. Proceedings of the ACM SIGGRAPH symposium on high performance graphics 99–106. 10.1145/2018323.2018339. https://research.nvidia.com/sites/default/files/pubs/2011-08_VoxelPipe-A-Programmable/voxel-pipe.pdf.] は三角形メッシュの6分離および26分離ボクセル化の両方に対するとりわけ効率的な多段GPUアルゴリズムを提示する。これもまた、後者のケースへの解としてcoverを生成する。 Varadhan et al. [2003Varadhan, G., Krishnan, S., Kim, Y. J., Diggavi, S. and Manocha, D. 2003. Efficient max-norm distance computation and reliable voxelization. Eurographics symposium on geometry processing. 10.2312/SGP/SGP03/116-126. https://gamma.cs.unc.edu/RECONS/maxnorm.pdf.] はボクセル中心と入力ジオメトリの間のmax-norm距離を計算することでcoverを生成するものであり、交差が発生するかどうかを特定するのにこれを用いる。
(図3: Schwarz and Seidel [2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.] の6分離表面ボクセル化手法は3Dにおけるかなり独特な一連の幾何テストと等価である。(a)彼らはまず平面テストを行う。これは、三角形の平面とボクセルに包含される八面体との交差に対応する。ボクセルがこのテストに合格する場合、三角形の軸平行な2D投影それぞれがピクセル辺の中点間にまたがる2Dダイアモンドに対してテストされる。(b)3Dにおける押し出された2Dダイアモンドの交差は平面テストで用いられる八面体を完全に取り囲む菱形十二面体である。図示されているのは、三角形の平面が八面体と交差するものの、その三角形が菱形十二面体のみと交差するように、これらの多面体の間をメッシュが通過する場合である。それ故に、その最終結果は八面体との近似的な交差としてみなすことができる。)
3. 交差対象を伴うボクセル化(Voxelizing with intersection targets)#
我々の手法では、入力ジオメトリがの中に含まれる 交差対象 と交差するかどうかのテストによって、ボクセルがボクセル化に含まれるかどうかを選択する。すべての場合において、のsupercover[Cohen-Or and Kaufman 1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.]に属するボクセルを考えるには、それとは別のボクセルにおける交差対象が明らかに入力ジオメトリと交差できないので、これで十分である。
本節の後半において、我々は、入力の実効次元がボクセル化戦略に与えるであろう影響度と退化した交差を扱う一般的な方法を考察する。節4では、2Dにおける曲線に対する交差対象を導出し、節5では、3Dにおける曲面および表面のボクセル化を検討する。最後に、節6では、交差対象がボクセルごとに異なっても良い変種を調査する。
3.1. 入力の実効次元(Effective dimension of input)#
交差対象は様々な次元のプリミティブから構成しても良い。これらの例については図4を参照のこと。交差対象の次元の適切な選択はその入力の 実効次元 に依存する。これは入力プリミティブの次元と異なっても良い。例えば、ソリッドな円柱としてジオメトリ的に表現される1本の細い髪の毛を考えよう。その物体がボリューメトリックな立体であるとしても、例えば、ボリューム内に点があるかどうかの単純なテストを用いてボクセル化するという発想はおそらくうまくいかない。これは我々の用語法においてボクセルの中心にある0次元の点である交差対象と対応するだろう。入力が実質的に1次元であり、交差対象が0次元であるので、交差は髪の毛の太さに依存する任意に小さな確率でのみ発生する。これは結果としてその入力を代表しないボクセル化となり、例えば、その連結性を維持することができない。
(図4:色々な種類の入力に適する、様々な次元のプリミティブから構成される交差対象の例)
この例の状況において、例えば、に対する6または26連結性を立証したい場合、入力と交差対象との交差が確率で決まらないようにするため、我々は少なくとも2次元の交差対象を用いなければならない。一方で、3次元の交差対象(例えば、ボクセル全体)は不必要に鈍く、結果として冗長なボクセルがに含まれてしまう可能性があるだろう。髪の毛が3Dの立体、2Dの表面、1Dのポリラインまたは曲線のいずれかから構成されるかに関わらず同じ論拠が適用される。すなわち、実効次元は入力プリミティブの次元よりも関連性がある。
2Dボクセル化において、2Dプリミティブの列が実質的に1次元である物体を形成するとき、似た状況が発生する。そのような例のひとつは、パスレンダリングで一般的な状況である、ゼロでない小さな太さを持つ線分から構成される曲線である。通常の0次元の交差対象(ピクセルの中心)によってパスをラスタライズすることはその結果の連結性を保証できないが、各ピクセル内に適切な1D交差対象を配置することによって、4または8連結性のいずれかを容易に保証することができる。また、完全な2D交差対象はこれらの目的に対して過剰であるだろう。
関連研究で示される手法は入力プリミティブの次元性に対して厳密に特殊化されるため、実効次元より(不必要に)高いプリミティブの次元が発生する入力には適用できない。例えば、その入力が実質的に1次元であると分かったとしても、線のボクセル化アルゴリズムは2Dの表面から構成される細い髪の毛に対して使用できない。我々の交差対象手法はこの問題に悩まされず、同じ枠組みの中で任意の次元のプリミティブから構成される入力を扱うことができる。
3.2. 退化した交差(Degenerate intersections)#
入力プリミティブと交差対象の境界は、ボクセル化において本来不要な穴を生成するのを避けたり、不必要な「厚い」結果を避けたりするため、正確に扱われなければならない。交差において境界(ボリュームの表面、三角形のような表面要素の辺、線の端点、または、曲線の線分)を常に含めることは穴を形成することを防ぐだろうが、入力が複数の交差対象の境界に触れるとき、対応するボクセルのすべてがに含まれる。 Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] は詳細にこれらの問題を考察し、2Dピクセルまたは3Dボクセルの境界の慎重に選択された部分を除外した交差対象を用いることを提案する。
このような手法はより複雑な交差対象に拡張することが難しく、それ故に、我々は退化した交差の問題に対するより汎用的でより単純な解法を提案する。我々はまず、任意のそのような退化がどちらかの入力ジオメトリを --- また同様に、交差対象を --- 適切な方向に若干摂動させることによって解決できることを述べる。これは結果として、交差していないか、入力と交差対象が適切に交差しているかのどちらかとなる。ここでは境界が含まれているかどうかは問題とならない。
入力プリミティブと交差対象の間の任意の退化を取り除く微小摂動ベクトルを 演繹的に 選択できるということが判明している。この摂動を入力全体に --- また同様に、すべての交差対象に --- 適用することは、入力に対する微小の修正が可能であると仮定すると正しくなるボクセル化を生成する。そのような摂動ベクトルの例はである。実践において、退化した交差は、退化していない結果が得られるまで、まずはへ、そしてへ、などというように、微小に入力(または、交差対象)をずらすことで退化していない状態になるかどうかをテストすることによって解決される。
ボクセル対三角形やピクセル対辺のテストでは、このアプローチは Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] の”reduced-voxels”と等価であるが、ボクセル境界の面、辺、頂点について、どれが含まれ、どれが含まれないかを個別に選択する必要がない。標準の2Dラスタライゼーションで用いられる点対三角形のテストでは、一般的なグラフィックスAPIで使われるラスタライゼーション規則と等価である。これは、一貫した面の向きを持つ三角形の扇が各ピクセル中心を、それが辺や頂点の上にあったとしても、たった一度だけ含めることを保証する。実践において、我々は微小摂動ベクトルのアプローチが通常では交差計算中に行われる不等式テストの中へ注意深く配置された方程式に煮詰まることを期待する。例えば、3Dでのポリゴン対ポリゴンのような、ある種のテストでは、その実装は自明ではないかもしれない。
ほとんどの場合、稀に退化した交差が発生する場合では結果のボクセル化に少量の余分なボクセルを含むことは壊滅的というほどではないことは注目されるべきである。入力プリミティブと交差対象が互いに触れているだけでも交差を報告する保守的な交差はボクセル化に追加することだけが可能であり、それ故に、その連結性や分離可能性の特性を一切破壊しない。薄さが損なわれるかもしれないが、これが関心事であるかどうかはアプリケーションに依存する。摂動手法の主な価値は潜在的な退化を考える必要性を取り除くことによって我々の解析を単純化することである。
4. 2Dにおける交差対象(Intersection targets in 2D)#
まずは2Dにおけるボクセル化、すなわち、ラスタライゼーションを考えるとしよう。一般的な命名法に従うため、我々はボクセルをピクセルと呼び、そして、入力ジオメトリはプリミティブ次元と実効次元の両方において0、1、2次元として良い。我々は入力の実効次元が適切なボクセル化戦略を選択するために既知であると仮定する。我々は単純閉曲線の内側から外側に横切る任意の連続的なパスがこの曲線と少なくとも1点で交差しなければならないというジョルダン曲線定理に強く依存する。また、上記のような退化した場合を扱うために、パスが複数の曲線と交差または接する点を横切る場合を個別に考慮することは、そのような状況がいずれも横切るパスの微小摂動によって解決されるので、必要ないことに注意する。
4.1. 1次元の入力(One-dimensional input)#
実質的に1次元である入力は実際に1次元の線分か曲線、または、薄い2次元プリミティブのいずれかから成るだろう。ピクセルグリッドにボクセル化するとき、我々はその結果を4連結または8連結のいずれかとする必要があるだろう。これらはそれぞれ8分離可能性および4分離可能性と等価である[Cohen-Or and Kaufman 1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.]。それ故に、4分離可能性および8分離可能性を強制するための自明な方法は入力のcoverを生成することであるが、我々の入力は1次元であるので、我々は1次元の交差対象で足りること、および、より少ないボクセルを生成することを期待するべきである。
4.1.1. 4連結、8分離のボクセル化(4-connected, 8-separating voxelization)#
すべてのピクセルに配置された図5aに示される交差対象を考えるとする。この構造の重要な特徴は連続的な曲線がピクセルの隣接するカドのすべてのペアを接続することである。ピクセル内でその対象と交差する連続的な入力ジオメトリは、これらの一部が当該ピクセルの周りで単純閉曲線を形成するので、このピクセルの4近傍の交差対象を最初に通過することによってのみ他のピクセルへ拡張できる(図5b)。それ故に、結果としての連続的な入力パスのボクセル化は4連結、すなわち、8分離である。代わりとなる方法は節5.2.1で後に行われるように8分離可能性を直接証明することである。そこから4連結性が導かれる。
(図5:2Dにおける1次元の入力の4連結、8分離のボクセル化に対する交差対象。(a)隣接するピクセルのカドが連続的な曲線によって接続される一般的な形状。(b)中心のボクセルにおいてその対象と交差する入力ジオメトリはその境界曲線を通る以外で灰色で塗られた領域を脱出することができない。これは中心ピクセルの4近傍の交差対象の一部を成す。(c)カドで接続する曲線を中心で接するように伸長することで、実践的な斜め十字の交差対象を得る。(d)もうひとつの選択肢は曲線をピクセルの境界に押し出すことである。)
図6は図5cの斜め十字の対象を用いた1次元の入力の4連結ボクセル化の例を示す。ここでは、その結果に2次元のピクセル全体の対象が生成するであろうより少ないボクセルを含む。図5dの四角形の対象は、単一のピクセルの内側に全体が入り込む任意の入力を含んだ、ゼロの実効次元を持つ点のような入力を無視する能力のためにのみ興味深い。そうでなければ、ピクセル全体の対象と同じ結果を生成する。
(図6:斜め十字の交差対象による1次元の入力のボクセル化の例。点は入力の曲線と交差対象との交差を示す。4連結性および8分離可能性はcoverの部分集合によって達成される。)
4.1.2. 8連結、4分離のボクセル化(8-connected, 4-separating voxelization)#
以前の交差対象を修正することによって、1次元の入力の8連結、4分離のボクセル化を容易に生成できる。図7aは隣接する辺の中間点が連続的な曲線によって接続される一般的な交差対象を図示する。図7bに示される通り、我々は再び、その交差対象と入力が交差するピクセルの周りに単純閉曲線を得る。この曲線はピクセルの8近傍の交差対象の一部から成り、それ故に、連続的な入力ジオメトリはこれらの内の少なくとも1つと交差することなしに脱出することができなくなる。再度、我々は節5.2.1における証明を用いて4分離可能性を直接示すことができるだろう。それから8連結性が導かれる。
(図7:2Dにおける1次元の入力の8連結、4分離のボクセル化に対する交差対象。(a)隣接する辺の中心が連続的な曲線によって接続される一般的な形状。(b)中心のボクセルにおいてその対象と交差する入力ジオメトリは、灰色の領域の境界曲線がこれらの交差対象から成るので、ピクセルの8近傍にのみ拡張できる。(c)中心で曲線を接続すると、実践的な十字線の交差対象を生み出す。(d)真っ直ぐな線分で隣接する辺の中心を接続すると、ラインレンダリングに対して一般的なグラフィックスAPIで使われるダイアモンドパターンを生み出す。)
実践的な交差対象はピクセルの辺の中間点をピクセル中心に接続することによって得られる(図7c)。これは湾曲した入力プリミティブに対してすらも交差する非常に単純な対象である。OpenGLやDirectXといったグラフィックスAPIはラインレンダリングに対して”diamond exit”ルールを採用する。これは一般形状の特殊な場合として得られる図7dにおける交差対象に対応する。ダイアモンド型の対象は十字線の対象よりその結果にピクセルを含みやすい。すなわち、入力が1つの象限に留まりつつも、カドからピクセルへ突き出ていると考える。これは8連結性に対して不必要なピクセルを生成するコストでより審美的に満足する結果を生み出すだろう。
薄さ(Thinness)。8連結ボクセル化において、我々は、表面または曲面の法線ベクトルの主軸方向に1ボクセル分だけの厚さのレイヤを生成するとしておおまかに定義される、いわゆる結果の 薄さ について更に考慮する必要があるかもしれない。パラメータ化された連続的かつ微分可能な入力曲線を考えるとする。ここで、すべてのに対してである。は常に軸ではなく軸の方を向いているので、我々はにおけるすべての水平なレイヤに対して多くとも1つのボクセルを生成したい。
図7cの十字線の対象がこの目標を満たすことを確認することは容易である。点でボクセルにある水平な線分と交差するを考える。ここで、であり、である。この水平なピクセルレイヤ内では、であり、絶対値の微分の比に関する制限のために境界を持つ。従って、と潜在的に交差するかもしれない交差対象の垂直な線分はがその水平な線分と交差する同じ十字線の対象に属さなければならない。これは境界がそのような他の線分を含まないためである。明らかに、そのレイヤにおける他の水平な線分はいずれとも交差する可能性が存在しない。すなわち、同じレイヤにおける他のボクセルはの中に存在しないだろう。似た推論を用いて、図7dのダイアモンド型の対象が薄いボクセル化を生成することを確認できる。
図8は図7cの十字線の対象を用いた1次元の入力の8連結ボクセル化の例を示す。節5.2.2で後に示される通り、そのボクセル化は4-tunnel-free[Cohen-Or and Kaufman 1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.]である。
(図8:十字線の交差対象を持つ1次元の入力の8連結および4分離ボクセル化の例。)
5. 3Dにおける交差対象(Intersection targets in 3D)#
3Dでは、連結性と分離可能性の関係は2Dの場合よりも明瞭ではない。更に、1次元の入力を用いると、分離可能性の道理にかなう概念を与えることは一切できないが、それでも我々は結果のボクセル化に対する様々な連結性の特性を立証することに関心があるだろう。
節4において用いられる種類の推論は依然として1次元の入力に対する連結性の特性を立証するために適用するが、2次元の入力に対する分離可能性は異なる戦略を用いて示される必要がある。我々は再びジョルダン曲線定理 --- または、より適切に言うならば、3Dの類似品であるジョルダン・ブラウワーの分離定理を採用する。このとき、単純閉領域は2次元の入力ジオメトリによって形成され、内側領域と外側領域の間のパスは交差対象の部分を共に区分化することによって形成される。
5.1. 1次元の入力(One-dimensional input)#
3Dにおいて実質的に1次元の入力は1、2、または、3次元のプリミティブから成るだろう。そのような入力が3D空間において分離を生成できないにもかかわらず、例えば、流体シミュレーションやボクセル化された曲面の内部での塗りつぶしを可能にしたり、可視化されたボクセル化の見た目が欠けていないことを保証したりするために、入力のボクセル化が6連結または26連結である必要があるだろう。我々は以降で両方の連結性に対する交差対象を導出するだろう。
5.1.1. 6連結ボクセル化(6-connected voxelization)#
節4.1.1からの2Dの類似品に従って、図9aに図示される3D交差対象を考えるとする。ボクセルの面ごとに、曲線がボクセルの外側からボクセルに侵入し、この表面と交差せずに他のある面を通って脱出するのを防ぐ連続的な表面を構築する。2Dの場合とまったく同じ推論に従って、連続的な1次元の入力オブジェクトが間にボクセルの6連結パスを形成することなしに2つのボクセル間を拡張できないことを確認できる。
(図9:3Dにおける1次元の入力の6連結ボクセル化に対する交差対象。(a)一般形状において、各面はボクセル内の表面によって閉じている。明確にするためにここでは下の面に対する部分のみが示される。(b)取り得る実現方法のひとつは中心で接する角錐で各面を閉じることである。これは空間の八面体テッセレーションに対応する。ここでは、八面体の中心がボクセル面の中心に位置する。(c)もうひとつの選択肢はボクセルの境界に表面を押し出すことである。交差対象は依然として2次元であり、立方体の表面のみから成る。明らかに、これは空間の立方体テッセレーションに対応する。)
この一般形状の2つの実践的な実現方法は図9bおよびcに図示され、それぞれ空間の八面体および立方体テッセレーションに対応する。ボクセル化が3Dボクセル全体に対して入力を交差させることで生成されるcoverとほぼ同じだけのボクセルを含むので、これらの実用上の妥当性は疑わしい。いくつかの状況では、3Dボクセルより2Dシートから構成される交差対象に対して入力を交差させる方が容易であるかもしれないが、一般には、これらの交差対象は結果のボクセル数をできるだけ少なくしておく必要があるときにのみおそらく有用である。
5.1.2. 26連結ボクセル化(26-connected voxelization)#
実質的に1次元の入力の26連結ボクセル化のケースはさらに興味深い。このはるかに緩和された連結性の要件に対してcoverを生成することは、多くの不必要なボクセルを含むので、あきらかにやり過ぎであろう。既存のアルゴリズムは、例えば、線分やパラメータ化された曲線のような、1次元のプリミティブから形成される入力に制限される。対して、我々の手法は実質的に1次元だが2または3次元のプリミティブのみで構成される入力から26連結ボクセル化を構築することができる。
図10aはこの目的に対して適切な交差対象を示す。連結性は2Dにおける8連結ボクセル化に対して節4.1.2で用いられたものと似た論拠から得られる。入力がボクセル内で対象と交差すると仮定しよう。の26近傍の交差対象の部分は単一のボクセルの倍の長さの辺を持つボックスを形成する(図10b)。これは単純で閉じた表面であり、入力ジオメトリがから目の前の近傍の外側のボクセルへの連続的なパスを含むならば、この取り囲むボックスと交差しなければならず、それ故に、における対象と交差する。
(図10:3Dにおける1次元の入力の26連結ボクセル化に対する交差対象。(a)その対象は3つのすべての軸に沿ってボクセルを二分する3つの四角形から成る。これはボクセルのカドを中心とする立方体に空間を分割する。(b)中心のボクセル内で対象と交差する入力ジオメトリは26近傍の対象と交差することなしに脱出できない。これは、これらの部分が倍の長さの辺を持つボクセルの周りに閉じた立方体を形成するためである。)
その結果が十字線の対象による2Dの場合と同じ意味での薄い状態とならないことは注目されるべきである。従って、支配的な方向に曲線に沿って歩を進め、レイヤあたり厳密に1つのボクセルを出力するアルゴリズムはより少ないボクセルを伴う26連結ボクセル化を生成するだろう。我々の手法の主な利点は1次元プリミティブ以外の入力に対して機能することである。
5.2. 2次元の入力(Two-dimensional input)#
ほぼ間違いなく3Dボクセル化の最も適した使い方は2次元の入力の離散化である。この場合、結果のボクセル化の分離可能性は主な関心事である。例えば、ボクセル化した表面に対してレイをキャストすることを考えると、我々はできるだけ少ないボクセルをテストするためにレイから26連結パスを形成することを選択するだろう。この場合、表面のボクセル化は離散化したレイが元々分離している表面を貫通しないことを保証するために26分離である必要がある。あるいは、レイマーチがボクセルの6連結パスをテストするならば、より疎な入力の6分離ボクセル化で十分である。 Cohen-Or and Kaufman [1997Cohen-Or, D. and Kaufman, A. 1997. 3D line voxelization and connectivity control. IEEE Computer Graphics and Applications 17, 6, 80–87. 10.1109/38.626973.] は詳細な解析を提供する。
5.2.1. 26分離ボクセル化(26-separating voxelization)#
cover、すなわち、交差対象として3Dボクセル全体を用いることは、 Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] によって示される通り、26分離である。しかし、我々の入力は実質的に2次元であるので、1次元の区分から構成される交差対象は関連するボクセルを求めることを保証するのに足るはずである。
図11aにおける交差対象を考えるとしよう。我々は、26分離を保証するために必要な特性とは交差対象がボクセルのカドを互いに接続することのみである、と主張する。これはひと目では分からないので、ジョルダン曲線定理を用いて背理法を定式化しようと思う。退化が節3.2における微小摂動の手法によって扱われるという点に留意することが重要であり、それ故に、表面が、例えば、ボクセルのカドを斜めに通過するような場合について心配する必要はない。別の言い方をすれば、摂動は、この場合でも、交差対象と表面の交差がボクセルの1つの内側で発生し、カドと辺と面では一切発生しないことを保証する。入力が3次元のボリューメトリックなプリミティブから構成されるが、依然として実質的に2次元の表面を形成するならば(例えば、ゼロでない厚さを持つ球殻)、このボリューム内に含まれる適切な表面を考慮するだろう。
(図11:3Dにおける2次元の入力の26分離ボクセル化に対する交差対象。(a)最も一般的な場合では、交差対象が何らかの方法でボクセルのすべてのカドを互いに接続するだけで十分である。ここではボクセル内の共通の1点と接続しているが、これは必須ではない。(b)実践では、空間の対角線上の真っ直ぐな線分は単純で対称的な対象を生成する。(c)いくつかの状況では、個々の線分対表面の交差テストが近傍のボクセル間で共有され得るので、ボクセルの辺に沿ってカドを接続する対象を用いる方が便利であるかもしれない。)
仮定を示し直すため、に組み込まれ、空でない2つの集合およびに分割するような、単純で閉じた2次元の入力の表面があるとしよう。が上記の一般的な交差対象を用いて生成されるのボクセル化であり、加えて、それぞれ3Dボリューム全体がおよびに属するボクセルから成る空でない集合およびが存在すると仮定する。
が26分離であることを示すため、、、、かつ、であるパスが存在しないことを示さなければならない。ジョルダン曲線定理に従い、の点との点の間のすべての連続的なパスはと交差しなければならない。連続的なパスがにおけるボクセル内に完全に含まれるならば、交差はボクセルのひとつの中で発生する。故に、これはそのような連続的なパスを構築するのに十分であり、がに含まれなければならないことを示す。
そのような連続的なパスを構築するため、各における交差対象の部分を接続する。交差対象はすべてのボクセルのカドを接続するので、交差対象に沿ってのいずれかへ移動可能となるため、実際に、に存在するボクセル内に位置するようを含めることができる。であり、それ故に、内の任意の点がの中にあることから、我々はの交差対象における任意の点からを開始する。同様に、にあるの終点は自明なこととしての中にある。
はの点との点の間の単純閉曲線であるので、ある点でと交差しなければならない。がにおけるボクセルに対応するボリューム内に完全に含まれるので、交差点はの一部であるこれらのボクセルの1つにもなければならない。が表面との交差対象の両方の上にあるので、これは我々のの定義と矛盾する。従って、であり、上で定義されるような26連結パスは存在できず、が26分離であることを暗に示す。
上記の推論は26連結のにおけるボクセルによってカバーされるボリューム内に含まれる連続的なパスを構築することを可能にする任意の交差対象に対して成り立つ。これは実践的な交差対象の定式化に多くの柔軟性を与える。図11bとcは2つの選択肢を示すが、特に対称性を気にしないならば、他の多くの選択肢が存在する。
5.2.2. 6分離ボクセル化(6-separating voxelization)#
6分離ボクセル化は26分離より少ないボクセルを持つかもしれず、故に、26分離可能性が必要ないアプリケーションでは一般に好まれる。図12aに図示される交差対象は互いにボクセル面の中心と接続し、6分離ボクセル化を生成することを確認できる。その論拠は、仮定の分離可能性に違反しているボクセルのパスが6連結であることを除いて、以前の場合と厳密に同じである。それ故に、6近傍の意味での近傍ボクセルの間を、すなわち、面を通って移動できる限り長く、連続的なを形成することができる。これは、提案される交差対象で明らかに可能である。一般的な形状の最も実践的で対称的な実現方法はおそらく図12bの十字線の対象である。
(図12:3Dにおける2次元入力の6分離ボクセル化に対する交差対象。(a)一般的な交差対象は面の中心を互いに接続する。(b)まっすぐな線分は特に単純な十字線の形状を生み出す。(c)ダイヤモンドルールの3D一般化(例えば、[Schwarz and Seidel 2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.])は、十字線の対象のスーパーセットに対応するので、6分離の結果を生成する。)
2Dで用いられるダイアモンドルールのいずれかの理に適う3D拡張が十字線の対象を包含するために6分離ボクセル化を生み出すということは即座に導かれる。例えば、 Schwarz and Seidel [2010Schwarz, M. and Seidel, H.-P. 2010. Fast parallel surface and solid voxelization on GPUs. ACM Trans. Graph. 29, 6. 10.1145/1882261.1866201. https://michael-schwarz.com/research/publ/files/vox-siga10.pdf.] の手法は入力の三角形がボクセルの面の中心の間にかかる八面体と交差する任意のボクセルを常に含み(図12c)、それ故に、6分離である。しかし、不必要に大きな対象を用いることは6分離に対して必要のないボクセルを含み、彼らの手法を最小限にできないことを示す。
単純な解析は Forest et al. [2009Forest, V., Barthe, L. and Paulin, M. 2009. Real-Time Hierarchical Binary-Scene Voxelization. Journal of Graphics, GPU, and Game Tools 14, 3, 21–34. 10.1080/2151237X.2009.10129283. https://www.irit.fr/recherches/VORTEX/publications/rendu-geometrie/JGT2009_Forest_et_al.pdf.] や Crassin et al. [2011Crassin, C., Neyret, F., Sainz, M., Green, S. and Eisemann, E. 2011. Interactive indirect illumination using voxel-based cone tracing: an insight. ACM SIGGRAPH 2011 talks. 10.1145/2037826.2037853. https://research.nvidia.com/sites/default/files/publications/GIVoxels-pg2011-authors.pdf.] によって用いられるGPUベースのボクセル化手法が6分離であることも明らかにする。これらは入力に関して3パスを行い、各パスでは3つの軸並行な投影に沿ってプリミティブをラスタライズする。結果のピクセルごとに、プリミティブの深度がその中心で計算され、その中心が奥行きで最も近いボクセルがに含まれる。これが図12bの十字線の交差対象を用いることと等価であることを理解するのは容易である。ここでは、各ラスタライゼーションパスが投影軸の方を向いている十字線の線分と入力を交差させることに対応する。拡張よって、このラスタライゼーションベースの手法は湾曲したプリミティブに対してさえ6分離の結果を生成するだろうが、一方で、必要になるのは深度の点の計算だけである。この特性は上記のものを用いた技術なしに確認することが極めて困難であるかもしれないだろう。
薄さ(Thinness)。十字線の交差対象によって生成されるボクセル化は以下の意味において薄くもある。曲がっている可能性があり、連続的で、あらゆるところで微分可能な表面プリミティブを考える。ここでは、すべての点で、法線ベクトルの成分は最も大きい絶対値を持つ。薄さのために、我々は1つより多いボクセルがボクセルの方向の各列において生成されないことを必要とする。その表面が点のボクセルの方向の十字線の線分と交差するとしよう。ここで、、、である。この(方向の)ボクセルの列では、であり、に対しても同様である。の平面で表面をスライスすることを考える。すべての点でに向かって傾いている法線ベクトルにより、我々はを得る。それ故に、もまたを維持するときにこのの範囲において境界を持ち、従って、表面はこの列の中の以外のボクセルにおける方向の十字線の線分に到達できない。を向いた十字線の線分に対しても同様のことが成り立つ。一般に表面はその列におけるもうひとつのボクセルの中間に達するだろうが、これは十字線の線分があるおよび平面では起こり得ないことに注意する。その表面は明らかに同じ列における他のいずれかの方向の十字線の線分と交差できない。それ故に、を除いたこの列の他のボクセルは結果に含めることができない。これにより薄さが導かれる。
単一の2D投影を伴うボクセル化(Voxelization with a single 2D projection)。興味深い推論が薄さの特性と十字線の対象を用いる3軸ラスタライゼーションの等価性[Forest et al. 2009Forest, V., Barthe, L. and Paulin, M. 2009. Real-Time Hierarchical Binary-Scene Voxelization. Journal of Graphics, GPU, and Game Tools 14, 3, 21–34. 10.1080/2151237X.2009.10129283. https://www.irit.fr/recherches/VORTEX/publications/rendu-geometrie/JGT2009_Forest_et_al.pdf.; Crassin et al. 2011Crassin, C., Neyret, F., Sainz, M., Green, S. and Eisemann, E. 2011. Interactive indirect illumination using voxel-based cone tracing: an insight. ACM SIGGRAPH 2011 talks. 10.1145/2037826.2037853. https://research.nvidia.com/sites/default/files/publications/GIVoxels-pg2011-authors.pdf.]から導かれる。平面の三角形がその幾何的な法線ベクトルの支配的な方向に沿って投影されるとき、投影された三角形の中にその中心があるすべてのピクセルは対応するボクセル列におけるユニークなボクセルを生成する。十字線の対象を伴うボクセル化は薄いので、他の投影方向はこれらの列においてそれ以上のボクセルを生成しない。従って、そのようなすべてのピクセルに対して、支配的な軸に沿った投影を考えるだけで十分であり、更に考慮する必要があるのは辺のみである。これは以下のアルゴリズムを提案する。
法線の支配的な軸に沿って2Dに投影される三角形をラスタライズする。投影された三角形がピクセルの中心を含むピクセルに対して、以前の手法にあるように[Forest et al. 2009Forest, V., Barthe, L. and Paulin, M. 2009. Real-Time Hierarchical Binary-Scene Voxelization. Journal of Graphics, GPU, and Game Tools 14, 3, 21–34. 10.1080/2151237X.2009.10129283. https://www.irit.fr/recherches/VORTEX/publications/rendu-geometrie/JGT2009_Forest_et_al.pdf.; Crassin et al. 2011Crassin, C., Neyret, F., Sainz, M., Green, S. and Eisemann, E. 2011. Interactive indirect illumination using voxel-based cone tracing: an insight. ACM SIGGRAPH 2011 talks. 10.1145/2037826.2037853. https://research.nvidia.com/sites/default/files/publications/GIVoxels-pg2011-authors.pdf.]、中心の深度がピクセル中心で計算される三角形の深度に最も近いボクセルを出力する。三角形の辺を含むが、その三角形が中心と重なっていないピクセルに対して、ピクセルを二分する水平な線上の三角形の範囲を求め、これらを水平なピクセルの範囲にクランプし、こらら2つの点で三角形の深度を計算する。その値がボクセルの中心の深度の別々の側にあるならば、対応するボクセルを出力する。そうでなければ、垂直方向に対してテストを繰り返す。最初のテスト(三角形対ピクセル中心)は投影軸に平行な十字線の線分に対して三角形を交差させることに対応し、後者のテストは投影軸に垂直な2つの十字線の線分に対して三角形をテストすることに対応する。こうして、6分離ボクセル化はたった1つの2D投影に基づいて生成できる。
Tunnel-freeness。 Cohen-Or and Kaufman [1995Cohen-Or, D. and Kaufman, A. 1995. Fundamentals of surface voxelization. Graph. Models Image Process. 57, 6, 453–461. 10.1006/gmip.1995.1039. https://www.math.tau.ac.il/~dcor/articles/older/fundamentals.pdf.] の定義に従うと、6-tunnel-freeボクセル化はの外側の2つの6近傍ボクセルの中心を接続する任意の線分がと交差しないようなものである。図12bにおける十字線の対象を用いることがこの要件を満たすことは、と交差するそのような任意の線分がにおける近傍のボクセルの少なくとも1つで生成するだろうことから、容易に確認できる。図7cにおける十字線の対象を用いた2Dボクセル化でも同じことが成り立つ。ピクセル中心をそのカドや辺の中間点と接続する交差対象を用いることによって2Dでの8-tunnel-freeボクセル化を、ボクセル中心を面の中心や辺の中間点と接続する対象を用いて3Dでの18-tunnel-freeボクセル化を、ボクセル中心が面の中心や辺の中間点やカドと接続される対象を用いて26-tunnel-freeボクセル化を同様に得ることができるだろう。
6. 拡張(Extensions)#
これまでに我々は交差対象がすべてのピクセルまたはボクセルで同一となる状況のみを検討してきた。これは、我々の接続性や分離可能性の議論のいずれもこの性質に直接依存するものではないため、必須ではない。
提案されるいずれの交差対象も様々な方法で変更できるが、一方で、我々は、最も操作しやすいという理由から、2Dにおける1次元入力に対する4分離の十字線の対象(図7c)と3Dにおける2次元入力に対する6分離の十字線の対象(図12b)のみを考慮するだろう。
図13aは前述の交差対象の変種とその結果のボクセル化を図示しており、この変種において、その接続はピクセル辺上のランダムな点とピクセル内のランダムな点の間に作られる。この”泡”はボクセル化の接続性と分離可能性を保持するが、はるかに規則的でない構造をしている。これにより、例えば結果のボクセル化のスペクトル的性質が、もしそれが特定のアプリケーションにとって重要であるならば、改善されるかもしれない。
(図13:2Dにおける1次元入力に対する十字線の対象への修正。(a)ピクセル内やピクセル辺上にある接続点を無作為化すると、依然として4分離であり、すなわち、8接続である不規則なパターンを生成する。(b)辺の接続点をピクセルのカドへ完全に押しやると、各ピクセルにおける交差対象が単一の対角線分から成る所のパターンを生み出す。)
交差対象への更に極端な修正は、図13bに示される通り、ピクセルのカドで接するように接続する線分を押し出すことである。4分離性が節5.2.1にある分離可能性の証明の2D類推を用いて示されるときに成り立つことは容易に確認できる。単純な十字線の対象から相当逸脱しているものの、対角線の対象を交互に配置したこれは依然として連続的な4接続のがにおけるボクセルのみを用いて形成できる。これにより、4分離可能性および8接続性が導かれる。結果のボクセル化は幾分ぎこちないが、依然として入力のcoverの部分集合であり、それ故に、入力ジオメトリから際限なく逸脱することは決してない。
似た修正が3Dにおける2次元入力をボクセル化するために十字線の対象に対して行うことができる(図12b)。格子の無作為化は2Dの場合でも機能し、そして、接続の頂点をボクセルのカドに押し出すことによって、我々は、図14に示されるような、各ボクセルに単一の体対角線から成るひときわ単純な交差対象を得る。4つの取り得る体対角線は、ボクセル間の接続性を維持するため、示される通りに、交互に配置されなければならず、そのパターンは個のボクセル周期で繰り返される。結果のボクセル化は2Dの場合にあるものと似たぎこちなさを示すが、それでもなおcoverの6分離の部分集合であり、それ故に、入力ジオメトリに対してそれなりに忠実である。
交差対象の単純さや結果のボクセル数の少なさが審美的側面より重要 --- 例えば、直接的に可視化しないボクセル化の場合 --- である所のアプリケーションでは、単一の対角線の対象を交互に配置する方法が最も効率的な戦略であるかもしれない。