浏览器悄悄成了一个真正的引擎目标
作者:Oleg Sidorkin,Cinevva CTO
两个月前我们写过浏览器渲染经历了史上最好的一个月,当时我们以为那只是一次尖峰。它不是。它是一个趋势的开端,而且这个趋势有方向。浏览器正在变成一个你拿来上线一款真正的游戏的地方,而不是一个你把一款小游戏移植过去的地方。
三月以来落地的东西
把清单过一遍。Babylon.js 9 交付了支持数千个动态光源的聚簇光照、体积光照,以及一次完整的 Gaussian splatting 大改。Three.js r184 加入了 HTMLTexture,它能把实时、可交互的 DOM 渲染成 3D 表面上的纹理。PlayCanvas v2.17 带来了 WebGPU 上由 GPU 驱动的 Gaussian splatting,配有 f16 球谐函数以及 GPU 排序和视锥剔除。Godot 4.7 beta 在一个开关后面加入了 WebGPU 网页导出,同时还有真正的 HDR 输出和区域光。Chrome 146 交付了一个能在 OpenGL ES 3.1 和 Direct3D 11 上运行的 WebGPU 兼容模式,而 WebGPU 本身达到了 W3C 候选推荐标准。这其中任何一项都足以成就一个值得一提的季度。而它们全都在大约八周内落地了。
“够做个演示”变成了“够拿去上线”
到来的这些特性不是玩具。聚簇光照是你用来在不让帧率崩塌的前提下、用数千个动态光源照亮一个场景的方法。Gaussian splatting 是你用来把照片级真实的捕捉环境放进游戏、还保持可交互帧率的方法。由 GPU 驱动的排序和剔除,是一个会卡顿的技术演示和一款能稳住 60 帧的游戏之间的区别。这些都是原生引擎用来做 AAA 上线的技术,而它们现在能在一个标签页里运行。兼容模式那部分工作在另一个方向上同样重要。它意味着 WebGPU 能触达大多数玩家实际拥有的廉价和老旧硬件,而不只是配了高端 GPU 的开发者机器。
我们一直在这之上动手搭建
我们不是从一份新闻稿上读到这些的。我们过去这段时间一直在搭建一个在浏览器里运行的开放世界,跨越了六十多个 spike 实验,从丑陋的地形基线,到 GPU marching cubes 和流式 LOD。我们把这条轨迹写成了一个完整系列,以及一篇更长的关于方法论的文章。上面几乎每一个特性都对应着我们以惨痛方式撞上的一个问题。当聚簇光照落地到一个主流网页引擎里时,那就是我们自己一段可以删掉的代码。
异议已死,习惯未死
“你没法在浏览器里做一款真正的游戏”这句话在很长一段时间里都是对的,而它在大多数行业把目光投向另一边的 AI 时,悄悄不再成立了。那道曾经为“先上线一个原生客户端、网页版也许永远不做”辩护的技术天花板,已经被掀掉了。剩下的是习惯。引擎、工作室和工具链仍然建立在一个假设之上:浏览器是次一等的目标。
那个假设就是机会。我们打造 Cinevva 时押的赌注是:浏览器会成为上线和发现游戏的默认场所,而不是退而求其次的选择。渲染栈刚刚花了两个月把这个赌注证明出来。最先更新自己心智模型的工作室,将得到一个没有安装摩擦的分发面,以及一个一键之遥的受众。那些观望的,最终也会移植过来——在所有人都已经住在那里之后。
相关阅读:
- 浏览器渲染刚刚经历了史上最好的一个月 —— 我们一度以为是一次性的那次尖峰
- Babylon.js 9 发布 —— 聚簇光照和 Gaussian splatting
- Three.js r184 带来 HTMLTexture —— 实时 DOM 作为 3D 表面
- PlayCanvas v2.17 加入 GPU 驱动的 Gaussian splatting —— 大规模运行在 WebGPU 上的泼溅
- Godot 4.7 beta —— HDR 输出、区域光、WebGPU 网页导出
- Chrome 146 加入 WebGPU 兼容模式 —— 面向老旧 GPU 的 WebGPU
- 在浏览器里做一个开放世界需要什么 —— 我们自己的轨迹