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].各三角形形成一个扇形序列。

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

  1. 理解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. 理解VMware虚拟机下网络连接的三种模式

    很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bridge:         这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux ...

  9. mfc绘制bezier b样条三种曲线_生存曲线(二):SPSS和Origin绘图教程及相关问题

    上期生存分析推送后,有粉丝在后台问:有发生率的情况,为什么要做生存曲线分析? 举个例子:临床试验中,共招募30位胃腺癌患者,均分为3组,分别使用了A/B/C三套不同的治疗方案,治疗期为2年.2年后统计 ...

最新文章

  1. 蚂蚁森林合种计划(2020.12.19更新,7天有效)
  2. gridview中动态绑定通过模板列增加的textbox。
  3. python为text添加滚动条_在Tkinter中向一组小部件添加滚动条
  4. Linux下面的IO模型
  5. 西瓜仿站高手v1.08官方正式版
  6. 【转载】Mysql注入点在limit关键字后面的利用方法
  7. 小米激荡十年:雷军的进与退
  8. vue 查看变量类型_前端开发问题集:Vue开发中数据更新了,为何视图没有发生变化呢...
  9. USPS手写体数据的处理
  10. 从Labview硬件平台看ZYNQ 的应用
  11. 用128行代码实现一个文字冒险游戏
  12. python3爬虫扒云班课资源
  13. 计算机加内存还是固态硬盘,电脑慢加内存还是固态硬盘好
  14. jquery中的各种动画效果
  15. 我对refactoring的思考
  16. React Native开发环境配置检测
  17. 深度学习面试题总结1-20
  18. 将秒数转为时分秒的格式
  19. ncae的c语言编程高阶怎么考,NCAE考试科目.doc
  20. 修改element单选框样式

热门文章

  1. 2021.08.22学习内容torch.cat()和torch.stack()函数
  2. pytorch的4种边界Padding方法--ZeroPad2d、ConstantPad2d、ReflectionPad2d、ReplicationPad2d
  3. 基于VGG的感知损失函数--人眼感知的loss
  4. Kafka单节点多broker的部署和使用
  5. 实时流处理架构与技术选型
  6. [Unity][ShaderGraph][FlowCanvas] SetFloat 无效:通过脚本控制 shader 的动态参数时需要使用参数的引用名
  7. yaf php源码,PHP-Yaf执行流程-源码分析
  8. keil如何添加h文件_如何给PDF文件添加水印?分享给PDF批量加水印的方法
  9. .png图片 阴影效果(fliter:drop-shadow属性)案例
  10. dedeCMS 文件路径、全局替换(待续···)