OPENGL相关函数
GLSL常用内置函数汇总
GLSL常用内置函数汇总GLSL(OpenGL Shading Language)是一种用于编写着色器代码的高级编程语言,主要用于实现图形渲染管线中的着色器功能。
GLSL提供了许多内置函数,用于执行各种常见的数学运算、图形处理和纹理操作。
下面是GLSL常用的内置函数的汇总。
一、数学函数1. sin(x): 返回角度x的正弦值。
2. cos(x): 返回角度x的余弦值。
3. tan(x): 返回角度x的正切值。
4. pow(x, y): 返回x的y次幂。
5. sqrt(x): 返回x的平方根。
6. abs(x): 返回x的绝对值。
7. floor(x): 返回不大于x的最大整数。
8. ceil(x): 返回不小于x的最小整数。
9. mod(x, y): 返回x除以y的余数。
10. min(x, y): 返回x和y中的最小值。
11. max(x, y): 返回x和y中的最大值。
二、向量和矩阵函数1. length(x): 返回向量x的长度。
2. dot(x, y): 返回向量x和y的点积。
3. cross(x, y): 返回向量x和y的叉积。
4. normalize(x): 返回一个与向量x方向相同的单位向量。
三、纹理函数1. texture2D(sampler, coord): 根据指定的纹理坐标从纹理采样器sampler中获取颜色值。
2. textureCube(sampler, coord): 根据指定的纹理坐标从立方体贴图采样器sampler中获取颜色值。
3. texture2DProj(sampler, coord): 根据指定的纹理坐标从投影纹理采样器sampler中获取颜色值。
4. texture2DLod(sampler, coord, level): 根据指定的纹理坐标和LOD级别从纹理采样器sampler中获取颜色值。
5. textureCubeLod(sampler, coord, level): 根据指定的纹理坐标和LOD级别从立方体贴图采样器sampler中获取颜色值。
glsl函数
glsl函数GLSL(OpenGL着色器语言)是一种基于C语言的着色器语言,被广泛用于图形学领域中的渲染管线中。
GLSL函数是GLSL中的基本构件,它们可以让我们实现复杂的计算和操作图像。
下面介绍几个常用的GLSL函数。
1. mix函数:mix函数可以用于线性插值。
它需要三个参数,分别是起始值、终止值以及插值因子,插值因子的范围通常是[0,1]。
对于一个二维向量,可以使用如下语句进行线性插值:vec2 result = mix(startingVector, endingVector, interpolationFactor);2. dot函数:dot函数可以计算两个向量的点积。
它的返回值是两个向量的标量积,可以用于计算向量间的角度和是否平行等。
float dotProduct = dot(vectorA, vectorB);3. normalize函数:normalize函数可以将一个向量转化为单位向量,即长度为1的向量。
如果我们想计算两个向量夹角的余弦值,可以使用normalize函数和dot函数:float cosine = dot(normalize(vectorA), normalize(vectorB));4. length函数:length函数可以计算向量的长度。
它的返回值是一个标量值:float vectorLength = length(vector);5. clamp函数:clamp函数可以将一个值限制在一个区间内。
它需要三个参数,分别是待限制的值、最小值和最大值。
如果待限制的值超出指定区间,则返回最小值或最大值。
float result = clamp(value, minValue, maxValue);这里只是介绍了几个常用的GLSL函数,GLSL还有许多其它有用的函数,例如trunc函数可以快速舍去小数部分,fract函数可以返回一个值的小数部分,ceil 和floor函数可以用于上下取整等。
OpenGL函数
目录刷新 (2)glFlush (2)glutSwzpBuffers (2)glutPostRedisplay (2)回调 (2)glutKeyboardFunc (2)glutSpecialFunc (3)glutMouseFunc (3)glutReshapeFunc (3)glutDisplayFunc (4)glutTimerFunc (4)颜色: (4)glClearColor (4)glDrawBuffer (4)画笔及边属性 (5)glPointSize (5)glLineWidth (6)glEdgeFlag (7)glLineStipple (7)glPolygonStipple (7)glGetPolygonStipple (8)glPolygonMode (8)正反面效果 (8)glCullFace (8)glFrontFace (9)深度测试 (9)glClearDepth (9)glDepthFunc (9)glDepthMask (10)glDepthRange (10)模板测试 (10)glClearStencil (10)glStencilFunc (11)glStencilMask (12)glStencilOp (11)基本绘图: (12)glBegin / glEnd (12)glDisable/ glEnable (13)glOrtho (14)glViewport (15)glScissor (15)glutCreateWindow (15)glutMainloop (16)图元 (16)glVertex (16)glRect (17)刷新glFlushvoid glFlush();作用:刷新opengl命令队列和缓冲区glutSwzpBuffersvoid glutSwzpBuffers(void)作用:以双缓冲模式执行缓冲区交换glutPostRedisplayvoid glutPostRedisplay(void)作用:告诉GLUT刷新当前窗口说明:这个函数通知GLUT当前窗口需要进行刷新。
opengl透视投影函数
opengl透视投影函数OpenGL 中的透视投影函数是实现三维图形的重要组成部分之一。
它可以描述 3D 场景展现在 2D 屏幕上的方式,使得我们可以观察到复杂的三维场景。
下面是关于 OpenGL 透视投影函数的详细介绍:1. glFrustum():该函数用于构建一个让平截头体所代表的场景投影到视平面上的 4×4 矩阵。
语法如下:glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);参数说明:left, right, bottom, top: 分别表示左、右、底、顶平面距离 Near Plane (近裁剪面)的距离。
near, far: 分别表示近裁剪面和远裁剪面到观察者的距离。
2. gluPerspective():该函数是在 glFrustum() 的基础上进行了封装,更易于使用。
它将视锥体近平面的大小与相机到近平面的距离联系起来,能够生成一个更为真实的 3D 场景。
语法如下:gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);参数说明:fovy: 视锥体顶边到底边的夹角,以度数表示。
aspect: 视锥体底边的宽高比。
zNear: 视锥体近平面到相机的距离。
zFar: 视锥体远平面到相机的距离。
3. glm::perspective():该函数是 GLM 库中的透视投影函数,与 gluPerspective() 类似。
该函数创建一个透视投影矩阵,可以通过 GLM 库和其他 OpenGL 函数一起使用。
语法如下:glm::mat4 glm::perspective(float fov, float aspect, float near, float far); 参数说明:fov: 视场角度,以弧度为单位。
gltranslatef函数
gltranslatef函数
glTranslatef函数是一种OpenGL图形系统提供的基本函数,它的作用是改变图形的位置。
它接受三个参数,分别是X轴、Y轴和Z 轴的转换值。
它可以实现3D图形的平移操作,也可以用于2D图形的平移操作。
glTranslatef函数的一般语法如下:
glTranslatef (x, y, z);
其中,参数x,y,z是位移的量,表示在X,Y,Z轴上平移的距离。
glTranslatef函数可以用来实现对图形对象统一的平移操作,这样可以减少程序的开发和调试工作量,更加便捷。
同时,也可以用来在3D世界中实现物体的移动。
例如,要将一个物体平移到另一个位置,可以使用glTranslatef函数来实现,传递参数x,y,z表示物体在X,Y,Z轴上的位移。
在OpenGL中,图形的变换操作(包括缩放、旋转、平移等)都是以矩阵形式进行操作的。
在调用glTranslatef函数时,系统会使用一个4x4的矩阵来改变图形的位置,矩阵的第4列的四个元素就是glTranslatef传入的参数x,y,z。
glTranslatef函数是OpenGL中非常重要的一个函数,它可以实现最基本的平移操作:x,y,z轴上的位移。
同时,它也可以用于实现3D世界中物体移动的操作,因此,glTranslatef函数在OpenGL
图形系统中十分重要,也是非常常用的函数。
- 1 -。
[专题]OpenGl函数解释
第一章使用顏色l. l glshadeModel--選擇平面明暗模式或光滑明暗模式1. 2 glColor--設置當前顏色1. 3 glColorPointer--定義顏色數組1. 4 gllndex--設置當前顏色索引1. 5 gllndexPointer--定義顏色索引數組1. 6 glCOforTableEXT--為目標調色板紋理指定調色板的格式和大小1. 7 glColorsubTableEXT--指定需要替代的目標紋理調色板的一部分第二章繪製幾何圖原及物體2. l glV ertex--指定頂點2. 2 glV ertexPointer--定義頂點數據數組2. 3 glArrayElement--指定用來繪製頂點的數組元素2. 4 glBegin, glEnd--限定一個或多個圖原頂點的繪製2. 5 glEdgeFlag, glEdgeFlagy--指定邊界標記2. 6 glPointsize--指定光柵化點的直徑2. 7 glLinewidth--指定光柵化直線的寬度2. 8 glLinestipple--指定點劃線2. 9 glPolygonMode--選擇多邊形光柵化模式2. 10 glFrontFace--定義正面多邊形和反反面多邊形2. 11 glPolygonstipple--設置多邊形點劃圖2. 12 glDrawElements--從數組數據繪製圖原2. 13 glRect--繪製矩形第三章坐標轉換3. l glTranslate--用平移矩陣乘以當前矩陣3. 2 glRotate--用旋轉矩陣乘以當前矩陣3. 3 glscale--用縮放矩陣乘以當前矩陣3. 4 glViewport--設置機口3. 5 glFrustum--用透視矩陣乘以當前矩陣3. 6 glorthO--用正視矩陣乘以當前矩陣3. 7 glClipPlane--指定切割幾何物體的平面第四章堆棧操作4. l glLoadMatrix--用任意矩陣替換當前矩陣4. 2 glMultMatrix--用任意矩陣乘以當前矩陣4. 3 glMatrixMode--指定哪一個矩陣是當前矩陣4. 4 glPushMatrix, glPopMatrix--壓人和彈出當前矩陣堆棧4. 5 glPushAttrib, glPopAttrib--壓人和彈出屬性堆棧4. 6 glPushClientAttrib, glPopClientAttrib--在客戶屬性堆棧中保存和恢復客戶狀態變量組4. 7 glPushName, gPopName--壓人和彈出名稱堆棧4. 8 gllnitNames--初始名稱堆棧4, 9 glLoadName--向名稱堆棧中裝載名稱第五章顯示列表5. l glNewList, glEndList--創建或替換一個顯示列表5. 2 glCallLISt--執行一個顯示列表5. 3 glCallLISts--執行一列顯示列表5. 4 glGenLists--生成一組空的相鄰的顯示列表5. 5 glDeleteLists--刪除一組相鄰的顯示列表5. 6 gllSLISt--檢驗顯示列表的存在第六章使用光照和材質6. l glNormal--設置當前的法向量6. 2 glNormalPointer--定義法向量數組6. 3 glLight--設置光源參數6. 4 glLightModel--設置光照模型參數6. 5 glMaterial--為光照模型指定材質參數6. 6 glColorMateria--使材質顏色跟蹤當前顏色第七章像素操作7. l glRasterPos--為像素操作指定光柵位置7. 2 glBitmap--繪製位圖7. 3 glReadPixels--從幀緩存中讀取一塊像素7. 4 glDrawPixels--將一個像素塊寫人幀緩存7. 5 glCopyPixels--在幀緩存中拷貝像素7. 6 glCopyTexlmage1D--將像素從幀緩存拷貝到一維紋理圖像中7. 7 glCopyTexlmageZD--把像素從幀緩存拷貝到二維紋理圖像中7. 8 glCopyTexsublmagelD--從幀緩存中拷貝一維紋理圖像的子圖像7. 9 glCopyTexsublmageZD--從幀緩存中拷貝二維紋理圖像的子圖像7. 10 glPixelZoom--指定像素縮放因子7. 11 glPixelstore--設置像素存儲模式7. 12 glPixelTransfer--設置像素傳輸模式7. 13 glPixelMap--設置像素傳輸映射表第八章紋理映射8. l glTexlmagelD--指定一維紋理圖像8. 2 glTexlmageZD--指定二維紋理映射8. 3 glTexParameter--設置紋理參數8. 4 glTexsublmage1D--指定已存在的一維紋理圖像的一部分8. 5 glTexsublmageZD--指定已存在的二維紋理圖像的一部分8. 6 glTexEnv--設置紋理環境參數8. 7 glTexCoord--設置當前紋理坐標8. 8 glTexGen--控制紋理坐標的生成8. 9 glTexCoordPointer--定義紋理坐標數組8. 10 glDeleteTextures--刪除命名的紋理第九章特殊效果操作9. l glBlendFunc--指定像素的數學算法9. 2 glHint--指定由實現確定的控制行為9. 3 glFOg--指定霧化參數第十章幀緩存操作10. l glClear--將緩存清除為預先的設置值10. 2 glClearAccum--設置累加緩存的清除值10. 3 glClearColor--設置顏色緩存的清除值10. 4 glClearDepth--設置深度緩存的清除值10. 5 glClearlndex--設置顏色索引緩存的清除值10. 6 glClearstencil--設置模板緩存的清除值10. 7 glDrawBuffer--指定繪製的顏色緩存10. 8 gllndexMask--控制顏色索引緩存中單個位的寫操作10. 9 glColorMask--激活或關閉幀緩存顏色分量的寫操作10. 10 glDepthMask--激活或關閉對深度緩存的寫操作10. 11 glstencilMask--控制模板平面中單個位的寫操作10. 12 glAlphaFunc-一指定alpha檢驗函數10. 13 glstencilFunc--設置模板檢驗函數和參考值10. 14 glstencilop--設置模板檢驗操作10. 15 glDepthFunc--指定深度比較中使用的數值10. 16 glDepthRange--指定從單位化的設備坐標到窗口坐標的z值映射10. 17 glLOgiCOp--為顏色索引繪製指定邏輯像素操作10. 18 glACCum--對累加緩存進行操作第十一章繪製曲線和曲面11. l glEvalCoord--求取激活的一維和二維紋理圖11. 2 glMapl--定義一維求值器11. 3 glMapZ--定義二維求值器11. 4 glMapGrid--定義一維或二維網格11. 5 glEvalMesh--計算一維或二維點網格或線網格11. 6 glEvalPoint--生成並求取網格中的單個點第十二章查詢函數12. l glGet--返回所選擇的參數值12. 2 glGetClipPlane--返回指定的切平面係數12. 3 glGetColorTableEXT--獲得當前目標紋理調色板的顏色表數據12. 4 glGetColorTableParameterfvEXT, glGetColorTableParameterlvEXT-從顏色表中獲得調色板參數12. 5 glGetError--返回錯誤信息12. 6 glGetLight--返回光源參數值12. 7 glGetMap--返回求值器參數12. 8 glGetMaterial--返回材質參數12. 9 glGetPixelMap--返回指定的像素映像12. 10 glGetPointery--返回頂點數據數組地J12. 11 glGetPolygonstipple--返回多邊形點戈12. 12 glGetstring--返回描述當前OpenGL12. 13 glGetTexEnv--返回紋理環境參數12. 14 glGetTexGen--返回紋理坐標生成參數12. 15 glGetTexlmage--返回紋理圖像12. 16 glGetTexLevelParameter--返回指定細節水平的紋理參數值12. 17 glGetTexParameter--返回紋理參數值第二篇GLU庫函數第一章繪製NURBS曲線和曲面1. l gluNewNurbsRenderer--創建一個NURBS對像1. 2 gluNurbsProperty--設置NURBS屬性1. 3 gluNurbsCallback--為NURBS對像定義回調函數1. 4 gluBeginCurve, gluEndCurve--限定NURBS曲線的定義1. 5 gluNurbsCurve--定義NURBS曲線的形狀1. 6 gluDeleteNurbsRenderer--刪除NURBS對像1. 7 gluBeglnsurface, gluEndsurface--限定NURBS曲面的定義1. 8 ghiNurbssurface--定義NURBS曲面的形狀1. 9 gluBeginTrim, gluEndTrim--限定NURBS裁剪環的定義1. 10 gluPwlCurve--描述分段線性NURBS裁剪曲線1. ll gfuBeglnPolygon, gluEndPolygon--限定多邊形的定義1. 12 gluPickMatrix--定義拾取區域第二章繪製二次幾何物體2. l gluNewQuadric--創建一個二次對象2. 2 gluQuadricDrawsope--指定二次對象的繪製方式2. 3 gluQuadricNormals--指定二次對象使用的法向量類型2. 4 gluQuadricorientation--指定二次對象的內側面或外側面方向2. 5 gluCylinder--繪製圓柱體2. 6 ghisphere--繪製球體2. 7 glllDISk--繪製圓盤2. 8 gluPartialDisk--繪製部分圓盤2. 9 gliJDeleteQuadric--刪除二次對象2. 10 gluQuadricTexture--指定是否為二次對象使用紋理2. 11 ghiQuadricCallback--為二次對象定義回調第三章網格化3. l gluNewTess--創建一個網格化對象3. 2 gluTessV ertex--在多邊形上指定頂點3. 3 gluTessCallback--為網格化對象定義回調3. 4 gluTessBeglnPolygon, ghiTessEndPolygon--限定多邊形的描述3. 5 gluTessBeglnContour, gluTessEndContour--限定多邊形輪廓線的定義3. 6 gluTessProperty--設置網格化對象的屬性3. 7 ghiNextContour--標記開始繪製另一個輪廓線3. 8 gluTessNormal--為多邊形指定法向量3. 9 gluDeleteTess--刪除網格化對象第四章坐標變換4. l gluOorthoZD--定義二維正視投影矩陣4. 2 gluPerspective--創建透視投影矩陣4. 3 gltlLOOkAt--定義視景轉換4. 4 gluProject--將物體坐標映射為窗口坐標4. 5 gluInProject--將窗口坐標映射力物體坐標第五章多重映射5. l gfuBuildlDMipmaps--創建一維多重映射5. 2 gluBuildZDMipmaps--創建H維多重映射5. 3 gluSCalelmage--將圖像縮放到任意尺寸第六章查詢函數6. l ghiErrorstring--從OpenGL或GLU錯誤代碼中生成錯誤字符串6. 2 gluGetNurbsProperty--獲得NURBS屬性6. 3 ghiGetstring--獲得描述GLU版本號或支持GLU擴展調用的字符串6. 4 ghiGetTessProperty--獲得網格化對象的屬性第三篇GLUT庫函數使用說明專用術語分類第一章初始化和啟動事件處理1. l ghjtlnit--初始化GLUT庫1. 2 glutlnitwindowPosition--設置初始窗口位置1. 3 glutlnitwindowsize--設置初始窗口大小1. 4 glutlnitDisplayMode--設置初始顯示模式1. 5 glutMainLoop--進人GLUT事件處理循環第二章窗口管理2. l glutCreatewindow--創建頂層窗口2. 2 glutCreatesubwindow--創建子窗口2. 3 ghitHidewindow--隱藏當前窗口的顯示狀態2. 4 glutshowwindow--改變當前窗口的顯示狀態, 使其顯示2. 5 gfutsetwindowTitle--設置當前頂層窗口的窗口標題2. 6 ghitsetlconTitle--設置當前頂層窗口的圖標標題2. 7 ghitPostRedisplay--標記當前窗口需要重新繪製2. 8 glutswapBuffers--交換當前窗口的緩存2. 9 glutFullscreen--關閉全屏顯示2. 10 glutPositionwindow--申請改變當前窗口的位置2. ll gintReshapewindow--申請改變當前窗口的大小2. 12 glutsetwindow--設置當前窗口2. 13 ghitGetwindow--獲得當前窗口的標識符2. 14 glutPopwindow--改變當前窗口的位置, 使其前移2. 15 ghitPtshwilldOO--改變當前窗口的位置, 使其後移2. 16 glutDestroywindow--銷毀指定的窗口2. 17 glutlconifywindow--使當前窗口圖標化顯示2. 18 glutsetCursor--設置當前窗口的鼠標形狀第三章重疊層管理3. l glutEstablishoverlay--創建當前窗口的重疊層3. 2 glutUseLayer--改變當前窗口的使用層3. 3 glutRemoveoverlay--刪除當前窗口的重疊層3. 4 glutPostoverlayRedisplay--標記當前窗口的重疊層需要重新繪製3. 5 glutshowoverlay--顯示當前窗口的重疊層3. 6 glutHideoverlay--顯示當前窗口的重疊層第四章菜單管理4. l glutCreateMenu--創建一個新的彈出式菜單4. 2 glutAddMenuEntry--在當前菜單的底部增加一個菜單條目4. 3 glutAddsubMenu--在當前菜單的底部增加一個子菜單觸發條目4. 4 glutAttachMenu--把當前窗口的一個鼠標按鍵與當前菜單的標識符聯繫起來4. 5 glutGetMenu--獲取當前菜單的標識符4. 6 glutsetMenu--設置當前菜單4. 7 glutDestroyMenu--刪除指定的菜單4. 8 glutChangeToMenuEntry--將指定的當前菜單中的菜單項更改為菜單條目4. 9 glutChangeTosubMenu--將指定的當前菜單中的菜單項更改為子菜單觸發條目4. 10 glutRemoveMenultem--刪除指定的菜單項4. 11 glutDetachMenu--釋放當前窗口的一個鼠標按鍵第五章註冊國調函數5. l glutDispfayFunc--註冊當前窗口的顯示回調函數5. 2 glutReshapeFunc--註冊當前窗口的形狀變化回調函數5. 3 glutMouseFunc--註冊當前窗口的鼠標回調函數5. 4 glutMotionFunc--設置移動回調函數5. 5 glutldleFunc--設置全局的空閒回調函數5. 6 glutV isibilityFunc--設置當前窗口的可視回調函數5. 7 glutKeyboardFunc--註冊當前窗口的鍵盤回調函數5. 8 glutspecialFunc--設置當前窗口的特定鍵回調函數5. 9 glutoverlayDisplayFunc--註冊當前窗口的重疊層顯示回調函數5. 10 glutPassiveMotionFunc--設置當前窗口的被動移動回調函數5. 11 glutEntryFunc--設置當前窗口的鼠標進出回調函數5. 12 glutspaceballMotionFunc--設置當前窗口的空間球移動回調函數5. 13 glutspaceballRotateFunc--設置當前窗口的空間球旋轉回調函數5. 14 glutspaceballButtonFunc--設置當前窗口的空間球按鍵回調函數5. 15 glutButtonBoxFunc--設置當前窗口的撥號按鍵盒按鍵回調函數5. 16 glutDialsFunc--設置當前窗口的撥號按鍵盒撥號回調函數5. 17 glutTabletMotionFunc--設置圖形板移動回調函數5. 18 glutTabletButtonFunc--設置當前窗口的圖形板按鍵回調函數5. 19 glutMenustatusFunc--設置全局的菜單狀態回調函數5. 20 glutTimerFunc--註冊按一定時間間隔觸發的定時器回調函數第六章顏色素引映射表管理6. l glutsetColor--設置當前窗口當前層一個顏色表單元的顏色6. 2 glutGetColor--獲得指定的索引顏色6. 3 glutCopyColormap--將邏輯顏色表從指定的窗口拷貝到當前窗口第七章狀態檢索7. l glutGet--檢索指定的GLUT狀態7. 2 glutLayerGet--檢索屬於當前窗口重疊層的GLU T狀態7. 3 glutDeviceGet--檢索GLUT設備信息7. 4 glutGetModifiers--返回修飾鍵在引起某些回調的事件發生時的狀態7. 5 glutExtensionsupported--判別當前OpenGL版本是否支持給定的OpenGL擴展第八章字體繪製8. l glutBltmapCharcter--繪製一個位圖字符8. 2 glutBitmapwidth--返回一個位圖字符的寬度8. 3 glutstrokeCharcter--繪製一個筆劃字符8. 4 glutstrokewidth--返回一個筆劃字體的寬度第九章幾何圖形繪製9. 1 glutSolidsphere, glutwiresphere--繪製實心球體和線框球體9. 2 glutsolidCube, glutwireCube--繪製實心立方體和線框立方體9. 3 glutsolidCone, glutwireCone--繪製實心圓錐體和線框圓錐體9. 4 glutsolidTorus, glutwireTorus--繪製實心圓環和線框圓環9. 5 glutSolidDOdeCahedroll, glLltwiFeDOdechedfotl--繪製實心十二面體和線框十二面體9. 6 glutSolidOctahedron, glutWireOctahedron--繪製買心八面體和線框八面體9. 7 glutsolldTetrahedron, glutwireTetrahedron--繪製實心四面體和線框四面體9. 8 glutSollelcosahedron, glutwirelcosahedron--繪製實心二十面體和線框二十面體9. 9 glutsolidTeapot, glutwireTeapot--繪製實心茶壺和線框茶壺。
opengl常用函数
opengl常用函数第一章使用颜色l. l glshadeModel--选择平面明暗模式或光滑明暗模式1. 2 glColor--设置当前颜色1. 3 glColorPointer--定义颜色数组1. 4 gllndex--设置当前颜色索引1. 5 gllndexPointer--定义颜色索引数组1. 6 glCOforTableEXT--为目标调色板纹理指定调色板的格式和大小1. 7 glColorsubTableEXT--指定需要替代的目标纹理调色板的一部分第二章绘制几何图原及物体2. l glVertex--指定顶点2. 2 glVertexPointer--定义顶点数据数组2. 3 glArrayElement--指定用来绘制顶点的数组元素2. 4 glBegin, glEnd--限定一个或多个图原顶点的绘制2. 5 glEdgeFlag, glEdgeFlagy--指定边界标记2. 6 glPointsize--指定光栅化点的直径2. 7 glLinewidth--指定光栅化直线的宽度2. 8 glLinestipple--指定点划线2. 9 glPolygonMode--选择多边形光栅化模式2. 10 glFrontFace--定义正面多边形和反反面多边形2. 11 glPolygonstipple--设置多边形点划图2. 12 glDrawElements--从数组数据绘制图原2. 13 glRect--绘制矩形第三章坐标转换3. l glTranslate--用平移矩阵乘以当前矩阵3. 2 glRotate--用旋转矩阵乘以当前矩阵3. 3 glscale--用缩放矩阵乘以当前矩阵3. 4 glViewport--设置机口3. 5 glFrustum--用透视矩阵乘以当前矩阵3. 6 glorthO--用正视矩阵乘以当前矩阵3. 7 glClipPlane--指定切割几何物体的平面第四章堆栈操作4. l glLoadMatrix--用任意矩阵替换当前矩阵4. 2 glMultMatrix--用任意矩阵乘以当前矩阵 4. 3 glMatrixMode--指定哪一个矩阵是当前矩阵4. 4 glPushMatrix, glPopMatrix--压人和弹出当前矩阵堆栈4. 5 glPushAttrib, glPopAttrib--压人和弹出属性堆栈4. 6 glPushClientAttrib, glPopClientAttrib--在客户属性堆栈中保存和恢复客户状态变量组4. 7 glPushName, gPopName--压人和弹出名称堆栈4. 8 gllnitNames--初始名称堆栈4, 9 glLoadName--向名称堆栈中装载名称第五章显示列表5. l glNewList, glEndList--创建或替换一个显示列表5. 2 glCallLISt--执行一个显示列表5. 3 glCallLISts--执行一列显示列表5. 4 glGenLists--生成一组空的相邻的显示列表5. 5 glDeleteLists--删除一组相邻的显示列表5. 6 gllSLISt--检验显示列表的存在第六章使用光照和材质6. l glNormal--设置当前的法向量6. 2 glNormalPointer--定义法向量数组6. 3 glLight--设置光源参数6. 4 glLightModel--设置光照模型参数6. 5 glMaterial--为光照模型指定材质参数6. 6 glColorMateria--使材质颜色跟踪当前颜色第七章像素操作7. l glRasterPos--为像素操作指定光栅位置7. 2 glBitmap--绘制位图7. 3 glReadPixels--从帧缓存中读取一块像素7. 4 glDrawPixels--将一个像素块写人帧缓存7. 5 glCopyPixels--在帧缓存中拷贝像素7. 6 glCopyTexlmage1D--将像素从帧缓存拷贝到一维纹理图像中7. 7 glCopyTexlmageZD--把像素从帧缓存拷贝到二维纹理图像中7. 8 glCopyTexsublmagelD--从帧缓存中拷贝一维纹理图像的子图像7. 9 glCopyTexsublmageZD--从帧缓存中拷贝二维纹理图像的子图像7. 10 glPixelZoom--指定像素缩放因子7. 11 glPixelstore--设置像素存储模式7. 12 glPixelTransfer--设置像素传输模式7. 13 glPixelMap--设置像素传输映射表第八章纹理映射8. l glTexlmagelD--指定一维纹理图像8. 2 glTexlmageZD--指定二维纹理映射8. 3 glTexParameter--设置纹理参数8. 4 glTexsublmage1D--指定已存在的一维纹理图像的一部分8. 5 glTexsublmageZD--指定已存在的二维纹理图像的一部分8. 6 glTexEnv--设置纹理环境参数8. 7 glTexCoord--设置当前纹理坐标8. 8 glTexGen--控制纹理坐标的生成8. 9 glTexCoordPointer--定义纹理坐标数组8. 10 glDeleteTextures--删除命名的纹理第九章特殊效果操作9. l glBlendFunc--指定像素的数学算法9. 2 glHint--指定由实现确定的控制行为9. 3 glFOg--指定雾化参数第十章帧缓存操作10. l glClear--将缓存清除为预先的设置值10. 2 glClearAccum--设置累加缓存的清除值10. 3 glClearColor--设置颜色缓存的清除值10. 4 glClearDepth--设置深度缓存的清除值10. 5 glClearlndex--设置颜色索引缓存的清除值10. 6 glClearstencil--设置模板缓存的清除值10. 7 glDrawBuffer--指定绘制的颜色缓存10. 8 gllndexMask--控制颜色索引缓存中单个位的写操作10. 9 glColorMask--激活或关闭帧缓存颜色分量的写操作10. 10 glDepthMask--激活或关闭对深度缓存的写操作10. 11 glstencilMask--控制模板平面中单个位的写操作10. 12 glAlphaFunc-一指定alpha检验函数10. 13 glstencilFunc--设置模板检验函数和参考值10. 14 glstencilop--设置模板检验操作10. 15 glDepthFunc--指定深度比较中使用的数值10. 16 glDepthRange--指定从单位化的设备坐标到窗口坐标的z 值映射10. 17 glLOgiCOp--为颜色索引绘制指定逻辑像素操作10. 18 glACCum--对累加缓存进行操作第十一章绘制曲线和曲面11. l glEvalCoord--求取激活的一维和二维纹理图11. 2 glMapl--定义一维求值器11. 3 glMapZ--定义二维求值器11. 4 glMapGrid--定义一维或二维网格11. 5 glEvalMesh--计算一维或二维点网格或线网格11. 6 glEvalPoint--生成并求取网格中的单个点第十二章查询函数12. l glGet--返回所选择的参数值12. 2 glGetClipPlane--返回指定的切平面系数12. 3 glGetColorTableEXT--获得当前目标纹理调色板的颜色表数据12. 4 glGetColorTableParameterfvEXT, glGetColorTableParameterlvEXT-从颜色表中获得调色板参数12. 5 glGetError--返回错误信息12. 6 glGetLight--返回光源参数值12. 7 glGetMap--返回求值器参数12. 8 glGetMaterial--返回材质参数12. 9 glGetPixelMap--返回指定的像素映像12. 10 glGetPointery--返回顶点数据数组地J12. 11 glGetPolygonstipple--返回多边形点戈12. 12 glGetstring--返回描述当前OpenGL12. 13 glGetTexEnv--返回纹理环境参数12. 14 glGetTexGen--返回纹理坐标生成参数12. 15 glGetTexlmage--返回纹理图像12. 16 glGetTexLevelParameter--返回指定细节水平的纹理参数值12. 17 glGetTexParameter--返回纹理参数值。
关于OpenGL的各函数的介绍
我的android——OpenGL(2)——gl10方法解析javax.microedition.khronos.opengles接口GL10上级接口:GL下级接口:GL11公共接口GL10继承于GLGL10接口包含了Java(TM)程序语言为OpenGL绑定的核心功能。
OES_byte_coordinates,OES_single_precision,OES_fixed_point,OES_read_format,以及OES_compressed_paletted_texture等扩展功能也是这个接口的一部分。
一个以x或xv为后缀的方法是属于OES_fixed_point扩展功能的,并且需要一个或更多的修正的点为参数。
这些修正的点可能是浮点点派生出来的值通过乘以65536后再取最接近整数得到。
为了使用方便起见,这个接口记录了OpenGL ES各版本包括1.1及其扩展版本的方法。
当运行一个OpenGL ES 1.0的应用程序时,被标为―(仅1.1)‖可以被忽略。
查看GL接口描述,了解如何获取该接口实例。
方法的详细描述:glActiveTexturepublic void glActiveTexture(int texture)功能:选择服务端活动的纹理单元详细:glActiveTexture选择哪一个纹理在后面的纹理状态改变时有效,纹理单元的数量是依据该纹理单元所被支持的具体实现。
在OpenGL ES 1.0中至少一个,在OpenGL ES 1.1中至少两个。
注意:常常会这样GL_TEXTURE i = GL_TEXTURE0 + i一个纹理单元由纹理可用状态、纹理矩阵堆、纹理环境以及当前渲染纹理组成。
修改其中任一成分均会改变当前活动纹理单元。
点阵是客户端GL资源,它通过glClientActiveTexture程序获取。
错误:当0<= i < GL_MAX_TEXTURE_UNITS 时,如果纹理不是一个GL_TEXTURE i,GL_INVALID_ENUM(错误枚举)会产生。
OpenGL库函数一览表
OpenGL库函数⼀览表OpenGL库函数列表OpenGl核⼼函数库glAccum 操作累加缓冲区glAddSwapHintRectWIN 定义⼀组被SwapBuffers拷贝的三⾓形glAlphaFunc允许设置alpha检测功能glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中glArrayElement 定义⼀个被⽤于顶点渲染的数组成分glBegin,glEnd 定义⼀个或⼀组原始的顶点glBindTexture 允许建⽴⼀个绑定到⽬标纹理的有名称的纹理glBitmap 绘制⼀个位图glBlendFunc 特殊的像素算法glCallList 执⾏⼀个显⽰列表glCallLists 执⾏⼀列显⽰列表glClear ⽤当前值清除缓冲区GlClearAccum 为累加缓冲区指定⽤于清除的值glClearColor 为⾊彩缓冲区指定⽤于清除的值glClearDepth 为深度缓冲区指定⽤于清除的值glClearStencil 为模板缓冲区指定⽤于清除的值glClipPlane 定义被裁剪的⼀个平⾯⼏何体glColor 设置当前⾊彩glColorMask 允许或不允许写⾊彩组件帧缓冲区glColorMaterial 使⼀个材质⾊彩指向当前的⾊彩glColorPointer 定义⼀列⾊彩glColorTableEXT 定义⽬的⼀个调⾊板纹理的调⾊板的格式和尺⼨glColorSubTableEXT 定义⽬的纹理的调⾊板的⼀部分被替换glCopyPixels 拷贝帧缓冲区⾥的像素glCopyTexImage1D 将像素从帧缓冲区拷贝到⼀个单空间纹理图象中glCopyTexImage2D 将像素从帧缓冲区拷贝到⼀个双空间纹理图象中glCopyTexSubImage1D 从帧缓冲区拷贝⼀个单空间纹理的⼦图象glCopyTexSubImage2D 从帧缓冲区拷贝⼀个双空间纹理的⼦图象glCullFace 定义前⾯或后⾯是否能被精选glDeleteLists 删除相邻⼀组显⽰列表glDeleteTextures 删除命名的纹理glDepthFunc 定义⽤于深度缓冲区对照的数据glDepthMask 允许或不允许写⼊深度缓冲区glDepthRange 定义z值从标准的设备坐标映射到窗⼝坐标glDrawArrays 定义渲染多个图元glDrawBuffer 定义选择哪个⾊彩缓冲区被绘制glDrawElements 渲染数组数据中的图元glDrawPixels 将⼀组像素写⼊帧缓冲区glEdgeFlag 定义⼀个边缘标志数组glEdgeFlagPointer 定义⼀个边缘标志数组glEnable, glDisable 打开或关闭OpenGL的特殊功能glEnableClientState,glDisableClientState 分别打开或关闭数组glEvalCoord 求解⼀维和⼆维贴图glEvalMesh1,glEvalMesh2 求解⼀维和⼆维点或线的⽹格glEvalPoint1,glEvalPoint2 ⽣成及求解⼀个⽹格中的单点glFeedbackBuffer 控制反馈模式glFinish 等待直到OpenGL执⾏结束glFlush 在有限的时间⾥强制OpenGL的执⾏glFogf,glFogi,glFogfv,glFogiv 定义雾参数glFrontFace 定义多边形的前⾯和背⾯glFrustum 当前矩阵乘上透视矩阵glGenLists ⽣成⼀组空的连续的显⽰列表glGenTextures ⽣成纹理名称glGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv 返回值或所选参数值glGetClipPlane 返回特定裁减⾯的系数glGetColorTableEXT 从当前⽬标纹理调⾊板得到颜⾊表数据glGetColorTableParameterfvEXT,glGetColorTableParameterivEXT 从颜⾊表中得到调⾊板参数glGetError 返回错误消息glGetLightfv,glGetLightiv 返回光源参数值glGetMapdv,glGetMapfv,glGetMapiv 返回求值程序参数glGetMaterialfv,glGetMaterialiv 返回材质参数glGetPixelMapfv,glGetpixelMapuiv,glGetpixelMapusv 返回特定的像素图glGetPointerv 返回顶点数据数组的地址glGetPolygonStipple 返回多边形的点图案glGetString 返回描述当前OpenGl连接的字符串glGetTexEnvfv 返回纹理环境参数glGetTexGendv,glGetTexGenfv,glGetTexGeniv 返回纹理坐标⽣成参数glGetTexImage 返回⼀个纹理图象glGetTexLevelParameterfv,glGetTexLevelParameteriv 返回特定的纹理参数的细节级别glGetTexParameterfv,glGetTexParameteriv 返回纹理参数值glHint 定义实现特殊的线索glIndex 建⽴当前的⾊彩索引glIndexMask 控制写⾊彩索引缓冲区⾥的单独位GlIndexPointer 定义⼀个颜⾊索引数组glInitName 初始化名字堆栈glInterleavedArrays 同时定义和允许⼏个在⼀个⼤的数组集合⾥的交替数组glIsEnabled 定义性能是否被允许glIsList 检测显⽰列表的存在glIsTexture 确定⼀个名字对应⼀个纹理glLightf,glLighti,glLightfv,glLightiv 设置光源参数glLightModelf,glLightModeli,glLightModelfv,glLightModeliv 设置光线模型参数glLineStipple 设定线点绘图案glLineWidth 设定光栅线段的宽glListBase 为glcallList设定显⽰列表的基础glLoadIdentity ⽤恒等矩阵替换当前矩阵glLoadMatrixd,glLoadMatrif ⽤⼀个任意矩阵替换当前矩阵glLoadName 将⼀个名字调⼊名字堆栈glLogicOp 为⾊彩索引渲染定义⼀个逻辑像素操作glMap1d,glMap1f 定义⼀个⼀维求值程序glMap2d,glMap2f 定义⼀个⼆维求值程序glMapGrid1d,glMapGrid1f,glMapgrid2d,glMapGrid2f 定义⼀个⼀维或⼆维⽹格glMaterialf,glMateriali,glMateriafv,glMaterialiv 为光照模型定义材质参数glMatrixMode 定义哪⼀个矩阵是当前矩阵glMultMatrixd,glMultMatrixf ⽤当前矩阵与任意矩阵相乘glNewList,glEndList 创建或替换⼀个显⽰列表glNormal 设定当前顶点法向glNormalPointer 设定⼀个法向数组glOrtho ⽤垂直矩阵与当前矩阵相乘glPassThrough 在反馈缓冲区做记号glPixelMapfv,glPixelMapuiv,glPixelMapusv 设定像素交换图glPixelStoref,glpixelStorei 设定像素存储模式glPixelTransferf,glPixelTransferi 设定像素存储模式glPixelZoom 设定像素缩放因数glPointSize 设定光栅点的直径glPolygonMode 选择⼀个多边形的光栅模式glPolygonOffset 设定OpenGL⽤于计算深度值的⽐例和单元glPolygonStipple 设定多边形填充图案glPrioritizeTextures 设定纹理固定的优先级glPushAttrib,glPopAttrib 属性堆栈的压⼊和弹出操作glPushClientAttrib,glPopClientAttrib 在客户属性堆栈存储和恢复客户状态值glPushmatrix,glPopMatrix 矩阵堆栈的压⼊和弹出操作glPushName,glPopName 名字堆栈的压⼊和弹出操作glRasterPos 定义像素操作的光栅位置glreadBuffer 为像素选择⼀个源⾊彩缓冲区glReadPixels 从帧缓冲区读取⼀组数据glRectd,glRectf,glRecti,glRects,glRectdv,glRectfv,glRectiv,glRectsv 绘制⼀个三⾓形glRenderMode定义光栅模式glRotated,glRotatef 将旋转矩阵与当前矩阵相乘glScaled,glScalef 将⼀般的⽐例矩阵与当前矩阵相乘glScissor 定义裁减框glSelectBuffer 为选择模式值建⽴⼀个缓冲区glShadeModel 选择平直或平滑着⾊glStencilFunc 为模板测试设置功能和参照值glStencilMask 控制在模板⾯写单独的位glStencilOp 设置激活模式测试glTexCoord 设置当前纹理坐标glTexCoordPointer 定义⼀个纹理坐标数组glTexEnvf,glTexEnvi,glTexEnvfv,glTexEnviv 设定纹理坐标环境参数glTexGend,glTexgenf,glTexGendv,glTexGenfv,glTexGeniv 控制纹理坐标的⽣成glTexImage1D 定义⼀个⼀维的纹理图象glTexImage2D 定义⼀个⼆维的纹理图glTexParameterf,glTexParameteri,glTexParameterfv,glTexParameteriv 设置纹理参数glTexSubImage1D 定义⼀个存在的⼀维纹理图像的⼀部分,但不能定义新的纹理glTexSubImage2D 定义⼀个存在的⼆维纹理图像的⼀部分,但不能定义新的纹理glTranslated,glTranslatef 将变换矩阵与当前矩阵相乘glVertex 定义⼀个顶点glVertexPointer 设定⼀个顶点数据数组glViewport 设置视窗[OpenGL应⽤函数库]gluBeginCurve,gluEndCurve 定义⼀条不⼀⾄的有理的NURBS曲线gluBeginPolygon,gluEndPolygon 定义⼀个⾮凸多边形gluBeginSurface,gluEndSurface 定义⼀个NURBS曲线gluBeginTrim,gluEndTrim 定义⼀个NURBS整理循环gluBuild1Dmipmaps 建⽴⼀维多重映射gluBuild2Dmipmaps 建⽴⼆维多重映射gluCylinder 绘制⼀个圆柱gluDeleteNurbsRenderer 删除⼀个NURBS对象gluDeleQuadric 删除⼀个⼆次曲⾯对象gluDeleteTess 删除⼀个镶嵌对象gluDisk 绘制⼀个盘⼦gluErrorString 根据OpenGL或GLU错误代码产⽣错误字符串gluGetNutbsProperty 得到⼀个NURBS属性gluGetString 得到⼀个描述GLU版本号或⽀持GLU扩展调⽤的字符串gluGetTessProperty 得到⼀个镶嵌对象gluLoadSamplingMatrices 加载NUMRBS例⼦和精选矩阵gluLookAt 设定⼀个变换视点gluNewNurbsRenderer 创建⼀个NURBS对象gluNewQuadric 建⽴⼀个⼆次曲⾯对象gluNewTess 建⽴⼀个镶嵌对象gluNextContour 为其他轮廓的开始做标记gluNurbsCallback 为NURBS对象设定⼀个回调gluNnrbsCurve 设定⼀个NuRBS曲线的形状gluNurbsProperty 设定⼀个NURBS属性gluNurbsSurface 定义⼀个NURBS表⾯的形状gluOrtho2D 定义⼀个⼆位正交投影矩阵gluPartialDisk 绘制⼀个盘⼦的弧gluPerspective 设置⼀个透视投影矩阵gluPickMatrix 定义⼀个拾取区间gluProject 将对象坐标映射为窗⼝坐标gluPwlCurve 描述⼀个分段线性NURBS修剪曲线gluQuadricCallback 为⼆次曲⾯对象定义⼀个回调gluQuadricDrawStyle 为⼆次曲⾯设定合适的绘制风格gluQuadricNormals 定义⼆次曲⾯所⽤的法向的种类gluQuadricOrientation 定义⼆次曲⾯内部或外部⽅向gluQuadricTexture 定义是否带⼆次其⾯做纹理帖图gluScaleImage 将图象变换为任意尺⼨gluSphere 绘制⼀个球体gluTessBeginContour,gluTessEndContour 划定⼀个边界描述gluTessBeginPolygon,gluTessEndPolygon 划定⼀个多边形描述gluTessCallback 为镶嵌对象定义⼀个回调gluTessNormal 为⼀个多边⾏形定义法向gluTessProperty 设置镶嵌对象的属性gluTessVertex 定义在⼀个多边形上的顶点gluUnProject 将窗⼝坐标映射为对象坐标⼀:GL库函数使⽤颜⾊glshadeModel--选择平⾯明暗模式或光滑明暗模式glColor--设置当前颜⾊glColorPointer--定义颜⾊数组gllndex--设置当前颜⾊索引gllndexPointer--定义颜⾊索引数组glCOforTableEXT--为⽬标调⾊板纹理指定调⾊板的格式和⼤⼩glColorsubTableEXT--指定需要替代的⽬标纹理调⾊板的⼀部分绘制⼏何图原及物体glVertex--指定顶点glVertexPointer--定义顶点数据数组glArrayElement--指定⽤来绘制顶点的数组元素glBegin,glEnd--限定⼀个或多个图原顶点的绘制glEdgeFlag,glEdgeFlagy--指定边界标记glPointsize--指定光栅化点的直径glLinewidth--指定光栅化直线的宽度glLinestipple--指定点划线glPolygonMode--选择多边形光栅化模式glFrontFace--定义正⾯多边形和反反⾯多边形glPolygonstipple--设置多边形点划图glDrawElements--从数组数据绘制图原glRect--绘制矩形坐标转换glTranslate--⽤平移矩阵乘以当前矩阵glRotate--⽤旋转矩阵乘以当前矩阵glscale--⽤缩放矩阵乘以当前矩阵glViewport--设置机⼝glFrustum--⽤透视矩阵乘以当前矩阵glorthO--⽤正视矩阵乘以当前矩阵glClipPlane--指定切割⼏何物体的平⾯堆栈操作glLoadMatrix--⽤任意矩阵替换当前矩阵glMultMatrix--⽤任意矩阵乘以当前矩阵glMatrixMode--指定哪⼀个矩阵是当前矩阵glPushMatrix,glPopMatrix--压⼈和弹出当前矩阵堆栈glPushAttrib,glPopAttrib--压⼈和弹出属性堆栈glPushClientAttrib,glPopClientAttrib--在客户属性堆栈中保存和恢复客户状态变量组glPushName,gPopName--压⼈和弹出名称堆栈gllnitNames--初始名称堆栈glLoadName--向名称堆栈中装载名称显⽰列表glNewList,glEndList--创建或替换⼀个显⽰列表glCallLISt--执⾏⼀个显⽰列表glCallLISts--执⾏⼀列显⽰列表glGenLists--⽣成⼀组空的相邻的显⽰列表glDeleteLists--删除⼀组相邻的显⽰列表gllSLISt--检验显⽰列表的存在使⽤光照和材质glNormal--设置当前的法向量glNormalPointer--定义法向量数组glLight--设置光源参数glLightModel--设置光照模型参数glMaterial--为光照模型指定材质参数glColorMateria--使材质颜⾊跟踪当前颜⾊像素操作glRasterPos--为像素操作指定光栅位置glBitmap--绘制位图glReadPixels--从帧缓存中读取⼀块像素glDrawPixels--将⼀个像素块写⼈帧缓存glCopyPixels--在帧缓存中拷贝像素glCopyTexlmage1D--将像素从帧缓存拷贝到⼀维纹理图像中glCopyTexlmageZD--把像素从帧缓存拷贝到⼆维纹理图像中glCopyTexsublmagelD--从帧缓存中拷贝⼀维纹理图像的⼦图像glCopyTexsublmageZD--从帧缓存中拷贝⼆维纹理图像的⼦图像glPixelZoom--指定像素缩放因⼦glPixelstore--设置像素存储模式glPixelTransfer--设置像素传输模式glPixelMap--设置像素传输映射表纹理映射glTexlmagelD--指定⼀维纹理图像glTexlmageZD--指定⼆维纹理映射glTexParameter--设置纹理参数glTexsublmage1D--指定已存在的⼀维纹理图像的⼀部分glTexsublmageZD--指定已存在的⼆维纹理图像的⼀部分glTexEnv--设置纹理环境参数glTexCoord--设置当前纹理坐标glTexGen--控制纹理坐标的⽣成glTexCoordPointer--定义纹理坐标数组glDeleteTextures--删除命名的纹理特殊效果操作glBlendFunc--指定像素的数学算法glHint--指定由实现确定的控制⾏为glFOg--指定雾化参数帧缓存操作glClear--将缓存清除为预先的设置值glClearAccum--设置累加缓存的清除值glClearColor--设置颜⾊缓存的清除值glClearDepth--设置深度缓存的清除值glClearlndex--设置颜⾊索引缓存的清除值glClearstencil--设置模板缓存的清除值glDrawBuffer--指定绘制的颜⾊缓存gllndexMask--控制颜⾊索引缓存中单个位的写操作glColorMask--激活或关闭帧缓存颜⾊分量的写操作glDepthMask--激活或关闭对深度缓存的写操作glstencilMask--控制模板平⾯中单个位的写操作glAlphaFunc-⼀指定alpha检验函数glstencilFunc--设置模板检验函数和参考值glstencilop--设置模板检验操作glDepthFunc--指定深度⽐较中使⽤的数值glDepthRange--指定从单位化的设备坐标到窗⼝坐标的z值映射glLOgiCOp--为颜⾊索引绘制指定逻辑像素操作glACCum--对累加缓存进⾏操作绘制曲线和曲⾯glEvalCoord--求取激活的⼀维和⼆维纹理图glMapl--定义⼀维求值器glMapZ--定义⼆维求值器glMapGrid--定义⼀维或⼆维⽹格glEvalMesh--计算⼀维或⼆维点⽹格或线⽹格glEvalPoint--⽣成并求取⽹格中的单个点查询函数glGet--返回所选择的参数值glGetClipPlane--返回指定的切平⾯系数glGetColorTableEXT--获得当前⽬标纹理调⾊板的颜⾊表数据glGetColorTableParameterfvEXT,glGetColorTableParameterlvEXT-从颜⾊表中获得调⾊板参数glGetError--返回错误信息glGetLight--返回光源参数值glGetMap--返回求值器参数glGetMaterial--返回材质参数glGetPixelMap--返回指定的像素映像glGetPointery--返回顶点数据数组地JglGetPolygonstipple--返回多边形点⼽glGetstring--返回描述当前OpenGLglGetTexEnv--返回纹理环境参数glGetTexGen--返回纹理坐标⽣成参数glGetTexlmage--返回纹理图像glGetTexLevelParameter--返回指定细节⽔平的纹理参数值glGetTexParameter--返回纹理参数值⼆:GLU库函数绘制NURBS曲线和曲⾯gluNewNurbsRenderer--创建⼀个NURBS对像gluNurbsProperty--设置NURBS属性gluNurbsCallback--为NURBS对像定义回调函数gluBeginCurve,gluEndCurve--限定NURBS曲线的定义gluNurbsCurve--定义NURBS曲线的形状gluDeleteNurbsRenderer--删除NURBS对像gluBeglnsurface,gluEndsurface--限定NURBS曲⾯的定义ghiNurbssurface--定义NURBS曲⾯的形状gluBeginTrim,gluEndTrim--限定NURBS裁剪环的定义gluPwlCurve--描述分段线性NURBS裁剪曲线gfuBeglnPolygon, gluEndPolygon--限定多边形的定义gluPickMatrix--定义拾取区域绘制⼆次⼏何物体gluNewQuadric--创建⼀个⼆次对象gluQuadricDrawsope--指定⼆次对象的绘制⽅式gluQuadricNormals--指定⼆次对象使⽤的法向量类型gluQuadricorientation--指定⼆次对象的内侧⾯或外侧⾯⽅向gluCylinder--绘制圆柱体ghisphere--绘制球体glllDISk--绘制圆盘gluPartialDisk--绘制部分圆盘gliJDeleteQuadric--删除⼆次对象gluQuadricTexture--指定是否为⼆次对象使⽤纹理ghiQuadricCallback--为⼆次对象定义回调⽹格化gluNewTess--创建⼀个⽹格化对象gluTessVertex--在多边形上指定顶点gluTessCallback--为⽹格化对象定义回调gluTessBeglnPolygon,ghiTessEndPolygon--限定多边形的描述gluTessBeglnContour,gluTessEndContour--限定多边形轮廓线的定义gluTessProperty--设置⽹格化对象的属性ghiNextContour--标记开始绘制另⼀个轮廓线gluTessNormal--为多边形指定法向量gluDeleteTess--删除⽹格化对象坐标变换gluOorthoZD--定义⼆维正视投影矩阵gluPerspective--创建透视投影矩阵gltlLOOkAt--定义视景转换gluProject--将物体坐标映射为窗⼝坐标gluInProject--将窗⼝坐标映射⼒物体坐标多重映射gfuBuildlDMipmaps--创建⼀维多重映射gluBuildZDMipmaps--创建H维多重映射gluSCalelmage--将图像缩放到任意尺⼨查询函数ghiErrorstring--从OpenGL或GLU错误代码中⽣成错误字符串gluGetNurbsProperty--获得NURBS属性ghiGetstring--获得描述GLU版本号或⽀持GLU扩展调⽤的字符串ghiGetTessProperty--获得⽹格化对象的属性三:GLUT库函数初始化和启动事件处理ghjtlnit--初始化GLUT库glutlnitwindowPosition--设置初始窗⼝位置glutlnitwindowsize--设置初始窗⼝⼤⼩glutlnitDisplayMode--设置初始显⽰模式glutMainLoop--进⼈GLUT事件处理循环窗⼝管理glutCreatewindow--创建顶层窗⼝glutCreatesubwindow--创建⼦窗⼝ghitHidewindow--隐藏当前窗⼝的显⽰状态glutshowwindow--改变当前窗⼝的显⽰状态,使其显⽰gfutsetwindowTitle--设置当前顶层窗⼝的窗⼝标题ghitsetlconTitle--设置当前顶层窗⼝的图标标题ghitPostRedisplay--标记当前窗⼝需要重新绘制glutswapBuffers--交换当前窗⼝的缓存glutFullscreen--关闭全屏显⽰glutPositionwindow--申请改变当前窗⼝的位置gintReshapewindow--申请改变当前窗⼝的⼤⼩glutsetwindow--设置当前窗⼝ghitGetwindow--获得当前窗⼝的标识符glutPopwindow--改变当前窗⼝的位置,使其前移ghitPtshwilldOO--改变当前窗⼝的位置,使其后移glutDestroywindow--销毁指定的窗⼝glutlconifywindow--使当前窗⼝图标化显⽰glutsetCursor--设置当前窗⼝的⿏标形状重叠层管理glutEstablishoverlay--创建当前窗⼝的重叠层glutUseLayer--改变当前窗⼝的使⽤层glutRemoveoverlay--删除当前窗⼝的重叠层glutPostoverlayRedisplay--标记当前窗⼝的重叠层需要重新绘制glutshowoverlay--显⽰当前窗⼝的重叠层glutHideoverlay--显⽰当前窗⼝的重叠层菜单管理glutCreateMenu--创建⼀个新的弹出式菜单glutAddMenuEntry--在当前菜单的底部增加⼀个菜单条⽬glutAddsubMenu--在当前菜单的底部增加⼀个⼦菜单触发条⽬glutAttachMenu--把当前窗⼝的⼀个⿏标按键与当前菜单的标识符联系起来glutGetMenu--获取当前菜单的标识符glutsetMenu--设置当前菜单glutDestroyMenu--删除指定的菜单glutChangeToMenuEntry--将指定的当前菜单中的菜单项更改为菜单条⽬glutChangeTosubMenu--将指定的当前菜单中的菜单项更改为⼦菜单触发条⽬glutRemoveMenultem--删除指定的菜单项glutDetachMenu--释放当前窗⼝的⼀个⿏标按键注册国调函数glutDispfayFunc--注册当前窗⼝的显⽰回调函数glutReshapeFunc--注册当前窗⼝的形状变化回调函数glutMouseFunc--注册当前窗⼝的⿏标回调函数glutMotionFunc--设置移动回调函数glutldleFunc--设置全局的空闲回调函数glutVisibilityFunc--设置当前窗⼝的可视回调函数glutKeyboardFunc--注册当前窗⼝的键盘回调函数glutspecialFunc--设置当前窗⼝的特定键回调函数glutoverlayDisplayFunc--注册当前窗⼝的重叠层显⽰回调函数glutPassiveMotionFunc--设置当前窗⼝的被动移动回调函数glutEntryFunc--设置当前窗⼝的⿏标进出回调函数glutspaceballMotionFunc--设置当前窗⼝的空间球移动回调函数glutspaceballRotateFunc--设置当前窗⼝的空间球旋转回调函数glutspaceballButtonFunc--设置当前窗⼝的空间球按键回调函数glutButtonBoxFunc--设置当前窗⼝的拨号按键盒按键回调函数glutDialsFunc--设置当前窗⼝的拨号按键盒拨号回调函数glutTabletMotionFunc--设置图形板移动回调函数glutTabletButtonFunc--设置当前窗⼝的图形板按键回调函数glutMenustatusFunc--设置全局的菜单状态回调函数glutTimerFunc--注册按⼀定时间间隔触发的定时器回调函数颜⾊素引映射表管理glutsetColor--设置当前窗⼝当前层⼀个颜⾊表单元的颜⾊glutGetColor--获得指定的索引颜⾊glutCopyColormap--将逻辑颜⾊表从指定的窗⼝拷贝到当前窗⼝状态检索glutGet--检索指定的GLUT状态glutLayerGet--检索属于当前窗⼝重叠层的 GLU T状态glutDeviceGet--检索GLUT设备信息glutGetModifiers--返回修饰键在引起某些回调的事件发⽣时的状态glutExtensionsupported--判别当前OpenGL版本是否⽀持给定的OpenGL扩展字体绘制glutBltmapCharcter--绘制⼀个位图字符glutBitmapwidth--返回⼀个位图字符的宽度glutstrokeCharcter--绘制⼀个笔画字符glutstrokewidth--返回⼀个笔画字体的宽度⼏何图形绘制glutSolidsphere,glutwiresphere--绘制实⼼球体和线框球体glutsolidCube,glutwireCube--绘制实⼼⽴⽅体和线框⽴⽅体glutsolidCone,glutwireCone--绘制实⼼圆锥体和线框圆锥体glutsolidTorus,glutwireTorus--绘制实⼼圆环和线框圆环glutSolidDOdeCahedroll,glLltwiFeDOdechedfotl--绘制实⼼⼗⼆⾯体和线框⼗⼆⾯体glutSolidOctahedron,glutWireOctahedron--绘制买⼼⼋⾯体和线框⼋⾯体glutsolldTetrahedron,glutwireTetrahedron--绘制实⼼四⾯体和线框四⾯体glutSollelcosahedron,glutwirelcosahedron--绘制实⼼⼆⼗⾯体和线框⼆⼗⾯体glutsolidTeapot,glutwireTeapot--绘制实⼼茶壶和线框茶壶glut库下的所有函数:[全部展开/还原]⼀、初始化void glutInit(int* argc,char** argv)这个函数⽤来初始化GLUT库。
glaccumamt函数作用
glaccumamt函数作用
glAccum()函数是OpenGL中的一个函数,它用于实现累积缓冲区的操作。
累积缓冲区是一种特殊的颜色缓冲区,它可以用于在多次渲染操作之间保存结果,并将它们相加、平均或混合起来,从而产生更复杂的效果。
glAccum()函数的作用是将当前帧缓冲区中的内容与累积缓冲区中的内容相加,并将结果存储回累积缓冲区。
这个函数接受两个参数,第一个参数指定了累积操作的类型,可以是GL_ACCUM、
GL_LOAD、GL_ADD、GL_MULT或GL_RETURN;第二个参数是一个浮点数,用于指定累积因子。
当累积操作类型为GL_ACCUM时,将当前帧缓冲区的内容乘以累积因子,并加到累积缓冲区的对应像素上。
当累积操作类型为GL_LOAD时,将当前帧缓冲区的内容直接复制到累积缓冲区中。
当累积操作类型为GL_ADD时,将当前帧缓冲区的内容与累积缓冲区的内容相加,并将结果存储回累积缓冲区。
当累积操作类型为GL_MULT时,将当前帧缓冲区的内容与累积缓冲区的内容相乘,并将结果存储回累积缓冲区。
当累积操作类型为GL_RETURN时,将累积缓冲区的内容复制回当前帧缓冲区。
通过使用glAccum()函数,我们可以实现一些特殊的效果,如模糊、混合、积分等。
累积缓冲区可以用于实现后期处理、动态模糊、运动模糊等图形效果,从而增加图形的真实感和视觉效果。
需要注意的是,glAccum()函数的使用需要搭配其他OpenGL函数和渲染流程来实现具体的效果,具体的实现方式和效果效果取决于开发者的需求和创造力。
OpenGL绘图相关函数
2/12/2020
10
OpenGL程序实例——窗口管理
初始化(glutInit ) 创建窗口(glutCreateWindow) 设定窗口的显示模式(glutInitDisplayMode) 指定窗口的位置和大小(glutInitWindowPosition和 glutInitWindowSize ) 指定窗口的显示内容函数(glutDisplayFunc) 运行框架(glutMainLoop)
2/12/2020
5
OpenGL的绘制流程——流水线
包括命令、顶点数据和纹理等数据的OpenGL命令将放在命令 缓冲区中,对几何顶点数据进行必要的变换、光照计算并进行 投影后进入光栅化流程,根据几何形状、颜色及纹理数据生成 图像的帧缓存地址和像素点值,结果置入帧缓冲存储器中。
调用OpenGL API函数
43个函数
OpenGL编程辅助库:aux
31个函数
OpenGL实用程序工具包(OpenGL utility toolkit,
GLUT):glut
30多个函数
Windows专用库:wgl
6个函数
2/12/2020
7
OpenGL的基本语法——命名规则
OpenGL函数都遵循一个命名约定,即采用以下格式: <库前缀><根命令><可选的参数个数><可选的参数类型>
2/12/2020
4
OpБайду номын сангаасnGL的绘制流程——工作方式
一个完整的窗口系统的OpenGL 图形处理系统的结构为:最底层 为图形硬件,第二层为操作系统, 第三层为窗口系统,第四层为
OpenGL库函数大全
1.OpenGL核心库核心库包含有115个函数,函数名的前缀为gl。
这部分函数用于常规的、核心的图形处理。
此函数由gl.dll来负责解释执行。
由于许多函数可以接收不同数以下几类。
据类型的参数,因此派生出来的函数原形多达300多个。
核心库中的函数主要可以分为以下几类函数:(1)绘制基本几何图元的函数。
如绘制图元的函数glBegain()、glEnd()、glNormal*()、glVertex*()。
(2)矩阵操作、几何变换和投影变换的函数。
如矩阵入栈函数glPushMatrix()、矩阵出栈函数glPopMatrix()、装载矩阵函数glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport()等等。
(3)颜色、光照和材质的函数。
如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial()等等。
(4)显示列表函数、主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、glEndList()、glGenLists()、glCallList()和glDeleteLists()。
(5)纹理映射函数,主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*()等。
(6)特殊效果函数。
融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*()。
opengl常用函数
GLUT函数说明一、初始化void glutInit(int* argc,char** argv)这个函数用来初始化GLUT库。
对应main函数的形式应是:int main(int argc,char* argv[]);这个函数从main函数获取其两个参数。
void glutInitWindowSize(int width,int height);void glutInitWindowPosition(int x,int y);设置glut程序要产生的窗口的大小和位置(左上角)。
以像素为单位。
void glutInitDisplayMode(unsigned int mode);设置图形显示模式。
参数mode的可选值为:•GLUT_RGBA:当未指明GLUT-RGBA或GLUT-INDEX时,是默认使用的模式。
表明欲建立RGBA模式的窗口。
•GLUT_RGB:与GLUT-RGBA作用相同。
•GLUT_INDEX:指明为颜色索引模式。
•GLUT_SINGLE:只使用单缓存•GLUT_DOUBLE:使用双缓存。
以避免把计算机作图的过程都表现出来,或者为了平滑地实现动画。
•GLUT_ACCUM:让窗口使用累加的缓存。
•GLUT_ALPHA:让颜色缓冲区使用alpha组件。
•GLUT_DEPTH:使用深度缓存。
•GLUT_STENCIL:使用模板缓存。
•GLUT_MULTISAMPLE:让窗口支持多例程。
•GLUT_STEREO:使窗口支持立体。
•GLUT_LUMINACE:luminance是亮度的意思。
但是很遗憾,在多数OpenGL平台上,不被支持。
二、事件处理(Event Processing)void glutMainLoop(void)让glut程序进入事件循环。
在一个glut程序中最多只能调用一次。
一旦调用,会直到程序结束才返回。
三、窗口管理(Window Management)int glutCreateWindow(char* name);产生一个顶层的窗口。
OpenGL主要函数
1opengl 函数查询一:GL库函数使用颜色glshadeModel--选择平面明暗模式或光滑明暗模式glColor--设置当前颜色glColorPointer--定义颜色数组gllndex--设置当前颜色索引gllndexPointer--定义颜色索引数组glCOforTableEXT--为目标调色板纹理指定调色板的格式和大小glColorsubTableEXT--指定需要替代的目标纹理调色板的一部分绘制几何图原及物体glVertex--指定顶点glVertexPointer--定义顶点数据数组glArrayElement--指定用来绘制顶点的数组元素glBegin,glEnd--限定一个或多个图原顶点的绘制glEdgeFlag,glEdgeFlagy--指定边界标记glPointsize--指定光栅化点的直径glLinewidth--指定光栅化直线的宽度glLinestipple--指定点划线glPolygonMode--选择多边形光栅化模式glFrontFace--定义正面多边形和反反面多边形glPolygonstipple--设置多边形点划图glDrawElements--从数组数据绘制图原glRect--绘制矩形坐标转换glTranslate--用平移矩阵乘以当前矩阵glRotate--用旋转矩阵乘以当前矩阵glscale--用缩放矩阵乘以当前矩阵glViewport--设置机口glFrustum--用透视矩阵乘以当前矩阵glorthO--用正视矩阵乘以当前矩阵glClipPlane--指定切割几何物体的平面堆栈操作glLoadMatrix--用任意矩阵替换当前矩阵glMultMatrix--用任意矩阵乘以当前矩阵glMatrixMode--指定哪一个矩阵是当前矩阵glPushMatrix,glPopMatrix--压人和弹出当前矩阵堆栈glPushAttrib,glPopAttrib--压人和弹出属性堆栈glPushClientAttrib,glPopClientAttrib--在客户属性堆栈中保存和恢复客户状态变量组glPushName,gPopName--压人和弹出名称堆栈gllnitNames--初始名称堆栈2glLoadName--向名称堆栈中装载名称显示列表glNewList,glEndList--创建或替换一个显示列表glCallLISt--执行一个显示列表glCallLISts--执行一列显示列表glGenLists--生成一组空的相邻的显示列表glDeleteLists--删除一组相邻的显示列表gllSLISt--检验显示列表的存在使用光照和材质glNormal--设置当前的法向量glNormalPointer--定义法向量数组glLight--设置光源参数glLightModel--设置光照模型参数glMaterial--为光照模型指定材质参数glColorMateria--使材质颜色跟踪当前颜色像素操作glRasterPos--为像素操作指定光栅位置glBitmap--绘制位图glReadPixels--从帧缓存中读取一块像素glDrawPixels--将一个像素块写人帧缓存glCopyPixels--在帧缓存中拷贝像素glCopyTexlmage1D--将像素从帧缓存拷贝到一维纹理图像中glCopyTexlmageZD--把像素从帧缓存拷贝到二维纹理图像中glCopyTexsublmagelD--从帧缓存中拷贝一维纹理图像的子图像glCopyTexsublmageZD--从帧缓存中拷贝二维纹理图像的子图像glPixelZoom--指定像素缩放因子glPixelstore--设置像素存储模式glPixelTransfer--设置像素传输模式glPixelMap--设置像素传输映射表纹理映射glTexlmagelD--指定一维纹理图像glTexlmageZD--指定二维纹理映射glTexParameter--设置纹理参数glTexsublmage1D--指定已存在的一维纹理图像的一部分glTexsublmageZD--指定已存在的二维纹理图像的一部分glTexEnv--设置纹理环境参数glTexCoord--设置当前纹理坐标glTexGen--控制纹理坐标的生成glTexCoordPointer--定义纹理坐标数组glDeleteTextures--删除命名的纹理特殊效果操作glBlendFunc--指定像素的数学算法glHint--指定由实现确定的控制行为glFOg--指定雾化参数3帧缓存操作glClear--将缓存清除为预先的设置值glClearAccum--设置累加缓存的清除值glClearColor--设置颜色缓存的清除值glClearDepth--设置深度缓存的清除值glClearlndex--设置颜色索引缓存的清除值glClearstencil--设置模板缓存的清除值glDrawBuffer--指定绘制的颜色缓存gllndexMask--控制颜色索引缓存中单个位的写操作glColorMask--激活或关闭帧缓存颜色分量的写操作glDepthMask--激活或关闭对深度缓存的写操作glstencilMask--控制模板平面中单个位的写操作glAlphaFunc-一指定alpha检验函数glstencilFunc--设置模板检验函数和参考值glstencilop--设置模板检验操作glDepthFunc--指定深度比较中使用的数值glDepthRange--指定从单位化的设备坐标到窗口坐标的z值映射glLOgiCOp--为颜色索引绘制指定逻辑像素操作glACCum--对累加缓存进行操作绘制曲线和曲面glEvalCoord--求取激活的一维和二维纹理图glMapl--定义一维求值器glMapZ--定义二维求值器glMapGrid--定义一维或二维网格glEvalMesh--计算一维或二维点网格或线网格glEvalPoint--生成并求取网格中的单个点查询函数glGet--返回所选择的参数值glGetClipPlane--返回指定的切平面系数glGetColorTableEXT--获得当前目标纹理调色板的颜色表数据glGetColorTableParameterfvEXT,glGetColorTableParameterlvEXT-从颜色表中获得调色板参数glGetError--返回错误信息glGetLight--返回光源参数值glGetMap--返回求值器参数glGetMaterial--返回材质参数glGetPixelMap--返回指定的像素映像glGetPointery--返回顶点数据数组地JglGetPolygonstipple--返回多边形点戈glGetstring--返回描述当前OpenGLglGetTexEnv--返回纹理环境参数glGetTexGen--返回纹理坐标生成参数glGetTexlmage--返回纹理图像4glGetTexLevelParameter--返回指定细节水平的纹理参数值glGetTexParameter--返回纹理参数值二:GLU库函数绘制NURBS曲线和曲面gluNewNurbsRenderer--创建一个NURBS对像gluNurbsProperty--设置NURBS属性gluNurbsCallback--为NURBS对像定义回调函数gluBeginCurve,gluEndCurve--限定NURBS曲线的定义gluNurbsCurve--定义NURBS曲线的形状gluDeleteNurbsRenderer--删除NURBS对像gluBeglnsurface,gluEndsurface--限定NURBS曲面的定义ghiNurbssurface--定义NURBS曲面的形状gluBeginTrim,gluEndTrim--限定NURBS裁剪环的定义gluPwlCurve--描述分段线性NURBS裁剪曲线gfuBeglnPolygon,gluEndPolygon--限定多边形的定义gluPickMatrix--定义拾取区域绘制二次几何物体gluNewQuadric--创建一个二次对象gluQuadricDrawsope--指定二次对象的绘制方式gluQuadricNormals--指定二次对象使用的法向量类型gluQuadricorientation--指定二次对象的内侧面或外侧面方向gluCylinder--绘制圆柱体ghisphere--绘制球体glllDISk--绘制圆盘gluPartialDisk--绘制部分圆盘gliJDeleteQuadric--删除二次对象gluQuadricTexture--指定是否为二次对象使用纹理ghiQuadricCallback--为二次对象定义回调网格化gluNewTess--创建一个网格化对象gluTessVertex--在多边形上指定顶点gluTessCallback--为网格化对象定义回调gluTessBeglnPolygon,ghiTessEndPolygon--限定多边形的描述gluTessBeglnContour,gluTessEndContour--限定多边形轮廓线的定义gluTessProperty--设置网格化对象的属性ghiNextContour--标记开始绘制另一个轮廓线gluTessNormal--为多边形指定法向量gluDeleteTess--删除网格化对象坐标变换gluOorthoZD--定义二维正视投影矩阵gluPerspective--创建透视投影矩阵gltlLOOkAt--定义视景转换gluProject--将物体坐标映射为窗口坐标5gluInProject--将窗口坐标映射力物体坐标多重映射gfuBuildlDMipmaps--创建一维多重映射gluBuildZDMipmaps--创建H维多重映射gluSCalelmage--将图像缩放到任意尺寸查询函数ghiErrorstring--从OpenGL或GLU错误代码中生成错误字符串gluGetNurbsProperty--获得NURBS属性ghiGetstring--获得描述GLU版本号或支持GLU扩展调用的字符串ghiGetTessProperty--获得网格化对象的属性三:GLUT库函数初始化和启动事件处理ghjtlnit--初始化GLUT库glutlnitwindowPosition--设置初始窗口位置glutlnitwindowsize--设置初始窗口大小glutlnitDisplayMode--设置初始显示模式glutMainLoop--进人GLUT事件处理循环窗口管理glutCreatewindow--创建顶层窗口glutCreatesubwindow--创建子窗口ghitHidewindow--隐藏当前窗口的显示状态glutshowwindow--改变当前窗口的显示状态,使其显示gfutsetwindowTitle--设置当前顶层窗口的窗口标题ghitsetlconTitle--设置当前顶层窗口的图标标题ghitPostRedisplay--标记当前窗口需要重新绘制glutswapBuffers--交换当前窗口的缓存glutFullscreen--关闭全屏显示glutPositionwindow--申请改变当前窗口的位置gintReshapewindow--申请改变当前窗口的大小glutsetwindow--设置当前窗口ghitGetwindow--获得当前窗口的标识符glutPopwindow--改变当前窗口的位置,使其前移ghitPtshwilldOO--改变当前窗口的位置,使其后移glutDestroywindow--销毁指定的窗口glutlconifywindow--使当前窗口图标化显示glutsetCursor--设置当前窗口的鼠标形状重叠层管理glutEstablishoverlay--创建当前窗口的重叠层glutUseLayer--改变当前窗口的使用层glutRemoveoverlay--删除当前窗口的重叠层glutPostoverlayRedisplay--标记当前窗口的重叠层需要重新绘制glutshowoverlay--显示当前窗口的重叠层6glutHideoverlay--显示当__________前窗口的重叠层菜单管理glutCreateMenu--创建一个新的弹出式菜单glutAddMenuEntry--在当前菜单的底部增加一个菜单条目glutAddsubMenu--在当前菜单的底部增加一个子菜单触发条目glutAttachMenu--把当前窗口的一个鼠标按键与当前菜单的标识符联系起来glutGetMenu--获取当前菜单的标识符glutsetMenu--设置当前菜单glutDestroyMenu--删除指定的菜单glutChangeToMenuEntry--将指定的当前菜单中的菜单项更改为菜单条目glutChangeTosubMenu--将指定的当前菜单中的菜单项更改为子菜单触发条目glutRemoveMenultem--删除指定的菜单项glutDetachMenu--释放当前窗口的一个鼠标按键注册国调函数glutDispfayFunc--注册当前窗口的显示回调函数glutReshapeFunc--注册当前窗口的形状变化回调函数glutMouseFunc--注册当前窗口的鼠标回调函数glutMotionFunc--设置移动回调函数glutldleFunc--设置全局的空闲回调函数glutVisibilityFunc--设置当前窗口的可视回调函数glutKeyboardFunc--注册当前窗口的键盘回调函数glutspecialFunc--设置当前窗口的特定键回调函数glutoverlayDisplayFunc--注册当前窗口的重叠层显示回调函数glutPassiveMotionFunc--设置当前窗口的被动移动回调函数glutEntryFunc--设置当前窗口的鼠标进出回调函数glutspaceballMotionFunc--设置当前窗口的空间球移动回调函数glutspaceballRotateFunc--设置当前窗口的空间球旋转回调函数glutspaceballButtonFunc--设置当前窗口的空间球按键回调函数glutButtonBoxFunc--设置当前窗口的拨号按键盒按键回调函数glutDialsFunc--设置当前窗口的拨号按键盒拨号回调函数glutTabletMotionFunc--设置图形板移动回调函数glutTabletButtonFunc--设置当前窗口的图形板按键回调函数glutMenustatusFunc--设置全局的菜单状态回调函数glutTimerFunc--注册按一定时间间隔触发的定时器回调函数颜色素引映射表管理glutsetColor--设置当前窗口当前层一个颜色表单元的颜色glutGetColor--获得指定的索引颜色glutCopyColormap--将逻辑颜色表从指定的窗口拷贝到当前窗口状态检索glutGet--检索指定的GLUT状态glutLayerGet--检索属于当前窗口重叠层的GLU T状态glutDeviceGet--检索GLUT设备信息glutGetModifiers--返回修饰键在引起某些回调的事件发生时的状态glutExtensionsupported--判别当前OpenGL 版本是否支持给定的OpenGL扩展7字体绘制glutBltmapCharcter--绘制一个位图字符glutBitmapwidth--返回一个位图字符的宽度glutstrokeCharcter--绘制一个笔画字符glutstrokewidth--返回一个笔画字体的宽度几何图形绘制glutSolidsphere,glutwiresphere--绘制实心球体和线框球体glutsolidCube,glutwireCube--绘制实心立方体和线框立方体glutsolidCone,glutwireCone--绘制实心圆锥体和线框圆锥体glutsolidTorus,glutwireTorus--绘制实心圆环和线框圆环glutSolidDOdeCahedroll,glLltwiFeDOdechedfotl--绘制实心十二面体和线框十二面体glutSolidOctahedron,glutWireOctahedron--绘制买心八面体和线框八面体glutsolldTetrahedron,glutwireTetrahedron--绘制实心四面体和线框四面体glutSollelcosahedron,glutwirelcosahedron--绘制实心二十面体和线框二十面体glutsolidTeapot,glutwireTeapot--绘制实心茶壶和线框茶壶__。
OPENGL编程函数
Y X
课堂 采用
Windows GDI
O
为了方便表 示,课堂上使 用常用坐标系 统。 OpenGL中 中 的坐标系统可 变化。 变化。
3.1 二维图形显示
实现读/写像素函数 用OpenGL实现读 写像素函数 实现读
void SetPixel(int x, int y, float r, float g, float b ) { glColor3f(r,g,b); glBegin(GL_POINTS) glVertex2i(x,y); glEnd(); } float* GetPixel(int x, int y) { float *rgb= new float[3]; glReadPixels(x,y,1,1,GL_RGB,GL_FLOAT,rgb); return rgb; }
小结
扫描转换的概念 直线的扫描转换算法
DDA算法 算法 中点算法
圆弧的扫描转换算法
中点算法 逼近算法
图元属性表示 OpenGL基本绘制图元函数 基本绘制图元函数
4.8 OpenGL OpenGL相关函数
区域函数(填充作用) 区域函数(填充作用)
矩形函数: 矩形函数:glRect[i|s|f|d]{v}() glBegin()中的参数 中的参数
3.5 OpenGL相关函数
•
type类型 类型
类型 说明 单个顶点集 多组双顶点线段 单个简单填充凸多边形 多组独立填充三角形 多组独立填充四边形 不闭合折线 闭合折线 线型连续填充三角形串 扇形连续填充三角形串 连续填充四边形串
GL_POINTS GL_LINES GL_POLYGON GL_TRIANGLES GL_QUADS GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUAD_STRIP
OpenGL相关函数及解释
glEnable();//来启动模式。
glDisable()//可以关闭之。
void glLineStipple(GLint factor, GLushort pattern); //来设置虚线的样式。
glPolygonMode(GL_FRONT, GL_FILL); // 设置正面为填充方式glPolygonMode(GL_BACK, GL_LINE); // 设置反面为边缘绘制方式glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); // 设置两面均为顶点绘制方式glFrontFace(GL_CCW); // 设置CCW方向为“正面”,CCW即CounterClockWise,逆时针glFrontFace(GL_CW); // 设置CW方向为“正面”,CW即ClockWise,顺时针glEnable(GL_CULL_FACE);//来启动剔除功能(使用glDisable(GL_CULL_FACE)可以关闭之)glCullFace(GL_FRONT_AND_BACK);//剔除正反两面的多边形。
glEnable(GL_POL YGON_STIPPLE);//来启动镂空模式(使用glDisable(GL_POLYGON_STIPPLE)可以关闭之)。
void glPolygonStipple(const GLubyte *mask); //设置镂空的样式。
void glColor3f(GLfloat red, GLfloat green, GLfloat blue);//设置颜色void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);void glIndexi(GLint c); //在颜色表中选择颜色,它的参数是一个整形。
glClearColor(1.0f, 0.0f, 0.0f, 0.0f); //指定“空”的颜色glClear(GL_COLOR_BUFFER_BIT); //意思是把屏幕上的颜色清空。
OpenGL参考函数
OpenGL参考函数1.1 颜色使用1. glShadeModel:选择平面明暗模式或光滑明暗模式C语言描述void glShadeModel( GLenum mode )参数mode 指定表示明暗模式的符号值,可以选择GL_FLAT(平面明暗模式)和GL_SMOOTH(光滑明暗模式),缺省值为GL_SMOOTH。
说明OpenGL图元需要进行明暗处理,处理得模式可以为平面明暗模式或光滑(Gouraud着色)明暗模式。
光滑明暗模式时,多边形各个内部点的颜色是根据各顶点指定的颜色来插值得到的,这意味着两个顶点之间的颜色是从一顶点的颜色渐变到另一顶点的颜色。
对于平面明暗模式,整个图元区域的颜色就是最后一个顶点指定的颜色,唯一例外的是GL_POLYGON,这是整个区域的颜色是第一个顶点所指定的颜色。
但要注意,如果激活了光照,计算到的顶点颜色都是光照后的结果颜色,若光照关闭,计算到的颜色就是指定顶点时的当前颜色。
2. glColor:设置当前颜色C语言描述void glcolor3b(GLbyte red,GLbyte green,GLbyte blue);void glcolor3d(GLdouble red,GLdouble green,GLdouble blue);void glcolor3f(GLfloat red,GLfloat green,GLfloat blue);void glcolor3i(GLint red,GLint green,GLint blue);void glcolor3s(GLshort red,GLshort green,GLshort blue);void glcolor3ub(GLubyte red,GLubyte green,GLubyte blue);void glcolor3ui(GLuint red,GLuint green,GLuint blue);void glcolor3us(GLushort red,GLushort green,GLushort blue);void glcolor4b(GLbyte red,GLbyte green,GLbyte blue,GLbyte alpha);void glcolor4d(GLdouble red,GLdouble green,GLdouble blue,GLdouble alpha);void glcolor4f(GLfloat red,GLfloat green,GLfloat blue,GLfloat alpha);void glcolor4i(GLint red,GLint green,GLint blue,GLint alpha);void glcolor4s(GLshort red,GLshort green,GLshort blue,GLshort alpha);void glcolor4ub(GLubyte red,GLubyte green,GLubyte blue,GLubyte alpha);void glcolor4ui(GLuint red,GLuint green,GLuint blue,GLuint alpha);void glcolor4us(GLushort red,GLushort green,GLushort blue,GLushort alpha);void glcolor3bv(const GLbyte *v);void glcolor3dv(const GLdouble *v);void glcolor3fv(const GLfloat *v);void glcolor3iv(const GLint *v);void glcolor3sv(const GLshort *v);void glcolor3ubv(const GLubyte *v);void glcolor3uiv(const GLuint *v);59void glcolor3usv(const GLushort *v);void glcolor4bv(const GLbyte *v);void glcolor4dv(const GLdouble *v);void glcolor4fv(const GLfloat *v);void glcolor4iv(const GLint *v);void glcolor4sv(const GLshort *v);void glcolor4ubv(const GLubyte *v);void glcolor4uiv(const GLuint *v);void glcolor4usv(const GLushort *v);参数red,green, blue 指定当前颜色中的红、绿和蓝色成分。