![](https://img-blog.csdnimg.cn/20190903220512527.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenGL ES
文章平均质量分 88
OpenGL es学习之旅
ikata
这个作者很懒,什么都没留下…
展开
-
OpenGL ES:矩阵变换(平移、旋转、缩放)
总的变换矩阵:mvpMatrix = projectionMatrix * viewMatrix * modelMatrix;投影矩阵(projectrionMatrix): //根据屏幕宽高计算 float ratio = (float) width / height; //计算投影矩阵 Matrix.frustumM(mProjectionMatrix, 0...原创 2019-07-01 20:21:11 · 5852 阅读 · 0 评论 -
OpenGL ES:基本形状的绘制(三角形、正方形、正方体)
三角形的绘制编写顶点着色器和片段着色器代码//顶点着色器//声明OpenGL es版本#version 300 es//in 代表输入属性//顶点坐标属性layout(location = 0) in vec3 aPos;//颜色属性layout(location = 1) in vec3 aColor;//out 代表传递给片段着色器的属性out vec3 color...原创 2019-09-03 21:57:18 · 1472 阅读 · 0 评论 -
OpenGL ES:视频加滤镜后导出
视频加滤镜播放:MediaCodec解码——>OpenGL es——> GLSurfaceView视频滤镜合成导出:MediaCodec解码——>OpenGL es——> MediaCodec编码大体来说就是OpenGL渲染后的输出不一样,需要使用编码器编码保存到本地,其次没有了GLSurfaceView为我们创建的上下文环境,因此我们需要使用相关的API初始化...原创 2019-08-04 17:22:35 · 1299 阅读 · 2 评论 -
OpenGL ES:学习总结
学习阶段(一):OpenGL es基础的学习理论:OpenGL es渲染流程着色器的编写图元的绘制VAO、VBO、EBO、FBO纹理的绘制矩阵变换滤镜原理、卷积核实践:基本形状的绘制(三角形、正方形、正方体)纹理的绘制(绘制图片到图元、混合纹理绘制)矩阵的变换(缩放、平移、旋转、MVP矩阵)图像加滤镜效果(黑白、放大、四格)问题:绘制纹理遇见了大小比例不一被...原创 2019-07-21 19:57:01 · 658 阅读 · 0 评论 -
OpenGL ES:EGL环境创建
在Android平台上,虽说系统自带的GLSurfaceView这个控件中已经帮我们创建好EGL环境了,一般来说使用GLSurfaceView就可以满足我们的需求了。而当我们用不着GLSurfaceView的时候,那又如何自己创建EGL环境呢?因此就来探究下 EGL环境的创建。在Java层,EGL封装了两套框架位于javax.microedition.khronos.egl包下的EGL10...原创 2019-07-19 15:45:31 · 1045 阅读 · 0 评论 -
OpenGL ES:配合MediaCodec硬解码渲染(视频加滤镜播放)
MediaCodec 解码后的视频格式为yuv,而OpenGL所能渲染的格式为rgb,因此我们需要使用扩展库中的扩展纹理GLES11Ext.GL_TEXTURE_EXTERNAL_OES而它的作用就是实现YUV格式到RGB的自动转化。片段着色器中需使用扩展采样器:uniform samplerExternalOES sTexture原理步骤:生成一个oes纹理,并且以此得到一个S...原创 2019-07-11 10:09:47 · 3895 阅读 · 1 评论 -
OpenGL ES:缓冲对象(VBO、VAO、EBO)
顶点缓冲对象(Vertex Buffer Objects,VBO) 顶点缓冲对象VBO是在显卡存储空间中开辟出的一块内存缓存区,用于存储顶点的各类属性信息,如顶点坐标,顶点法向量,顶点颜色数据等。在渲染时,可以直接从VBO中取出顶点的各类属性数据,由于VBO在显存而不是在内存中,不需要从CPU传输数据,处理效率更高。 所以可以理解为VBO就是显存中的一个存储区域,可以保持大量的顶...原创 2019-07-14 20:39:55 · 523 阅读 · 0 评论 -
OpenGL ES:注意点
只申明一个采样器默认激活了采样单元并且绑定了。声明俩个或俩个以上需要将采样器绑定到相应的采样单元并激活再进行纹理的绑定。//x代表采样器要绑定的纹理单元序号 GLES30.glUniform1i(GLES30.glGetUniformLocation(mProgram, "texture0"),0); GLES30.glUniform1i(GLES30.gl...原创 2019-07-03 17:16:06 · 264 阅读 · 0 评论 -
OpenGL ES:滤镜效果(黑白、4宫格、放大)
正如我们所知,我们对OpenGL es 的操作也只是编写相应的着色器从而达到相应的图形或纹理。而所谓的滤镜也只是通过对着色器的编写,也是对某个像素或坐标做特定的一些变换,从而达到滤镜的效果。通过前面对顶点着色器、片段着色器、纹理的学习之后,也对OpenGL es有了一定的了解。可通用的顶点着色器:#version 300 es//变换矩阵uniform mat4 uMVPMatrix...原创 2019-07-03 16:59:18 · 1478 阅读 · 0 评论 -
OpenGL ES:相机预览添加滤镜效果
经过前面图片添加滤镜效果的实践,相机预览无非也就是将每一帧的bitmap放到OpenGL中去渲染。所以很容易想到如下方案:方案A 使用TextureView用于相机预览,TextureView表面再盖上一层GLSurfaceView用与OpenGL ES的渲染输出,从TextureView中获取每一帧的Bitmap交给OpenGL ES渲染到GLSurfaceView上。很容易看出,方案...原创 2019-09-04 17:02:02 · 783 阅读 · 0 评论