![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGL ES
文章平均质量分 75
zouzhiheng
这个作者很懒,什么都没留下…
展开
-
OpenGL ES 3.0(一)绘制第一个三角形
OpenGL 概述绘制三角形之前,需要对 OpenGL 有一个大致的了解,因此这里引用了 learnopengl-cn.github.io 里的内容:OpenGL 一般被认为是一个API,然而并不是,OpenGL 仅仅是一个由 Khronos 组织制定并维护的规范。OpenGL 规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现的,将由 OpenGL 库的开...原创 2018-08-07 22:42:32 · 3234 阅读 · 0 评论 -
OpenGL ES 3.0(二)着色器语言
着色器版本指定#version 300 es如果没有指定,则默认为 1.00,这是 OpenGL ES 2.0 使用的版本,在 OpenGL ES 3.0 中,制定规范的作者决定匹配 OpenGL ES 和 ES SL 的版本,因此直接从 1.0 跳到了 3.0。变量类型 标量 float, int, uint, bool 基于标量的数据类型 浮点向量...原创 2018-08-11 21:41:14 · 1188 阅读 · 0 评论 -
OpenGL ES 3.0(三)EGL 概述
OpenGL ES 定义了一个渲染图形的规范,但没有定义窗口系统。为了让 GLES 能够适合各种平台,GLES 将与知道如何通过操作系统创建和访问窗口的库,即 EGL 结合使用。在使用 GLES 进行任何操作之前,必须先创建一个 OpenGL 上下文,这是通过 EGL 实现的。EGL 提供了以下机制: 1) 和设备的本地窗口系统通信 2) 查询绘图表面的可用类型及配置 ...原创 2018-08-11 21:53:22 · 4409 阅读 · 0 评论 -
OpenGL ES 3.0(四)图元、VBO、VAO
图元OpenGL ES 3.0 可供绘制的图元类型有: 1) Triangles,三角形 2) Lines,线 3) Point sprites,点三角形绘制三角形时,可供选择的绘制方式有:GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN 三种,效果如下:即:1) GL_TRIANGLES,共有 ...原创 2018-08-11 21:59:45 · 1171 阅读 · 0 评论 -
OpenGL ES 3.0(五)纹理
我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每个模型都会需求更多的顶点,每个顶点又需求一个颜色属性。因此,一般情况下会使用纹理达到相同的效果。纹理可以认为是一张可以贴到物体(图元)表面上的图片/花纹/贴纸,使物体(图元)变得生动、精细。生成纹理对象、绑定并加...原创 2018-08-11 22:12:37 · 1501 阅读 · 0 评论 -
OpenGL ES 3.0(六)缓冲区对象、PBO、FBO
缓冲区缓冲区对象创建:Gluint pixBuffObjs[1];glGenBuffers(1, pixBuffObjs);绑定:glBindBuffer(GL_PIXEL_PACK_BUFFER, pixBuffObjs[0]);缓冲区对象的绑定点有: Target Name Description GL_ARRAY_BUFFER ...原创 2018-08-18 11:14:13 · 3703 阅读 · 0 评论 -
OpenGL ES 3.0(七)图像处理概述
图像处理的基本原理亮度调节亮度调节有非线性、线性两种实现方式。非线性亮度调节的实现非常简单,伪代码如下:byte* image = loadImage();byte* r, g, b = interlaceImage(image);int brightness = 3;r += brightness;g += brightness;b += brightness;线性...原创 2018-09-01 23:04:02 · 1806 阅读 · 0 评论 -
OpenGL ES 3.0(八)实现带水印的相机预览功能
着色器代码这次准备在 Android 上实现一个带水印的相机预览功能,因此需要两个纹理,一个用于相机预览,一个用于显示水印,顶点着色器如下:#version 300 eslayout(location=0) in vec4 aPosition;layout(location=1) in vec4 aCameraTexCoord;layout(location=2) in vec4 ...原创 2018-09-01 23:34:40 · 2008 阅读 · 3 评论 -
OpenGL ES 3.0(九)实现美颜相机功能
着色器代码虽然知道磨皮应该用双边滤波算法,但实际上我并不懂具体的代码编写过程,因此着色器代码用的是 GitHub 上找的一个项目:WSLiveDemo ,顶点着色器如下:#version 300 eslayout(location=0) in vec4 aPosition;layout(location=1) in vec4 aTexCoord;uniform mat4 mMat...原创 2018-09-02 00:07:23 · 3424 阅读 · 1 评论