OpenGL

图像库 libpng 编译与实践

在之前的文章中介绍了 stb_image 图像库,还顺带提到了 libpng 和 libjpeg ,这篇文章就是介绍如何在 Android 平台上用 CMake 编译 libpng 动态库以及 libpng 使用实践。 【简单易用的图像解码库介绍 —— stb_image】 https://glumes.com/post/android/stb-image-introduce/
2019-07-12
4 min read

Android NDK 开发 —— 从 Assets 文件夹加载图片并上传纹理

在 OpenGL 开发中,我们要渲染一张图片,通常先是得到一张图片对应的 Bitmap ,然后将该 Bitmap 作为纹理上传到 OpenGL 中。在 Android 中有封装好的 GLUtils 类的 texImage2D 方法供我们调用。 public static void texImage2D(int target, int level, int internalformat, Bitmap bitmap, int type, int border) 该方法的底层原理实际上也是解析了该 Bitmap ,得到了 Bitmap 所有的像素数据,类似于 Android NDK 关于 Bitmap 操作的 AndroidBitmap_lockPixels 方法,如果你不太了解该方法,可以参考这篇文章:Android JNI 之 Bitmap 操作。 得到了所有像素数据之后,实际最终还是调用了 OpenGL 的 glTexImage2D 来实现纹理上传。当然,如果可以直接得到所有数据,也不需要走解析 Bitmap 这一步了,这种场景最常见的就是把相机作为输入了。
2019-05-14
2 min read

OpenGL ES 3.0 着色器语言 GLSL 学习 Mark

在之前的文章中, 主要介绍了 OpenGL ES 2.0 的 GLSL 语法,在 OpenGL ES 3.0 中语法又有了一些变化。 本文的内容来自于《OpenGL ES 3.x 游戏开发 上卷》。
2018-09-09
9 min read

OpenGL ES 2.0 着色器语言 GLSL 学习 Mark

要想发挥 OpenGL ES 自定义渲染管线的功能,就得学会写 GLSL 着色器脚本。 本文中的内容来自于 《Android 3D 游戏开发技术宝典 OpenGL ES 2.0》。
2018-09-09
8 min read

OpenGL 之 帧缓冲 使用实践

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/l5eYzkYAzR-m21-iYBoyCw 帧缓冲(Framebuffer Object),简称 FBO,在渲染绘制中, 图像最终都是绘制到 FBO 上的,一般都是默认的 FBO 上,也就是我们的屏幕。 除此之外,还可以创建自己的 FBO,用来作为绘制的载体,当在自己的 FBO 上绘制好了之后,可以再把绘制内容显示到屏幕上,实现一个双缓冲的绘制。 FBO 实际上是由颜色附件、深度附件、模板附件组成的,作为着色器各方面(一般包括颜色、深度、深度值)绘制结果存储的逻辑对象。
2018-09-04
3 min read

OpenGL 之 EGL 使用实践

避免图片丢失,建议阅读微信原文: https://mp.weixin.qq.com/s/AGMA4xvynzmdCNo-Caur-g OpenGL 是跨平台的、专业的图形编程接口,而接口的实现是由厂商来完成的。 而当我们使用这组接口完成绘制之后,要把结果显示在屏幕上,就要用到 EGL 来完成这个转换工作。
2018-09-02
5 min read

OpenGL 之 GPUImage 源码分析

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

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

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

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

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

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

在前面的文章中介绍了 OpenGL 的环境光和散射光,现在就是最后一个镜面光了。
2018-07-23
5 min read