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



  

相关话题

  自学编程后,找工作简历该怎样写? 
  有哪些实用的学习类 App? 
  中国政府为什么要求 Android 至少免费开源五年? 
  小米手机与华为手机的区别在哪里? 
  为什么 iOS 来源于 FreeBSD 没有人讨论,但是鸿蒙使用部分来安卓代码,却被人一直在攻击? 
  有钱买苹果但选择用 Android 的人是什么样的? 
  为什么 iOS 来源于 FreeBSD 没有人讨论,但是鸿蒙使用部分来安卓代码,却被人一直在攻击? 
  如何评价 MIUI 加入一键关闭所有广告功能? 
  你们怎么看待谷歌「除名」华为?如果以后真的不会给华为适配Android ,会怎么样? 
  为什么那么多人唱衰锤子TNT安卓触屏平板电脑(工作站)? 

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





© 2025-01-19 - tinynew.org. All Rights Reserved.
© 2025-01-19 - tinynew.org. 保留所有权利