Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Luebke6/12/2016 CS 551 / 645: Introductory Computer Graphics David Luebke

Similar presentations


Presentation on theme: "David Luebke6/12/2016 CS 551 / 645: Introductory Computer Graphics David Luebke"— Presentation transcript:

1 David Luebke6/12/2016 CS 551 / 645: Introductory Computer Graphics David Luebke cs551@cs.virginia.edu http://www.cs.virginia.edu/~cs551

2 David Luebke6/12/2016 Administrivia l Office hours: –Luebke: n 2:30 - 3:30 Monday, Wednesday n Olsson 219 –Dale / Jinze / Derek: n 3 - 4 Tuesday n 2 - 3 Thursday n 2 - 3 Friday n Small Hall Unixlab for now n Might move to Olsson 227 later l Assignment 1 postponed till Wednesday

3 David Luebke6/12/2016 UNIX Section: 4 PM, Olsson 228 l Optional UNIX section led by Dale today –Getting around –Using make and makefiles –Using gdb (if time) l We will use 2 libraries: OpenGL and Xforms –OpenGL native on SGIs; on other platforms Mesa –Xforms: available on all platforms of interest

4 David Luebke6/12/2016 XForms Intro l Xforms: a toolkit for easily building Graphical User Interfaces, or GUIs –See http://bragg.phys.uwm.edu/xformshttp://bragg.phys.uwm.edu/xforms –Lots of widgets: buttons, sliders, menus, etc. –Plus, an OpenGL canvas widget that gives us a viewport or context to draw into with GL or Mesa. l Quick tour now l You’ll learn the details yourself in Assignment 1

5 David Luebke6/12/2016 Mathematical Foundations l FvD appendix gives good review l I’ll give a brief, informal review of some of the mathematical tools we’ll employ –Geometry (2D, 3D) –Trigonometry –Vector and affine spaces n Points, vectors, and coordinates –Dot and cross products –Linear transforms and matrices

6 David Luebke6/12/2016 2D Geometry l Know your high-school geometry: –Total angle around a circle is 360° or 2π radians –When two lines cross: n Opposite angles are equivalent n Angles along line sum to 180° –Similar triangles: n All corresponding angles are equivalent n Corresponding pairs of sides have the same length ratio and are separated by equivalent angles n Any corresponding pairs of sides have same length ratio

7 David Luebke6/12/2016 Trigonometry l Sine: “opposite over hypotenuse” l Cosine: “adjacent over hypotenuse” l Tangent: “opposite over adjacent” l Unit circle definitions: –sin (  ) = x –cos (  ) = y –tan (  ) = x/y –Etc… (x, y)

8 David Luebke6/12/2016 3D Geometry l To model, animate, and render 3D scenes, we must specify: –Location –Displacement from arbitrary locations –Orientation l We’ll look at two types of spaces: –Vector spaces –Affine spaces l We will often be sloppy about the distinction

9 David Luebke6/12/2016 Vector Spaces l Two types of elements: –Scalars (real numbers):  … –Vectors (n-tuples): u, v, w, … l Supports two operations: –Addition operation u + v, with: Identity 0 v + 0 = v Inverse - v + (- v ) = 0 –Scalar multiplication: Distributive rule:  ( u + v ) =  ( u ) +  ( v ) (  +  ) u =  u +  u

10 David Luebke6/12/2016 Vector Spaces l A linear combination of vectors results in a new vector: v =  1 v 1 +  2 v 2 + … +  n v n l If the only set of scalars such that  1 v 1 +  2 v 2 + … +  n v n = 0 is  1 =  2 = … =  3 = 0 then we say the vectors are linearly independent l The dimension of a space is the greatest number of linearly independent vectors possible in a vector set l For a vector space of dimension n, any set of n linearly independent vectors form a basis

11 David Luebke6/12/2016 Vector Spaces: A Familiar Example l Our common notion of vectors in a 2D plane is (you guessed it) a vector space: –Vectors are “arrows” rooted at the origin –Scalar multiplication “streches” the arrow, changing its length (magnitude) but not its direction –Addition uses the “trapezoid rule”: u+v y x u v

12 David Luebke6/12/2016 Vector Spaces: Basis Vectors l Given a basis for a vector space: –Each vector in the space is a unique linear combination of the basis vectors –The coordinates of a vector are the scalars from this linear combination –Best-known example: Cartesian coordinates n Draw example on the board –Note that a given vector v will have different coordinates for different bases

13 David Luebke6/12/2016 Vectors And Point l We commonly use vectors to represent: –Points in space (i.e., location) –Displacements from point to point –Direction (i.e., orientation) l But we want points and directions to behave differently –Ex: To translate something means to move it without changing its orientation –Translation of a point = different point –Translation of a direction = same direction

14 David Luebke6/12/2016 Affine Spaces l To be more rigorous, we need an explicit notion of position l Affine spaces add a third element to vector spaces: points (P, Q, R, …) l Points support these operations –Point-point subtraction: Q - P = v n Result is a vector pointing from P to Q –Vector-point addition: P + v = Q n Result is a new point –Note that the addition of two points is not defined P Q v

15 David Luebke6/12/2016 Affine Spaces l Points, like vectors, can be expressed in coordinates –The definition uses an affine combination –Net effect is same: expressing a point in terms of a basis l Thus the common practice of representing points as vectors with coordinates (see FvD) l Analogous to equating points and integers in C –Be careful to avoid nonsensical operations

16 David Luebke6/12/2016 Affine Lines: An Aside Parametric representation of a line with a direction vector d and a point P 1 on the line: P(  ) = P origin +  d Restricting 0   produces a ray Setting d to P - Q and restricting 0    1 produces a line segment between P and Q

17 David Luebke6/12/2016 Dot Product l The dot product or, more generally, inner product of two vectors is a scalar: v 1 v 2 = x 1 x 2 + y 1 y 2 + z 1 z 2 (in 3D) l Useful for many purposes –Computing the length of a vector: length( v ) = sqrt( v v) –Normalizing a vector, making it unit-length –Computing the angle between two vectors: u v = |u| |v| cos(θ) –Checking two vectors for orthogonality –Projecting one vector onto another θ u v

18 David Luebke6/12/2016 Cross Product l The cross product or vector product of two vectors is a vector: l The cross product of two vectors is orthogonal to both l Right-hand rule dictates direction of cross product

19 David Luebke6/12/2016 Linear Transformations l A linear transformation: –Maps one vector to another –Preserves linear combinations l Thus behavior of linear transformation is completely determined by what it does to a basis l Turns out any linear transform can be represented by a matrix

20 David Luebke6/12/2016 Matrices By convention, matrix element M rc is located at row r and column c: l By (OpenGL) convention, vectors are columns:

21 David Luebke6/12/2016 Matrices l Matrix-vector multiplication applies a linear transformation to a vector: l Recall how to do matrix multiplication

22 David Luebke6/12/2016 Matrix Transformations l A sequence or composition of linear transformations corresponds to the product of the corresponding matrices –Note: the matrices to the right affect vector first –Note: order of matrices matters! The identity matrix I has no effect in multiplication l Some (not all) matrices have an inverse:

23 David Luebke6/12/2016

24 The End l Next: drawing lines on a raster display l Reading: FvD 3.2


Download ppt "David Luebke6/12/2016 CS 551 / 645: Introductory Computer Graphics David Luebke"

Similar presentations


Ads by Google