清除窗口
clearColor(R,G,B,A);//1
clear(GL_COLOR_BUFFER_BIT) //2
GL_COLOR_BUFFER_BIT //颜色缓冲区
GL_DEPTH_BUFFER_BIT //深度缓冲区
GL_ACCUM_BUFFER_BIT //累计缓冲区
GL_STENCIL_BUFFER_BIT //模板缓冲区
2处清除窗口并且以1处的颜色进行填充
glcolor | 指定颜色 |
glFlush | 强制执行OPENGL指令,相当于refresh |
glFinish | 强制执行OPENGL指令,相当于Update |
图元绘制
glBegin(mode)
XXXX
glEnd()
GL_POINT
GL_LINE
GL_LINE_STRIP 多点连成的线
GL_LINE_LOOP 多点连成的线并形成了回路
GL_TRIANGLES
GL_TRIANGLES_STRIP 绘制连续三角形
GL_TRIANGLES_FAN GL_TRIANGLES_STRIP相同,只是点的顺序不同
GL_QUADS
GL_QUAD_STRIP 绘制连续四边形
GL_POLYGON 绘制多边形
glBegin与glEnd之间的合法函数
glVertex*()
glColor*()
glIndex*() //颜色索引
glSecondaryColor*()//纹理应用后的辅助颜色
glNormal*()//法线
glMaterial*()//材质
glFogCoord*()//雾坐标
glTexCoord*()//纹理坐标
glMultiTexCoord*()//多重纹理坐标
glVertexAttrib*()//通用顶点属性
glEdgeFlag*()//控制边界绘制
glArratElement()//地区顶点数组数据
glEvalCoord*()//生成坐标
glCallList()//执行显示列表
基本状态管理
glEnable
glDisable
glIsEnabled
法线的说明
如果模型只是旋转或者移动,那么法线不会有变化,如果是缩放或者乘以了剪切矩阵,法线就需要重新计算,采用归一化的办法可以便面此问题glEnable(GL_Normalize) 但是启用规范化会消耗一部分性能,对于缩放的变化 可采用glEnable(GL_RESCALE_NORMAL)可减低性能的消耗
glPointSize | 设置渲染点大小 | |
glLineWidth | 设置线宽度 | |
glLineStipple | 创建点划线 | |
glPolygonMode | 多边形填充形式 | |
GL_FRONT GL_BACK |
||
GL_FILL GL_LINE |
||
glPolygonStipple | 设置多边形点划线 | |
glEdgeFlag*() | 表示一个顶点是否该被认为是多边形的一条边界的起点 |
相关推荐
### 绘制几何物体 #### 1. 绘图工具箱 OpenGL 提供了一系列的绘图功能,使得开发者能够高效地绘制出各种复杂的图形。在绘图工具箱中,有三种基本的操作:清除窗口、绘制几何图形以及绘制光栅对象。 - **清除窗口*...
OpenGL,全称OpenGL图形程序...总之,OpenGL绘制U型管道涉及多方面的知识,包括图形管线的理解、矩阵变换、着色器编程以及光照和纹理处理。通过熟练掌握这些技术,你可以创建出各种复杂的3D图形,包括逼真的管道模型。
OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种操作系统和硬件上生成二维和三维图像。本主题主要关注如何使用OpenGL在光照环境下绘制不同材质的茶壶模型,包括金属、塑料、宝石和橡胶材质。 首先,...
OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种操作系统和硬件平台上创建二维和三维图形。本专题将深入探讨如何在Visual C++ 2008环境下利用OpenGL库来实现三维物体的绘制。 首先,我们需要理解...
在循环中,通常会执行`glClear`清除颜色和深度缓冲,然后调用`glDrawArrays`或`glDrawElements`等函数绘制几何体。 7. **深度测试**:为了正确处理3D场景中的遮挡关系,必须开启深度测试。使用`glEnable(GL_DEPTH_...
OpenGL是计算机图形学中的一种广泛...综上所述,使用OpenGL绘制树涉及到多个环节,从几何构造、纹理应用到光照处理,都需要精细的编程技巧和艺术感觉。通过不断学习和实践,开发者可以创建出更加生动逼真的3D森林场景。
直线的绘制在OpenGL中通常通过`glBegin()`和`glEnd()`函数包围的顶点序列实现,使用`glVertex()`函数指定每个顶点。例如,要绘制一条从(0,0)到(1,1)的直线,可以这样写: ```cpp glBegin(GL_LINES); glVertex2f(0.0...
在"opengl绘制球的程序"这个项目中,我们可以推测开发者利用了QT的QGLWidget或QOpenGLWidget来构建一个窗口,并且通过OpenGL在其中绘制了一个球体。以下是一些关键知识点: 1. **QT框架**:QT提供了丰富的API,用于...
1. OpenGL绘制正方形 在OpenGL中,绘制正方形通常通过定义四个顶点来完成,然后使用glBegin()和glEnd()函数包围顶点序列,使用glVertex2f()等函数指定每个顶点的位置。例如: ```python glBegin(GL_QUADS) glVertex...
4. **绘制**: 使用OpenGL提供的函数绘制几何体。 #### OpenGL与C++结合进行图形开发 OpenGL可以通过多种编程语言进行访问,其中C++是最常用的一种。利用C++的面向对象特性,可以更方便地管理OpenGL的状态和资源。 ...
OpenGL,全称OpenGL图形编程接口,是用于渲染2D、3D矢量图形的跨语言、跨平台的...通过学习和实践这个例子,开发者不仅可以掌握如何用OpenGL绘制曲线,还能提升对图形渲染过程的理解,为今后的图形项目打下坚实的基础。
通过对这个示例程序的分析和学习,开发者能够掌握OpenGL的基本绘图流程,理解视图、投影和模型变换,以及如何在三维空间中呈现物体。同时,也可以了解到OpenGL与用户交互的方式,为更复杂的三维图形编程打下基础。
1. GLUT库:在提供的文件"580598651glutEx2"中,GLUT库可能被用来创建窗口、处理用户输入和管理OpenGL上下文。 2. 实验步骤:编写代码,加载桌子模型,设置初始位置,然后在每个帧中应用旋转,通过循环实现连续旋转...
在这个项目中,我们将探讨如何在Microsoft Foundation Classes (MFC)框架下利用OpenGL绘制三维图形,包括立方体、茶壶和环面,并实现鼠标控制功能。 首先,让我们从MFC与OpenGL的结合开始。MFC是微软提供的一种C++...
以上就是使用OpenGL绘制太阳、地球、月球时涉及的关键技术点。通过这些技术,我们可以创建一个动态、交互的3D模型,模拟太阳系中的天文现象,让用户在虚拟环境中探索宇宙的奥秘。在“work”文件夹中,应包含了项目的...
8. 绘制球体:调用glDrawArrays或glDrawElements绘制几何形状。 9. 深度测试和颜色混合:OpenGL会自动处理这些,以确保正确的遮挡关系和颜色混合。 10. 刷新屏幕:调用glutSwapBuffers或glFlush更新屏幕内容。 在...
在每次迭代中,都需要清除深度缓冲和颜色缓冲,然后绘制新的物体状态。此外,可能还需要用到GLUT或SDL等库来处理窗口系统和事件。 描述中提到的博客链接虽然无法直接访问,但通常这样的资源会包含代码示例,解释...
OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种平台上创建二维和三维图形。它提供了丰富的函数库,使得开发者可以高效地绘制复杂的几何形状。在这个主题中,我们将深入探讨如何在OpenGL中绘制基本的...
10. **学习资源**:要深入理解OpenGL绘制地球的过程,可以参考OpenGL官方文档,以及各种开源示例代码,如Nehe教程、OpenGL SuperBible等,这些资源都提供了详细的代码示例和解释。 通过以上分析,我们可以看出...
在C++或Python等语言中,通常使用GLUT、GLFW或SDL等库来处理窗口管理和事件处理,而OpenGL函数则用于图形绘制和设置。GLSL(OpenGL着色器语言)用于编写运行在GPU上的定制着色器,实现更高级的效果。 6. **优化...