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.

Recommend


More recommend