Non-Photorealistic Rendering FORMS

63
Non-Photorealistic Rendering FORMS

description

Non-Photorealistic Rendering FORMS. Threshold dependent. Model dependent. View dependent. Silhouette. Boundary. Outline form of the object. X. Crease (+ other discontinuities). Crease (+ other discontinuities). Interior form of the object. X. Silhouette Algorithms. - PowerPoint PPT Presentation

Transcript of Non-Photorealistic Rendering FORMS

Page 1: Non-Photorealistic Rendering FORMS

Non-Photorealistic Rendering

FORMS

Page 2: 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

Page 3: Non-Photorealistic Rendering FORMS

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

Page 4: Non-Photorealistic Rendering FORMS

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

Page 5: Non-Photorealistic Rendering FORMS

VertexVertex

11

22

33

44

55

Pre-Processing Pre-Processing Construct the Edge-Buffer Construct the Edge-Buffer

??

Page 6: Non-Photorealistic Rendering FORMS

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

Page 7: Non-Photorealistic Rendering FORMS

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

Page 8: Non-Photorealistic Rendering FORMS

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

Page 9: Non-Photorealistic Rendering FORMS

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)

Page 10: Non-Photorealistic Rendering FORMS

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)

Page 11: Non-Photorealistic Rendering FORMS

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)

Page 12: Non-Photorealistic Rendering FORMS

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)

Page 13: Non-Photorealistic Rendering FORMS

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)

Page 14: Non-Photorealistic Rendering FORMS

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))

Page 15: Non-Photorealistic Rendering FORMS

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))

Page 16: Non-Photorealistic Rendering FORMS

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))

Page 17: Non-Photorealistic Rendering FORMS

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))

Page 18: Non-Photorealistic Rendering FORMS

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)

Page 19: Non-Photorealistic Rendering FORMS

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)

Page 20: Non-Photorealistic Rendering FORMS

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)

Page 21: Non-Photorealistic Rendering FORMS

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)

Page 22: Non-Photorealistic Rendering FORMS

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)

Page 23: Non-Photorealistic Rendering FORMS

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))

Page 24: Non-Photorealistic Rendering FORMS

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)

Page 25: Non-Photorealistic Rendering FORMS

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)

Page 26: Non-Photorealistic Rendering FORMS

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)

Page 27: Non-Photorealistic Rendering FORMS

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)

Page 28: Non-Photorealistic Rendering FORMS

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)

Page 29: Non-Photorealistic Rendering FORMS

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)

Page 30: Non-Photorealistic Rendering FORMS

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……

Page 31: Non-Photorealistic Rendering FORMS

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

??

Page 32: Non-Photorealistic Rendering FORMS

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

Page 33: Non-Photorealistic Rendering FORMS

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))

Page 34: Non-Photorealistic Rendering FORMS

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

Page 35: Non-Photorealistic Rendering FORMS

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)

Page 36: Non-Photorealistic Rendering FORMS

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

Page 37: Non-Photorealistic Rendering FORMS

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

Page 38: Non-Photorealistic Rendering FORMS

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

Page 39: Non-Photorealistic Rendering FORMS

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

Page 40: Non-Photorealistic Rendering FORMS

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)

Page 41: Non-Photorealistic Rendering FORMS

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)

Page 42: Non-Photorealistic Rendering FORMS

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)

Page 43: Non-Photorealistic Rendering FORMS

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)

Page 44: Non-Photorealistic Rendering FORMS

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?

Page 45: Non-Photorealistic Rendering FORMS

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

Page 46: Non-Photorealistic Rendering FORMS

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???

Page 47: Non-Photorealistic Rendering FORMS

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???

Page 48: Non-Photorealistic Rendering FORMS

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

Page 49: Non-Photorealistic Rendering FORMS

Boundaries

Artist designates which interior edges are always drawn

FB = 10

FB = 01

Page 50: Non-Photorealistic Rendering FORMS

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

Page 51: Non-Photorealistic Rendering FORMS

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

Page 52: Non-Photorealistic Rendering FORMS

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

Page 53: Non-Photorealistic Rendering FORMS

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

Page 54: Non-Photorealistic Rendering FORMS

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

Page 55: Non-Photorealistic Rendering FORMS

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

Page 56: Non-Photorealistic Rendering FORMS

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

Page 57: Non-Photorealistic Rendering FORMS
Page 58: Non-Photorealistic Rendering FORMS

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

Page 59: Non-Photorealistic Rendering FORMS
Page 60: Non-Photorealistic Rendering FORMS

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

Page 61: Non-Photorealistic Rendering FORMS
Page 62: Non-Photorealistic Rendering FORMS
Page 63: Non-Photorealistic Rendering FORMS