140 likes | 523 Views
Surface Rendering With OpenGL. CS460 Project by Rui Yu 11/30/03. Two aspects. Windowing system or user interface Use MFC Create a window Viewport is the client area of the window Capture mouse move events in the client area Add buttons on a tools bar OpenGL commands
E N D
Surface Rendering With OpenGL CS460 Project by Rui Yu 11/30/03
Two aspects • Windowing system or user interface Use MFC Create a window Viewport is the client area of the window Capture mouse move events in the client area Add buttons on a tools bar • OpenGL commands Use gl,glu fuctions Viewing pipeline Surface rendering
Viewing pipeline 3D modeling coordinates ChoosePixelFormat // Define pixel format wglCreateContext //Create rendering context. glMatrixMode(GL_MODELVIEW); glRotatef //rotate glScalef //scale glMatrixMode(GL_PROJECTION) glOrtho(-1,1,-1,1,-1,1); //Parellel projection glViewport(0, 0, cx, cy); glBegin(GL_LINES); //or GL_POLYGON and etc. glVertex3d glVertex3d glEnd; SwapBuffers; Modeling transformation 3D world coordinates Clipping & projection Transform into viewport 2D device coordinates
Example: • Pixel Format: DOUBLE BUFFER, RGBA, DRAW_TO_WINDOW • View volume:
Screen Shots (2)-draw 3D bezier surface with zoom and rotation
Shading The Mathematics of Lighting: vertex color = global ambient light * ambient material + i attenuation factor *Ii * [ ambient light *ambient material + (max { 1 x n , 0 } ) * diffuse light * diffuse material + (max {s x n ,0} )*shininess * specular light * specular material ] l : the unit vector that points from the vertex to the light position n: the unit normal vector at the vertex. Default Lighting Value: Global Ambient Light: {0.2, 0.2, 0.2, 1.0 };
Table1: Default Values for glLight0() Table2: Default Values for glMaterial()
Screen Shots (3)-Change light intensity and material property (1)
Screen Shots (4)-Change light intensity and material property (2)
Screen Shots (5)-Drag control points of bezier surface and texture mapping (1)
Screen Shots (6)-Drag control points of bezier surface and texture mapping (2)
bibliography • Msdn http://www.msdn.com • OpenGL Programming Guide or 'The Red Book’ from Silicon Graphics, Inc • Guide to OpenGL on Windows from Silicon Graphics http://www.opengl.org/developers/documentation/overviews.html • OpenGL Win32 Tutorial http://www.nullterminator.net/opengl32.html http://www.opengl.org/developers/code/tutorials.html • Basic Curves And Surfaces Modeler by Sharjith http://www.codeproject.com/useritems/cadsurf.asp