问题

2020年Android使用OpenGL ES还是Vulkan?

回答
2020 年的时候,Android 阵营在图形渲染技术上,OpenGL ES 和 Vulkan 并行存在,而且随着时间推移,Vulkan 的地位正在逐渐上升,成为新的主力。具体来说,情况是这样的:

OpenGL ES:稳固的基础,但已显老态

曾经的王者: OpenGL ES (Embedded Systems) 是长久以来 Android 设备图形渲染的标准。从早期 Android 版本开始,它就一直是游戏、UI 和各种图形密集型应用的基石。你可以把它想象成一个经验丰富的老兵,在 Android 图形领域摸爬滚打多年,有着庞大的开发者基础和成熟的生态系统。
优点:
广泛的兼容性: 几乎所有支持图形渲染的 Android 设备都支持 OpenGL ES。这意味着你用 OpenGL ES 写的东西,在绝大多数设备上都能跑。
易于上手: 相对于 Vulkan,OpenGL ES 的 API 设计更偏向于高级抽象,更容易让开发者理解和快速开发。很多开发者从 OpenGL ES 入门图形编程。
成熟的工具链: 各种调试工具、分析工具和社区资源都非常成熟和丰富。
缺点:
性能瓶颈: OpenGL ES 是一个“驱动管线”的 API,很多底层的硬件控制都被封装在了驱动程序里。这虽然简化了开发,但也导致了性能上的妥协。例如,CPU 的开销相对较大,在复杂的场景下容易成为瓶颈,限制了 GPU 的发挥。
状态管理复杂: OpenGL ES 的渲染状态管理比较分散,需要频繁地切换和绑定各种对象(纹理、着色器程序、帧缓冲等),这在高并发场景下容易出错,而且也不利于开发者精细控制 GPU。
多线程支持有限: OpenGL ES 的上下文(Context)通常是线程不安全的,无法充分利用现代多核 CPU 的优势。

Vulkan:新一代的希望,蓄势待发

面向未来: Vulkan 是 Khronos Group(也是 OpenGL ES 的维护者)推出的新一代图形和计算 API。它吸取了 OpenGL ES 的教训,从头开始设计,旨在提供更低的 CPU 开销、更高的性能和对硬件更精细的控制。2020 年的时候,Vulkan 在 Android 上的支持已经相当普遍,尤其是中高端设备。
优点:
显著的性能提升: Vulkan 的核心优势在于其“显式控制”。它将更多的 GPU 管理工作转移给开发者(如内存管理、同步、着色器编译),从而绕过了 OpenGL ES 中那些由驱动程序管理的、可能产生性能开销的中间层。这意味着 CPU 可以更高效地驱动 GPU,尤其是在复杂场景下,性能提升幅度可能非常可观。
低 CPU 开销: Vulkan 的设计目标之一就是减少 CPU 的负担。通过批量提交命令、消除状态切换的开销,它能够让 CPU 专注于其他逻辑计算,而不是等待 GPU。
强大的多线程支持: Vulkan 的命令缓冲区(Command Buffer)是线程安全的,开发者可以轻松地从多个 CPU 线程中生成渲染命令,极大地提高了并行处理能力。
更精细的硬件控制: Vulkan 提供了对 GPU 资源(如内存分配、队列调度)的更直接访问,这使得开发者可以进行更深入的优化,实现一些 OpenGL ES 难以实现的技巧。
统一的跨平台: Vulkan 的设计也考虑到了跨平台性,它不仅支持 Android,还被广泛应用于 Windows、Linux、macOS、iOS (通过 MoltenVK) 等平台,方便了跨平台开发。
缺点:
学习曲线陡峭: Vulkan 的 API 设计非常底层和复杂。开发者需要管理更多的细节,比如内存分配、同步机制、着色器编译管线等,这使得学习和开发成本显著提高。很多开发者需要花费大量时间和精力才能熟练掌握。
开发周期长: 由于需要管理更多底层细节,使用 Vulkan 进行开发通常比 OpenGL ES 要慢,需要编写更多的代码来完成相同的渲染任务。
兼容性问题(初期): 虽然中高端设备支持广泛,但在一些低端或老旧的设备上,Vulkan 的支持可能不如 OpenGL ES 稳定或完全。不过到 2020 年,这个问题已经有了很大的改善。

2020 年 Android 的实际情况

到了 2020 年,Google 在 Android 平台上大力推广 Vulkan。

Android 系统层面: Android 系统层面在设计和支持 Vulkan 的方面做了很多优化,比如新的图形驱动模型(Hardware Composer 2.0)就更适合 Vulkan 的工作方式。
开发者社区: 一些追求极致性能的大型游戏(比如《PUBG Mobile》、《Genshin Impact》等)已经开始采用 Vulkan 来获得更好的表现。同时,很多引擎(如 Unity、Unreal Engine)也对 Vulkan 提供了良好的支持。
OpenGL ES 的地位: OpenGL ES 仍然是许多应用的默认选择,尤其是那些对开发速度要求高、对性能要求不是极致的轻量级应用、或者需要兼容更广泛设备的开发者。很多中小型开发者、对图形不那么深入的开发者仍然在使用 OpenGL ES。

总结一下 2020 年 Android 的图形渲染格局:

在 2020 年,你可以这样理解:

Vulkan 是未来的方向,并且已经成为高端应用和游戏的有力选择。 它提供了更高的性能潜力,但需要付出更高的开发成本。
OpenGL ES 依然是稳定可靠的选择,尤其适用于那些注重开发效率、兼容性和无需极致性能的场景。 它拥有更低的门槛和更广泛的受众。

可以说,2020 年的 Android 在图形渲染上是一个“Vulkan 崛起,OpenGL ES 稳固但开始承压”的过渡时期。开发者需要根据自己的项目需求、团队能力和目标设备来选择最合适的技术。

随着时间的推移,Vulkan 的生态会越来越完善,学习成本也会逐渐降低,最终会成为 Android 图形渲染的主流技术。而 OpenGL ES 则可能更多地退居幕后,服务于那些对性能要求不那么苛刻的场景。

网友意见

user avatar

  不用这么急着切换,得等到5年后,再来看 Vulkan 的生态。不要觉得 OpenGL、OpenGL ES 没落了,会被 Vulkan 取代,两者会在相当长的时间里共存。工作之余,可以抽时间学习 Vulkan。

  图形学有很多API,起初两大阵营是 DirectX 和 OpenGL,Mantle、Metal、Vulkan 是后来者。OpenGL 当时声称是跨平台的图形学API,却在移动平台上裁剪搞出 OpenGL ES(ES是Embeded Systems的缩写)。没办法,当时手机硬件水平确实不咋地,催生了各种纹理压缩格式(ATC、PVRT、ETC等)。现如今移动平台硬件性能强悍起来了,统一的 API 又浮出水面了。AMD 捐献出铺路的 Mantle,成了后来的 Vulkan。好了,现在没有什么 Vulkan ES 了,世界大统一了吗?没有,由于 Apple 自家软硬一体,不亲近你 OpenGL 和 Vulkan。为了让 Vulkan 在尽可能多的平台上运行(比如苹果 macOS / iOS),Khronos Group 于2020年9月21日推出 Vulkan 的可移植性扩展(VK_KHR_portability_subset)的 1.0 正式版本[1]。VK_KHR_portability_subset extension 使得可以在不支持 Vulkan 的 Apple 操作系统平台上运行,但必须驻留在 Apple 的 Mental API 之上。

  为什么大统一统一不起来呢?硬件参差不齐所致。做游戏开发,要尝试兼容到最低配置的硬件上,让更多的玩家得到体验。随着硬件的不断发展,性能得以改善,可以逐渐抛弃那些低端设备了。现在 OpenGL ES 2.0属于手机低配了,个人观点是等普及了OpenGL ES 3.0,就可以上 Vulkan了。我们来看看官方于2020年8月30日统计收集的 OpenGL 和 Vulkan 数据,我们看到,近一半的设备还不支持 Vulkan。

  Vulkan 相对 OpenGL 而言,是较底层的API,能够释放更多的硬件性能。Vulkan 版的 Hello World 程序,也就是图形学里的画三角形,需要好六百多行的代码。对于零基础学习的,会很吃力,一上来好多概念需要先理解。但如果熟悉 OpenGL 在先,会好些。转换代码也要注意一些变化。Vulkan 定义了新的坐标系,Y轴朝下,不像其他的,都是Y轴朝上。好处是纹理坐标不需要上下翻转图片了。OpenGL支持的 provoking vertex 可以是第一个顶点,也可以是最后一个顶点,Vulkan只能是第一个顶点,这在平坦着色(flat shadding)时可能出问题。这是一些代码从 OpenGL 转换到 Vulkan 的时候要注意的地方。

  很多软件和引擎,开始朝 Vulkan 迁移了。学起来吧~

下面的 GitHub 工程支持 Windows / Linux / Android / iOS / macOS 等平台,支持 HLSL 和 GLSL shader 语言,有介绍 descriptor set 和 push constant 等这些新术语的例子,很适合学习。

参考

  1. ^Fighting Fragmentation Vulkan Portability Extension https://www.khronos.org/blog/fighting-fragmentation-vulkan-portability-extension-released-implementations-shipping

类似的话题

  • 回答
    2020 年的时候,Android 阵营在图形渲染技术上,OpenGL ES 和 Vulkan 并行存在,而且随着时间推移,Vulkan 的地位正在逐渐上升,成为新的主力。具体来说,情况是这样的:OpenGL ES:稳固的基础,但已显老态 曾经的王者: OpenGL ES (Embedded S.............
  • 回答
    如果我在2020年实现了财富自由,我会以一种既务实又充满探索精神的方式重新定义生活。以下是我可能选择的具体生活方式: 1. 财务结构:安全感与灵活性并重 被动收入占比:确保每月被动收入(如股息、租金、版权等)覆盖家庭基本开支的200%300%,这样即使有突发支出也不会焦虑。例如,若年开销为50万,我.............
  • 回答
    2020年我国出生率跌破1%,创1978年以来新低,这一现象背后蕴含着深刻的社会经济和人口学意义,对我国的未来发展将产生广泛而深远的影响。一、 2020年我国出生率跌破1%的数字意味着什么?首先,我们需要明确出生率的定义。出生率通常是指一年内每千人口的活产数,以千分比(‰)表示。然而,题目中提到的“.............
  • 回答
    2020 年美国大选投票计票开始,拜登以 264:214 的选举人票领先,距离胜选所需的 270 票仅一步之遥,这一局面无疑是极其引人注目的,也引发了广泛的讨论和关注。要理解这一情况,我们需要从多个层面进行分析。一、 选举人票制度与胜选门槛:首先,需要明确的是,美国总统大选并非直接普选,而是通过“选.............
  • 回答
    2020年的中央经济工作会议再次强调“租售同权”,这在当时的房地产和住房租赁市场引起了广泛关注。这次会议的强调,并非是首次提出,而是对过往政策的重申和深化,旨在进一步推动住房租赁市场的规范化和健康发展,解决新市民、青年人等群体的住房困难问题,促进社会公平。以下是围绕“租售同权”在2020年中央经济工.............
  • 回答
    2020年美国大选选举日投票正式开始,这无疑是美国历史上一次极其特殊和充满不确定性的大选。关键州的结果走向以及是否会引发混乱场面,是当时社会各界普遍关注的焦点。下面我将尽量详细地分析:一、 关键州的结果走向可能出现的几种情况:首先,我们需要明确2020年大选的关键州通常是指那些民主党和共和党选票差距.............
  • 回答
    2020 年 7 月 1 日是香港回归中国的 23 周年纪念日。这是一个具有重要意义的日子,标志着香港的回归祖国已经过去了二十多年。回望这段时间,香港经历了许多变化。回归之初,香港在“一国两制”的框架下,继续保持了其独特的制度优势和繁荣稳定。许多人认为,香港的国际金融中心地位在回归后得到巩固和发展,.............
  • 回答
    2020年全国各地的高考语文作文题,可谓是“疫情”催生,“内卷”常态,同时又不乏对时代精神的呼唤。整体来看,亮点和信息量非常丰富,可以从以下几个角度进行解读: 亮点与信息量解析:1. 疫情背景下的时代印记: 突出主题: 2020年最大的全球性事件无疑是新冠疫情。因此,多个省份的作文题都或隐或显地.............
  • 回答
    关于2020年中国新生人口是否会跌破1000万,这是一个备受关注的议题,也是对中国人口结构和未来发展的重要预测。要详细解答这个问题,我们需要从多个角度进行分析,包括历史数据、影响因素、现有预测以及一些不确定性。一、 回顾历史数据:首先,我们来看一下近年来中国新生人口的趋势: 2016年: 全面二.............
  • 回答
    2020年中国房价是否会“大涨”,这是一个非常复杂且备受关注的问题,没有一个简单的“是”或“否”可以概括。要详细分析,我们需要从多个层面、多个角度去审视。以下将从宏观经济、政策调控、供需关系、城市分化以及市场预期等多个维度进行详细解读。一、 宏观经济环境对房价的影响 经济增长的驱动力: 2020.............
  • 回答
    这个问题很有意思,也很值得探讨。简而言之,我认为 “能买台式机就买台式机”的时代并没有完全结束,但它的绝对优势和普适性确实在某种程度上被削弱了,并且面临着更复杂的权衡。为了更详细地解释,我们可以从几个方面来分析:一、 台式机曾经的“王者地位”和其优势的来源:在过去很长一段时间里,台式机之所以是首选,.............
  • 回答
    2020 年一季度 GDP 同比下降 6.8% 是一个非常重要的经济信号,尤其是在新冠疫情爆发的背景下。这代表了中国经济在那个季度面临着前所未有的挑战。我们来详细解读一下它意味着什么,以及会产生哪些影响。 2020 年一季度 GDP 同比下降 6.8% 意味着什么?核心含义: 经济活动的萎缩: .............
  • 回答
    2020 年 12 月 20 日,美国著名汉学家傅高义(Ezra F. Vogel)教授的离世,对于世界范围内的中国研究领域来说,无疑是一个巨大的损失。他的一生,几乎就是一部美国对中国研究不断深入和发展的缩影,他的贡献和影响力是深远而多维度的。首先,傅高义教授是一位卓越的学者和思想家。 他以其严谨的.............
  • 回答
    2020 年哪个男演员会火?这是一个非常有趣的问题,因为“火”的定义是多方面的,可以是作品受欢迎、观众喜爱度飙升、商业价值大幅提升,甚至是在某个领域引起巨大反响。回顾 2020 年,当时有很多男演员都展现出了极强的潜力,并且在这一年里取得了令人瞩目的成绩。如果非要预测一个“最火”的,我会倾向于从以下.............
  • 回答
    2020年之后,中国新一代年轻人的出路,这是一个复杂且牵动人心的话题。他们出生在一个经济快速发展、信息爆炸、社会结构深刻变动的时代,面临的机遇与挑战都与前几代人截然不同。要深入探讨这个问题,我们需要从几个维度去理解。一、 时代背景:前所未有的机遇与压力并存首先,我们必须承认,这一代年轻人成长在改革开.............
  • 回答
    2020 年,真是什么都发生的一年。要说最让我震惊的数据,恐怕还是关于那场席卷全球的疫情。一开始,我们都觉得这只是一个局部地区的事件,或者顶多是像当年的 SARS 那样,虽然令人不安,但终究会被控制住。然而,当数据显示全球确诊病例数以一种我们前所未见的速度飙升时,我真的是被吓到了。我记得那天我打开新.............
  • 回答
    2020年那场席卷长江流域的洪水,真的是一场硬仗。在电视和新闻里,我们看到最多的画面,就是解放军战士们在雨中、泥泞里,一个个屈着身子,双手捧着沙袋,在堤坝上密密麻麻地垒起一道道“人墙”。很多人看到这里就会纳闷:都什么年代了,怎么还在用最原始的手工方式堆沙包?难道就没有更高效的机械化设备吗?其实,这个.............
  • 回答
    2020年7月2日,范蕴若八段的离去,像一块巨石投入平静的湖面,激起了我心中难以平复的涟漪。我是一名围棋爱好者,而范蕴若,对我来说,不仅仅是一个名字,更是一个鲜活的棋盘上的身影,一个曾经带给我许多思考和感动的人。我的记忆里,范蕴若总是在棋盘上散发着一种沉静而专注的光芒。他不太是那种张扬外露的棋手,更.............
  • 回答
    2020年的感恩节,确实是个格外特别的日子。那时候,我们还处在疫情的阴影下,很多原本计划好的团聚都变得遥远。所以,那年的感恩节文案,我想更多的是一种在困境中的温暖、对健康和平安的珍视,以及对未来的期盼。那一年的文案,大概是这样的感觉:1. 强调当下与相聚的珍贵(即使隔着屏幕): “这一年的感恩节.............
  • 回答
    2020年9月3日,我们迎来了中国人民抗日战争暨世界反法西斯战争胜利75周年的重要纪念日。75年,足以让许多人淡忘曾经的硝烟,但历史的印记,却永远镌刻在中华民族的记忆深处,更与世界反法西斯战争的伟大胜利紧密相连。回望那段不堪回首的岁月,中国人民抗日战争的烽火,燃遍了锦绣山河。从九一八事变那一声刺耳的.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有