为何说OpenGL ES上使用Vulkan不适合作为SDK

网友投稿 327 2022-11-11

为何说OpenGL ES上使用Vulkan不适合作为SDK

首先我们决定先回到最基础的方面,Vulkan API完全是为了让开发人员有更多的自主和控制权,而我们之前的版本包含了对开发人员更多的手把手指导,因此这很可能会阻碍Vulkan的开发。

第二我们感觉到在OpenGL ES上使用Vulkan不适合作为SDK,这也同时干扰了OpenGL ES SDK的功能定位——OpenGL ES API学习的辅助工具。

因此现在我们将一切交还到开发人员的手中,把所有的东西都去除掉只留下有用的实现和封装库。这也意味着它不会向后兼容,但是你会真正使用Vulkan在工作而不是在使用基于Vulkan的框架。

下面的介绍一下PowerVR SDK 5.0框架!

PowerVR SDK 5.0框架结构图

后面我们会具体介绍这些库文件,但是首先我们需要了解一下之前PowerVR SDK框架4.x系列版本,这样我们可以对作出的改变进行对比。

PowerVR框架5.0有哪些变化?

首先我们了解一下之前框架版本是如何设计的:

提升对Vulkan的支持

那么有哪些变化呢?现在这个框架更加专注于Vulkan并且变得更加的流畅,它提供了大量新的功能,帮助手册等并且变得简单。

与4.x系列版本相比它具有更底层的功能抽象,并且已经接近于像Vulkan HPP这样的底层抽象,但是仍然也保留着PowerVR框架 让开发尽可能的简单的根本定位。现在大部分工作都是开发人员来负责实现,像Vulkan API的使用具有更多的自主权,但是在4.x系列版本中这些功能都是由框架来管理的。

谈到这里那么PVRUtilsVk是一个新的模块,它提供一些简单通用任务的帮助手册,不需要开发人员编写事例代码,包括的常用任务如下: • 创建实例 • 创建设备 • 管理队列 • 创建转换链 • 以单行的形式管理接口 • 上传纹理

PVRUtilsVk依赖于PVRVk、PVRCore和PVRAssets。

我们同时也向开发人员提供vulkan_IMG.h头文件,它是对Khronos_vulkan.h文件的修改b版本,但是使用了强类型枚举。我们同时也移除了全局命名空间原型,这样做是为了尽可能减少全局命名空间的使用。

PVRVk具有自己的命名空间——pvrvk::而不是pvr::,它覆盖了该框架的其余部分。

简化后的框架设计

OpenGL ES框架已经回到了它的教育定位,跨平台的交叉API引用解决方案无疑会阻碍它的教育功能定位。这意味着PVRGles也不再存在,替代它的是OpenGL ES版本的PVRUtils(PVRUtilsGles)能提供所需要的一切,它提供的工具可以直接操作OpenGL ES而不是引用中间的抽象接口。

模块简化设计总结

一些部分已经与其他模块进行的合并或者完全移除,现在的依赖项减少了很多。PVRCore保持不变,但是一些通用的接口API进行了重新整理,比如IGraphicsContext、IPlatformContext等等。

PVRShell目前只依赖于PVRCore,它是一个独立的平台抽象层,前面提到过目前已经支持Wayland。

PVRNativeAPI和EngineUtils已经合并到PVRUtilsGles和PVRUtilsVk中,每一项都负责相应的抽象接口,它们都依赖于PVRCore和PVRAssets。PVRUtilsVk,没有意外的,也依赖于PVRVk,两个库文件都提供了初始化的帮助手册,比如创建EGL/EAGL内容(contexts)、着色器(shaders)、Vulkan转换链等,此外还有一些功能比如纹理上传等等。

PVRCamera与之前保持不变,仅支持OpenGL ES。

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java项目中classpath的理解
下一篇:5分钟快速学习——Linux Centos7--账号安全控制和命令历史自动注销
相关文章

 发表评论

暂时没有评论,来抢沙发吧~