Opengl es OpenGLES2.0和OpenGLES3.0之间有什么区别

Opengl es OpenGLES2.0和OpenGLES3.0之间有什么区别,opengl-es,opengl-es-2.0,opengl-es-3.0,Opengl Es,Opengl Es 2.0,Opengl Es 3.0,我想知道opengles2.0和opengles3.0之间有什么区别 OpenGL ES 3.0的主要优点是什么?直接来自: OpenGL ES 3.0规范于2012年8月公开发布。OpenGL ES 3.0与OpenGL ES 2.0向后兼容,使应用程序能够增量地向应用程序添加新的视觉功能 OpenGL ES 3.0规范中的新功能包括: 对渲染管道进行了多项增强,以加速高级视觉效果,包括:遮挡查询、变换反馈、实例化渲染以及支持四个或更多渲染目标 高质量ETC2/EAC纹理压缩作为标准功能,消

我想知道
opengles2.0
opengles3.0
之间有什么区别

OpenGL ES 3.0的主要优点是什么?

直接来自:

OpenGL ES 3.0规范于2012年8月公开发布。OpenGL ES 3.0与OpenGL ES 2.0向后兼容,使应用程序能够增量地向应用程序添加新的视觉功能

OpenGL ES 3.0规范中的新功能包括:

  • 对渲染管道进行了多项增强,以加速高级视觉效果,包括:遮挡查询、变换反馈、实例化渲染以及支持四个或更多渲染目标
  • 高质量ETC2/EAC纹理压缩作为标准功能,消除了每个平台对不同纹理集的需求
  • GLSL ES着色语言的新版本,完全支持整数和32位浮点运算
  • 大大增强的纹理功能,包括保证支持浮点纹理、3D纹理、深度纹理、顶点纹理、NPOT纹理、R/RG纹理、不可变纹理、2D阵列纹理、Swizzle、LOD和mip级别夹、无缝立方体贴图和采样器对象
  • 大量必需的、明确大小的纹理和渲染缓冲区格式,减少了实现的可变性,并使编写便携式应用程序变得更加容易

我认为最好阅读官方网站上的“版本3.0及之前->新功能”一节


而且它与ES 2.0向后兼容。

总的来说,这些更改增加了灵活性,具有更大的缓冲区、更多的格式、更多的统一性等。其他功能,如实例渲染、像素缓冲区对象和遮挡查询,提供了优化的机会。根据您的平台,它可能是革命性的,但是许多关键功能已经是iOS等平台上的扩展

就我个人而言,最重要的变化是:

  • 顶点数组对象
  • 实例渲染
  • ETC2/EAC纹理压缩格式(以前在Android上,每个卡制造商只支持自己的纹理格式)
以下是Alexey链接到中描述的更改列表:

OpenGL ES 3.0中的新功能包括:

  • OpenGL着色语言ES 3.00
  • 转换反馈1和2(有限制)
  • 包括块数组的统一缓冲区对象
  • 顶点数组对象
  • 采样器对象
  • 同步对象和围栏
  • 像素缓冲区对象
  • 缓冲区子范围映射
  • 缓冲区对象到缓冲区对象的拷贝314
  • 布尔遮挡查询,包括保守模式
  • 实例渲染,通过着色器变量和/或顶点属性除数
  • 多个渲染目标
  • 二维阵列和三维纹理
  • 简化纹理存储规范
  • R和RG纹理
  • 纹理旋转
  • 无缝立方体映射
  • 支持完全包裹模式和mipmapping的两种纹理的非增强功能
  • 纹理LOD钳制和mipmap级别基本偏移和最大钳制
  • 至少32个纹理,碎片和顶点着色器每个纹理至少16个
  • 16位(带过滤)和32位(不带过滤)浮点纹理
  • 32位、16位和8位有符号和无符号整数渲染缓冲层、纹理和顶点属性
  • 8位sRGB纹理和帧缓冲区(无混合RGB/sRGB渲染)
  • 11/11/10浮点RGB纹理
  • 共享指数RGB 9/9/9/5纹理
  • 10/10/10/2无符号标准化和非标准化整数纹理
  • 10/10/10/2有符号和无符号规格化顶点属性
  • 16位浮点顶点属性
  • 每分量8位有符号规格化纹理
  • ETC2/EAC纹理压缩格式
  • 以最小精度保证调整内部纹理格式的大小
  • 多示例渲染缓冲区
  • 8位无符号规范化renderbuffers
  • 深度纹理和阴影比较
  • 24位深度渲染缓冲层和纹理
  • 24/8深度/模具渲染缓冲层和纹理
  • 32位深度和32F/8深度/模具渲染缓冲层和纹理
  • 拉伸叶盘(带限制)
  • 帧缓冲区失效提示
  • 具有固定索引的原语重新启动
  • 具有至少24个可用位的无符号整数元素索引
  • draw命令允许指定访问元素的范围
  • 能够将任何mipmap级别附加到帧缓冲区对象
  • 最小/最大混合方程
  • 程序二进制文件,包括从链接的GLSL程序查询二进制文件
  • 强制联机编译器
  • 非平方和可转置一致矩阵
  • 附加像素存储状态
  • 索引扩展字符串查询

需要注意的是,GLES3驱动程序目前处于“测试版”。例如,Adreno 320不支持压缩格式的2D纹理数组,如果在着色器中使用类似于3个统一缓冲区的内容,编译器将崩溃。