text scaffolds for effective surface labeling
DESCRIPTION
Text Scaffolds for Effective Surface Labeling. Gregory Cipriano and Michael Gleicher. The Idea: Placing Text on a Surface. ?. The Idea: Placing Text on a Surface. The Idea: Placing Text on a Surface. Corpus Callosum. Text scaffold. Parietal Lobe. The Idea: Placing Text on a Surface. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/1.jpg)
Text Scaffolds for Effective Surface LabelingGregory Cipriano and Michael Gleicher
![Page 2: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/2.jpg)
The Idea: Placing Text on a Surface
?
![Page 3: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/3.jpg)
The Idea: Placing Text on a Surface
![Page 4: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/4.jpg)
The Idea: Placing Text on a Surface
Text scaffold
Corpus Callosum
Parietal Lobe
![Page 5: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/5.jpg)
The Idea: Placing Text on a Surface
![Page 6: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/6.jpg)
The Art of Cartography
• Cartographers have been labeling in 2D (and on globes) for thousands of years…• And they’re getting pretty good at it:
![Page 7: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/7.jpg)
The Art of Cartography
Basic principles:
• Text should be legible• Smooth, likely straight, path
• Text should be visible• Always on top of other features
• Text may track important features• E.g. roads, rivers
• Text should be close to labeled feature
![Page 8: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/8.jpg)
What about in 3D?
The same principles apply
![Page 9: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/9.jpg)
Goals
• Legibility• Text must be readable• Surface must be smooth
• Visibility• Surface can’t enter occluded
regions• Surface must bound object
• Proximity• Labels must lie as close as
possible to corresponding region• Shape-conveying
• Scaffold should retain as much of the original shape as possible.
![Page 10: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/10.jpg)
Goals
• Legibility• Text must be readable• Surface must be smooth
• Visibility• Scaffold can’t enter occluded
regions• Scaffold must bound object
• Proximity• Labels must lie as close as
possible to corresponding region• Shape-conveying
• Scaffold should retain as much of the original shape as possible.
![Page 11: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/11.jpg)
Goals
• Legibility• Text must be readable• Surface must be smooth
• Visibility• Surface can’t enter occluded
regions• Surface must bound object
• Proximity• Labels must lie as close as
possible to corresponding region• Shape-conveying
• Scaffold should retain as much of the original shape as possible.
![Page 12: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/12.jpg)
Goals
• Legibility• Text must be readable• Surface must be smooth
• Visibility• Surface can’t enter occluded
regions• Surface must bound object
• Proximity• Labels must lie as close as
possible to corresponding region• Shape-conveying
• Scaffold should retain as much of the original shape as possible.
![Page 13: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/13.jpg)
Outline
• Introduction• Text Scaffold Generation• Labeling• Results
![Page 14: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/14.jpg)
Outline
• Introduction• Text Scaffold Generation• Labeling• Results
![Page 15: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/15.jpg)
Text Scaffold Generation
![Page 16: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/16.jpg)
Text Scaffold GenerationStep 1: Build Distance Field
Why a Distance Field?• Compatible with any input source• Allows arbitrary topological changes• Quick, and simple to work with
* R. Satherley and M. W. Jones. Vector-city vector distance transform. Computer Vision and Image Understanding, 82:238–254, 2001.
![Page 17: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/17.jpg)
Text Scaffold GenerationStep 1: Build Distance Field
Steps:• Rasterize into voxels
• From mesh or CSG source• In all figures: 403
• Then build distance field• We use the Vector-City Vector Distance
Transform*• Each voxel contains the scalar distance to
surface• Negative inside object, positive outside
* R. Satherley and M. W. Jones. Vector-city vector distance transform. Computer Vision and Image Understanding, 82:238–254, 2001.
![Page 18: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/18.jpg)
Text Scaffold GenerationStep 2: Dilate & Add Visibility Weight
What is visibility weight?
![Page 19: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/19.jpg)
Text Scaffold GenerationStep 2: Dilate & Add Visibility Weight
What is visibility weight?
![Page 20: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/20.jpg)
Text Scaffold GenerationStep 2: Dilate & Add Visibility Weight
What is visibility weight?
![Page 21: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/21.jpg)
Text Scaffold GenerationStep 2: Dilate & Add Visibility Weight
Combining Dilation & Visibility Weight:
Parameters:• wa controls how much the scaffold
avoids occluded regions• wd is just a constant dilation amount
![Page 22: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/22.jpg)
Text Scaffold GenerationStep 2: Dilate & Add Visibility Weight
![Page 23: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/23.jpg)
Text Scaffold GenerationStep 3: Smooth Field
Convolve field with Gaussian filter
![Page 24: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/24.jpg)
Text Scaffold GenerationStep 3: Smooth Field
Convolve field with Gaussian filter
![Page 25: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/25.jpg)
Text Scaffold GenerationStep 4: Erode to Fit
Add constant value to field• Automatically chosen to make sure
new field fits as tightly to the original object as possible
• Causes isosurface to contract inward (i.e. erode)
![Page 26: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/26.jpg)
Text Scaffold GenerationStep 5: Build Scaffold Mesh
We now have the scaffold…• Just need to extract a mesh from it• Using Marching Cubes*
* W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3d surface construction algorithm. SIGGRAPH Comput. Graph., 21(4):163–169, 1987.
![Page 27: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/27.jpg)
Text Scaffold GenerationStep 6: Smooth Mesh
• Unfortunately, mesh may still have minor sampling artifacts• Mitigated by sub-pixel precision
• Perform a final smoothing pass• Taubin smoothing*
* G. Taubin. A signal processing approach to fair surface design. In Pro-ceedings of SIGGRAPH 95, pages 351–358, Aug. 1995.
![Page 28: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/28.jpg)
Outline
• Introduction• Text Scaffold Generation• Labeling• Results
![Page 29: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/29.jpg)
Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 30: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/30.jpg)
Point Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 31: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/31.jpg)
Point Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 32: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/32.jpg)
Point Labeling
![Page 33: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/33.jpg)
Point Labeling
![Page 34: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/34.jpg)
Point Labeling
![Page 35: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/35.jpg)
Lineal Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 36: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/36.jpg)
Lineal Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 37: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/37.jpg)
Lineal Labeling: 1) Sketching a Path
![Page 38: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/38.jpg)
Lineal Labeling: 1) Sketching a Path
![Page 39: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/39.jpg)
Lineal Labeling: 1) Sketching a Path
![Page 40: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/40.jpg)
Lineal Labeling: 1) Sketching a Path
![Page 41: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/41.jpg)
Lineal Labeling: 2) Geodesic Paths
![Page 42: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/42.jpg)
Lineal Labeling: 2) Geodesic Paths
![Page 43: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/43.jpg)
Lineal Labeling: 2) Geodesic Paths
![Page 44: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/44.jpg)
Lineal Labeling:2) Geodesic Paths
![Page 45: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/45.jpg)
Cartographic Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 46: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/46.jpg)
Cartographic Labeling
3 classes of cartographic labels• Point• Lineal• Areal
![Page 47: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/47.jpg)
Areal (Region) Labeling
![Page 48: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/48.jpg)
Areal (Region) Labeling
![Page 49: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/49.jpg)
Areal (Region) Labeling
![Page 50: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/50.jpg)
Areal (Region) Labeling
![Page 51: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/51.jpg)
Path Smoothing
• Common among all labeling schemes• First, take a sequence of points as input
• Not necessarily on the scaffold surface• Optionally add points (interpolate)
![Page 52: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/52.jpg)
Path Smoothing
Then, iterate the following:1. Fix endpoints2. Average position of each point with its neighbors in sequence3. Project back onto surface
![Page 53: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/53.jpg)
Path Smoothing
Then, iterate the following:1. Fix endpoints2. Average position of each point with its neighbors3. Project back onto surface
![Page 54: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/54.jpg)
Path Smoothing
Then, iterate the following:1. Fix endpoints2. Average position of each point with its neighbors in sequence3. Project back onto surface
![Page 55: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/55.jpg)
Path Smoothing
Then, iterate the following:1. Fix endpoints2. Average position of each point with its neighbors in sequence3. Project back onto surface
![Page 56: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/56.jpg)
Path Smoothing
Then, iterate the following:1. Fix endpoints2. Average position of each point with its neighbors in sequence3. Project back onto surface
![Page 57: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/57.jpg)
Path Smoothing
![Page 58: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/58.jpg)
Path Smoothing
![Page 59: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/59.jpg)
Path Smoothing
![Page 60: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/60.jpg)
Text Rendering
We use alpha-tested magnification* to render letters• Lets us draw large letters with a
small (128x128) texture, with no visible aliasing
• Can add outline, glow effects by simple modifications of the shader
* C. Green. Improved alpha-tested magnification for vector textures and special effects. In SIGGRAPH ’07: ACM SIGGRAPH 2007 courses, pages 9–18, New York, NY, USA, 2007. ACM.
![Page 61: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/61.jpg)
Text Rendering
• Each letter is given its own local parameterization• Letter = decal• Built using exponential map method*
• Letter orientations are computed in parameter space• Baseline is a weighted average of nearby path
segments
* R. Schmidt, C. Grimm, and B.Wyvill. Interactive decal compositing with discrete exponential maps. ACM Transactions on Graphics, 25(3):603–613, 2006.
![Page 62: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/62.jpg)
Outline
• Introduction• Text Scaffold Generation• Labeling• Results
![Page 63: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/63.jpg)
Results
![Page 64: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/64.jpg)
Results
![Page 65: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/65.jpg)
Results
![Page 66: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/66.jpg)
Results
![Page 67: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/67.jpg)
Results
![Page 68: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/68.jpg)
Results
![Page 69: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/69.jpg)
Results
![Page 70: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/70.jpg)
Results
![Page 71: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/71.jpg)
Results
![Page 72: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/72.jpg)
Limitations
• Intrinsic to Surface Labeling• Fixed labels may not always be oriented toward viewer• Can’t guarantee uniform letter size, orientation on screen
• Unique to our approach• Scaffold parameters not necessarily intuitive
• Tradeoff between various goals• Future Work
• Independent steps (scaffold generation, path formation, lettering)• One inflexible surface may not offer best location for text path
• Text paths ignore one another• No overlap avoidance
![Page 73: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/73.jpg)
Conclusion
Text scaffolds:• Amenable to legible, proximal annotation of 3D models• Are quick to compute, with low overhead• Ideally suited for large models, with dense labels
Our system includes methods for:• Applying point labels• Geodesic path layout• Path ‘Sketching’• Automatic labeling of annotated regions
![Page 74: Text Scaffolds for Effective Surface Labeling](https://reader036.vdocuments.us/reader036/viewer/2022062323/56816607550346895dd9396a/html5/thumbnails/74.jpg)
Thanks!
Questions?
Thanks also to CIBM grant NLM-5T15LM007359