计算机图形学computergraphics课件5.ppt

上传人:王** 文档编号:479987 上传时间:2023-09-14 格式:PPT 页数:23 大小:1.06MB
下载 相关 举报
计算机图形学computergraphics课件5.ppt_第1页
第1页 / 共23页
计算机图形学computergraphics课件5.ppt_第2页
第2页 / 共23页
计算机图形学computergraphics课件5.ppt_第3页
第3页 / 共23页
计算机图形学computergraphics课件5.ppt_第4页
第4页 / 共23页
计算机图形学computergraphics课件5.ppt_第5页
第5页 / 共23页
计算机图形学computergraphics课件5.ppt_第6页
第6页 / 共23页
计算机图形学computergraphics课件5.ppt_第7页
第7页 / 共23页
计算机图形学computergraphics课件5.ppt_第8页
第8页 / 共23页
计算机图形学computergraphics课件5.ppt_第9页
第9页 / 共23页
计算机图形学computergraphics课件5.ppt_第10页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机图形学computergraphics课件5.ppt》由会员分享,可在线阅读,更多相关《计算机图形学computergraphics课件5.ppt(23页珍藏版)》请在优知文库上搜索。

1、1Programming with OpenGLPart 2:Complete Programs2ObjectivesRefine the first program Alter the default values Introduce a standard program structureSimple viewing Twodimensional viewing as a special case of threedimensional viewingFundamental OpenGL primitivesAttributes3Program Structure Most OpenGL

2、programs have a similar structure that consists of the following functionsmain():defines the callback functions opens one or more windows with the required properties enters event loop(last executable statement)init():sets the state variables Viewing Attributes callbacks Display function Input and w

3、indow functions4simple.c revisitedIn this version,we shall see the same output but we have defined all the relevant state values through function calls using the default valuesIn particular,we set Colors Viewing conditions Window properties5simple.c#include void mydisplay()glClear(GL_COLOR_BUFFER_BI

4、T);/glColor3f(1.0f,0.0f,0.0f);glBegin(GL_POLYGON);glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();glFlush();int main(int argc,char*argv)glutCreateWindow(simple);glutDisplayFunc(mydisplay);glutMainLoop();6main.c#include int main(int argc,char*argv)glutInit(

5、&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(500,500);glutInitWindowPosition(0,0);glutCreateWindow(simple);glutDisplayFunc(mydisplay);init();glutMainLoop();includes gl.hdefine window propertiesset OpenGL stateenter event loopdisplay callback7GLUT functionsglutInit allows

6、application to get command line arguments and initializes systemgluInitDisplayMode requests properties for the window(the rendering context)RGB color Single buffering Properties logically ORed togetherglutWindowSize in pixelsglutWindowPosition from topleft corner of displayglutCreateWindow create wi

7、ndow with title“simple”glutDisplayFunc display callbackglutMainLoop enter infinite event loop8init.cvoid init()glClearColor(0.0,0.0,0.0,1.0);glColor3f(1.0,1.0,1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);black clear coloropaque windowfill/draw with whiteviewi

8、ng volume9Coordinate SystemsThe units in glVertex are determined by the application and are called object or world coordinatesThe viewing specifications are also in object coordinates and it is the size of the viewing volume that determines what will appear in the imageInternally,OpenGL will convert

9、 to camera(eye)coordinates and later to screen coordinates OpenGL also uses some internal representations that usually are not visible to the application10OpenGL CameraOpenGL places a camera at the origin in object space pointing in the negative z directionThe default viewing volume is a box centere

10、d at the origin with a side of length 2glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);11Orthographic Viewingz=0z=0In the default orthographic view,points are projected forward along the z axis onto theplane z=012Transformations and Viewing In OpenGL,projection is carried out by a projection matrix(transformati

11、on)There is only one set of transformation functions so we must set the matrix mode first glMatrixMode(GL_PROJECTION)Transformation functions are incremental so we start with an identity matrix and alter it with a projection matrix that gives the view volume glLoadIdentity();glOrtho(-1.0,1.0,-1.0,1.

12、0,-1.0,1.0);13Two-and three-dimensional viewing In glOrtho(left,right,bottom,top,near,far)the near and far distances are measured from the camera Twodimensional vertex commands place all vertices in the plane z=0 If the application is in two dimensions,we can use the function gluOrtho2D(left,right,b

13、ottom,top)In two dimensions,the view or clipping volume becomes a clipping window14mydisplay.cvoid mydisplay()glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();glFlush();15OpenGL Primitives16Polygon Issues Ope

14、nGL will only display polygons correctly that are Simple:edges cannot cross Convex:All points on line segment between two points in a polygon are also in the polygon Flat:all vertices are in the same plane User program can check if above true OpenGL will produce output if these conditions are violat

15、ed but it may not be what is desired Triangles satisfy all conditionsnonsimple polygonnonconvex polygonApproximating a Sphere1718AttributesAttributes are part of the OpenGL state and determine the appearance of objects Color(points,lines,polygons)Size and width(points,lines)Stipple pattern(lines,pol

16、ygons)Polygon mode Display as filled:solid color or stipple pattern Display edges Display vertices19RGB color Each color component is stored separately in the frame buffer Usually 8 bits per component in buffer Note in glColor3f the color values range from 0.0(none)to 1.0(all),whereas in glColor3ub the values range from 0 to 25520Indexed ColorColors are indices into tables of RGB valuesRequires less memory indices usually 8 bits not as important now Memory inexpensive Need more colors for shadin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!