
opengl
文章平均质量分 63
峻峰飞阳
每一分钟让思维跳跃驰骋,多警醒,少麻木,多联想,少沉思,多类比,少钻尖,多读书,多总结。
展开
-
Opengl的VAO个人理解
使用Opengl也有一段时间了,但是对于VAO,Vertex Array Object 一直是有点模糊的概念,今天又重新梳理了一下,看了些博客和官方文档。理解又加深了一点,现在记录如下: 几个关键概念: 1,VAO : Vertex Array Object 2,VBO : Vertex Buffer Object 几个关键函数: 1,glBindVertexArray 2,glBindBuffer(GL_ARRAY_BUFFER,vbo); 3,glEnableVertexAttribArr转载 2022-05-29 16:35:59 · 1181 阅读 · 1 评论 -
glActiveTexture和glBindTexture的关系
今天在做glsl渲染yuv图像时,因为对glActiveTexture和glBindTexture的不熟,遇到了麻烦。经过试验,有了新的理解,并基于此理解解决了问题。 之前用到纹理,都是传GL_RGB或者GL_RGBA类型的数据进去的,只需要使用一张纹理,完全不用设置glActiveTexture的,所以对glActiveTexture的理解很浅 渲染yuv就不同了。 ffmpeg解码出来的yuv一般是以yuv420p的格式,分别存放在AVFrame->data二维数组中。其中 data[0]转载 2022-05-29 16:09:29 · 376 阅读 · 0 评论 -
glBlendFunc()混合
OpenGL 会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜 色。(也可以不是相加,新版本的OpenGL可以设置运算方式,包括加、减、取两者中较大的、取两者中较小的、逻辑运算等,但我们这里为了简单起见,不讨 论这个了) 下面用数学公式来表达一下这个运算方式。假设源颜色的四个分量(指红色,绿色,蓝色,a转载 2013-07-01 10:25:38 · 1417 阅读 · 0 评论 -
纹理坐标
当我们绘制一个三角形时,只需要指定三个顶点的颜色。三角形中其它各点的颜色不需要我们指定,这些点的颜色是OpenGL自己通过计算得到的。在我们学习OpneGL光照时,法线向量、材质的指定,都是只需要在顶点处指定一下就可以了,其它地方的法线向量和材质都是OpenGL自己通过计算去获得。纹理的使用方法也与此类似。只要指定每一个顶点在纹理图象中所对应的像素位置,OpenGL就会自动计算顶点以外的其它点在纹转载 2013-07-23 15:54:13 · 1150 阅读 · 0 评论 -
通过cocos2d-x的CCGLProgram和CCShaderCache的实现来分析OpenGL ES中的Shader编程
在OpenGL ES中,Shader是着色器,包括两种:顶点着色器(Vertex Shader)和片元着色器(Fragment Shader)。每个program对象有且仅有一个Vertex Shader对象和一个Fragment Shader对象连接到它。 Shader和Program编程步骤: 1. 创建Shader 1)编写Vertex Shader和Frag原创 2013-07-31 13:45:48 · 6330 阅读 · 0 评论 -
GLSL 在OpenGL中向shader传递信息
引言 一个OpenGL程序可以用多种方式和shader通信。注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存。 OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了。例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样。 不过,使用Ope转载 2013-07-31 11:14:02 · 1111 阅读 · 0 评论 -
GLSL 在OpenGL中向shader传递信息
引言 一个OpenGL程序可以用多种方式和shader通信。注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存。 OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了。例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样。 不过,使用Ope转载 2013-07-31 11:14:46 · 1900 阅读 · 0 评论 -
【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。 一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。 如下图所示: GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5转载 2013-12-27 09:21:03 · 1226 阅读 · 0 评论