
opengl
Captain--Jack
这个作者很懒,什么都没留下…
展开
-
矩阵旋转、欧拉角旋转、四元数旋转的优缺点
表示旋转的方法有很多种,如矩阵、欧拉角、四元数,他们在不同的场合各有优缺点,下面是他们的优缺点对比:一、矩阵旋转:优点:旋转轴可以是任意向量缺点:旋转其实只需要知道一个向量+一个角度(共4个信息值),但矩阵却用了16个元素(矩阵法消耗时间和内存)二、欧拉角旋转优点:容易理解,形象直观;表示更方便,只需要三个值(分别对应x、y、z轴的旋转角度)缺点:欧拉角这种方法是要按照一个固定的坐标轴的顺序旋转的,因此不同的顺序会造成不同结果;欧拉角旋转会造成万向锁现象,这种现象的发生就是由于上述固定的坐标轴旋原创 2020-09-14 11:26:33 · 4520 阅读 · 0 评论 -
opengl 中的透视除法和NDC
归一化设备坐标OpenGL的坐标空间是[-1, 1],x,y轴超过该区域的都将被切掉 看不见。viewport像素是 1280 X 720,归一化后坐标空间从[1280X720],映射到[-1,1]问题:导致物体变形,因为 x,y轴坐标长度都是1 - (-1)= 2,但x,y轴像素数量不同。y轴像素少,单位坐标就会变长。办法:设短的轴映射为1,长的轴根据与短轴的比例 映射。[0, 128...原创 2019-11-26 14:15:35 · 6120 阅读 · 0 评论 -
EGL 介绍和使用
一、简介EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,且它最好是与平台无关的。因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁。二、功能EGL AP...转载 2019-11-25 12:28:34 · 1131 阅读 · 0 评论 -
glBindAttribLocation 和 glGetAttribLocation
在将数据(顶点、纹理等)传送给GPU之前,我们需要获取到相对应缓冲的索引,之前我都是使用GLintglGetAttribLocation(GLuintprogram,const GLchar *name);其中,program指定查询的程序对象,name指定要查询位置的属性变量的名称,返回的就是属性变量的位置。glGetAttribLocation查询由program指定的先前链接...原创 2019-11-25 12:12:28 · 2820 阅读 · 3 评论 -
OpenGL函数解析-glGet
名称glGet - 返回所选参数的值C规范voidglGetBooleanv( GLenumpname, GLboolean *params);voidglGetFloatv( GLenumpname, GLfloat *params);voidglGetIntegerv( GLenumpname, GLint *...转载 2019-10-11 14:50:34 · 1700 阅读 · 0 评论 -
OpenGL函数解析-glGet
glGetNAMEglGetBooleanv,glGetDoublev,glGetFloatv,glGetIntegerv-- return the value or values of a selected parameterC SPECIFICATIONglGetBooleanv(GLenum pname, GLboolean *params)glGetDouble...转载 2019-10-11 14:48:14 · 1435 阅读 · 0 评论 -
glFrontFace惹得祸
先介绍下glFrontFace,glFrontFace()是opengl的初级命令,有两个基本作用,一是可以用来用在某些特殊场合(比如剔除面片),二是可以提高渲染效率。voidglFrontFace(GLenummode);作用是控制多边形的正面是如何决定的。在默认情况下,mode是GL_CCW。mode的值为:GL_CCW 表示窗口坐标上投影多边形的顶点顺序为逆时针方向的...原创 2019-10-11 14:46:30 · 1018 阅读 · 0 评论 -
推荐一个opengl系统学习的教程
由于opengl的版本特别多,而且opengl 1.x和opengl2.x及以后的版本差别有特别大,刚开始自学的时候难免会走一些误区,发现学的并不是自己所用的。前者是固定管线,渲染流程的相关概念都比较老,对渲染的流程做了“封装”,于此带来的好处是简单,容易上手,不好的地方也是显而易见,想要修改渲染流程的东西,就变得异想天开了。随着发展,很多效果使用固定管线实现不了,为了更灵活,实现更多特效...原创 2019-07-02 18:02:20 · 6086 阅读 · 0 评论 -
一篇通俗易懂的讲解OpenGL ES的文章
电脑或者手机上做图像处理有很多方式,但是目前为止最高效的方法是有效地使用图形处理单元,或者叫 GPU。你的手机包含两个不同的处理单元,CPU 和 GPU。CPU 是个多面手,并且不得不处理所有的事情,而 GPU 则可以集中来处理好一件事情,就是并行地做浮点运算。事实上,图像处理和渲染就是在将要渲染到窗口上的像素上做许许多多的浮点运算。 通过有效的利用 GPU,可以成百倍甚至上千倍地提高手机上转载 2016-12-03 20:18:05 · 1083 阅读 · 0 评论 -
Opengl 和 GLSL版本对应关系
来自:https://github.com/mattdesl/lwjgl-basics/wiki/GLSL-VersionsYou can use the #version command as the first line of your shader to specify GLSL version:#version 120void main() { gl_FragC转载 2016-12-03 20:13:31 · 8191 阅读 · 0 评论