OpenGL值绘制三角形的方式常用的有三种,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN,其效果如依次是:

从左起:第一个方式是GL_TRIANGLES,第二个是GL_TRIANGLE_STRIP,第三个是GL_TRIANGLE_FAN。(一般规定逆时针卷绕为正方向)

GL_TRIANGLES:每三个顶点绘制一个三角形,如果顶点数量不是3的倍数,则忽略最后一个或两个顶点。

GL_TRIANGLE_STRIP:有两种情况,

(1)当前顶点序号n是偶数时,三角形三个顶点的顺序是(n - 2, n - 1, n )。

(2)当前顶点序号n是奇数时,三角形三个顶点的顺序是(n - 1, n - 2, n)。

这两种情况,保证了采用此种渲染方式的三角形顶点的卷绕顺序。

例如:对于v2顶点,其序号为2,此时三个顶点的顺序是(v0, v1, v2);对于v3顶点,其序号为3,此时三个顶点的顺序是(v2, v1, v3),均是逆时针卷绕。

GL_TRIANGLE_FAN:一系列顶点中的第一个点为中心点,其他顶点为边缘点,绘制一系列组成扇形的相邻三角形。例如三角形(v0, v1, v2)、(v0, v2, v3)。

OpenGL中的渲染方式—— GL_TRIANGLE_STRIP的更多相关文章

  1. OpenGL中GLSL渲染茶壶光照完整程序

    顶点着色器VertexShader.txt: uniform vec3 lightposition;//光源位置 uniform vec3 eyeposition;//相机位置 uniform vec ...

  2. OpenGL中的拾取模式( Picking)

    1. Opengl中的渲染模式有三种:(1)渲染模式,默认的模式:(2)选择模式, (3)反馈模式.如下 GLint glRenderMode(GLenum mode) mode可以选取以下三种模式之 ...

  3. 通过OpenGL理解前端渲染原理(1)

    一.OpenGL OpenGL,是一套绘制3D图形的API,当然它也可以用来绘制2D的物体.OpenGL有一大套可以用来操作模型和图片的函数,通常编写OpenGL库的人是显卡的制造者.我们买的显卡都支 ...

  4. CSharpGL(26)在opengl中实现控件布局/渲染文字

    CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( ...

  5. OpenGL 像素在内存中的排列方式

    在OpenGL中所有和图像像素有关的API(包括glTexImage2D, glReadPixels等)第一个像素从左下角开始,从左到又一次排列,满了从下到上排列. 这个和Windows 下惯用的左上 ...

  6. django中url路由配置及渲染方式

    今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...

  7. OpenGl中使用着色器的基本步骤及GLSL渲染简单示例

    OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...

  8. OpenGL中常用的函数

    OPengl的官方文档如下:https://www.opengl.org/sdk/docs/man4/ void glGetIntegerv(   GLenum pname,      GLint * ...

  9. GLSL 在OpenGL中向shader传递信息【转】

    http://blog.csdn.net/hgl868/article/details/7872219 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shade ...

随机推荐

  1. sql将服务器名称换成本地IP

    安装sql后服务器名称默认为电脑的名称,而想要换成习惯用的本地ip也是可以的. 将配置管理中的MSSQLSEVER协议中的TCP/IP启用,并且打开其属性,找到IP地址,添加本地IP,并设置成启用,然 ...

  2. LINUX 录制屏幕制作gif动态图工具peek

    sudo add-apt-repository ppa:peek-developers/stable sudo apt update sudo apt install peek linux 压缩工具改 ...

  3. Vue - v-for 的延伸用法

    1.v-for 合并标签template 一起使用 2.vue.set 1.v-for 合并标签template 一起使用 之前在设计table的时候,如果使用v-for ,会直接放在tr里面,一次产 ...

  4. Neo4j图数据库使用

    最近在处理一些图的数据,主要是有向图,如果图的节点不是特别大可以直接加载到内存里来处理,但是当图的节点个数特别大时,内存就放不下了:我 们牵涉到的图的节点数最大可以达到数亿个节点,已经超出的机器内存的 ...

  5. 1159 Palindrome

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 68562   Accepted: 23869 Desc ...

  6. js实现颜色渐变

    #grad { background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */ background: -o-linear ...

  7. PHP之缓存雪崩,及解决方法(转)

    一.什么是缓存雪崩缓存雪崩就是指缓存由于某些原因(比如 宕机.cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难. 下面的就是一个 ...

  8. 深入理解synchronized方法同步的是方法还是对象?

    一.运用synchronized关键字 首先我们来看看一个多线程中线程不安全的列子 代码如下: 共享数据类: public class NotSynchronizated extends Thread ...

  9. Python全栈之路----常用模块----os模块

    os模块提供了很多允许你的程序和操作系统直接交互的功能 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() #test.py import os print(os.getc ...

  10. Python(一)—— 控制流:if & for & while

    基操 编程语言类 编译型 程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了.程序执行效率高,依赖编译器,跨平台性差些.缺点:编译之后 ...