computer graphics
play

Computer Graphics MTAT.03.015 Raimond Tunnel 2 / 50 The Road So - PowerPoint PPT Presentation

Computer Graphics MTAT.03.015 Raimond Tunnel 2 / 50 The Road So Far... 3 / 50 Shadows 4 / 50 Shadows Three distinct parts of a shadow: 5 / 50 Shadows Three distinct parts of a shadow: Umbra full shadow 6 / 50 Shadows


  1. Computer Graphics MTAT.03.015 Raimond Tunnel

  2. 2 / 50 The Road So Far...

  3. 3 / 50 Shadows

  4. 4 / 50 Shadows ● Three distinct parts of a shadow:

  5. 5 / 50 Shadows ● Three distinct parts of a shadow: ● Umbra – full shadow

  6. 6 / 50 Shadows ● Three distinct parts of a shadow: ● Umbra – full shadow ● Penumbra – half shadow

  7. 7 / 50 Shadows ● Three distinct parts of a shadow: ● Umbra – full shadow ● Penumbra – half shadow ● Antumbra – after shadow

  8. 8 / 50 Shadows ● Three distinct parts of a shadow: ● Umbra – full shadow ● Penumbra – half shadow ● Antumbra – after shadow What happens with point or directional light sources?

  9. 9 / 50 Global Shadows ● With path or ray tracing, shoot rays to points on the light source.

  10. 10 / 50 Global Shadows ● With path or ray tracing, shoot rays to points on the light source. ● If some of the rays do not hit the light source, the point is in a shadow (rays hit an occlusion).

  11. 11 / 50 Shadow Mapping ● Goal is the same: find an occluder between a surface point and the light source.

  12. 12 / 50 Shadow Mapping ● Goal is the same: find an occluder between a surface point and the light source. ● Render the depth buffer from the light source .

  13. 13 / 50 Shadow Mapping ● Goal is the same: find an occluder between a surface point and the light source. ● Render the depth buffer from the light source . ● For each fragment in the main rendering consider the depth to the light source.

  14. 14 / 50 Shadow Mapping ● Goal is the same: find an occluder between a surface point and the light source. ● Render the depth buffer from the light source . ● For each fragment in the main rendering consider the depth to the light source. ● How to find a depth to the light source? Will distance work?

  15. 15 / 50 Shadow Mapping ● Goal is the same: find an occluder between a surface point and the light source. ● Render the depth buffer from the light source . ● For each fragment in the main rendering consider the depth to the light source. ● How to find a depth to the light source? ● What happens if it is larger then the closest depth seen from the light source?

  16. 16 / 50 Shadow Mapping: Directional Light

  17. 17 / 50 Shadow Mapping: Point Light What problems do you see here?

  18. 18 / 50 Shadow Mapping ● See the example in CGLearn

  19. 19 / 50 Shadow Volume ● We create a volume (mesh) around the shadow of each object.

  20. 20 / 50 Shadow Volume ● We create a volume (mesh) around the shadow of each object. ● When rendering, we count the number of times, we enter a volume, minus the number of times we exit a volume, to get to a fragment.

  21. 21 / 50 Shadow Volume ● We create a volume (mesh) around the shadow of each object. ● When rendering, we count the number of times, we enter a volume, minus the number of times we exit a volume, to get to a fragment. ● Multiple ways to use this info: ● Depth pass – counts from front Shadow volume faces between the object and the camera

  22. 22 / 50 Shadow Volume ● We create a volume (mesh) around the shadow of each object. ● When rendering, we count the number of times, we enter a volume, minus the number of times we exit a volume, to get to a fragment. ● Multiple ways to use this info: ● Depth pass – counts from front Shadow volume faces between the object and the camera ● Depth fail – counts from back (Carmack's reverse) Shadow volume faces after the object to infinity

  23. 23 / 50 Shadow Volume ● We create a volume (mesh) around the shadow of each object. ● When rendering, we count the number of times, we enter a volume, minus the number of times we exit a volume, to get to a fragment. ● Multiple ways to use this info: ● Depth pass – counts from front Shadow volume faces between the object and the camera ● Depth fail – counts from back (Carmack's reverse) Shadow volume faces after the object to infinity ● When count is 0, object is lit.

  24. 1. 24 / 50 Shadow Volume ● Find the silhouette of the object.

  25. 1. 25 / 50 Shadow Volume ● Find the silhouette of the object. ● How to find those edges?

  26. 2. 26 / 50 Shadow Volume ● Copy the vertices and extrude the copy to infinity from the light source.

  27. 2. 27 / 50 Shadow Volume ● Copy the vertices and extrude the copy to infinity from the light source. ● Assigning 0 as the fourth coordinate, results in a point projected to infinity. Works like a laser...

  28. 3. 28 / 50 Shadow Volume ● Create caps and sides of the shadow volume.

  29. 3. 29 / 50 Shadow Volume ● Create caps and sides of the shadow volume. ● In order for the far plane not to clip the volume, send the far plane to infinity . far →∞ P = { 0 } 1 0 0 0 ar ⋅ tan (α) 1 lim 0 0 0 tan (α) − 1 − 2 ⋅ near 0 0 − 1 0 0

  30. 4. 30 / 50 Shadow Volume ● Depth-pass – count the front facing shadow planes minus the back facing shadow planes in front of the object. One of those has a problem.

  31. 4. 31 / 50 Shadow Volume ● Depth-fail – count the front facing shadow planes minus the back facing shadow planes behind the object.

  32. 32 / 50 Conclusion ● Coordinate Systems ● Left / Right Handed ● Triangles ● Planar ● Polygons ● Convex / Concave ● Simple

  33. 33 / 50 Conclusion ● Convex Combination ● Barycentric Coordinates ● Points and Vectors

  34. 34 / 50 Conclusion ● Standard Graphics Pipeline ● Application code ● GPU steps

  35. 35 / 50 Conclusion ( cos (α) ) ● Linear Transformations cos (α) − sin (α) sin (α) ● Rotation ( a y ) ● Scale a x 0 ( 1 ) ● Shear 1 0 0 tan (ϕ) ● Affine Transformations ( 1 ) ● Translation tan (ϕ) 1 ( 1 ) 0 ● Homogeneous 1 0 x t Coordinates 0 1 y t ( x , y , z ,w ) = ( w ) 0 0 w , y x w , z

  36. 36 / 50 Conclusion ● Augmented Transformation Matrix Translation column Linear transformations ( 1 ) = ( ) ⋅ ( 1 ) ax + by + cz + x t a b c x t x d e f y t dx + ey + fz + y t y trasnformation Affine z gx + hy + iz + z t g h i z t 0 0 0 1 Used for perspective projection...

  37. 37 / 50 Conclusion ● Projection ● Orthographic ● Oblique ● Perspective

  38. 38 / 50 Conclusion ● Frames of Reference ● Object Space ● World Space ● View Space ● Clip Space ● Normalized Device Space ● Screen Space

  39. 39 / 50 Conclusion ● Shading Models ● Flat ● Gouraud ● Phong ● Lighting Models ● Single color ● Lambert ● Phong ● Blinn-Phong ● sRGB Color Space and Gamma

  40. 40 / 50 Conclusion ● Textures ● UV Mapping ● Mipmap ● Interpolation – Upscale – Downscale ● Anisotropy

  41. 41 / 50 Conclusion ● Blending ● Alpha – Conventional – Premultiplied ● General Blending Function Multiplicative blending example in – Alpha Blending World Remade by Jaanus Jaggo – Additive http://forums.tigsource.com/index.php ?topic=41334.0 – Multiplicative blend ( src ,dst )=( src ⋅ srcFactor ) function ( dst ⋅ dstFactor )

  42. 42 / 50 Conclusion ● Asset Pipeline ● Code vs Design vs Art ● Vertical Slice ● Game Engine ● Runtime ● Tools Image by Ats Kurvet and Timo Kallaste ● Layered Architecture ● Drivers, OS, Resource Manager, Middleware, SDK

  43. 43 / 50 Conclusion ● Curves ● Interpolating vs Approximating ● Smoothness and . n n C G ● Construction with constraints ● Hermite ● Catmull-Rom ● Bezier

  44. 44 / 50 Conclusion ● Procedural Generation ● Noise – Value noise – Gradient noise (Perlin) ● Lindenmayer Systems ● Particle Systems – Boids

  45. 45 / 50 Conclusion ● Ray Casting ● Ray-Triangle Intersection ● Ray Tracing ● Ray Trace Rendering ● Data Structures ● Octree ● K-D Tree ● Binary Space Partitioning ● Bounding Volume Hierarcy

  46. 46 / 50 Conclusion ● Global Illumination ● Path Tracing ● Photon Mapping ● Radiosity ● The Rendering Equation L emit ( x , ω o )+ ∫ f brdf ( x , ω i , ω o ) ⋅ L i ( x , ω i ) ⋅ (ω i ⋅ n ) d ω i Ω

  47. 47 / 50 Conclusion ● Shadows ● Global Illumination Shadows ● Shadow Mapping ● Shadow Volume ● Umbra, penumbra, antumbra

  48. 48 / 50 Conclusion ● Conclusion ● Coordinate System Handedness ● Polygons – Convex and Concave – Simple ● Triangles – Planar ● Barycentric coordinates ● ...

  49. 49 / 50 Computer Graphics Thanks for the ride! The End

  50. 50 / 50 What knowledge did you gain today? What more would you like to know? Next time: Your open mic lecture! If you can not present your project in the projects presentation.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend