音视频开发进阶

OpenGL 之 GPUImage 源码分析

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/2EeI91pu6y6Z7pnLPToXYA GPUImage 是 iOS 上一个基于 OpenGL 进行图像处理的开源框架,后来有人借鉴它的想法实现了一个 Android 版本的 GPUImage ,本文也主要对 Android 版本的 GPUImage 进行分析。

《OpenGL ES 3.x 游戏开发》碰撞检测之 AABB 包围盒

学习笔记内容摘录

在 OpenGL 的世界模型中,同时绘制了多个物体,那么怎么去检测物体之间是否触碰了,不同于在平面之间的触碰,OpenGL 是在三维世界里面的触碰,接下来就继续深入理解 OpenGL 中的碰撞检测相关知识~~~

《OpenGL ES 3.x 游戏开发》光照系列之效果混合

学习笔记内容摘录

在前面的系列文章中,分别介绍了 OpenGL 的环境光、散射光、镜面光。 现在尝试将这些光照效果混合起来,让整个场景显得更加逼真。 具体的效果如下:

《OpenGL ES 3.x 游戏开发》光照系列之镜面光

学习笔记内容摘录

在前面的文章中介绍了 OpenGL 的环境光和散射光,现在就是最后一个镜面光了。

《OpenGL ES 3.x 游戏开发》 光照系列之散射光

学习笔记内容摘录

在前面的文章中介绍了 OpenGL 中的环境光,现在就是散射光了。

《OpenGL ES 3.x 游戏开发》光照系列之环境光

学习笔记内容摘录

在 OpenGL 中使用光照。

OpenGL 深度测试与精度值的那些事

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/PpLzxm7hPHDbaQLmAniCzQ 在 OpenGL 世界里,使用深度测试可以来防止被阻挡的面渲染到其他面的前面。 直接看一个没有使用深度测试的绘制: 按照计划是绘制一个封闭的立方体,六个面都是有的,可从上面的效果来看并不是,立方体的有些面丢失了,只有后面的那 …

OpenGL 优化项之面剔除和注意点

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/mMUS1ewazFqCqtRgOchDYw 现在我们用 OpenGL 绘制了如下的立方体: 不管我们怎么旋转立方体,从任何一个方向去看它,最多都只能看到三个面。 那么对于 OpenGL 来说,那看不到的另外三个面完全可以不用绘制它,从而提高绘制的性能。

《OpenGL ES 3.x 游戏开发》 顶点数组对象 VAO 的使用

学习笔记内容摘录

在之前使用 OpenGL 顶点缓冲区 VBO 的使用 为顶点坐标、纹理坐标分别绑定了顶点缓冲区,并且在 onDrawFrame 方法里面也要分别为顶点坐标、纹理坐标指定数据。 这就存在了一些重复的操作。 在 OpenGL ES 3.0 可以使用顶点数组对象来解决这一问题。

《OpenGL ES 3.x 游戏开发》顶点缓冲区 VBO 的使用

学习笔记内容摘录

在之前的绘制过程中,首先都需要将物体的顶点数据保存在内存中,然后 glDrawArrays 或 glDrawElements 绘制前,将顶点数据送入到显存中,这样会存在 I/O 开销较大的问题,性能也不够好。 可以将顶点数据存放在顶点缓冲区中,就不需要在每次绘制前把顶点数据复制进显存,而是在初始化顶点缓冲区对象时一次性将顶点数据送入显存,每次绘制时直接使用显 …