Vulkan 软件渲染?

问题描述 投票:0回答:1

概念/高级技术问题。

简短版本:Vulkan 目前是否有或将会有 CPU/软件渲染支持?

长版:致力于将图形引擎代码移植到我今年早些时候用 SDL 用 C 语言编写的 Vulkan。想要使用软件渲染来学习一些不同的图形渲染技术,并且我心中有原始但风格化的图形,经过一些阅读后,我了解到 CPU 实际上比 GPU 更适合某些渲染任务,并认为长镜头结束该项目的目标是某种具有完整软件渲染回退功能的混合系统,但我发现 SDL 正在幕后与 GPU 对话,而我似乎找不到一种方法让它与 CPU 对话。我尝试直接使用 OpenGL,得到了相同的结果。 Vulkan 在 VkPhysicalDevices 中确实有一个枚举,即 VkPhysicalDeviceType,它具有 CPU 类型,但在我的计算机上,我只获得独立的 Nvidia GPU 和集成的 AMD GPU。在 YouTube 上浏览了这个 Vulkan 教程:https://www.youtube.com/playlist?list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR 它内容丰富,我将继续它直到完成,因为它稍后会被证明是有用的。

然而,我开始思考,也许我给自己设定了一个不可能的目标,而计算机已经不再那样工作了。我的程序目前是 2.5 渲染器,对于我想要的东西来说 GPU 似乎有点过分了;然而,在这个关口,我已经准备好听到“不”,如果是的话,我将调整该项目以适应图形的行业标准解决方案,可能是全 3D 来尝试利用这些功能,因为不继续这样做似乎很荒谬尝试进行光线投射/二进制分区技术,但这肯定会带来更多的复杂性,我还没有准备好进行导航。我正在尝试最终以此为基础构建一个视频游戏。我尝试过使用现有的游戏引擎(Unity、Unreal Engine、Godot),但我最终花了大部分时间与编辑器进行斗争,最终的结果总是看起来非常罐头和客观,无论如何,我觉得我可以做得更好更多的控制和开发环境,更面向程序员。

graphics vulkan
1个回答
0
投票

进一步阅读似乎向我表明(我很难找到有关计算机硬件如何构建一般工作的微小细节的信息),但似乎在所有计算机(现代计算机)中,VRAM 只能通过间接访问操作系统陷阱。 VRAM 似乎是显示器的硬件瓶颈?看来,即使直接在 OpenGL 中写入表面/纹理,虽然从技术上讲是软件渲染,但它最终仍然会接触 GPU 硬件以到达显示器。有点像某种穿越?我确实了解到着色器语言如何(部分)解决了 GPU 过去遇到的一些灵活性问题,但似乎仍然存在一些限制?不确定那些到底是什么。

因为看来,无论我做什么,我都会对 GPU 硬件离散/集成执行 ping 操作,即使使用浪费或效率低下,我也可能会使用它们,因为它仍然可能比使用 CPU 快得多所有的计算,然后通过一个跛行的 GPU 传递。我认为前进的方向是重新实现我目前在着色器交换链中的光线投射器。我不确定我会通过强制 GPU 绘制垂直线而不是绘制垂直线来承受什么样的性能损失(如果我们考虑到可能是这个版本的某个版本(可能更粗略),SDL 实现可能已经在做了)三角形,但在我看来,这是在我已经写过的内容的基础上构建的最佳方式。

© www.soinside.com 2019 - 2024. All rights reserved.