CS361 - PowerPoint PPT Presentation

week 14 wednesday n.
Skip this Video
Loading SlideShow in 5 Seconds..
CS361 PowerPoint Presentation
play fullscreen
1 / 27
Download Presentation
Download Presentation


- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Week 14 - Wednesday CS361

  2. Last time • What did we talk about last time? • Collision handling • Collision detection • Collision determination • Collision response • BSPs and hierarchies • Multiple object CD • Broad phase then exact phase

  3. Questions?

  4. Assignment 5

  5. Project 4

  6. Student Lecture:Non-Photorealistic Rendering

  7. Non-Photorealistic Rendering

  8. Non-photorealistic rendering • Most of the work we've focused on all semester is doing rendering that in some way mirrors the natural world • However, a wide area of rendering is non-photorealistic rendering (NPR) • Goals: • Simplified technical drawings • Simulating artistic styles

  9. Toon shading • The most common form of NPR in video games is toon shading • Also called cel shading • The goal is to render 3D models as if they were cartoons • Shading is often done with either a single color or a two tone (color and shading) approach • Then a thick black silhouette is added around edges

  10. Jet Grind Radio

  11. Okami

  12. Prince of Persia

  13. Coloring • The color is often determined by the dot product n ·l (surface normal dot light vector) • If negative, the surface should be darkened • Otherwise, it's some flat color • Or a threshold other than 0 can be used • A more complex system uses a one dimensional texture indexed into with the dot product Highlight Normal Shadow

  14. Silhouette edge rendering • The more complicated problem is properly rendering edges with a thick dark line • A number of different edges are of interest • Boundary or border edges are edges where one polygon is not adjacent to any other • Not found in 3D solid objects • A crease, hard, or feature edge is an edge between two polygons that is sharper than some threshold angle • A material edge is an edge between two polygons with different materials • A silhouette edge is when two neighboring polygons face different directions, relative to the eye

  15. Procedural geometry silhouetting • Cel shading focuses on rendering silhouette edges • Many of these techniques rely on manipulating back facing polygons • The crossover between front facing and back facing polygons is the silhouette • It's easy to determine which is which • After some manipulation of the backfaces, they are rendered in black

  16. z-biased backfaces • If the backfaces are rendered in black without any change, they will be hidden • Before rendering, all backfaces can be translated to be closer to the viewer • Translation can be by • A fixed amount • An amount that takes into account non-linear z-depths • An amount based on the angle of the polygon normal • None of these techniques give uniform thickness lines

  17. Triangle fattening • Another approach is to fatten each backface triangle • The slope of the triangle and the distance from the viewer determine the expansion of each edge • It doesn't work well for thin traingles

  18. Expanding shell technique • A similar approach is to expand backface vertices along their normals • The expansion amount is proportional to their z-distance • This technique fails for situations like a cube, in which faces with very different normals share vertices

  19. Silhouetting by image processing • Rather than using geometry, there is an image processing approach • Render all the normal values or depth values to a buffer and use edge detection algorithms to draw lines where the values change abruptly • Using normal values can find crease edges • This technique works for many cases that failed before • Even GPU generated surfaces are not a problem

  20. Other styles • NPR techniques are very broad • Many approaches try to recreate hand-drawn or hand-painted styles • Silhouette lines can be drawn as paintbrush strokes of varying thickness • Tonal art maps (TAMs) use palettes of hand-drawn textures to do black and white crosshatch-style shading

  21. Line rendering • For CAD programs and other 3D tools, we may want to highlight certain lines or all polygon edges • Rendering polygon edges on top of existing polygons can be a pain • Z-buffer algorithms might hide the lines • In practice, a small bias is usually added to the polygons

  22. Hidden lines • For drawing simplified models, we may want to include or exclude the hidden lines • Wireframe is the easiest, since it is just the lines • Hidden-line uses the z-buffer directly • Obscured-line renders twice, rendering z-fail lines in a lighter color • Haloed lines also use the z-buffer, drawing thick white lines first and then black lines on top • Problems happen when lines get too close

  23. Cel shading in XNA

  24. Quiz

  25. Upcoming

  26. Next time… • The future of graphics • Directions in games • Directions in hardware • Open research topics

  27. Reminders • Finish Assignment 5 • Due on Friday • Keep working on Project 4 • Due next Friday