10 February 2004 - PowerPoint PPT Presentation

About This Presentation
Title:

10 February 2004

Description:

sin a 0 cos a n. 0 0 0 1. 1. 3. 1. Matrix Multiplication ... Cos -sin 0 x. sin cos 0 y. 0 0 1 1. Combining 2D Transformations. Rotate a house about the origin ... – PowerPoint PPT presentation

Number of Views:12
Avg rating:3.0/5.0
Slides: 37
Provided by: sie6
Learn more at: https://www.cs.unca.edu
Category:
Tags: february | sin

less

Transcript and Presenter's Notes

Title: 10 February 2004


1
Chapter 4
  • 10 February 2004

2
Agenda
  • Program 2 Due 2/17
  • Chapter 4 transformations
  • GLUT solids

3
OpenGL Buffers
  • Color
  • can be divided into front and back for double
    buffering
  • Alpha
  • Depth
  • Stencil
  • Accumulation

4
Double Buffering
5
Animating Using Double Buffering
  • Request a double buffered color buffer
  • glutInitDisplayMode (GLUT_RGB GLUT_DOUBLE)
  • Clear color buffer
  • glClear(GL_COLOR_BUFFER_BIT)
  • Render Scene
  • Request swap of front and back buffers
  • glutSwapBuffers()
  • Repeat steps 2-4 for animation.

6
Depth Buffering
7
3D Coords --gt Raster coords
  • Transformations
  • Clipping
  • Viewport transformation.

8
Transformations
  • Prior to rendering view, locate and orient
  • eye / camera position
  • 3D geometry
  • Manage the matrices
  • including the matrix stack
  • Combine (composite) transformations

9
Camera Analogy
10
Stages of Vertex Transformation
11
Transformations
  • 45-degree counterclockwise rotation about the
    origin around the z-axis
  • a translation down the x-axis

12
Order of transformations
glMatrixMode(GL_MODELVIEW) glLoadIdentity() glMu
ltMatrixf(N) / apply
transformation N / glMultMatrixf(M)
/ apply transformation M / glMultMatrixf(L)
/ apply transformation L
/ glBegin(GL_POINTS) glVertex3f(v)
/ draw transformed vertex v / glEnd()
  • transformed vertex is NMLv

13
Translation
  • void glTranslatefd (TYPE x, TYPE y, TYPE z)
  • Multiplies the current matrix by a matrix that
    moves (translates) an object by the given x, y,
    and z values

14
Rotation
  • void glRotatefd(TYPE angle, TYPE x, TYPE y,
    TYPE z)
  • Multiplies the current matrix by a matrix that
    rotates an object in a counterclockwise direction
    about the ray from the origin through the point
    (x, y, z). The angle parameter specifies the
    angle of rotation in degrees.

15
Scale
  • void glScalefd (TYPEx, TYPE y, TYPEz)
  • Multiplies the current matrix by a matrix that
    stretches, shrinks, or reflects an object along
    the axes.

16
Vectors
  • N tuple of real numbers (n 2 for 2D, n 3 for
    3D)
  • Directed line segment
  • Example
  • Velocity vector (speed and direction)
  • Operations
  • Addition
  • Multiplication by a scalar
  • Dot product

17
Vectors
1 2 3 2 3 5 3 4 7
18
Matrices
  • Rectangular array of numbers
  • A vector in 3 space is a n x 1 matrix or
    column vector.
  • Multiplication

1 0 0 0 0 1 0 0 x 0 0 0 0 0
0 1/k 1
Cos a 0 sin a 0 0 1 0 m -sin a
0 cos a n 0 0 0 1
19
Matrix Multiplication
  • A is an n x m matrix with entries aij
  • B is an m x p matrix with entries bij
  • AB is an n x p matrix with entries cij
  • m
  • cij ?ais bsj
  • s1

20
2D Transformations
  • Translation Pf T P
  • xf xo dx
  • yf yo dy
  • Rotation Pf R P
  • xf xo cos? - yo sin?
  • yf xo sin? yo cos?
  • Scale Pf S P
  • xf sx xo
  • yf sy yo

21
Homogeneous Coordinates
  • Want to treat all transforms in a consistent way
    so they can be combined easily
  • Developed in geometry (46 in cambridge) and
    applied to graphics
  • Add a third coordinate to a point (x, y, w)
  • (x1, y1, w1) is the same point as (x2, y2, w2) if
    one is a multiple of another
  • Homogenize a point by dividing by w

22
Homogeneous Coordinates
  • 1 0 dx x
  • 0 1 dy y
  • 0 0 1 1

23
Homogeneous Coordinates
  • sx 0 0 x
  • 0 sy 0 y
  • 0 0 1 1

24
Homogeneous Coordinates
  • Cos? -sin? 0 x
  • sin? cos? 0 y
  • 0 0 1 1

25
Combining 2D Transformations
  • Rotate a house about the origin
  • Rotate the house about one of its corners
  • translate so that a corner of the house is at the
    origin
  • rotate the house about the origin
  • translate so that the corner returns to its
    original position

26
GLUT Solids
  • Sphere
  • Cube
  • Cone
  • Torus
  • Dodecahedron
  • Octahedron
  • Tetrahedron
  • Icosahedron
  • Teapot

27
glutSolidSphere and glutWireSphere
  • void glutSolidSphere(GLdouble radius, GLint
    slices, GLint stacks)
  • radius - The radius of the sphere.
  • slices - The number of subdivisions around the Z
    axis (similar to lines of longitude).
  • stacks - The number of subdivisions along the Z
    axis (similar to lines of latitude).

28
glutSolidCube and glutWireCube
  • void glutSolidCube(GLdouble size)
  • size length of sides

29
glutSolidCone and glutWireCone
  • void glutSolidCone(GLdouble base, GLdouble
    height, GLint slices, GLint stacks)
  • base - The radius of the base of the cone.
  • height - The height of the cone.
  • slices - The number of subdivisions around the Z
    axis.
  • stacks - The number of subdivisions along the Z
    axis.

30
glutSolidTorus and glutWireTorus
  • void glutSolidTorus(GLdouble innerRadius,GLdouble
    outerRadius, GLint nsides,
    GLint rings)
  • innerRadius - Inner radius of the torus.
  • outerRadius - Outer radius of the torus.
  • nsides - Number of sides for each radial section.
  • rings - Number of radial divisions for the torus.

31
glutSolidDodecahedron and glutWireDodecahedron
  • void glutSolidDodecahedron(void)

32
glutSolidOctahedron and glutWireOctahedron .
  • void glutSolidOctahedron(void)

33
glutSolidTetrahedron and glutWireTetrahedron
  • void glutSolidTetrahedron(void)

34
glutSolidIcosahedron and glutWireIcosahedron
  • void glutSolidIcosahedron(void)

35
glutSolidTeapot and glutWireTeapot
  • void glutSolidTeapot(GLdouble size)
  • size - Relative size of the teapot.

36
Homework for next week.
  • Program 2 due 2/17
  • Study for Test on Chapters 1-4, 2/19
Write a Comment
User Comments (0)
About PowerShow.com