advanced computer graphics cs 563 non photorealistic
play

Advanced Computer Graphics CS 563: Non Photorealistic Rendering - PowerPoint PPT Presentation

Advanced Computer Graphics CS 563: Non Photorealistic Rendering Frederik Clinckemaillie Computer Science Dept. Worcester Polytechnic Institute (WPI) Uses of Non Photorealistic R Rendering d i Different styles of Non Photorealistic


  1. Advanced Computer Graphics CS 563: Non ‐ Photorealistic Rendering Frederik Clinckemaillie Computer Science Dept. Worcester Polytechnic Institute (WPI)

  2. Uses of Non ‐ Photorealistic R Rendering d i  Different styles of Non Photorealistic  Different styles of Non ‐ Photorealistic Rendering(NPR) are used for different reasons  Displaying information  Displaying information  Creating emotion  Imitate art style  Imitate art style

  3. T Toon Shading Sh di  Cartoon ‐ like rending effects  Silhouette Edges  Simple Shading: Simple Shading:  Solid shading  Two ‐ tone shading  Specular/Diffuse three ‐ tone shading

  4. Cel Shading C l Sh di  Solid Shading is trivial  Solid Shading is trivial  Two ‐ Tone Shading  Calculate the diffuse shading dot product (n * l) for l l h d ff h d d d ( * l) f each vertex  If n * l < 0 surface is facing away  If n l < 0, surface is facing away  Use values on a 1 ‐ D texture map  Implemented on CPU or as Vertex Shader  Implemented on CPU or as Vertex Shader  Tone Mapping

  5. Additional Work in Cel Shading  Card and Mitchell [2002]  Card and Mitchell [2002]  Determined how to perform algorithm on GPU effectively effectively  Barla et al. [2001]  Added view dependent effects by using 2 D maps  Added view ‐ dependent effects by using 2 ‐ D maps  Rusinkiewicz et al. [2006]  Proposed Alternate shading model with high ‐ contrast P d Alt t h di d l ith hi h t t by adjusting effective light position

  6. C l Sh di Cel Shading (cont.) ( t )  Specular/Diffuse three tone shading  Specular/Diffuse three ‐ tone shading  Calculate the specular shading dot product (L * R) for each vertex each vertex  Map to 1 ‐ D texture map

  7. Silh Silhouette Edge Rendering tt Ed R d i  Adds silhouettes to emphasize edges  Adds silhouettes to emphasize edges  Different categories of algorithms:  Surface Angle S f A l  Procedural Geometry  Image Processing Image Processing  Vector Edge Detection  Hybrid  Hybrid

  8. T Types of Edges: f Ed  Boundary edge  Boundary edge  One not shared by two polygons  Crease edge: C d  Angle is greater than 60 degrees  Material edge l d  One where polygons are different materials  Silhouette edge  Two neighboring triangles face different directions as compared to eye vector d

  9. S Surface Angle Silhouetting f A l Silh tti  Using the dot product of the viewpoint and the  Using the dot product of the viewpoint and the surface normal  Results are mapped to circle map R lt d t i l  Results close to 0 are near Silhouette edge  Does not work for with Surfaces with hard edges  No vertex interpolation p

  10. Procedural Geometry Silhouetting P d l G t Silh tti  Render front faces normally render the edges of  Render front faces normally, render the edges of the backfaces behind front faces  Z ‐ bias method Z bi th d  Move backfaces closer so that edges become in front  Edges thickness is not constant Ed thi k i t t t

  11. Procedural Geometry Silhouetting P d l G t Silh tti  Backface triangles are fattened  Backface triangles are fattened.  Slope of triangle and distance from viewer determine fattening  Corners are cut of to avoid elongated corners

  12. R Results lt

  13. H l M th d Halo Method  Move the backfaces outwards by shifting their  Move the backfaces outwards by shifting their vertices along the shared vertex normals  Creates a halo behind front faces C t h l b hi d f t f

  14. Li Limitations it ti  Fattening cannot work on curved surfaces  Fattening cannot work on curved surfaces  Shell techniques work on curved surfaces only if the surface representation can be displaced th f t ti b di l d along surface normals  Z ‐ bias works with all curved surfaces Z bi k ith ll d f  Little control over edge appearance  Semitransparent surfaces are difficult to render  Edges look poor without antialiasing

  15. Silh Silhouetting by Image Processing tti b I P i  Entirely based on data stored in buffers  Entirely based on data stored in buffers  No modifications on the geometry of the scene  Look for silhouette edges by searching for z ‐ buffer discontinuities

  16. Silh Silhouette Edge Rendering tt Ed R d i  Process:  Process:  Use Vertex shaders to render the world space normals and z ‐ depth to a texture and z depth to a texture  Normals are colors, z ‐ depths are alpha channels  Implement a Sobel edge detection filter p e e t a Sobe edge detect o te  Benefits  Handles all primitives  Handles all primitives  Meshes do not need to be connected or consistent  Flaws  Flaws  Edges might not be found if discontinuities are small

  17. Silh Silhouette Edge Detection tt Ed D t ti  Other methods have weaknesses:  Other methods have weaknesses:  Often need two passes to render the silhouette  No control on edge rendering style  No control on edge rendering style  Detect silhouette edges and render them directly  Obtain more fine control on how lines are rendered Ob i fi l h li d d  Edges become independent of the model  An edge is defined by: A d i d fi d b (n 0 *v > 0) != (n 1 * v > 0)

  18. Fi di Finding Silhouette Edges Silh tt Ed  Standard: Loop through list of edges  Standard: Loop through list of edges  Improving efficiency:  Removing triangles inside planar polygons l d l l  Storing dot products for faces  In static scenes, preserve silhouettes until view moves I i ilh il i a certain distance

  19. H b id Silh Hybrid Silhouetting tti  Northrup and Markosian p  Find a list of silhouette edges.  Render all triangles and silhouette edges  Render all triangles and silhouette edges, assigning each a different ID number(color)  ID buffer is read back and visible silhouette edges  ID buffer is read back and visible silhouette edges are determined from it  Visible segments are then checked for overlaps  Visible segments are then checked for overlaps and linked together  Stylized strokes are added on path  Stylized strokes are added on path

  20. References T Tomas Akenine ‐ Moller, Eric Haines, and Naty Ho Ak i M ll E i H i d N H  man. Real ‐ Time Rendering, Third edition. Wellesley, MA: A K Peters, Ltd., 2008.

Recommend


More recommend