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



  

相关话题

  谷歌将启用 AAB 格式应用取代安卓 APK,将会对安卓使用者造成什么影响? 
  2019 年,你认为进步最大的 Android 系统是哪家? 
  iOS/Android端GBA模拟器是如何开发出来的? 
  鸿蒙会不会成为下一个 yunos? 
  为什么那么多人在讨论鸿蒙是否套壳安卓?意义何在? 
  3·15晚会曝光的手机充电桩是否能盗取iPhone用户的信息甚至操控消费?原理是怎样的? 
  谷歌将推出自研手机和电脑芯片,效仿苹果能否实现安卓跨平台融合? 
  鸿蒙系统到底是不是安卓系统? 
  为什么有一些人喜欢 iPhone 的设计和体验,却用 Android 手机? 
  如何反驳“代码混淆只是降低了可读性,安全性并没有得到实质提升”的观点? 

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





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利