百科问答小站 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)是否有一些冷门但却逆天的手机应用(App)呢? 
  为什么 MIUI 不能叫 MIOS? 
  为什么有许多软件总是请求用户开机自动启动? 
  为什么有些人总是觉得 iOS 设备能做到的事 Android 设备做不到或者很麻烦? 
  鸿蒙到底是不是安卓套壳? 
  华为新出的鸿蒙(HarmonyOS)是什么?与安卓有什么不同? 
  各大Android应用市场在禁止带广告sdk的app,这是清理门户还是自掘坟墓?开发者为什么这么脆弱? 
  华为沦为Others,是否是因为被制裁呢?小米成为全球第二是否与此有关? 
  为何linux作为服务器端十年不重启都不卡而安卓用半年就十分卡? 

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





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