【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
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等绘制三角形序列的三种方式相关推荐
- 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释. 一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES.GL_TRIANGLE_STRI ...
- OpenGL 理解GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN等绘制三角形序列的三种方式
文章目录 函数 glDrawArrays() GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 初始顶点 函数 glDrawArrays() glDrawArrays(type, s ...
- 理解GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN绘制三角形序列的三种方式
一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES.GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN. 如下图所示: GL_TRIANGLES是以每三个顶点绘制一 ...
- android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片
想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...
- pyecharts学习(part1)--绘制图表的三种方式
学习笔记,仅供参考,有错必究 文章目录 pyecharts学习 绘制图表的三种方式 绘制的图表生成HTML jupyter notebook 内嵌展示 pyecharts生成图片 pyecharts学 ...
- 基于unet神经网络上采样中的的三种方式的理解
关于前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容中的一个知识点-上采样. 一.基于unet神经网络上采样中的的三种方式的理解 ...
- php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...
圆角矩形可谓是UI设计中,我们最常见到的元素之一了,通过圆角矩形工具去绘制的圆角过于普通,且略显呆板,缺少吸引力.今天新视觉实训就给大家分享三种绘制圆角矩形的方法,让我们在千篇一律的圆角矩形中找寻一些 ...
- 理解VMware虚拟机下网络连接的三种模式
很多朋友都用vmware来测试不同的系统,我结合自己的经验谈一下对网络设置的理解,不对的地方请指正. bridge: 这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux ...
- mfc绘制bezier b样条三种曲线_生存曲线(二):SPSS和Origin绘图教程及相关问题
上期生存分析推送后,有粉丝在后台问:有发生率的情况,为什么要做生存曲线分析? 举个例子:临床试验中,共招募30位胃腺癌患者,均分为3组,分别使用了A/B/C三套不同的治疗方案,治疗期为2年.2年后统计 ...
最新文章
- 蚂蚁森林合种计划(2020.12.19更新,7天有效)
- gridview中动态绑定通过模板列增加的textbox。
- python为text添加滚动条_在Tkinter中向一组小部件添加滚动条
- Linux下面的IO模型
- 西瓜仿站高手v1.08官方正式版
- 【转载】Mysql注入点在limit关键字后面的利用方法
- 小米激荡十年:雷军的进与退
- vue 查看变量类型_前端开发问题集:Vue开发中数据更新了,为何视图没有发生变化呢...
- USPS手写体数据的处理
- 从Labview硬件平台看ZYNQ 的应用
- 用128行代码实现一个文字冒险游戏
- python3爬虫扒云班课资源
- 计算机加内存还是固态硬盘,电脑慢加内存还是固态硬盘好
- jquery中的各种动画效果
- 我对refactoring的思考
- React Native开发环境配置检测
- 深度学习面试题总结1-20
- 将秒数转为时分秒的格式
- ncae的c语言编程高阶怎么考,NCAE考试科目.doc
- 修改element单选框样式
热门文章
- 2021.08.22学习内容torch.cat()和torch.stack()函数
- pytorch的4种边界Padding方法--ZeroPad2d、ConstantPad2d、ReflectionPad2d、ReplicationPad2d
- 基于VGG的感知损失函数--人眼感知的loss
- Kafka单节点多broker的部署和使用
- 实时流处理架构与技术选型
- [Unity][ShaderGraph][FlowCanvas] SetFloat 无效:通过脚本控制 shader 的动态参数时需要使用参数的引用名
- yaf php源码,PHP-Yaf执行流程-源码分析
- keil如何添加h文件_如何给PDF文件添加水印?分享给PDF批量加水印的方法
- .png图片 阴影效果(fliter:drop-shadow属性)案例
- dedeCMS 文件路径、全局替换(待续···)