OpenGL中的渲染方式—— GL_TRIANGLE_STRIP
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的更多相关文章
- OpenGL中GLSL渲染茶壶光照完整程序
顶点着色器VertexShader.txt: uniform vec3 lightposition;//光源位置 uniform vec3 eyeposition;//相机位置 uniform vec ...
- OpenGL中的拾取模式( Picking)
1. Opengl中的渲染模式有三种:(1)渲染模式,默认的模式:(2)选择模式, (3)反馈模式.如下 GLint glRenderMode(GLenum mode) mode可以选取以下三种模式之 ...
- 通过OpenGL理解前端渲染原理(1)
一.OpenGL OpenGL,是一套绘制3D图形的API,当然它也可以用来绘制2D的物体.OpenGL有一大套可以用来操作模型和图片的函数,通常编写OpenGL库的人是显卡的制造者.我们买的显卡都支 ...
- CSharpGL(26)在opengl中实现控件布局/渲染文字
CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( ...
- OpenGL 像素在内存中的排列方式
在OpenGL中所有和图像像素有关的API(包括glTexImage2D, glReadPixels等)第一个像素从左下角开始,从左到又一次排列,满了从下到上排列. 这个和Windows 下惯用的左上 ...
- django中url路由配置及渲染方式
今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...
- OpenGl中使用着色器的基本步骤及GLSL渲染简单示例
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...
- OpenGL中常用的函数
OPengl的官方文档如下:https://www.opengl.org/sdk/docs/man4/ void glGetIntegerv( GLenum pname, GLint * ...
- GLSL 在OpenGL中向shader传递信息【转】
http://blog.csdn.net/hgl868/article/details/7872219 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shade ...
随机推荐
- Future模式介绍及入门使用
FutureClient代码实现: package com.hjf.future; public class FutureClient { /** * 请求客户端 * @param queryStr ...
- repeter 控制一行中显示几条内容
repeter 控制一行中显示几条内容 <asp:Repeater ID="Repeater1" runat="server" DataSourceID ...
- 什么是Maven项目
1.通俗理解Maven:https://blog.csdn.net/shuzhe66/article/details/45009175 个人总结: Maven项目会有pom文件! 当前的项目需要依赖其 ...
- JAVA高级篇(一、JVM基本概念)
一.什么是JVM VM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机. JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候J ...
- 【Java】字节数组转换工具类
import org.apache.commons.lang.ArrayUtils; import java.nio.charset.Charset; /** * 字节数组转换工具类 */ publi ...
- Python全栈之路----递归
alex博客中递归的博文 我之前确实没讲明白递归这个东西 递归就是在函数的运行过程中调用自己. 但递归不断调用自己是有限度的,默认限度为1000.函数不断被压进栈,当超过递归限度时会造成栈溢出 ...
- 批量将某一目录下的.py文件改为.txt格式文件
#!/usr/env/python#-*- coding:utf-8 -*-#批量将某一目录下的.py文件改为.txt格式文件import os,os.pathfile_list = os.listd ...
- ios-屏幕适配(代码)
由于第一个项目中98%的界面都用到UITableView,所以适配仅判断此.知道手工敲代码的繁复,遂传一部分,如果有更优的方法,欢迎提出. 如下图,图中提到的宏定义是在prefix.pch预编绎文件里 ...
- [Java] 資料輸入的差異性(System.in、BufferedReader、Scanner)
一.System.in System.in提供的read方法每次只能讀取一個字節的數據,不實用 二.BufferedReader BufferedReader類位於java.io包中,使用要加上 im ...
- How to create an rpm package
转自:https://linuxconfig.org/how-to-create-an-rpm-package Rpm is both the package manager and the pack ...