《拓扑图册》渲染版
A Topological Picture Book, Rendered

原始链接: https://e-infinity.space/picture-book/

该项目展示了一种实时、非真实感的渲染技术,能够从 3D 模型生成手绘风格的钢笔墨水插图。该系统受 Francis、Apéry 和 Hilbert–Cohn-Vossen 的经典美学启发,利用程序化线条而非基于像素的着色器来渲染平滑曲面。 核心技术特性包括: * **轮廓渲染:** 提取轮廓线和双曲线作为平滑链,并将其渲染为带有锥度且具手绘抖动感的带状线条。通过 GPU 加速的隐藏线消除和“光晕”效果来管理可见性。 * **阴影排线:** 通过与主曲率方向对齐的流线来表现色调,并利用嵌套密度实现交叉排线。这些笔触在构建时生成,确保其固定在物体几何体上。 * **艺术风格化:** 系统融合了手工调整的效果,如墨水积聚、边缘晕染和轻微的笔触溢出,以模拟实体媒介的自然质感。 该实现借鉴了计算机图形学的基础研究——从 20 世纪 70 年代的隐藏线算法到现代非真实感渲染流程——从而提供了一种对复杂几何曲面进行交互式、速写般的探索方式。用户可以实时操作模型,标签和深度提示会动态更新,以保持视觉清晰度。

Hacker News 上的讨论围绕着一个名为“拓扑图画书”(A Topological Picture Book,e-infinity.space)的项目展开,该项目展示了精美的计算机生成复杂拓扑图形。 讨论帖表达了对这项工作的深切赞赏。项目创建者 George Francis 的前学生们分享了关于他独特教学风格的轶事,深情地回忆起他习惯在任何可用的表面上——从餐巾纸到黑板——手绘复杂的拓扑概念,以及他早期在利用 CAVE 等计算机可视化工具方面的开创性工作。 除了个人的致敬外,社区成员还对这些渲染图的审美质量,特别是线条那般干净的手绘感表示赞叹。其他人则讨论了将此类艺术风格应用于任意 3D 模型时的技术挑战,并对网站的移动端界面提出了一些小建议。总的来说,这场讨论是对一位成功架起传统数学素描与现代计算艺术之间桥梁的导师的真诚致敬。
相关文章

原文

Hand-hatched surfaces after the mid-century manner of Francis, Apéry, Hilbert–Cohn-Vossen. Drag to turn the model freely (shift-drag to roll it); scroll to approach.

Sources & method

The drawing is made of strokes, not pixels. Silhouettes are the zero set of n·v on the mesh (found with interpolated normals, so they chain into smooth curves), boundaries and the double curve of an immersion are added as further chains, and all of them are drawn as tapered ribbons with a broad-nib pen model, weight that grows on the shadow side and toward the viewer, and coherent hand wobble. Visibility is settled on the GPU: a hidden-line pass draws the occluded parts dashed, and a one-sided paper halo under each near contour cuts the lines behind it. Hatching is a set of streamlines of the principal-curvature line field, traced at build time in three nested densities (the second along the other principal direction, for cross-hatching); tone selects which family is inked and where each stroke feathers out. Highlights stay bare paper. The principal directions are ordered by signed curvature, not magnitude, so the two families stay continuous across the loci where κ₁ = −κ₂. Contour chains are lightly smoothed before inking. Strokes overshoot their ends a little in the manner of sketchy line rendering; the ink pooling at stroke starts and the ragged bleed into the paper grain are hand-tuned effects of this page (a widened ribbon whose fringe is gated by a fibre-like noise), not taken from a paper. Labels are hand-lettered, pinned to points of the surface with a leader line, and dimmed when their point is hidden.

G. K. Francis, A Topological Picture Book, Springer, 1987 — the style target: contour drawing with cusps, double curves, hidden lines, and sparing hatched bands.

P. Bénard, A. Hertzmann, “Line Drawings from 3D Models: A Tutorial,” Foundations and Trends in Computer Graphics and Vision 11(1–2), 2019 — the contour pipeline: smooth silhouettes as n·v = 0, chaining, visibility, stylization.

A. Hertzmann, “Introduction to 3D Non-Photorealistic Rendering: Silhouettes and Outlines,” SIGGRAPH 99 Course Notes — silhouettes from interpolated vertex normals (marching-triangles on n·v).

A. Hertzmann, D. Zorin, “Illustrating Smooth Surfaces,” SIGGRAPH 2000, pp. 517–526 — hatching along principal curvature directions, cross-hatching only in dark regions, blank highlights, undercuts.

B. Jobard, W. Lefer, “Creating Evenly-Spaced Streamlines of Arbitrary Density,” Visualization in Scientific Computing, 1997 — the separation-distance rule used to trace the hatch streamlines.

A. Appel, F. J. Rohlf, A. J. Stein, “The Haloed Line Effect for Hidden Line Elimination,” SIGGRAPH 1979 — the paper haloes at line crossings.

J. D. Northrup, L. Markosian, “Artistic Silhouettes: A Hybrid Approach,” NPAR 2000 — chaining silhouette segments and rendering them as stylized strokes with tapering and width variation.

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) — sketch-like line rendering: lines that overshoot their endpoints and wiggle, drawn with a pen model whose width varies along the stroke.

M. P. Salisbury, S. E. Anderson, R. Barzel, D. H. Salesin, “Interactive Pen-and-Ink Illustration,” SIGGRAPH 1994, pp. 101–108 — stroke textures and the placement of hand-character strokes to reach a target tone.

E. Praun, H. Hoppe, M. Webb, A. Finkelstein, “Real-Time Hatching,” SIGGRAPH 2001 — nested tone levels of hatching; here realized with object-space strokes so the hatching never swims.

G. Winkenbach, D. H. Salesin, “Computer-Generated Pen-and-Ink Illustration,” SIGGRAPH 1994, pp. 91–100 — tone by stroke density and thickness; stroke textures.

G. Elber, “Line Art Rendering via a Coverage of Isoparametric Curves,” IEEE TVCG 1(3), 1995 — hatching along isoparametric curves (the parameter-line stripes mode).

T. Saito, T. Takahashi, “Comprehensible Rendering of 3-D Shapes,” SIGGRAPH 1990, pp. 197–206 — edge extraction from normal and depth buffers (the optional Sobel edge filter).

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 — the implicit surfaces are polygonized by the tetrahedral variant.

T. Möller, B. Trumbore, “Fast, Minimum Storage Ray-Triangle Intersection,” J. Graphics Tools 2(1), 1997 — the segment–triangle test behind the double-curve computation.

R. Kusner, “Conformal Geometry and Complete Minimal Surfaces,” Bull. Amer. Math. Soc. 17(2), 1987 — source of the Bryant–Kusner parametrization used for Boy’s surface (checked here numerically: antipodal boundary gluing and threefold symmetry hold to machine precision). The general-p form used by kusner() has denominator w2p + κpwp − 1 with κp = 2√(2p−1)/(p−1) and prefactor p/(p−1); the constant was fixed by checking numerically that the pre-inversion surface is minimal (a circulating p = 2 version with √3 in place of 2√3 is not). See also F. Apéry, Models of the Real Projective Plane, Vieweg, 1987, whose Cartesian family (as tabulated on R. Ferréol’s mathcurve.com, “Morin surface”) gives the Morin preset and, with n = 3, a second model of Boy’s surface.

Related reading: D. DeCarlo et al., “Suggestive Contours for Conveying Shape,” SIGGRAPH 2003; R. Kalnins et al., “WYSIWYG NPR,” SIGGRAPH 2002.

Notation

Formulas are JavaScript expressions; ^ is accepted for powers. Available: 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). Range boxes accept expressions too (2*pi). The helper boy(u,v) returns the Bryant–Kusner immersion of ℝℙ² as [x,y,z] (u = radius in [0,1], v = angle). torusknot(u,v,p,q,R,r,a) returns the tube of radius a about the (p,q) torus knot on the torus of radii R, r (defaults 2, 3, 2.2, 1, 0.42); u runs once along the knot, v around the tube. apery(u,v,n,k) is Apéry’s Cartesian family with u ∈ [−π/2, π/2]: n = 2, k = 1 is Morin’s surface (v ∈ [0, 2π]); n = 3, k = 1 is Boy’s surface (v ∈ [0, π]). kusner(u,v,p,d) is the Kusner–Bryant family, w = tan(πu/4) eiv: u ∈ [0, 2] is the whole sphere (p = 2 is Morin’s surface), u ∈ [0, 1] covers ℝℙ² once for odd p (p = 3 is boy); d shifts the centre of inversion (default −½).

联系我们 contact @ memedata.com