CarX Street 登陆 PC 平台,带来一款充分利用 Unity 引擎的街头赛车模拟游戏。这款游戏不仅以其玩法著称,其技术层面也力求在夜间城市环境中实现视觉真实感。其美学关键在于使用屏幕空间反射(SSR)在车身上生成动态反射效果,并结合精心打造的点光源照明,模拟路灯、霓虹灯和交通信号灯。
SSR、SpeedTree 和 Simplygon 在 Unity 管线中的应用 🏎️
通过 SSR 实现的实时反射,让每辆车都能反射不断变化的城市环境,无需使用静态立方体贴图。然而,这种技术对性能消耗很大。为了抵消这一点,开发团队使用了 Simplygon 来减少远处车辆和建筑模型的多边形数量,同时保持近景质量。此外,尽管游戏设定在城市,但通过 SpeedTree 引入了植被,它能高效生成具有 LOD(细节层次)的树木和灌木。对于寻求类似效果的独立开发者,建议优先考虑实时灯光的数量而非阴影质量,并且仅在金属表面或车漆上使用 SSR。
给想制作夜间竞速游戏的独立开发者的启示 🌃
CarX Street 证明,如果应用了恰当的优化工具,Unity 在竞速游戏类型中也能在视觉上具备竞争力。主要的教训是不要滥用反射:有选择地应用 SSR(仅限车辆和水洼)可以节省资源。同样,将 Simplygon 用于高多边形资源,以及 SpeedTree 用于有机细节,可以在不牺牲帧率的情况下保持城市的活力。对于独立开发者来说,从固定的日夜循环(仅夜间)开始,可以降低光照的复杂性,并专注于城市反射的质量。
考虑到 PC 版 CarX Street 使用了实时 SSR 反射,Unity 如何在密集的城市环境中处理这些反射与动态夜间照明的计算成本,同时又不影响帧率?
(附注:为移动端优化就像试图把大象塞进 Mini Cooper 里)