Presentation is loading. Please wait.

Presentation is loading. Please wait.

Viewing and Navigating using OpenGL

Similar presentations


Presentation on theme: "Viewing and Navigating using OpenGL"— Presentation transcript:

1 Viewing and Navigating using OpenGL

2 The LookAt Function Can concatenate with modeling transformations
The GLU library contains the function gluLookAt to form the required modelview matrix through a simple interface Note the need for setting an up direction Still need to initialize Can concatenate with modeling transformations Example: isometric view of cube aligned with axes glMatrixMode(GL_MODELVIEW): glLoadIdentity(); gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0., );

3 gluLookAt glLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz)

4 Outside-In Viewing Object is centered. Observer navigates on a sphere surrounding the object.

5 Inside-Out Viewing Viewer centered. Observer navigates, looks toward a point On the sphere. Sphere center moves with observer.

6 Inside-Out Viewing Viewer centered. Observer navigates, looks toward a point On the sphere. Sphere center moves with observer.

7 Some Spherical Geometry
x y z (x,y,z) r q f

8 Viewing: Outside-In x y z (x,y,z) gluLookAt(x,y,z,0,0,0,0,1,0);

9 Outside In Viewing Sample Code
glLoadIdentity(); // start with an identity in the MODELVIEW transformation x = radius * cos(theta) * cos(phi); y = radius * sin(theta); z = -radius * cos(theta)* sin(phi); gluLookAt(x,y,z,0,0,0,0,1,0); //multiply viewing component of transformation glutSolidTeapot(1.0); // draw what is being looked at (around origin)

10 Viewing: Outside In Possible Navigation Key Mapping
GLUT_KEY_LEFT increase phi GLUT_KEY_RIGHT decrease phi GLUT_KEY_UP increase theta GLUT_KEY_DOWN decrease theta GLUT_KEY_PAGE_UP increase radius GLUT_KEY_PAGE_DOWN decrease radius

11 Viewing: Inside Out, from Origin
x y z (x,y,z) gluLookAt(0,0,0,x,y,z,0,1,0);

12 Viewing: Inside Out, from Arbitrary Point
X’ Y’ z’ (x,y,z) gluLookAt(x0,y0,z0,x,y,z,0,1,0);

13 Inside Out Viewing Sample Code
glLoadIdentity(); // start with an identity in the MODELVIEW transformation x = radius * cos(theta) * cos(phi); y = radius * sin(theta); z = -radius * cos(theta)* sin(phi); gluLookAt(xo,yo,zo,xo+x,yo+y,zo+z,0,1,0); //multiply viewing transformation glutSolidTeapot(1.0);

14 Viewing: Inside Out Possible Navigation Key Mapping
GLUT_KEY_LEFT increase phi (look left) GLUT_KEY_RIGHT decrease phi (look right) GLUT_KEY_UP increase theta (look up) GLUT_KEY_DOWN decrease theta (look down) GLUT_KEY_PAGE_UP walk in direction of view GLUT_KEY_PAGE_DOWN walk away from direction of view


Download ppt "Viewing and Navigating using OpenGL"

Similar presentations


Ads by Google