GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。

一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。

如下图所示:

GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5,以此类推。如果顶点的个数n不是3的倍数,那么最后的1个或者2个顶点会被忽略。

GL_TRIANGLE_STRIP则稍微有点复杂。

其规律是:

构建当前三角形的顶点的连接顺序依赖于要和前面已经出现过的2个顶点组成三角形的当前顶点的序号的奇偶性(如果从0开始):

如果当前顶点是奇数:

组成三角形的顶点排列顺序:T = [n-1 n-2 n].

如果当前顶点是偶数:

组成三角形的顶点排列顺序:T = [n-2 n-21 n].

以上图为例,第一个三角形,顶点v2序号是2,是偶数,则顶点排列顺序是v0,v1,v2。第二个三角形,顶点v3序号是3,是奇数,则顶点排列顺序是v2,v1,v3,第三个三角形,顶点v4序号是4,是偶数,则顶点排列顺序是v2,v3,v4,以此类推。

这个顺序是为了保证所有的三角形都是按照相同的方向绘制的,使这个三角形串能够正确形成表面的一部分。对于某些操作,维持方向是很重要的,比如剔除。

注意:顶点个数n至少要大于3,否则不能绘制任何三角形。

GL_TRIANGLE_FAN与GL_TRIANGLE_STRIP类似,不过它的三角形的顶点排列顺序是T = [n-1 n-2 n].各三角形形成一个扇形序列。

理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式相关推荐

  1. 【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式

    GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释. 一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES.GL_TRIANGLE_STRI ...

  2. OpenGL 理解GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN等绘制三角形序列的三种方式

    文章目录 函数 glDrawArrays() GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 初始顶点 函数 glDrawArrays() glDrawArrays(type, s ...

  3. 理解GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN绘制三角形序列的三种方式

    一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES.GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN. 如下图所示: GL_TRIANGLES是以每三个顶点绘制一 ...

  4. android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片

    想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...

  5. pyecharts学习(part1)--绘制图表的三种方式

    学习笔记,仅供参考,有错必究 文章目录 pyecharts学习 绘制图表的三种方式 绘制的图表生成HTML jupyter notebook 内嵌展示 pyecharts生成图片 pyecharts学 ...

  6. 基于unet神经网络上采样中的的三种方式的理解

    关于前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容中的一个知识点-上采样. 一.基于unet神经网络上采样中的的三种方式的理解 ...

  7. php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...

    圆角矩形可谓是UI设计中,我们最常见到的元素之一了,通过圆角矩形工具去绘制的圆角过于普通,且略显呆板,缺少吸引力.今天新视觉实训就给大家分享三种绘制圆角矩形的方法,让我们在千篇一律的圆角矩形中找寻一些 ...

  8. java多线程w3c_Java创建多线程的三种方式

    前言 这篇文章主要讲述线程的概念.组成.Java创建多线程的三种方式以及线程的类型. 线程概念 线程和进程的区别 **进程:**正在运行的程序,例如:你打开 的qq音乐.exe程序,其由PCB(进程控 ...

  9. 时序预测的三种方式:统计学模型、机器学习、循环神经网络

    作者 | luanhz 来源 | 小数志 导读 时序预测是一类经典的问题,在学术界和工业界都有着广泛的研究和应用.甚至说,世间万物加上时间维度后都可抽象为时间序列问题,例如股票价格.天气变化等等.关于 ...

最新文章

  1. MySQL主从复制异步原理以及搭建
  2. python 对象销毁_python对象销毁实例(垃圾回收)
  3. 带有权重的服务器SLB的实现
  4. ADSL pppoe 拔号工具rp-pppoe
  5. 控制台资费管理主菜单java_java毕业设计_springboot框架的高速公路收费管理系统...
  6. JavaScript高级程序设计读书笔记(第8章BOM之location对象查询字符串参数)
  7. JSONArray.fromObject(str)
  8. AD9中元件无法显示的问题解决
  9. 怎么用imp命令把dmp文件从本地导入到远处的数据库服务器,Oracle 数据库导入导出dmp文件...
  10. svn版本管理软件——创建svn私人仓库
  11. Java基于Socket实现简单QQ聊天详细教程
  12. Python+Pyecharts实现1995~2020世界人口分析报告
  13. 蚂蚁金服面试经历(内含大量干货)
  14. C++画图 => 蓝桥杯青少组C++ => 信奥 学习路线图
  15. 3.1 腾讯云AI能力矩阵
  16. JDK下载以及安装步骤
  17. Effective C++ 条款1、2、3、4
  18. 【图像超分辨率】(VDSR)Accurate Image Super-Resolution Using Very Deep Convolutional Networks
  19. 更好的确保企业数据安全,华为云数据灾备解决方案更便捷
  20. 同步代码到github

热门文章

  1. html5语异性元素,异性的5句性暗示
  2. java 2分代复制垃圾回收_Java对象的后事处理——垃圾回收(二)
  3. win2012 ad用户和计算机,Server2012R2搭建AD域服务器并添加登录用户
  4. 【广告】我妹妹导演的毕设——数字传媒摄影作品
  5. c#XML的基本使用
  6. [Objective-C语言教程]动态绑定(32)
  7. LOJ#6002. 「网络流 24 题」最小路径覆盖
  8. Linux空硬盘从分区到挂载
  9. 《DSP using MATLAB》示例Example7.25
  10. EF+postgresql中的一些问题