OpenGL ES绘制三角形
[TOC]
文章参考:https://blog.csdn.net/Kennethdroid/article/details/95622391
概述
OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
OpenGLES 3.0 的特点
OpenGLES 3.0 实际上是 OpenGLES 2.0 的扩展版本,向下兼容 OpenGLES 2.0 ,但不兼容 OpenGLES 1.0
OpenGLES 3.0 主要新特性
纹理
sRGB 纹理和帧缓冲区——允许应用程序执行伽马校正渲染。
2D 纹理数组——保存一组 2D 纹理的纹理目标。
3D 纹理。一些 OpenGL ES 2.0 实现通过扩展支持3D纹理,而 OpenGL ES3.0 将此作为强制的功能。
深度纹理和阴影比较——启用存储在纹理中的深度缓冲区。
无缝立方图。在 OpenGL ES 3.0 中,立方图可以进行采样如过滤来使用相邻面的数据并删除接缝处的伪像。
浮点纹理。
着色器
- 二进制程序文件。在 OpenGL ES 3.0 中,完全链接过的二进制程序文件可以保存为离线二进制格式,运行时不需要链接步骤。
- 有助于减少应用程序的加载时间。
- 非方矩阵。支持方阵之外的新矩阵类型,并在 API中 增加了相关的统一调用,以支持这些矩阵的加载。
- 全整数支持。支持整数(以及无符号整数)标量和向量类型以及全整数操作。
- 平面/平滑插值程序。 OpenGL ES 3.0 中插值程序可以显式声明为平面或者平滑着色。
- 统一变量块。统一变量值可以组合为统一变量块。统一变量块可以更高效地加载,也可在多个着色器程序间共享。
- 布局限定符。顶点着色器输入可以用布局限定符声明,以显式绑定着色器源代码中的位置,而不需要调用 API 。
几何形状
- 变换反馈。可以在缓冲区对象中捕捉顶点着色器的输出。
- 布尔遮挡查询。应用程序可以查询一个(或者一组)绘制调用的任何像素是否通过深度测试。
- 实例渲染。有效地渲染包含类似几何形状但是属性(例如变化矩阵、颜色或者大小)不同的对象。
代码实例
创建Native层代码
在C++的jni里面的cmake文件里面添加如下的配置:
1 | # ================OpenGL ES的Native库,通过add_library会再生成一个jni的SO========================== |
具体的CMakeLists.txt的文件内容
1 | # CMake的构建提示 |
问题一:
1 | androidStudio 报'stdint.h' file not found |
解决掉其他的问题,重新构建一下CmakeList.txt文件就可以了。
归纳总结
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦溪·在路上!
评论
ValineDisqus