OpenGL--一周学会.docx

上传人:大张伟 文档编号:8909498 上传时间:2021-01-24 格式:DOCX 页数:102 大小:265.62KB
返回 下载 相关 举报
OpenGL--一周学会.docx_第1页
第1页 / 共102页
OpenGL--一周学会.docx_第2页
第2页 / 共102页
OpenGL--一周学会.docx_第3页
第3页 / 共102页
OpenGL--一周学会.docx_第4页
第4页 / 共102页
OpenGL--一周学会.docx_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《OpenGL--一周学会.docx》由会员分享,可在线阅读,更多相关《OpenGL--一周学会.docx(102页珍藏版)》请在三一文库上搜索。

1、1 OpenGL1.1 OpenGL.11.2 OpenGL.21.3 OpenGL.31.4 OpenGL.31.5 OpenGL.41.6 OpenGL.41.7OpenGL.41.8OpenGL.922.1.132.2.142.3.182.4.2433.1 OpenGL.303.2.313.3.354 OpenGL4.1.424.2.424.3.434.4.434.5.481.1581.2591.3631.4661.5681.6721.7721.8751.9771.10.801.11.821.12.84 Foxit Readei -(C) Foxit ,2005-20061OpenGL1

2、.1 OpenGL208090GLRenderManOpenGLOpenGL Open Graphics LibrarySGIIRIS GLOpenGLSGI1992 61.0OpenGL1992OpenGL Architecture Review Board ARB199951.2.1OpenGLAPI/OpenGLCAD/CAM/CAE1.OpenGLOpenGL2.OpenGL3.OpenGLRGBARGBARGB4.OpenGLOpenGL()5.OpenGL6.OpenGL7.OpenGLOpenGL8.1 Foxit Readei -(C) Foxit ,2005-2006Open

3、GL(double buffer) OpenGL9.OpenGL1.2 OpenGL1.2.1 OpenGLOpenGLOpenGLAPII/OMicrosoft WindowsOpenGLOpenGL1.1OpenGL1-1 OpenGLOpenGLWindows NT/OpenGLOpenGL32.DLLWINSRV.DLLDDI Device Driver InterfaceDDIOpenGL/NT1.21-2 OpenGL/NT2 Foxit Readei -(C) Foxit ,2005-20061.2.2 OpenGLOpenGL APIOpenGLOpenGL1.3OpenGLO

4、penGLOpenGL1-3OpenGLOpenGL1.2.3 OpenGLOpenGLAPIOpenGLglEnableglDisable1.3 OpenGLOpenGL1.OpenGL2.(Viewpoint)3.4.(rasterization)OpenGL1.4 OpenGLOpenGLAPI1. OpenGLOpenGLOpenGL115glOpenGL2. OpenGL300OpenGL43gluOpenGL3 Foxit Readei -(C) Foxit ,2005-20063. OpenGLOpenGL31auxOpenGLOpenGL4. OpenGLOpenGLOpenG

5、L utility toolkit GLUT30glutglutOpenGLOpenGLglutOpenGL5. WindowsWindows6wglOpenGL WindowsNTWindows NTOpenGL6. Win32 APIWindowsOpenGL1.5 OpenGLOpenGLCCOpenGL1-1OpenGLCOpenGLCCGLbyte8signed charbGLshort16shortsGLintGLsizei32songlGLfloatGLclampf32floatfGLdoubleGLclampd64doubledGLubyteGLboolean8unsigned

6、 charubGLshort16unsigned shortusGLuint GLenum GLbitfield32unsigned longui1.6 OpenGLOpenGLOpenGLOpenGLglColor3f() glgl.h color3fOpenGL1.7OpenGLOpenGLAPI OpenGLCC4APICGLUT1.41.1/GLRect.c#include #include #include#include/ RenderScene void RenderScene(void)/glClear(GL_COLOR_BUFFER_BIT);/RGBglColor3f(1.

7、0f, 0.0f, 0.0f);/glRectf(100.0f, 150.0f, 150.0f, 100.0f);/ OpenGLglFlush();/ ChangeSizevoid ChangeSize(GLsizei w, GLsizei h)if(h = 0)h = 1;/glViewport(0, 0, w, h);/glMatrixMode(GL_PROJECTION);glLoadIdentity();/if (w = h)glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);elseglOrtho (0.0f, 250.0f*

8、w/h, 0.0f, 250.0f, 1.0f, -1.0f);5glMatrixMode(GL_MODELVIEW);glLoadIdentity();/ SetupRC void SetupRC(void)/glClearColor(1.0f, 1.0f, 1.0f, 1.0f);void main(void)/ GLUT OpenGL glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);/ GLRectglutCreateWindow(GLRect);/glutDisplayFunc(RenderScene);glutReshapeFunc(Chang

9、eSize);SetupRC();/ GLUT glutMainLoop();1-4 GLRect1.7.1GLRect4OpenGL*.libopengl.lib glu.lib glut32.libwin98system winNTsystem32opengl32.dll glu32.dll glut32.dll1.7.2C6void main(void)1.glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);GLUT GLUT_SINGLE RGB GLUT_RGBGLUT_DOUBLERGB2. OpenGLglutCreateWindow(GLRe

10、ct);glutGLRect3.glutDisplayFunc(RenderScene);glutReshapeFunc(ChangeSize);GLUTGLUTRenderSceneGLUTChangeSize4SetupRC()GLUTOpenGLOpenGLOpenGLOpenGLOpenGLGLUTglutMainLoop( );GLUT1.7.3 OpenGL1.SetupRCglClearColor(1.0f, 1.0f, 1.0f, 1.0f);OpenGL0.01.0WindowsRGBCOLORREF702551-21-2RGB0.00.00.01.00.00.00.01.0

11、0.01.01.00.00.00.01.01.00.01.00.01.01.00.250.250.250.750.750.750.600.400.120.980.6250.120.980.040.700.600.400.701.01.01.0glClearColoralpha2.OpenGL1.1ChangeSize1glViewportglViewportvoid glViewport(GLint x GLint y GLsizei width Glsizei height)xywidthheightxy02 glOrthoglOrthovoid glOrtho(Gldouble left

12、Gldouble right Gldouble bottom Gldouble top Gldouble near Gldouble far)3DleftrightxbottomtopynearfarzglOrthoglMatrixMode(GL_PROJECTION);8glLoadIdentity();glOrthoglOrthoglLoadIdentityChangeSizeglMatrixMode(GL_MODELVIEW);glLoadIdentity();OpenGL3.RenderSceneOpenGL1glClear(GL_COLOR_BUFFER_BIT);glClear2g

13、lColor3f(1.0f 0.0f 0.0f)glColor3f3glRectf(100.0f, 150.0f, 150.0f, 100.0f);4glFlushOpenGLOpenGLOpenGLOpenGLGlFlushOpenGL1OpenGL2OpenGL3OpenGL45OpenGL1.8OpenGLOpenGLGLUTglutTimerFunc(unsigned int msecs (*func) (int value) int value);9msecsGLUTvaluevoid TimerFunction(int value);1.2/MoveRect.c#include #

14、include #include#include/GLfloat x1 = 100.0f;GLfloat y1 = 150.0f;GLsizei rsize = 50;/GLfloat xstep = 1.0f;GLfloat ystep = 1.0f;/GLfloat windowWidth;GLfloat windowHeight;void RenderScene(void)glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f, 0.0f, 0.0f);glRectf(x1, y1, x1+rsize, y1+rsize);/glutSwapBuffers

15、();void ChangeSize(GLsizei w, GLsizei h)if(h = 0)h = 1;glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();10if (w windowWidth-rsize | x1 windowHeight-rsize | y1 windowWidth-rsize)x1 = windowWidth-rsize-1;if(y1 windowHeight-rsize)y1 = windowHeight-rsize-1;/x1 += xstep;y1 += ystep;/gl

16、utPostRedisplay();glutTimerFunc(33,TimerFunction, 1);void SetupRC(void)/glClearColor(0.0f, 0.0f, 1.0f, 1.0f);int main(void)glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutCreateWindow(Bounce);11glutDisplayFunc(RenderScene);glutReshapeFunc(ChangeSize);glutTimerFunc(33, TimerFunction, 1);SetupRC();gl

17、utMainLoop();glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);glutSwapBuffers()glFush()OpenGL1.2.3. 21222.1glBegin(GL_POINTS)glVertex3f(0.0f0.0f0.0f)glVertex3f(10.0f 10.0f10.0f)glEnd()glVertex3fx y zOpenGLglBeginglEndglBeginGL_POINTSglBegin/glEnd2-1glBeginOpenGL2-1glBeginOpenGLGL_POINTSGL_LINESGL_LINE_ST

18、RIPGL_LINE_LOOPGL_LINE_STRIPGL_POLYGONGL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FANGL_QUADSGL_QUADS_STRIPGL_QUADSGL_POLYGONglVertex2 342x yz0313x yz4x y z0wx y z wOpenGLx/w y/w z/w 1wOpenGLglPointSizevoid glPointSize(GLfloat size)GLfloat sizes2/GLfloat step/glGetFloatv(GL_POINT_SIZE_RANGE sizes)glGet

19、Floatv(GL_POINT_SIZE_GRANULARITY &step)seizeglPointSizestepOpenGL2.2GL_LINES(0 0 0) (10 1010)glBegin(GL_LINES)glVertex3f(0.0f 0.0f 0.0f)glVertex3f(10.0f 10.0f 10.0f)glEnd()glBegin/glEndGL_LINE_STRIPGL_LINE_LOOPGL_LINE_STRIPglBegin(GL_LINE_STRIP)glVertex3f(0.0f0.0f0.0f)glVertex3f(10.0f10.0f0.0f)glVer

20、tex3f(20.0f5.0f0.0f)glEnd()xy(000)(1000)(0100)(20 5 0)GL_LINE_STRIPGL_LINE_LOOPGL_LINE_STRIPOpenGLglLineWidthvoid glLineWidth(GLfloat width)14glLineWidthGLfloat sizes2/GLfloat step/glGetFloarv(GL_LINE_WIDTH_RANGE sizes)glGetFloatv(GL_LINE_WIDTH_GRANULARITY &step)seizeglLineWidthstepOpenGL1.0 Microso

21、ftOpenGL0.510.00.125glEnable(GL_LINE_STIPPLE)glLineStippleglLineStipple(GLint factor GLushort pattern)pattern16factorfactor22pattern2.10X00FF2-12.22.1/PointAndLine.c#include #include #includevoid RenderScene(void)glClear(GL_COLOR_BUFFER_BIT); /glColor3f(0.0f, 0.0f, 0.0f); /RGBGLfloat sizes2; /GLfloa

22、t step;/GLfloat curSize;/glGetFloatv(GL_POINT_SIZE_RANGE,sizes); / glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step); /15/curSize=sizes0;for (int i=0;i25;i+)glPointSize(curSize); /glBegin(GL_POINTS);glVertex3f(25.0+i*8,200.0f,0.0f);glEnd();curSize +=step*2;/ 5 glLineWidth(5); / glBegin(GL_LINES);glVertex

23、3f(25.0f,160.0f,0.0f);glVertex3f(225.0f,160.0f,0.0f);glEnd();/glEnable(GL_LINE_STIPPLE);glLineStipple(1,0x00FF); /glBegin(GL_LINES);glVertex3f(25.0f,120.0f,0.0f);glVertex3f(225.0f,120.0f,0.0f);glEnd();/ 3glLineWidth(3);glLineStipple(1,0xFF0C); glBegin(GL_LINES);glVertex3f(25.0f,80.0f,0.0f);glVertex3

24、f(225.0f,80.0f,0.0f);glEnd();/glLineStipple(4,0xFF0C);glBegin(GL_LINES);glVertex3f(25.0f,40.0f,0.0f);glVertex3f(225.0f,40.0f,0.0f);glEnd();glDisable(GL_LINE_STIPPLE);glFlush();/OpenGL16void ChangeSize(GLsizei w, GLsizei h)if(h = 0)h = 1;glViewport(0, 0, w, h); /glMatrixMode(GL_PROJECTION);glLoadIden

25、tity();/if (w = h)glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);elseglOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();void SetupRC(void)glClearColor(1.0f, 1.0f, 1.0f, 1.0f); /void main(void)glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutCreate

26、Window();glutDisplayFunc(RenderScene); /glutReshapeFunc(ChangeSize); /SetupRC();glutMainLoop(); /GLUT2-2PointAndLine17OpenGL55332.31.OpenGLGL_TRIANGLESglBegin(GL_TRIANGLES)glVertex2f(0.0 0.0)glVertex2f(15.0 15.0)glVertex2f(30.0 0.0)glEnd()GL_TRIANGLE_STRIPGL_TRIANGLE_FAN2.32.42-3 GL_TRIANGLE_STRIP2-

27、4 GL_TRIANGLE_FAN2.OpenGLOpenGLglFrontFace(GL_CW)CL_CWOpenGL18CL_CCW3.OpenGLOpenGLFlatShadingSmooth ShadingGourandGourand Shadingvoid glShadeModel(GLenum mode);modeGL_FLAT GL_SMOOTHOpenGLGouraud2.5ABPI1I2 I3AIaI1 I2BIb I1 I3PIpIa Ib2-5 GouraudGouraud4.glPolygonModeglPolygonMode(Glenum face Glenum mo

28、de)faceGL_FRONTGL_BACKGL_FRONT_AND_BACKmodeGL_FILLGL_LINEGL_POINTGL_LINEGL_POINTglEdgeFlag5.19OpenGLOpenGLglEdgeFlagTruefalseTrue2.2/Triangle.c#include #include #include /static GLfloat xRot = 0.0f;static GLfloat yRot = 0.0f;/BOOL bWinding = TRUE;/void SetupRC(void)/glClearColor(0.0f, 0.0f, 0.0f, 1.0f );void ChangeSize(int w, int h)if(h = 0) h = 1;glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w = h)20gl

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1