Google 的 SwiftShader 发布

年复一年,纯 HTML 5 网站变得越来越花哨,现在,家庭娱乐界正在热议 VR 和 3D。但是大多数网站都错失了良机;它们没有 3D 内容。嗯,这种情况即将改变。
谷歌最近开源了其 SwiftShader 项目。如果您使用过 Google Chrome 或 Android,您可能以前见过 SwiftShader 的实际应用。它是一个高性能的软件渲染器,可以提高低端机器上游戏或 3D 内容的性能。
直到最近,SwiftShader 还是一个闭源项目。尽管 Android 和 Chromium 是开源的,但 SwiftShader 始终是作为单独的组件分发的,并受专有许可证的约束。现在谷歌已经向世界发布了 SwiftShader,其他 Web 浏览器开发人员也将能够使用它。反过来,这应该会刺激更丰富的 3D Web 内容的开发。
这不是我们第一次听说有新软件将 3D 带到 Web 上。自 20 世纪 90 年代后期以来,已经提出了各种解决方案。不知名的开发者和大型公司都发布了免费和昂贵的软件,以使其成为现实。甚至 W3C 也参与其中。
3D CSS 和 WEBGL 已经成为标准有一段时间了,但 Web 开发人员一直不愿使用它们。浏览器对 3D 的支持不一致是他们不愿意深入第三个维度的原因之一,但最近版本的流行浏览器都为这些技术提供了相对可靠的支持。那么,是什么阻碍了 Web 开发人员呢?主要是缺乏硬件支持。
高端游戏 PC 和游戏机配备了专用 3D 显卡,它们可以毫无困难地渲染 3D Web 内容。但是,低端 PC 通常缺乏专用 GPU。相反,它们依赖于更便宜的集成 GPU 或软件渲染。这两种解决方案都无法满足流畅 3D Web 内容所需的性能。
作为 Linux 用户,我们经常面临不同的问题——驱动程序支持不足。换句话说,一些桌面 Linux 用户拥有出色的硬件,但他们的 GPU 驱动程序存在缺陷(或者它们不提供全部功能)。
GPU 制造商通常会全力以赴开发 Windows 驱动程序,而忽略了 Linux 桌面用户。有时,没有官方的 Linux 驱动程序,社区必须从头开始费力地构建它们。
由于这些原因,3D Web 一直不是一个公平的竞争环境。Web 开发人员和设计师一直避开开发 3D 内容,因为大量用户无法使用它。
早在 2009 年,谷歌就为这个问题制定了一个简单的解决方案,并从 TransGaming 获得了 SwiftShader 的许可。TransGaming 是一家为智能电视创建游戏的公司,智能电视通常是性能不足的系统。SwiftShader 是该公司开发用于赋予其游戏“哇”效果的工具之一,当然,源代码是闭源的。
它重新创建了 GPU 驱动程序提供的相同软件接口,因此游戏和 Web 浏览器可以像对待真正的 GPU 驱动程序一样对待它。但是,所有复杂的 3D 渲染都由 PC 的 CPU 使用优化的算法执行。
SwiftShader 不是魔法——您仍然可以从具有数百个内核的专用图形硬件获得更好的性能。但是,这不是重点。它提供了比普通软件渲染库更好的性能。它使软件渲染变得可以忍受。
SwiftShader 许可证是 Google Chrome 在支持 3D Web 功能方面领先的原因。但即使 Chrome 提供了出色的支持,Web 开发人员仍然必须考虑所有使用不同浏览器的用户。在 3D 内容可以在所有 PC 和设备上运行之前,大多数开发人员都不会碰它。
去年,TransGaming 决定出售其 SwiftShader 技术以筹集资金。智能电视游戏平台没有带来足够的收入,因此该公司以 125 万美元的价格将 SwiftShader 出售给了谷歌。从那时起,TransGaming 完全退出了游戏开发领域——事实上,它不再是一家科技公司。
因此,在使用了该代码一年后,谷歌正在将 SwiftShader 作为免费软件发布给全世界使用,这真是太棒了。随着其他浏览器开始使用它,即使在旧的或低配置的机器上,我们也应该看到对 3D 的更好支持。
这是否意味着每个网站都将变成 VR 的混乱堆砌?威廉·吉布森的“赛博空间”愿景终于到来了吗?希望不会。相反,Web 设计师将获得一种新工具,他们可以使用它来使 Web 变得更好。并且基于 Web 的游戏也应该得到显着改善。