Non-Photorealistic Rendering FORMS
description
Transcript of Non-Photorealistic Rendering FORMS
Non-Photorealistic Rendering
FORMS
Model dependent
Threshold dependent
View dependent
Outline form of the object
Interior form of the object
Boundary
Crease(+ otherdiscontinuities)
Crease(+ otherdiscontinuities)
Silhouette
X
X
Object SpaceObject SpaceInvolve computations in 3D and produce a list of
silhouette edges or curves for a given viewpoint
1. Brute Force2.2. Edge BufferEdge Buffer3. Probabilistic 4. Gauss Map Arc Hierarchy 5. Normal Cone Hierarchy 6. Implicit Surfaces 7. NURBS Surfaces
Image SpaceImage Spaceinvolve image processing techniques
1. Two Pass Methods2. Environment Map3. One Pass Method4. Model Augmentation5. Depth Discontinuity Methods
Silhouette Algorithms
Object Space Object Space 2. Edge Buffer2. Edge Buffer
Using the “Edge Buffer” data structure of Buchanan and Sousa to iterate over facets insteadof edges.
Buchanan, J. W. and Sousa, M. C.The edge buffer: A data structure for easy silhouette renderingProc. of NPAR '00
VertexVertex
11
22
33
44
55
Pre-Processing Pre-Processing Construct the Edge-Buffer Construct the Edge-Buffer
??
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11
22
33
44
55
VV = vertex id = vertex idFF = front face ? = front face ?BB = back face ? = back face ?
Pre-Processing Pre-Processing Construct the Edge-Buffer Construct the Edge-Buffer
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
VV = vertex id = vertex idFF = front face ? = front face ?BB = back face ? = back face ?
Pre-Processing Pre-Processing Construct the Edge-Buffer Construct the Edge-Buffer
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)
Sort Indices… Sort Indices… (1, 2, 3)(1, 2, 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (1, 2)InsertEdge (1, 2)
((11, , 22, 3), 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (InsertEdge (11, 2), 2)
((11, , 22, 3), 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 x00x00 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (InsertEdge (11, , 22))
((11, , 22, 3), 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (InsertEdge (11, , 22))
((11, , 22, 3), 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (1, 2)InsertEdge (1, 2)InsertEdge (1, 3)InsertEdge (1, 3)
((11, 2, , 2, 33))
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 x00x00 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (1, 2)InsertEdge (1, 2)InsertEdge (InsertEdge (11, , 33))
((11, 2, , 2, 33))
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 330000 x00x00 x00x00
22 x00x00 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, T (2, 33, , 11))InsertEdge (1, 2)InsertEdge (1, 2)InsertEdge (InsertEdge (11, , 33))
((11, 2, , 2, 33))
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 330000 x00x00 x00x00
22 330000 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)InsertEdge (1, 2)InsertEdge (1, 2)InsertEdge (1, 3)InsertEdge (1, 3)InsertEdge (InsertEdge (22, , 33))
(1, (1, 22, , 33))
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 330000 x00x00 x00x00
22 330000 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 x00x00 x00x00
22 300300 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
Sort Indices… Sort Indices… (1, 3, 4)(1, 3, 4)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 x00x00 x00x00
22 300300 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
(1, 3, 4)(1, 3, 4)
InsertEdge (1, 3)InsertEdge (1, 3)InsertEdge (3, 4)InsertEdge (3, 4)InsertEdge (1, 4)InsertEdge (1, 4)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 330000 x00x00 x00x00
22 300300 x00x00 x00x00 x00x00
33 x00x00 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
(1, 3, 4)(1, 3, 4)
InsertEdge (InsertEdge (11, , 33) ) already in already in
InsertEdge (3, 4)InsertEdge (3, 4)InsertEdge (1, 4)InsertEdge (1, 4)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 x00x00 x00x00
22 300300 x00x00 x00x00 x00x00
33 440000 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
(1, 3, 4)(1, 3, 4)
InsertEdge (1, 3)InsertEdge (1, 3)InsertEdge (InsertEdge (33, , 44))InsertEdge (1, 4)InsertEdge (1, 4)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 440000 x00x00
22 300300 x00x00 x00x00 x00x00
33 440000 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
(1, 3, 4)(1, 3, 4)
InsertEdge (1, 3)InsertEdge (1, 3)InsertEdge (3, 4)InsertEdge (3, 4)InsertEdge (InsertEdge (11, , 44))
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 330000 440000 x00x00
22 300300 x00x00 x00x00 x00x00
33 440000 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 x00x00
22 300300 x00x00 x00x00 x00x00
33 400400 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 300300 400400 x00x00
22 300300 x00x00 x00x00 x00x00
33 400400 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 x00x00
22 300300 550000 x00x00 x00x00
33 400400 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 550000
22 300300 x00x00 x00x00 x00x00
33 400400 x00x00 x00x00 x00x00
44 x00x00 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 220000 330000 440000 550000
22 330000 550000 x00x00 x00x00
33 440000 550000 x00x00 x00x00
44 550000 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (5, 3, 2)T (5, 3, 2)T (5, 4, 3)T (5, 4, 3)T (1, 4, 5)T (1, 4, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 500500
22 300300 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
Run-Time Run-Time forfor (each new frame) (each new frame) dodo……
T (2, 3, 1)T (2, 3, 1)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 500500
22 300300 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
??
T (2, 3, 1)T (2, 3, 1)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 500500
22 300300 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (2, 3, 1)T (2, 3, 1)
Sort Indices… Sort Indices… (1, 2, 3)(1, 2, 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 200200 300300 400400 500500
22 300300 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 2, UpdateEB (1, 2, frontfront))UpdateEB (2, 3, UpdateEB (2, 3, frontfront))UpdateEB (1, 3, UpdateEB (1, 3, frontfront))
T (2, 3, 1)T (2, 3, 1)
Sort Indices… Sort Indices… (1, 2, 3)(1, 2, 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221100 331100 400400 500500
22 331100 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 2, UpdateEB (1, 2, frontfront))UpdateEB (2, 3, UpdateEB (2, 3, frontfront))UpdateEB (1, 3, UpdateEB (1, 3, frontfront))
F bit XOR 1F bit XOR 1
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 310310 400400 500500
22 310310 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (4, 1, 3)T (4, 1, 3)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 310310 400400 500500
22 310310 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 3, UpdateEB (1, 3, frontfront))UpdateEB (3, 4, UpdateEB (3, 4, frontfront))UpdateEB (1, 4, UpdateEB (1, 4, frontfront))
T (4, 1, 3)T (4, 1, 3)
Sort Indices… Sort Indices… (1, 3, 4)(1, 3, 4)
F bit XOR 1F bit XOR 1
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 331010 400400 500500
22 310310 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 3, UpdateEB (1, 3, frontfront))T (4, 1, 3)T (4, 1, 3)
Sort Indices… Sort Indices… (1, 3, 4)(1, 3, 4)
F bit XOR 1F bit XOR 1
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 330000 400400 500500
22 310310 500500 x00x00 x00x00
33 400400 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 3, UpdateEB (1, 3, frontfront))T (4, 1, 3)T (4, 1, 3)
Sort Indices… Sort Indices… (1, 3, 4)(1, 3, 4)
F bit XOR 1F bit XOR 1
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 330000 441100 500500
22 310310 500500 x00x00 x00x00
33 441100 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 3, UpdateEB (1, 3, frontfront))UpdateEB (3, 4, UpdateEB (3, 4, frontfront))UpdateEB (1, 4, UpdateEB (1, 4, frontfront))
T (4, 1, 3)T (4, 1, 3)
Sort Indices… Sort Indices… (1, 3, 4)(1, 3, 4)
F bit XOR 1F bit XOR 1
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 300300 410410 500500
22 310310 500500 x00x00 x00x00
33 410410 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 210210 300300 410410 500500
22 310310 500500 x00x00 x00x00
33 410410 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 2, UpdateEB (1, 2, backback))UpdateEB (2, 5, UpdateEB (2, 5, backback))UpdateEB (1, 5, UpdateEB (1, 5, backback))
B bit XOR 1B bit XOR 1
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221111 300300 410410 550011
22 310310 550011 x00x00 x00x00
33 410410 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
UpdateEB (1, 2, UpdateEB (1, 2, backback))UpdateEB (2, 5, UpdateEB (2, 5, backback))UpdateEB (1, 5, UpdateEB (1, 5, backback))
B bit XOR 1B bit XOR 1
T (1, 2, 5)T (1, 2, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221111 330000 441111 550000
22 331111 550000 x00x00 x00x00
33 441111 550000 x00x00 x00x00
44 550000 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
T (5, 3, 2)T (5, 3, 2)T (5, 4, 3)T (5, 4, 3)T (1, 4, 5)T (1, 4, 5)
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221111 330000 441111 550000
22 331111 550000 x00x00 x00x00
33 441111 550000 x00x00 x00x00
44 550000 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
FB = 11 FB = 11 Silhouette Edges Silhouette EdgesFB = 00 FB = 00 Interior Edges Interior Edges
How to Interpret the Bit Fields?How to Interpret the Bit Fields?
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221111 300300 441111 500500
22 331111 500500 x00x00 x00x00
33 441111 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 221111 300300 441111 500500
22 331111 500500 x00x00 x00x00
33 441111 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
3D Perception???3D Perception???
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 211211 330000 411411 500500
22 311311 500500 x00x00 x00x00
33 411411 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
3D Perception???3D Perception???
VertexVertex VFBVFB VFBVFB VFBVFB VFBVFB
11 211211 300300 411411 500500
22 311311 500500 x00x00 x00x00
33 411411 500500 x00x00 x00x00
44 500500 x00x00 x00x00 x00x00
55 x00x00 x00x00 x00x00 x00x00
Artist designates Artist designates which interior edges which interior edges are always drawnare always drawn
Boundaries
Artist designates which interior edges are always drawn
FB = 10
FB = 01
Artist EdgesArtist EdgesArtist designates which interior edges are always drawn
AFBFaBa
Artist Edge? Absolute Front? Absolute Back?
10010
10001
When a front facing edge is being updated we simply OR the currentvalue of Fa with 1, similarly for Ba
VertexVertex VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa
11 220011111111 330000001010 440011111111 550000000101
22 330011111111 550000000101 x00000x00000 x00000x00000
33 440011111111 550000000101 x00000x00000 x00000x00000
44 550000000101 x00000x00000 x00000x00000 x00000x00000
55 x00000x00000 x00000x00000 x00000x00000 x00000x00000
VertexVertex VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa
11 202011111111 300001300001 404011111111 500001500001
22 303011111111 500001500001 x00000x00000 x00000x00000
33 404011111111 500001500001 x00000x00000 x00000x00000
44 500001500001 x00000x00000 x00000x00000 x00000x00000
55 x00000x00000 x00000x00000 x00000x00000 x00000x00000
Draw ALL: Draw ALL:
Silhouettes in Silhouettes in redred
VertexVertex VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa
11 201111201111 331100001010 401111401111 500001500001
22 301111301111 500001500001 x00000x00000 x00000x00000
33 401111401111 500001500001 x00000x00000 x00000x00000
44 500001500001 x00000x00000 x00000x00000 x00000x00000
55 x00000x00000 x00000x00000 x00000x00000 x00000x00000
Draw ALL: Draw ALL:
Silhouettes in Silhouettes in redredAbsolute Front in Absolute Front in blueblue
VertexVertex VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa
11 201111201111 300010300010 401111401111 551100000101
22 301111301111 551100000101 x00000x00000 x00000x00000
33 401111401111 551100000101 x00000x00000 x00000x00000
44 551100000101 x00000x00000 x00000x00000 x00000x00000
55 x00000x00000 x00000x00000 x00000x00000 x00000x00000
Draw ALL: Draw ALL:
Silhouettes in Silhouettes in redredAbsolute Front in Absolute Front in blueblueAbsolute Back inAbsolute Back in greengreen
VertexVertex VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa VAFBFVAFBFaaBBaa
11 22??11111111 33??00100010 44??11111111 55??00010001
22 33??11111111 55??00010001 x00000x00000 x00000x00000
33 44??11111111 55??00010001 x00000x00000 x00000x00000
44 55??00010001 x00000x00000 x00000x00000 x00000x00000
55 x00000x00000 x00000x00000 x00000x00000 x00000x00000
How to set the “artist” bit?How to set the “artist” bit?
by thresholding and/orby thresholding and/orby sketchingby sketching
For all For all front face interior edgesfront face interior edges,,
v000v0001010
set the set the artist bitartist bit to 1 (true) to 1 (true)
vv1100001010
Draw all artist edges in Draw all artist edges in greengreen
For all For all front face interior edgesfront face interior edges,,
v000v0001010
within a certain thresholdwithin a certain threshold,,set the set the artist bitartist bit to 1 (true) to 1 (true)
vv1100001010
Draw all artist edges in Draw all artist edges in greengreen
For all For all front face interior edgesfront face interior edges,,
v000v0001010
intersecting the user sketch inputintersecting the user sketch input,,set the set the artist bitartist bit to 1 (true) to 1 (true)
vv1100001010
Draw all artist edges in Draw all artist edges in greengreen