HN 日本語サマリー

← 一覧へ戻る
科学・技術

トポロジカル絵本のレンダリング

A Topological Picture Book, Rendered (e-infinity.space)

116 pointsby mathgenius12 コメント

要約

この記事は、インタラクティブな3Dトポロジカル図形描画ツール「A Topological Picture Book」について解説しています。このツールは、数式で定義された曲面を、手描きの線画のようなスタイルでインタラクティブに表示します。描画には、パラメトリック陰関数、マーチングテトラヘドラによる三角化、主曲率線に沿ったハッチング、輪郭線、隠線処理などの高度なコンピュータグラフィックス技術が用いられています。

全文翻訳

A Topological Picture Book

中世のフランシス、アペリー、ヒルベルト=コーン=フォッセンの様式で手作りされた曲面。モデルを自由に回転させるためにドラッグ(シフトドラッグで転がす)、ズームするためにスクロールします。タッチスクリーンでは、1本の指で回転、2本の指でピンチしてズームし、ひねって回転させます。

Sources & method

描画はピクセルではなくストロークで行われています。シルエットはメッシュ上の n·v のゼロ集合(補間された法線を用いて見つけられ、滑らかな曲線に連鎖します)、境界線、およびイマージョンの二重曲線が、さらなる連鎖として追加され、それらすべてが先細りのリボンとして描画されます。これは、広幅のペンモデル、影の側やビューアーに向かって重みが増し、一貫した手ぶれ効果を備えています。可視性はGPUで決定されます。隠線パスは、隠された部分を破線で描画し、各近接輪郭の下にある片面紙のハローが、その背後にある線をカットします。ハッチングは、主曲率線場の流線セットであり、ビルド時に3つのネストされた密度でトレースされます(クロスハッチングのために、もう一方の主方向沿いに2番目のセット)。トーンは、どのファミリーにインクを付け、各ストロークがどこでフェザーアウトするかを選択します。ハイライトは、紙のままです。主方向は、大きさではなく符号付き曲率によって順序付けられているため、κ₁ = −κ₂ となる場所で2つのファミリーは連続したままです。輪郭チェーンは、インク付けの前に軽く平滑化されます。ストロークは、スケッチ風の線画レンダリングのように、端をわずかに超えて描かれます。ストロークの開始点にインクが溜まり、紙の目に粗く滲む効果は、このページ(フリンジが繊維状ノイズによってゲートされた幅広のリボン)の手調整された効果であり、紙から取られたものではありません。ラベルは手書きされ、リーダー線で表面の点に固定され、その点が隠されているときは暗くなります。

G. K. Francis, A Topological Picture Book, Springer, 1987 — スタイルのターゲット:カスプ、二重曲線、隠線、控えめなハッチングバンドを持つ輪郭線画。

P. Bénard, A. Hertzmann, “Line Drawings from 3D Models: A Tutorial,” Foundations and Trends in Computer Graphics and Vision 11(1–2), 2019 — 輪郭線パイプライン:n·v = 0 としての滑らかなシルエット、連鎖、可視性、スタイライゼーション。

A. Hertzmann, “Introduction to 3D Non-Photorealistic Rendering: Silhouettes and Outlines,” SIGGRAPH 99 Course Notes — 補間された頂点法線からのシルエット(marching-triangles on n·v)。

A. Hertzmann, D. Zorin, “Illustrating Smooth Surfaces,” SIGGRAPH 2000, pp. 517–526 — 主曲率方向に沿ったハッチング、暗い領域のみでのクロスハッチング、空白のハイライト、アンダーカット。

B. Jobard, W. Lefer, “Creating Evenly-Spaced Streamlines of Arbitrary Density,” Visualization in Scientific Computing, 1997 — ハッチング流線をトレースするために使用される分離距離ルール。

A. Appel, F. J. Rohlf, A. J. Stein, “The Haloed Line Effect for Hidden Line Elimination,” SIGGRAPH 1979 — 線交点でのペーパーハロー。

J. D. Northrup, L. Markosian, “Artistic Silhouettes: A Hybrid Approach,” NPAR 2000 — シルエットセグメントの連鎖と、テーパーと幅のバリエーションを持つスタイライズされたストロークとしてのレンダリング。

T. Strothotte, B. Preim, A. Raab, J. Schumann, D. R. Forsey, “How to Render Frames and Influence People,” Computer Graphics Forum 13(3) (Eurographics 1994) — スケッチ風線画レンダリング:端点を超えて伸び、揺れる線。幅がストロークに沿って変化するペンモデルで描画。

M. P. Salisbury, S. E. Anderson, R. Barzel, D. H. Salesin, “Interactive Pen-and-Ink Illustration,” SIGGRAPH 1994, pp. 101–108 — ストロークテクスチャと、ターゲットトーンに到達するための手書き風ストロークの配置。

E. Praun, H. Hoppe, M. Webb, A. Finkelstein, “Real-Time Hatching,” SIGGRAPH 2001 — ネストされたトーンレベルのハッチング。ここではオブジェクト空間ストロークで実現されているため、ハッチングが泳ぐことがありません。

G. Winkenbach, D. H. Salesin, “Computer-Generated Pen-and-Ink Illustration,” SIGGRAPH 1994, pp. 91–100 — ストローク密度と太さによるトーン。ストロークテクスチャ。

G. Elber, “Line Art Rendering via a Coverage of Isoparametric Curves,” IEEE TVCG 1(3), 1995 — 等パラメトリック曲線に沿ったハッチング(パラメータ線ストライプモード)。

T. Saito, T. Takahashi, “Comprehensible Rendering of 3-D Shapes,” SIGGRAPH 1990, pp. 197–206 — 法線バッファと深度バッファからのエッジ抽出(オプションのSobelエッジフィルタ)。

W. E. Lorensen, H. E. Cline, “Marching Cubes,” SIGGRAPH 1987; A. Doi, A. Koide, “An Efficient Method of Triangulating Equi-Valued Surfaces by Using Tetrahedral Cells,” IEICE Trans. E74(1), 1991 — 暗黙的曲面は、四面体バリアントによってポリゴン化されます。

T. Möller, B. Trumbore, “Fast, Minimum Storage Ray-Triangle Intersection,” J. Graphics Tools 2(1), 1997 — 二重曲線計算の背後にあるセグメント-三角形テスト。

R. Kusner, “Conformal Geometry and Complete Minimal Surfaces,” Bull. Amer. Math. Soc. 17(2), 1987 — Boyの曲面に使用されるBryant–Kusnerパラメータ表示のソース(ここでは数値的にチェック済み:反対称境界の貼り合わせと3重対称性は機械精度まで保持されます)。kusner()によって使用される一般p形式は、分母w2p + κpwp − 1を持ち、κp = 2√(2p−1)/(p−1)で、係数は、反転前の曲面が最小であることを数値的にチェックして固定されました(√3の代わりに2√3を持つ循環p = 2バージョンは最小ではありません)。F. Apéry, Models of the Real Projective Plane, Vieweg, 1987 も参照してください。そのデカルト族(R. Ferréolのmathcurve.com、「Morin surface」に表形式で掲載)は、Morinプリセットと、n = 3の場合、Boyの曲面の2番目のモデルを提供します。

関連文献:D. DeCarlo et al., “Suggestive Contours for Conveying Shape,” SIGGRAPH 2003; R. Kalnins et al., “WYSIWYG NPR,” SIGGRAPH 2002。

Notation

数式はJavaScriptの式です。^はべき乗として受け入れられます。利用可能な関数:sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, sqrt, cbrt, abs, sign, pow, min, max, floor, hypot, pi, tau, e, sq(x)。範囲ボックスも式を受け入れます(例: 2*pi)。ヘルパー関数 boy(u,v) は、ℝℙ²のBryant–Kusnerイマージョンを [x,y,z] として返します(u = [0,1]の半径、v = 角度)。torusknot(u,v,p,q,R,r,a) は、半径R、r(デフォルトは2、3、2.2、1、0.42)のトーラス上の(p,q)トーラスノットの周りの半径aのチューブを返します(uはノットに沿って1回、vはチューブの周りを回ります)。apery(u,v,n,k) は、u ∈ [−π/2, π/2] のApéryのデカルト族です。n = 2, k = 1 はMorinの曲面(v ∈ [0, 2π])です。n = 3, k = 1 はBoyの曲面(v ∈ [0, π])です。kusner(u,v,p,d) はKusner–Bryant族で、w = tan(πu/4) eiv です。u ∈ [0, 2] は球全体(p = 2 はMorinの曲面)、u ∈ [0, 1] は奇数p(p = 3 はboy)に対してℝℙ²を1回カバーします。dは反転の中心をシフトします(デフォルトは−½)。