đ Explore this trending post from Hacker News đ
đ **Category**:
đ **What Youâll Learn**:
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.
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.
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 âœ).
⥠**Whatâs your take?**
Share your thoughts in the comments below!
#ïžâŁ **#Topological #Picture #Book #Rendered**
đ **Posted on**: 1788909561
đ **Want more?** Click here for more info! đ
