`
tiankefeng0520
  • 浏览: 147024 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

OpenGL学习二:状态管理和绘制几何物体

 
阅读更多

清除窗口
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.rar_OPENgl 管道_opengl绘制_opengl绘制管道_管道绘制

    OpenGL,全称OpenGL图形程序...总之,OpenGL绘制U型管道涉及多方面的知识,包括图形管线的理解、矩阵变换、着色器编程以及光照和纹理处理。通过熟练掌握这些技术,你可以创建出各种复杂的3D图形,包括逼真的管道模型。

    opengl茶壶的绘制

    OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种操作系统和硬件上生成二维和三维图像。本主题主要关注如何使用OpenGL在光照环境下绘制不同材质的茶壶模型,包括金属、塑料、宝石和橡胶材质。 首先,...

    OpenGL视图中绘制三维物体

    OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种操作系统和硬件平台上创建二维和三维图形。本专题将深入探讨如何在Visual C++ 2008环境下利用OpenGL库来实现三维物体的绘制。 首先,我们需要理解...

    使用OpenGL实现绘制三维图形

    在循环中,通常会执行`glClear`清除颜色和深度缓冲,然后调用`glDrawArrays`或`glDrawElements`等函数绘制几何体。 7. **深度测试**:为了正确处理3D场景中的遮挡关系,必须开启深度测试。使用`glEnable(GL_DEPTH_...

    opengl绘制树

    OpenGL是计算机图形学中的一种广泛...综上所述,使用OpenGL绘制树涉及到多个环节,从几何构造、纹理应用到光照处理,都需要精细的编程技巧和艺术感觉。通过不断学习和实践,开发者可以创建出更加生动逼真的3D森林场景。

    OpenGL绘制图形(包含20多个基本例子)

    直线的绘制在OpenGL中通常通过`glBegin()`和`glEnd()`函数包围的顶点序列实现,使用`glVertex()`函数指定每个顶点。例如,要绘制一条从(0,0)到(1,1)的直线,可以这样写: ```cpp glBegin(GL_LINES); glVertex2f(0.0...

    opengl绘制球的程序

    在"opengl绘制球的程序"这个项目中,我们可以推测开发者利用了QT的QGLWidget或QOpenGLWidget来构建一个窗口,并且通过OpenGL在其中绘制了一个球体。以下是一些关键知识点: 1. **QT框架**:QT提供了丰富的API,用于...

    27.OpenGL入门及绘制基本图形(一)1

    1. OpenGL绘制正方形 在OpenGL中,绘制正方形通常通过定义四个顶点来完成,然后使用glBegin()和glEnd()函数包围顶点序列,使用glVertex2f()等函数指定每个顶点的位置。例如: ```python glBegin(GL_QUADS) glVertex...

    OpenGL实现的简单机器人绘制

    4. **绘制**: 使用OpenGL提供的函数绘制几何体。 #### OpenGL与C++结合进行图形开发 OpenGL可以通过多种编程语言进行访问,其中C++是最常用的一种。利用C++的面向对象特性,可以更方便地管理OpenGL的状态和资源。 ...

    OpenGl.rar_opengl_opengl 2d 曲线_opengl 曲线_opengl 绘制_opengl绘制曲线

    OpenGL,全称OpenGL图形编程接口,是用于渲染2D、3D矢量图形的跨语言、跨平台的...通过学习和实践这个例子,开发者不仅可以掌握如何用OpenGL绘制曲线,还能提升对图形渲染过程的理解,为今后的图形项目打下坚实的基础。

    38 在OPENGL视图中绘制三维物体.rar_opengl_三维物体

    通过对这个示例程序的分析和学习,开发者能够掌握OpenGL的基本绘图流程,理解视图、投影和模型变换,以及如何在三维空间中呈现物体。同时,也可以了解到OpenGL与用户交互的方式,为更复杂的三维图形编程打下基础。

    基于opengl的物体旋转编程

    1. GLUT库:在提供的文件"580598651glutEx2"中,GLUT库可能被用来创建窗口、处理用户输入和管理OpenGL上下文。 2. 实验步骤:编写代码,加载桌子模型,设置初始位置,然后在每个帧中应用旋转,通过循环实现连续旋转...

    OpenGL 绘制立方体、茶壶、环面等稍复杂的图形

    在这个项目中,我们将探讨如何在Microsoft Foundation Classes (MFC)框架下利用OpenGL绘制三维图形,包括立方体、茶壶和环面,并实现鼠标控制功能。 首先,让我们从MFC与OpenGL的结合开始。MFC是微软提供的一种C++...

    opengl绘制太阳、地球、月球

    以上就是使用OpenGL绘制太阳、地球、月球时涉及的关键技术点。通过这些技术,我们可以创建一个动态、交互的3D模型,模拟太阳系中的天文现象,让用户在虚拟环境中探索宇宙的奥秘。在“work”文件夹中,应包含了项目的...

    真实感球体绘制 opengl

    8. 绘制球体:调用glDrawArrays或glDrawElements绘制几何形状。 9. 深度测试和颜色混合:OpenGL会自动处理这些,以确保正确的遮挡关系和颜色混合。 10. 刷新屏幕:调用glutSwapBuffers或glFlush更新屏幕内容。 在...

    OpenGL实时显示物体三维姿态

    在每次迭代中,都需要清除深度缓冲和颜色缓冲,然后绘制新的物体状态。此外,可能还需要用到GLUT或SDL等库来处理窗口系统和事件。 描述中提到的博客链接虽然无法直接访问,但通常这样的资源会包含代码示例,解释...

    OpenGL中基本几何元素的绘制

    OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种平台上创建二维和三维图形。它提供了丰富的函数库,使得开发者可以高效地绘制复杂的几何形状。在这个主题中,我们将深入探讨如何在OpenGL中绘制基本的...

    Opengl 绘制的地球

    10. **学习资源**:要深入理解OpenGL绘制地球的过程,可以参考OpenGL官方文档,以及各种开源示例代码,如Nehe教程、OpenGL SuperBible等,这些资源都提供了详细的代码示例和解释。 通过以上分析,我们可以看出...

    opengl室内场景的绘制,包括碰撞检测

    在C++或Python等语言中,通常使用GLUT、GLFW或SDL等库来处理窗口管理和事件处理,而OpenGL函数则用于图形绘制和设置。GLSL(OpenGL着色器语言)用于编写运行在GPU上的定制着色器,实现更高级的效果。 6. **优化...

Global site tag (gtag.js) - Google Analytics