Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 14 - Wednesday.  What did we talk about last time?  Collision handling  Collision detection  Collision determination  Collision response  BSPs.

Similar presentations


Presentation on theme: "Week 14 - Wednesday.  What did we talk about last time?  Collision handling  Collision detection  Collision determination  Collision response  BSPs."— Presentation transcript:

1 Week 14 - Wednesday

2  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

4

5

6

7

8  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  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

11

12

13  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 HighlightNormalShadow

14  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  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  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  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  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  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  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  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  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

24

25

26  The future of graphics  Directions in games  Directions in hardware  Open research topics

27  Finish Assignment 5  Due on Friday  Keep working on Project 4  Due next Friday


Download ppt "Week 14 - Wednesday.  What did we talk about last time?  Collision handling  Collision detection  Collision determination  Collision response  BSPs."

Similar presentations


Ads by Google