`
如沐春风的小妮
  • 浏览: 69767 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

opengl学习(三)----绘制简单图形(一)

阅读更多
    今天说一说几种简单的图元。
    所有的几何图元都是根据它们的顶点来描绘的。而顶点就是它们在屏幕上的坐标位置。
   我喜欢把这几个简单的图元称为点线面。
   点,可以看到一个顶点;
   线,就是两个顶点指定的一条有限长度的线段;
   面,其实更准确讲是一个凸多边形。opengl里所讲的多边形是内部用颜色填充的,视觉上称为面我个人认为是更贴近的。当然,多边形也是由指定的顶点组成的。
   需要注意的是,要想被opengl按照设计被绘制必须正确的认识到,所谓的多边形是顶点都处于一个平面上,凸多边形。凸多边形不能理解的,请问度娘。。。
    来看一个例子:
glBegin(GL_POLYGON);
    glVertex2f(0.0, 0.0);
    glVertex2f(0.0, 3.0);
    glVertex2f(4.0, 3.0);
    glVertex2f(6.0, 1.5);
    glVertex2f(4.0, 0.0);
glEnd();

    先不去关心代码本身,这段代码最终的结果是要指定5个顶点绘制一个凸五边形。注意,不是5条线段而是一个凸五边形的平面。
    不管是点线面的哪一种,都是需要指定一组顶点的。如何判定顶点指定的开始和结束就是glBegin和glEnd的工作。
引用
void glBegin(Glenum mode);
标志着一个顶点数据列表的开始,它描述了一个几何图元。mode参数指定了图元的类型。
void glEnd(void);
标志着一个顶点数据列表的结束。

mode设置的不同,代表着将要绘制的图元也不同。下面这个表就是图元的名称和含义:
值                                      含义
GL_POINTS                   单个的点
GL_LINES                    一对顶点被解释为一条直线
GL_LINE_STRIP               一系列的连接直线
GL_LINE_LOOP                和上面相同,但第一个顶点和最后一个顶点彼此相连
GL_TRIANGLES                3个顶点被解释为一个三角形
GL_TRIANGLES_STRIP          三角形的连接串
GL_TRIANGLES_FAN            连接成扇形的三角形系列
GL_QUADS                    4个顶点被解释为一个四边形
GL_QUADS_STRIP              四边形的连接串
GL_POLYGON                  简单的凸多边形的边界


    试想着,如果将glBegin(GL_POLYGON)修改为glBegin(GL_POINTS),绘制出来的将是什么图形呢? 哈哈,那就是5个点而已么。
    上面那段代码还有一个最为重要的函数,那就是顶点函数只有通过顶点函数指定了绘制图形所需要的顶点,才能去绘制我们需要的图形。
    下面看一下顶点函数的原形:
引用
void glVertex[234]{sifd}(TYPE coords);
glVertex[234]{sifd}(const TYPE *coords);
指定了一个用于描述几何物体的顶点。可以选择这个函数的适当版本,即可以为一个顶点提供多达4个的坐标(x,y,z,w),也可以只提供2个坐标(x,y)。如果选择的函数版本并没有显式地指定z或者w,z就会当作0,w则默认为1。glVertext*()函数只有当它位于glBegin()和glEnd()之间时才有效。

     注:sifd是指顶点数据的类型。
    以上就是简单图元的简单绘制方法。更多更复杂的图形及函数后续会陆续涉及到。
分享到:
评论

相关推荐

    OpenGL快速查找手册-OpenGL-ES-2_0-Reference-card

    OpenGL是计算机图形学中的一种广泛应用的编程接口,用于在各种操作系统和硬件上生成二维和三维图像。OpenGL ES(Embedded Systems)是OpenGL的一个精简版本,专门设计用于嵌入式系统,如移动设备和游戏机。OpenGL ES...

    opengl学习代码-自用

    OpenGL是计算机图形学领域广泛应用的一种编程接口,它允许程序员创建复杂的3D图形和实时交互式可视化应用程序。这个“opengl学习代码-自用”压缩包很可能是为了帮助学习和理解OpenGL编程而准备的一系列示例代码。...

    OpenGL-intro-1.1.1 OpenGL-intro-1.1.1

    OpenGL是计算机图形学领域广泛应用的一种跨语言、跨平台的编程接口,用于生成2D和3D图像。这个“OpenGL-intro-1.1.1”很可能是关于OpenGL的基础教程或介绍,版本号1.1.1可能指的是教程覆盖的OpenGL版本。在早期,...

    code_opengl学习笔记3-1-在3D中绘制点

    OpenGL是计算机图形学中...通过阅读和理解代码,你可以更好地掌握OpenGL绘制点的基本技巧,并为后续学习OpenGL的其他图形元素如线段和多边形打下基础。在实践中,结合着这些知识点,你可以创建出丰富多彩的3D图形应用。

    图形学 - OpenGL绘制简单图形程序2个

    在本主题中,我们将深入探讨两个使用OpenGL绘制简单图形的程序。 OpenGL的工作原理是通过向图形处理单元(GPU)发送指令来实现图形渲染。这些指令由OpenGL库封装,程序员可以通过调用相应的函数来执行。在开始编写...

    opengles3-book_opengl/计算机图像学/渲染_OpenGLES_

    《OpenGLES3-book》是关于移动端三维图形渲染的一份宝贵资源,主要涵盖了OpenGL ES(OpenGL for Embedded Systems)在计算机图像学中的应用。OpenGL ES是OpenGL的一个子集,专为嵌入式设备如智能手机、平板电脑等...

    opengl学习-简单的图形绘制

    简单的图形绘制,相机

    用OpenGL绘制简单的三维图形

    标题“用OpenGL绘制简单的三维图形”已经表明了本文的主要目的和内容范围。同时,描述部分“如何在VB中调用OpenGL,以及一些初始化工作过程”则进一步细化了文章将要讨论的具体方面。 首先,我们需要了解OpenGL是...

    android-openGL-canvas-master.zip

    在“android-openGL-canvas-master.zip”这个项目中,开发者可能结合了这两者,创建了一个示例应用来展示如何在 Android 上使用 OpenGL ES(OpenGL 的嵌入式版本)与 Canvas 进行交互,以实现更高效的图形绘制和动画...

    opengl-test-01-visualstudio

    5. **OpenGL绘图**:使用OpenGL的函数绘制图形。例如,`glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);`清除颜色和深度缓冲,`glBegin()`和`glEnd()`定义顶点序列,`glColor3f()`指定颜色,`glVertex3f()`...

    图形学实验源码---基本图形及曲线绘制

    在图形学领域,基本图形及曲线的绘制是学习和实践中不可或缺的部分。这个“图形学实验源码---基本图形及曲线绘制”项目,很显然,旨在帮助学生深入理解计算机图形学的基本概念和技术,通过C++语言实现相关算法。下面...

    OpenGL基本图形绘制

    示例代码展示了如何使用OpenGL绘制不同的图形。例如,`myDisplay`函数是一个OpenGL的回调函数,用于绘制窗口中的内容。在这个函数中,使用了`glClear`来清除颜色缓冲区,`glBegin`和`glEnd`用来定义图形的顶点序列,...

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

    3. OpenGL绘制多个图形 通过多次调用glBegin()和glEnd(),可以绘制多个图形。在每次调用之间,可以改变颜色、线宽等属性,以区别不同的图形。 4. OpenGL绘图代码及原理详解 OpenGL的绘图过程是基于命令流的,开发者...

    Qt OpenGL+Graphics-View

    OpenGL是一个开放标准的图形库,它允许开发者直接控制显卡进行高性能的图形绘制。Qt通过QOpenGLWidget类提供对OpenGL的支持,使得开发者可以方便地在Qt应用中集成OpenGL的功能。QOpenGLWidget是一个可重绘的窗口部件...

    Delphi-and-openGL-3D-drawing.rar_delphi OPENGL_delphi 三维_drawing

    在本项目中,我们主要探讨如何使用Delphi集成开发环境结合OpenGL库来创建一个三维图形绘制程序,并实现鼠标交互功能,让用户能够通过鼠标控制图形的旋转。这是一门涉及计算机图形学、软件工程和人机交互技术的综合性...

    OpenGL 作图例子 - 圆环

    这个"OpenGL 作图例子 - 圆环"很可能是为了教授如何使用OpenGL绘制圆环,这对于游戏开发、科学可视化、应用程序界面设计等领域非常重要。下面我们将深入探讨OpenGL的基本概念以及如何在实际中绘制圆环。 OpenGL是一...

    论文研究-基于OpenGL的真实感图形绘制技术及应用.pdf

    通过VC 环境下的编程实践, 系统地总结了基于OpenGL 技术实现真实感图形绘制( 包括反走样、消隐以及光照模型等) 的基本步骤和方法, 并结合具体实例, 介绍了真实感图形绘制技术在地矿工程三维实体构模中的应用。

    OpenGL----动态球体---源代码

    OpenGL是一种强大的图形编程库,广泛应用于游戏开发、科学可视化、工程设计等领域。在这个"OpenGL动态球体源代码"中,我们可以深入理解如何使用OpenGL来创建并动态显示一个3D球体,以及如何实现物体的旋转效果。以下...

    OpenGL入门学习之二——绘制几何图形.pdf

    ### OpenGL入门学习之二——绘制几何图形:详细解析 #### 一、理解点、直线与多边形在OpenGL中的表现 在计算机图形学领域,尤其是OpenGL框架中,几何图形的基本构建块包括点、直线和多边形。这些概念在数学理论与...

    OpenGL环境搭建与简单图形绘制

    在实验中,你将学习如何使用OpenGL绘制简单的3D图形,例如立方体、球体等,并了解如何应用光照和雾效果。光照处理涉及到光源的位置、颜色和类型,而雾效果则通过设置雾的颜色、距离等参数实现,增加了场景的深度感。...

Global site tag (gtag.js) - Google Analytics