basics of 3d rendering
play

Basics of 3D Rendering CS 148: Summer 2016 Introduction of Graphics - PowerPoint PPT Presentation

Basics of 3D Rendering CS 148: Summer 2016 Introduction of Graphics and Imaging Zahid Hossain http://www.pling.org.uk/cs/cgv.html What We Have So Far 3D geometry 2D pipeline CS 148: Introduction to Computer Graphics and Imaging (Summer 2016)


  1. Basics of 3D Rendering CS 148: Summer 2016 Introduction of Graphics and Imaging Zahid Hossain http://www.pling.org.uk/cs/cgv.html

  2. What We Have So Far 3D geometry 2D pipeline CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 2

  3. Handy Fact Matrices preserve flat geometry CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 3

  4. Handy Fact Matrices preserve flat geometry CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 4

  5. So What? 3D triangles look like 2D triangles under camera transformations. CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 5

  6. So What? 3D triangles look like 2D triangles under camera transformations. Use 2D pipeline for 3D Rendering ! CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 6

  7. Side Note Only true for flat shapes http://drawntothis.com/wp-content/uploads/2010/09/Random_Guy.jpg CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 7

  8. Side Note Only true for flat shapes http://drawntothis.com/wp-content/uploads/2010/09/Random_Guy.jpg CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 8

  9. Frame Buffering CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 9

  10. Double and Triple Buffering Tearing : Data from multiple frames appear on the screen at the same time. This happens when GPU rendering rate and monitor refresh rate are not synced. http://www.newcluster.com/wp-content/uploads/2015/01/g-sync_diagram_0.jpgitokgxy9kpos CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 10

  11. Double Buffering with V-Sync Front Buffer Front Buffer Back Buffer (video memory) SwapBuffer: Either copy Back Buffer to Front Buffer, or Swap Pointers (Usually in Fullscreen mode). Vertical Retraces CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 11

  12. Double Buffering with V-Sync Front Buffer Front Buffer Back Buffer (video memory) SwapBuffer: Either copy Back Buffer to Front Buffer, or Swap Pointers (Usually in Fullscreen mode). Vertical Retraces CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 12

  13. Triple Buffering with V-Sync Front Buffer Back Buffer 1 Back Buffer 2 Front Buffer (Video Memory) Vertical Retraces CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 13

  14. Triple Buffering with V-Sync Front Buffer Back Buffer 1 Back Buffer 2 Front Buffer (Video Memory) Vertical Retraces CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 14

  15. Occulusion CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 15

  16. Painter’s Algorithm Draw items one at a time CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 16

  17. Painter’s Algorithm Draw items one at a time CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 17

  18. Painter’s Algorithm Draw items one at a time CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 18

  19. Painter’s Algorithm Draw items one at a time CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 19

  20. Painter’s Algorithm Draw items one at a time CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 20

  21. What Order? CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 21

  22. What Order? CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 22

  23. Early Hidden Surface Approaches • Pre-compute rendering order • Cut geometry as needed • … CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 23

  24. Observation Each pixel can decide what is on top independently. CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 24

  25. Observation Each pixel can decide what is on top independently. CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 25

  26. Z Buffer Color Buffer (RGB each cell) Depth buffer (one number each cell) CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 26

  27. Z-Buffer http://upload.wikimedia.org/wikipedia/commons/4/4e/Z_buffer.svg CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 27

  28. Z-Buffer Issues: Resolution Non linear ! CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 28

  29. Z-Buffer Issues: Resolution Depth CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 29

  30. Z-Buffer Issues: Depth Fighting aka. “Stiching” or “bleeding” http://ps-2.kev009.com/CATIA-B18/basug_C2/basugbt1510.htm CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 30

  31. Z-Buffer Issues: Depth Fighting Hack: Scale and add offset “glPolygonOffset” aka. “Stiching” or “bleeding” http://ps-2.kev009.com/CATIA-B18/basug_C2/basugbt1510.htm CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 31

  32. Cull [kuhl]: To identify and throw away invisible geometry to save processing time. CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 32

  33. Basic Culling Strategies • Backface culling : remove geometry facing away from the camera • View volume culling : remove geometry outside frustum • Occlusion culling : remove invisible geometry CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 33

  34. Backface Culling None Backface Hidden surface culling removal http://medialab.di.unipi.it/web/IUM/Waterloo/node70.html CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 34

  35. Specifying Triangle Orientation glDisable/glEnable(GL_CULL_FACE) glFrontFace(GL_CCW) CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 35

  36. View Volume Culling Potential strategies: • Store scene hierarchically • With bounding volumes • Compute viewing frustrum • Don’t render volumes that are clearly outside frustrum http://i.minus.com/i75qjiyFQzVCI.jpg CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 36

  37. Occlusion Culling: Portal Rendering http://www.aaid.ca/flash/media/hkmh/images/floor1/000a-geology-portal-cg-rendering.jpg CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 37

  38. Occlusion Culling: Portal Rendering Potentially Visible Set http://www.cs.virginia.edu/~luebke/publications/portals.html CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 38

  39. Occlusion Culling: Portal Rendering Potentially Visible Set http://www.cs.virginia.edu/~luebke/publications/portals.html CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 39

  40. Occlusion Culling: Portal Rendering Mirrors ? Potentially Visible Set (PVS) http://www.cs.virginia.edu/~luebke/publications/portals.html CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 40

  41. Summary of Culling Techniques CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 41

  42. Acceleration Structures CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 42

  43. Goal of Acceleration Structures • Quickly reject objects that are outside the viewing volume • Query for intersections efficiently CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 43

  44. Spatial Hierarchies Letters correspond to planes (A) CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 44

  45. Spatial Hierarchies Letters correspond to planes (A,B) CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 45

  46. Spatial Hierarchies Letters correspond to planes (A,B,C,D) CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 46

  47. Spatial Hierarchies: Variations CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 47

  48. Octree • Each node has 0 or 8 children • Each node can equally subdivide its space (an AABB) into eight subboxes by 3 midplanes • Children of a node are contained within the box of the node itself • Stop subdividing when number of objects/primitives falls below a threshold or maximum depth has reached. • Recursively render cells that intersects with the viewing volume CS 148: Introduction to Computer Graphics and Imaging (Summer 2016) – Zahid Hossain 48

Recommend


More recommend