百科问答小站 logo
百科问答小站 font logo



2020年Android使用OpenGL ES还是Vulkan? 第1页

  

user avatar   quat 网友的相关建议: 
      

  不用这么急着切换,得等到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



  

相关话题

  罗永浩的锤子能超越苹果么?大约需要多久?你做出能超越(不能超越)的依据是什么? 
  Android手机图形解锁错误5次后会冻结30秒,这样设计的原理和作用是什么? 
  无线充电是不是「鸡肋」?有哪些无线充电的使用场景? 
  MIUI和iOS差距主要体现在哪? 
  针对公用建筑的智能家居团队如何开拓市场? 
  有钱买苹果但选择用 Android 的人是什么样的? 
  如何评价不愿在 App Store 中花钱而用盗版的这种行为? 
  谷歌欲将 APK 改成 AAB ,对鸿蒙系统有什么影响? 
  HTC 的崛起与衰落线大致是什么样子的? 
  Java学到什么程度才能叫精通? 

前一个讨论
如何评价历史策略游戏新作《旧世界》(Old World)?
下一个讨论
计算机科学与技术专业的学生要怎样做才能避免成为低级的码农?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利