百科问答小站 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



  

相关话题

  如何评价 MIUI 加入一键关闭所有广告功能? 
  为什么鸿蒙OS2.0手机版基于Android Open Source Project就不算安卓套壳? 
  哪个安卓拼音输入法对蓝牙键盘支持好? 
  如果没有Android系统 国产手机能达到今天的成就吗? 
  在"手机鸿蒙是否真的套壳安卓"这个问题上,大家如何证明自己的立场? 
  iPhone为什么比有的安卓手机好用? 
  谷歌限制未来华为手机对安卓系统的使用之后,华为的海外市场怎么办? 
  Nokia X 搭载的Nokia X software platform是Symbian OS和Android SDK的结合产物吗? 
  一台手机能用多久? 
  网络上说鸿蒙套壳安卓,但美国谷歌公司为什么没有出来说话? 

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





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