最近在学习OpenGL ES 3.0 相关技术,写了一个Demo工程,记录学习。
三篇完整版链接:
Debug APP 下载地址:
主要是将下面来源的特效,自己手动敲一遍,熟悉OpenGL ES相关API和GLSL语法以及C++语法
关于 OpenGL ES的相关知识, 可以参考下面的博客查看:
颜色在片段着色器写死的红色
颜色由glVertexAttrib4fv传给片段着色器
使用了顶点缓冲对象(Vertex Buffer Objects, VBO) 和 EBO 技术
使用了顶点缓冲对象(Vertex Buffer Objects, VBO) 、 EBO 和 映射缓冲区对象(Map Buffer) 技术
使用了 VBO 、 EBO 和 VAO 技术
一个使用VBO绘制,另外一个不使用VBO绘制
使用到了MVP矩阵(模型矩阵,观察矩阵和投影矩阵)技术
学习如何绘制一个2D纹理
学习如何绘制一个立方体贴图Cubemap
学习纹理过滤和mip贴图(mipmapping)知识
学习如何使用多重纹理
学习如何用点精灵渲染粒子爆炸效果
学习 使用变化反馈的粒子系统
学习实现3D纹理噪音
学习 MRT(多重渲染目标) 技术
学习 用顶点纹理读取渲染地形 技术
使用深度纹理的阴影
学习绘制三角形以及使用矩阵变化进行旋转的效果
学习 使用两个程序对象分别绘制点和立方体,并且使用矩阵变化进行旋转的效果
这是在上面案例的基础上添加每像素照明
这是在上面案例的基础上添加的基本纹理
展示触摸屏幕切换 混合模式的效果
本课程将介绍OpenGL ES中可用的不同纹理过滤模式
学到的知识点:立方体的数量可以改变,可以切换是否使用VBOs,Native可以调用Java方法
本课程将介绍索引缓冲区对象(IBO)
纹理映射就是通过为图元的顶点坐标指定恰当的纹理坐标,通过纹理坐标在纹理图中选定特定的纹理区域,最后通过纹理坐标与顶点的映射关系,将选定的纹理区域映射到指定图元上
YUV 图不能直接用于显示,需要转换为 RGB 格式,而 YUV 转 RGB 是一个逐像素处理的耗时操作,在 CPU 端进行转换效率过低,这时正好可以利用 GPU 强大的并行处理能力来实现 YUV 到 RGB 的转换
这个案例学习如何渲染YUV图像
学习 FBO(帧缓冲区对象) 进行离屏渲染
学习 使用EGL渲染 技术
单指可以对图片进行旋转,双指可以进行缩放
学习冯氏光照模型(Phong Lighting Model),它由三种元素光组成,分别是环境光(Ambient Lighting)、散射光(Diffuse Lighting)及镜面光(Specular Lighting)
学习冯氏光照模型(Phong Lighting Model)的多光照实例
OpenGL ES 实例化(Instancing)是一种只调用一次渲染函数就能绘制出很多物体的技术,可以实现将数据一次性发送给 GPU ,告诉 OpenGL ES 使用一个绘制函数,将这些数据绘制成多个物体
OpenGL ES 模板测试与深度测试类似,主要作用是利用模板缓冲区(Stencil Buffer)所保存的模板值决定当前片段是否被丢弃,且发生于深度测试之前。
OpenGL ES 混合本质上是将 2 个片元的颜色进行调和,产生一个新的颜色。 OpenGL ES 混合发生在片元通过各项测试之后,准备进入帧缓冲区的片元和原有的片元按照特定比例加权计算出最终片元的颜色值,不再是新(源)片元直接覆盖缓冲区中的(目标)片元。
再次实现一个粒子效果,不一样的实现方式
使用立方体贴图实现一个天空盒效果
OpenGL PBO(Pixel Buffer Object),被称为像素缓冲区对象,主要被用于异步像素传输操作。PBO 仅用于执行像素传输,不连接到纹理,且与 FBO (帧缓冲区对象)无关。
接下来几个案例都是ShaderToy上的案例,移植到Android端来展示
学习如何绘制 贝塞尔曲线
学习如何实现 大眼效果
学习如何实现 瘦脸效果
学习如何实现 大头效果
学习如何实现 头部晃动效果
学习如何实现 可视化实时音频 效果
学习如何实现 刮刮卡 效果
学习如何实现 3D 阿凡达(Avatar)效果
学习如何实现 动态(水波纹)涟漪 效果
再一次学习 MRT(多重渲染目标) 技术
学习 FBO Blit 技术
学习uniform 缓冲区对象,即 UBO技术
学习 OpenGL实现RGB到YUV的图像格式转换技术
学习 MULTI THREAD RENDER 技术
学习 OpenGL ES 文字渲染 技术
学习 人像留色技术:人体区域保留彩色,人体区域之外灰度化。
学习如何使用模型加载库Assimp来加载3D模型
接下来几个案例都是转场动画GLTransitions网站上的特效,移植到Android端来展示 Android 图片转场和轮播特效
学习 Android 图片转场和轮播特效 如何实现
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。