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

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 安信可PB-03蓝牙模组入门之旅 二:SDK二次开发入门,认识架构,开始点亮一盏LED。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写 xff0c 仅仅做个人技术交流分享 xff0c 不做任何商业用途 如有不对之处 xff0c 请留言 xff0c 本人及时更改 1 安信可PB 03蓝牙模组入门之旅一 xff1a Windo
  • 安信可PB-03蓝牙模组入门之旅一:Windows SDK二次开发入门环境搭建,以及固件烧录。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写 xff0c 仅仅做个人技术交流分享 xff0c 不做任何商业用途 如有不对之处 xff0c 请留言 xff0c 本人及时更改 1 安信可PB 03蓝牙模组入门之旅一 xff1a Windo
  • 5G WiFi 安信可 BW16 模组 RTL8720DN 入门笔记 2:Linux 搭建二次开发SDK开发环境,点亮一盏LED灯。

    首先按照环境所依赖的包 xff1a sudo apt span class token operator span get install git wget libc6 span class token operator span i386
  • 2022年度总结:拒绝无效努力,实现破圈成长。

    在从毕业一直到现在 xff0c 每年年底我都会写一篇关于自己的从技术 商业 人情世故以及未来展望的博文 xff0c 以至于归纳每个时期的自己 xff0c 这是一个特别好的时代 xff0c 互联网的高速发展 xff0c 让信息连结变的更加方便
  • webpack与babel

    一 Bebal 1 Bebal是什么 访问bebel官网 xff08 https babeljs io xff09 xff0c 首页的介绍如下图所示 xff1a Babel是JavaScript编译器 现今 xff0c xff08 有了它
  • MFC消息处理[转]

    PreTranslateMessage作用和使用方法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的 xff0c 绝大多数本窗口的消息都要通过这里 xff0c 比较常用 xff0c 当需要
  • Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)

    分享知识 传递快乐 1 函数定义 linux shell 可以用户定义函数 xff0c 然后在shell脚本中可以随便调用 Shell 函数定义的语法格式如下 xff1a function funname 函数体 return int 格式
  • 产生死锁的必要条件

    死锁 指两个或两个以上的进程在执行过程中 xff0c 因争夺资源而造成的一种互相等待的现象 xff0c 若无外力作用 xff0c 它们都将无法推进下去 此时称系统处于死锁状态或系统产生了死锁 xff0c 这些永远在互相等竺的进程称为死锁进程
  • Proxifier设置代理上网详细操作

    分享知识 传递快乐 Proxifier配置上网代理 Proxifier 是一款功能非常强大的socks5客户端 xff0c 可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链 支持Xp xff0c Vista
  • NVIDIA Jetson系列刷机篇(2)之快速恢复

    在填坑NVIDIA Jetson系列开发版时难免有对系统环境造成严重污染的情况 xff0c 这时就要重新刷机了 拿起Jetson4下载刷机镜像解压等等 xff0c 安装依赖漫长的操作耗费一天就过去了 下面接上篇在刷完NVIDIA的主机器 u
  • 暴力推导 Beta 函数与 Gamma 函数关系式

    B x y 61 x y x 43 y 其中 x 61 43 0 e t t x 1 d t B x y 61 1 0 t x 1 1 t y 1 d t
  • 用PyQt5写了个音乐播放器

    首先先展示一下界面 xff08 不美观但好用 xff09 除了不能看歌词功能该有的都有 xff0c 作为本地播放器还挺好用的 xff0c 界面是用PyQt5做的 下面是源代码 xff1a span class token keyword i
  • STM32F4无人机动力旋翼拉力测试

    更多交流欢迎关注作者抖音号 xff1a 81849645041 目的 了解无人机电调 电机转速 旋翼拉力与油门给定信号之间的关系 xff0c 可以通过相关设备进行拉力测试 实验原理 飞机旋翼绕旋翼旋转轴旋转时 xff0c 每个叶片的工作类同
  • STM32F4无人机6轴运动处理组件MPU6050

    目的 学习MPU6050的原理 MPU6050初始化方法 原理 MPU6050是9轴运动处理传感器 它集成了3轴MEMS陀螺仪 xff0c 3轴MEMS加速度计 xff0c 以及一个可扩展的数字运动处理器DMP xff08 Digital
  • 基于STM32F030驱动BMP180气压传感器

    目的 了解气压传感器 BMP180 的驱动原理 xff0c 通过配置 STM32F030 的GPIO及 IIC通信时序 xff0c 采集气压传感器 BMP180的值 原理 在测量海拔高度时 xff0c 传统的做法是通过测量某一高度的大气压力
  • 10G大文件上传最全方案:秒传、断点续传、分片上传,包教会!

    上一篇 xff1a 麻了 xff01 Fastjson 再曝反序列化漏洞 前言 文件上传是一个老生常谈的话题了 xff0c 在文件相对比较小的情况下 xff0c 可以直接把文件转化为字节流上传到服务器 xff0c 但在文件比较大的情况下 x
  • vscode运行C/C++程序

    一 vsocde对C C 43 43 的支持 Visual Studio Code对C C 43 43 语言的支持由Microsoft C C 43 43 扩展程序提供 它使得C C 43 43 在Windows Linux和macOS等跨
  • KEIL下载键变灰色,ST-link无法下载程序

    昨天在调试板子时 xff0c ST LINK下载还是好好的 xff0c 今天开始调试程序 xff0c 突然发现 xff0c KEIL的下载键变成了灰色 xff0c 无法下载 xff0c 如下 xff1a 后面仔细核对了KEIL的设置 xff
  • C++编程中常遇到的问题

    1 路径中不能存在空格 2 for等循环结构中 xff0c 如果判断条件的变量是size t或者unsigned时 xff0c 最好不要采用 i 来递减变量 xff0c 因为这两种类型没有负数 3 引用的引用不可用 xff1a int am
  • keil 采用 makefile 实现编译

    1 说明 由于keil 软件需要收费 xff0c 故有许多公司或者个人希望能够使用makefile 实现编译功能 如此一来 xff0c 就可以脱离了keil 公司的限制 xff0c 自由开发 2 开发环境 xff08 1 xff09 win

随机推荐

  • ROS常用消息

    1 sensor msgs sensor msgs是存储传感器常用消息数据message的包 xff0c 提供各种消息数据message的转换方法并定义了常用传感器使用的消息类型message xff0c 如相机 激光扫描测距仪等 xff1
  • .net7 通过 JsonTranscoding 实现 gRPC 与 Web API 一鱼两吃

    目标 在一个网站内 xff0c 用一套proto即提供gPRC 调用 xff0c 又提供 Web API 调用 实现方法 根据微软官方James Newton King xff08 Newtonsoft json 作者 xff09 的文章
  • 滑模控制程序及Simulink仿真

    最近在看论文 xff0c 不太懂滑模控制是个什么东西 xff0c 便开始学习 使用了这篇文章的代码进行实现 https blog csdn net sinat 38887014 article details 103115218 不过这篇文
  • 飞行器设计大作业

    防空导弹主级燃料相对质量因数计算 问题描述 问题解答 详细实验报告及代码见链接 xff1a 飞行器设计大作业 MATLAB运行结果如下图所示
  • c++编程时为什么老是出现cout未定义

    include lt iostream gt using namespace std 加上这句 cout输出流类声明和定义都在iostream之中 对于非标准C 43 43 而言是iostream h 其名字位于std空间 xff0c 对于
  • webApp优化心得

    webapp性能优化 本文中提到的app前端采用的技术栈是Vue全家桶 43 原生js http请求优化 xff1a 场景1 xff1a 当用户操作过快时 xff0c 页面之间跳转时间缩短 xff0c 在网络状态不可控的情况下 xff0c
  • Win10 ctrl快捷键的全称

    Win10平台中 xff0c 以下快捷键在文本编辑器中通常有类似的作用 xff1a ctrl 的全称是 control xff0c 控制 ctrl 43 全称功能AAll全选CCopy复制选中的文本FFind在文本中查找指定的字符串NNew
  • 集成测试(自顶向下,自底向上,三明治)

    文章目录 集成测试 Integration test 集成测试方法和策略非渐增式集成渐增式集成 自顶向下集成自底向上集成三明治集成 集成测试 Integration test 也叫组装测试或联合测试 xff0c 是在单元测试的基础上 xff
  • FreeRTOS阅读记录-task相关

    使用FreeRTOS也很长时间了 xff0c 断断续续看过 xff0c 现在记录 xff0c 流程写出来不难 xff0c 难的是进行高度简洁的总结 在学校时 xff0c 看过UCOS II的代码 xff0c 由于版权问题 xff0c 不能使
  • DIY制作示波器的超详细教程:(一)我不是为了做一个示波器

    讲一个故事 xff1a 今年九月 xff0c 一个新学期的开始 xff0c 课很少 我是一个闲不住的人 xff0c 这样的日子很难熬 xff0c 想去电子市场逛逛 xff0c 但学校离市区有三十 多公里路 xff0c 终于无聊到周末了 和平
  • Mysql取2位小数,加百分号,结果加序号

    1 取2位小数 方式一 xff1a select truncate data total 2 实际使用中发现丢失精度 方式二 xff1a select convert data total decimal 10 2 推荐此方法 xff0c
  • 从入门到进阶,JAVA书籍的最佳阅读顺序!

    本文首发于知乎 xff0c 已获得1000 43 赞和收藏 原文链接 xff1a https www zhihu com question 269505829 answer 1791006152 先介绍下本人的情况 xff0c 希望对大家学
  • 设计数据密集型应用-C5-主从架构及同步延迟问题

    本文是 设计数据密集型应用 第5章学习笔记 什么是Replication Replication是在多台机器上维护的相同的数据 xff0c 即副本 保存副本的原因有以下几种 xff1a 减小延迟 xff1a 使得地理位置上数据离访问者更近
  • 第一条Pulsar消息发送

    什么是Pulsar pulsar是一个多租户 高性能server to srever消息解决方案 xff0c 最初由雅虎开发 xff0c 现在由apache维护 Pulsar的核心特性 xff1a 多集群云原生支持低延迟 良好的伸缩性多语言
  • 2014找工作总结-机会往往留给有准备的人

    转发请注明出处 xff1a 2014找工作总结 机会往往留给有准备的人 计算机专业同学的充电站 CSDN博客 其实我的求职过程在十一之前就已经结束了 xff0c 总体讲比较顺利 参加面试的几家公司基本都拿到了offer xff0c 分别是阿
  • 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现

    通过我这些天用C 43 43 读写bmp图像的经历 xff0c 摸索再摸索 xff0c 终于对bmp文件的结构 操作有了一定的了解 xff0c 下面就大概介绍bmp图片纯C 43 43 的读取 旋转和保存的实现过程 要用C 43 43 读取
  • 【数字图像处理】直方图均衡化详解及编程实现

    直方图均衡化的英文名称是Histogram Equalization 图像对比度增强的方法可以分成两类 一类是直接对比度增强方法 另一类是间接对比度增强方法 直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法 直方图拉伸是通过对比度拉
  • 软链接和硬链接到底有啥作用和区别

    前言 xff1a 在网上搜索了好久 xff0c 看了很多博客 xff0c 某度知道等等 关于软硬链接的解释都太模糊 xff0c 还有什么i节点 xff0c 跨分区根本弄不明白 xff0c 在查阅了书籍和询问老师后决定自己写一篇简单的博文 x
  • 【GPU编程】体绘制传输函数-分类(Volume Rendering Transfer function:Pre- VS Post-Classification)

    在科学可视化中 xff0c 我们所获得的体数据集经常是代表一些光学上的不同物理属性的单值 通常没有可行的方法可以从这样的数据中获得发射和吸收属性 因此用户必须采用某种映射方法给数据值分配光学属性值来决定数据中的不同结构的模样 这离的映射就被
  • 【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式

    GL TRIANGLE STRIP绘制三角形方式很多时候令人疑惑 xff0c 在这里对其运作机理进行解释 一般情况下有三种绘制一系列三角形的方式 xff0c 分别是GL TRIANGLES GL TRIANGLE STRIP和GL TRIA