1 / 28

Real–Time Hatching

Real–Time Hatching. Princeton University Microsoft Research Princeton University Princeton University. Emil Praun Hugues Hoppe Matthew Webb Adam Finkelstein. Goal. Stroke-based rendering of 3D models Strokes convey: tone material shape. Demo. Challenges.

georgewhite
Télécharger la présentation

Real–Time Hatching

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Real–Time Hatching Princeton University Microsoft Research Princeton University Princeton University Emil Praun Hugues Hoppe Matthew Webb Adam Finkelstein

  2. Goal • Stroke-based rendering of 3D models • Strokes convey: • tone • material • shape Demo

  3. Challenges • Interactive camera and lighting control • Temporal (frame to frame) coherence • Spatial continuity • Artistic freedom

  4. Approach Set of textures Example stroke Result Mesh Preprocess Real-Time

  5. [Hertzmann et al. 2000] [Winkenbach et al. ’94, ’96] [Sousa et al. ’99] Previous Work • Off-line • Real-Time Hatching & many others …

  6. Previous Work • NPR • Real-Time Hatching • Technical Illustration • [Gooch et al. ’99] • Graftals • [Kowalski et al. ’99, …] • Silhouette rendering • [Markosian et al. ’97] • [Hertzmann et al. 2000] • [Sander et al. 2000]

  7. Previous Work • Real-Time Hatching • Screen-space “filter” [Lake et al. 2000] • Fixed density strokes [Elber ’99]

  8. Previous Work – Stroke Collections • Prioritized Stroke Textures[Salisbury et al. ’94][Winkenbach et al. ’94] Art Maps[Klein et al. 2000] scale  tone 

  9. Tonal Art Maps • Collection of stroke images • Will blend  design with high coherence • Stroke nesting property demo scale  tone 

  10. Approach Tonal Art Map Example stroke Result Mesh Preprocess Real-Time

  11. Generating Tonal Art Maps • Draw or import bitmap for one stroke • Automatically fill TAM with strokes • When placing stroke in an image,add it to all finer & darker images • Fill table column by column, coarse to fine • Space strokes evenly

  12. candidate stroke candidate stroke candidate stroke Even Spacing of Strokes • Choose best stroke from large candidate pool • Fitness = uniformity & progress towards tone candidate stroke

  13. Even Spacing of Strokes • Choose best stroke from large candidate pool • Fitness = uniformity & progress towards tone candidate stroke 1 TAM column(same tone)

  14. Even Spacing of Strokes • Choose best stroke from large candidate pool • Fitness = uniformity & progress towards tone 1 TAM column(same tone) Keep Gaussian pyramid for all TAM images

  15. Approach Tonal Art Map Example stroke Result Mesh Preprocess Real-Time

  16. spatial discontinuity Continuity • Stroke size continuity  mipmapping • Tone continuity  blend multiple textures • Spatial continuity: same contribution for a texture on both sides of an edge • Temporal continuity: no “popping” demo

  17. Texture Blending tone tone v1 v2 v3 6-way blend  final

  18. Texture Blending • Pack grayscale tones in R,G,B channels→ 6 tones in 2 textures • Use multitexture engine→ single-pass 6-way blend • Vertex programs compute blend weights→ static vertex data !!VP1.0 #Vertex Program for Real-Time Hatching. //output vertex homogeneous coordinates DP4 R2.x, c[0], v[OPOS]; DP4 R2.y, c[1], v[OPOS]; DP4 R2.z, c[2], v[OPOS]; DP4 R2.w, c[3], v[OPOS]; MOV o[HPOS], R2; //stroke texture coordinates, transformed DP3 o[TEX0].x, c[4], v[TEX0]; DP3 o[TEX0].y, c[5], v[TEX0]; DP3 o[TEX1].x, c[4], v[TEX0]; DP3 o[TEX1].y, c[5], v[TEX0]; // splotch mask coordinates MOV o[TEX2], v[TEX0]; //get the Gouraud shade DP3 R1, c[8], v[NRML]; //apply clamp-linear tone transfer function MUL R1, R1, c[9].x; ADD R1, R1, c[9].y; MAX R1, R1, c[9].z; MIN R1, R1, c[9].w; //now look up the weights for the TAMs blending EXP R2.y, R1.x; //frac(tone) ARL A0.x, R1.x; MOV R3, c[A0.x + 10]; MAD R3, -R2.y, R3, R3; MAD o[COL1], R2.y, c[A0.x + 11], R3; MOV R4, c[A0.x + 20]; MAD R4, -R2.y, R4, R4; MAD o[COL0], R2.y, c[A0.x + 21], R4; END

  19. Approach Tonal Art Map Example stroke Result Mesh Lappedtexture Preprocess Real-Time

  20. Texturing Arbitrary Surfaces • Lapped Textures[Praun et al. 2000]

  21. Direction Field • Based on surface principal curvatures • Optimized to be smooth • [Hertzmann & Zorin 2000] • Symmetry: 180º instead of 90º • Sample on faces

  22. Demo

  23. Demo Gargoyle

  24. Demo chalk gray charcoal  Venus

  25. Summary • Real-time hatching for NPR • Strokes rendered as textures • High coherence TAMs prevent blend artifacts • 6-way blend very fast on modern graphics

  26. Bill Plympton Future Work • More general TAMs • View-dependent stroke direction • Automatic indication

  27. Acknowledgements • Support • Microsoft Research, NSF • Hardware • NVidia, Dell • Models • Viewpoint, Cyberware, Stanford, MIT • Thanks • Georges Winkenbach, Lee Markosian, Grady Klein

  28. NPAR 2002 • International Symposium on Non-Photorealistic Animation and Rendering • Annecy, France • Submissions: November 12, 2001 • Conference: June 3-5, 2002 • http://npar2002.cs.princeton.edu

More Related