什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性

138 阅读4分钟

什么是 OpenGL ES

OpenGL ES 是一种为嵌入式系统和移动设备设计的3D图形API(应用程序编程接口)。它是标准 OpenGL 3D 图形库的一个子集,专门为资源受限的环境(如手机、平板电脑、游戏机和其他便携式设备)进行了优化。

由于其在移动设备上的广泛适用性,OpenGL ES是学习移动3D图形编程的重要工具之一。

随着技术的发展,新的图形 API(如 Vulkan 和 Metal )也开始在移动平台上获得关注,但 OpenGL ES 仍然是一个重要的基准和学习起点。

为什么学习 OpenGL ES

音视频开发,渲染引擎,游戏开发,VR(XR),图像视频特效,这些方向的岗位都要求掌握 OpenGL 开发。

OpenGL 岗位需求

图片

编辑

图片

编辑

OpenGL ES 3.X 有什么新特性?

纹理

  • 2D 纹理数组和 3D 纹理,保存一组 2D 纹理的纹理目标。
  • sRGB 纹理,通常用于存储和显示经过 sRGB gamma 校正的图像,以获得更准确和更自然的颜色显示效果。
  • 浮点纹理,常用于计算着色器(Compute Shader)

着色器

几何形状

  • 变换反馈(Transform Feedback)可以在缓冲区对象中捕捉顶点着色器的输出。
  • 多实例渲染。OpenGL ES 3.0 引入了 glDrawArraysInstanced 和 glDrawElementsInstanced 函数,它们允许开发者在不同的位置上绘制多个具有相同网格的物体,每个物体可以有不同的变换、纹理和其他属性。这种技术可以显著提高渲染大量相似物体(如粒子系统、草叶、树木等)的效率。

缓冲区对象

帧缓冲区

OpenGL ES 3.x 着色器语言规范变化

OpenGL ES 2.0 着色器脚本

图片

编辑

OpenGLES 3.x 着色器脚本

图片

编辑

其中,#version 300 es 为 OpenGL ES 3.0 版本声明,3.0 中使用 in 和 out 关键字取代 attribute 和 varying ,layout 关键字直接为脚本中的属性指定位置,为属性赋值变成了:

图片

编辑

而原来 2.0 的赋值方式为:

图片

编辑