s summary of under cg related to f u d cg l t d t cs680
play

S Summary of Under. CG related to f U d CG l t d t CS680 - PowerPoint PPT Presentation

CS680: Scalable Global Illumination S Summary of Under. CG related to f U d CG l t d t CS680 Sung-Eui Yoon ( ) ( ) C Course URL: URL http://jupiter.kaist.ac.kr/~sungeui/CG Overview of Computer Graphics Overview of


  1. CS680: Scalable Global Illumination S Summary of Under. CG related to f U d CG l t d t CS680 Sung-Eui Yoon ( 윤성의 ) ( 윤성의 ) C Course URL: URL http://jupiter.kaist.ac.kr/~sungeui/CG

  2. Overview of Computer Graphics Overview of Computer Graphics ● We will discuss various parts of computer W ill di i t f t graphics Modelling Simulation & Rendering Image Computer vision inverts the process Computer vision inverts the process Image processing deals with images 2

  3. Lecture 2: Screen Space & World Space Space 3

  4. Mapping from World to Screen Mapping from World to Screen Screen W World ld Window 4

  5. Screen Space Screen Space ● Graphical image is presented by setting colors (width-1,0) (0,0) for a set of discrete samples for a set of discrete samples called “pixels” ● Pixels displayed on screen in windows ● Pixels are addressed as 2D arrays ● I ndices are “screen- space” coordinates space coordinates (0,height-1) (width-1, height-1) 5

  6. OpenGL Coordinate System OpenGL Coordinate System 6

  7. Pixel Independence Pixel Independence ● Often easier to structure graphical objects Often easier to structure graphical objects independent of screen or window sizes ● Define graphical objects in “world space” ● Define graphical objects in world-space 1.25 meters 500 cubits 2 meters 800 cubits 7

  8. Lecture: 2D Transformation Lecture: 2D Transformation 8

  9. 2D Geometric Transforms 2D Geometric Transforms ● Functions to map F ti t points from one place to another ● Geometric transforms can be applied to ● Drawing primitives (points, lines, conics, triangles) ● Pi Pixel coordinates of an l di t f image Demo Demo 9

  10. Translation Translation ● Translations have the following form: T l ti h th f ll i f t  x '  x x' = x + t x     x           y y' = y + t y y t t y y y '         y         y ● inverse function: undoes the translation: x = x' - t x y = y' - t y ● identity : leaves every point unchanged x' = x + 0 x = x + 0 y' = y + 0 10

  11. 2D Rotations 2D Rotations ● Another group - rotation about the origin: Another group rotation about the origin: 11

  12. Rotations in Series Rotations in Series ● We want to rotate the object 30 degree We want to rotate the object 30 degree and, then, 60 degree  x '  cos(60) - sin(60) cos(30) - sin(30) x                sin(60) cos(60) sin(30) cos(30) y y '             We can merge multiple rotations into one rotation matrix x ' cos(90) - sin(90) x              sin(90) sin(90) cos(90) cos(90) y y y y '                 12

  13. Euclidean Transforms Euclidean Transforms ● Euclidean Group E lid G ● Translations + rotations ● Rigid body transforms ● Rigid body transforms ● Properties: ● Preserve distances P di t ● Preserve angles ● How do you represent these functions? ● How do you represent these functions? 13

  14. Problems with this Form Problems with this Form ● Translation and rotation considered Translation and rotation considered separately ● Typically we perform a series of rotations and ● Typically we perform a series of rotations and translations to place objects in world space ● I t’s inconvenient and inefficient in the previous form ● I nverse transform involves multiple steps ● How can we address it? ● How can we represent the translation as a matrix multiplication? 14

  15. Homogeneous Coordinates Homogeneous Coordinates ● Consider our 2D plane as a subspace within Consider our 2D plane as a subspace within 3D (x y) (x, y) ( (x, y, z) ) 15

  16. Matrix Multiplications and Homogeneous Coordinates Homogeneous Coordinates ● Can use any planar subspace that does not contain C l b th t d t t i the origin ● Assume our 2D space lies on the 3D plane z = 1 Assume our 2D space lies on the 3D plane z 1 ● Now we can express all Euclidean transforms in matrix form: form: 16

  17. Scaling Scaling ● S is a scaling factor g  x '  s x     0 0             y ' ' s y    0 0          1          1 0 0 1     17

  18. Frame Buffer Frame Buffer ● Contains an image for the final Contains an image for the final visualization ● Color buffer depth buffer etc ● Color buffer, depth buffer, etc. ● Buffer initialization B ff i iti li ti ● glClear(GL_COLOR_BUFFER_BI T); ● glClearColor (..); glClearColor ( ); ● Buffer creation ● glutI nitDisplayMode (GLUT_DOUBLE | l tI itDi l M d (GLUT DOUBLE | GLUT_RGB); ● Buffer swap ● Buffer swap ● glutSwapBuffers(); 18

  19. Lecture: Modeling Transformation Transformation 19

  20. The Classic Rendering Pipeline The Classic Rendering Pipeline ● Object primitives defined by ● Object primitives defined by vertices fed in at the top ● Pixels come out in the display at ● Pixels come out in the display at the bottom ● Commonly have multiple ● Commonly have multiple primitives in various stages of rendering 20

  21. Modeling Transforms Modeling Transforms ● Start with 3D models defined in ● Start with 3D models defined in modeling spaces with their own t t t m , m ,..., m    modeling frames: 1 2 n ● Modeling transformations orient models within a common coordinate frame t t w w called world space , called world space  ● All objects, light sources, and the camera live in world space ● Trivial rejection attempts to eliminate eliminate objects that cannot possibly be seen ● An optimization 21

  22. Illumination Illumination ● I lluminate potentially visible objects ● I lluminate potentially visible objects ● Final rendered color is determined by object’s orientation, its material object s orientation, its material properties, and the light sources in the scene 22

  23. Viewing Transformations Viewing Transformations ● Maps points from world space to ● Maps points from world space to eye space: V   t t e w  ● Viewing position is transformed to the origin ● Viewing direction is oriented along Vi i di i i i d l some axis 23

  24. Clipping and Projection Clipping and Projection ● We specify a volume called a viewing ● We specify a volume called a viewing frustum ● Map the view frustum to the unit cube ● Map the view frustum to the unit cube ● Clip objects against the view volume, thereby eliminating geometry not visible in thereby eliminating geometry not visible in the image ● Project objects j j into two-dimensions ● Transform from eye space to normalized device coordinates coordinates 24

  25. Rasterization and Display Rasterization and Display ● Transform normalized device ● Transform normalized device coordinates to screen space ● Rasterization converts objects pixels ● Rasterization converts objects pixels - Almost every step in the rendering pipeline involves a change of coordinate pipeline involves a change of coordinate systems! - Transformations are central to understanding 3D computer graphics 25

  26. Lecture: Interaction Lecture: Interaction 26

  27. Primitive 3D Primitive 3D ● How do we specify 3D objects? How do we specify 3D objects? ● Simple mathematical functions, z = f(x,y) ● Parametric functions (x(u v) y(u v) z(u v)) ● Parametric functions, (x(u,v), y(u,v), z(u,v)) ● I mplicit functions, f(x,y,z) = 0 ● Build up from simple primitives ● Point – nothing really to see ● Point nothing really to see ● Lines – nearly see through ● Planes – a surface 27

  28. Simple Planes Simple Planes ● Surfaces modeled as connected planar Surfaces modeled as connected planar facets ● N (> 3) vertices each with 3 coordinates ● N (> 3) vertices, each with 3 coordinates ● Minimally a triangle 28

  29. Specifying a Face Specifying a Face ● Face or facet Face or facet Face [v0.x, v0.y, v0.z] [v1.x, v1.y, v1.z] … [vN.x, vN.y, vN.z] ● Sharing vertices via indirection Vertex[0] = [v0.x, v0.y, v0.z] Vertex[1] = [v1.x, v1.y, v1.z] Vertex[2] = [v2.x, v2.y, v2.z] v 3 v 0 v 2 v 2 : : v 1 Vertex[N] = [vN.x, vN.y, vN.z] Face v0 v1 v2 Face v0, v1, v2, … vN vN 29

  30. Vertex Specification Vertex Specification ● Where Wh ● Geometric coordinates [x, y, z] ● Attributes ● Attributes ● Color values [r, g, b] ● Texture Coordinates [u, v] ● Orientation ● I nside vs. Outside ● ● Encoded implicitly in ordering Encoded implicitly in ordering ● Geometry nearby ● Often we’d like to “fake” a more complex shape than our true f faceted (piecewise-planar) model d ( i i l ) d l ● Required for lighting and shading in OpenGL 30

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