当前位置: 欣欣网 > 码农

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

2024-05-27码农

什么是 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 校正的图像,以获得更准确和更自然的颜色显示效果。

  • 浮点纹理,常用于 。

  • 着色器

  • 二进制程序文件

  • 统一变量块

  • 布局限定符 layout(location = 0)。顶点着色器输入可以用布局限定符声明,以显式绑定着色器源代码中的位置,而不需要调用 API 。

  • 几何形状

  • 变换反馈(Transform Feedback)

  • 。OpenGL ES 3.0 引入了 glDrawArraysInstanced 和 glDrawElementsInstanced 函数,它们允许开发者在不同的位置上绘制多个具有相同网格的物体,每个物体可以有不同的变换、纹理和其他属性。这种技术可以显著提高渲染大量相似物体(如粒子系统、草叶、树木等)的效率。

  • 缓冲区对象

  • UBO(Uniform Buffer Objects)。

  • VAO 顶点数组对象。

  • 同步对象。

  • 。使应用程序能够执行对像素操作和纹理传输操作的异步数据传输。

  • 主要用于帧缓冲区之间的像素拷贝,性能高且使用方便,可以指定缓冲区任意矩形区域的像素拷贝。

  • 帧缓冲区

  • 允许应用程序同时渲染到多个颜色缓冲区。

  • 。减少锯齿和边缘的颤动,从而改善图像的平滑度和质量。

  • 。glInvalidateFramebuffer 接口是 OpenGL ES 3.0 引入的,提供了一个通知驱动程序不再需要帧缓冲区内容的机制(优化功耗和性能)。

  • 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 的赋值方式为:

    -- END --

    进技术交流群, 扫码添加我的微信:Byte-Flow

    获取相关资料和源码

    学习音视频、OpenGL ES、Vulkan 、Metal、图像滤镜、视频特效及相关渲染技术的付费社群,面试指导,1v1 简历服务,职业规划。

    我的付费社群

    推荐: