Unreal Engine has a solution for shader stuttering.

Unreal Engine 5.2 引入了预加载管道状态对象 (PSO) 系统,旨在减少游戏中的着色器编译导致的卡顿问题。这缓解了着色器卡顿,目前是 PC 游戏面临的一大难题。
着色器编译卡顿(也称为着色器卡顿)发生在游戏需要在显示之前准备着色器时,导致明显的延迟和着色器明显闪烁。这种延迟是由于将高级着色器代码转换为不同图形卡可以理解的机器码非常复杂造成的。
现代图形API(如DirectX 12 和 Vulkan)引入了 PSO(渲染命令管道状态对象),以提高性能。PSO 将着色器和渲染设置组合在一起,以便预先准备。然而,在拥有许多不同材质和渲染选项的复杂游戏中,可能的 PSO 组合数量可能会让人望而生畏。 早期方法,例如 Unreal Engine 的“捆绑 PSO 缓存”,无法跟上步伐。这种缓存需要大量资源来跟踪和管理,并且难以管理。
Unreal 引入了新的 PSO 预加载系统,解决了之前的一些问题。 在加载时,它会检查材质、网格和整体设置,确定哪些 PSO 最有可能需要使用。这些将是在加载屏幕期间或刚需要的时候准备好的。如果物体稍后出现,它们可以等待 PSO 준비完毕或者使用基本材质。 这有助于减少明显的延迟。
很高兴引擎正在努力解决这个问题。有趣的是,这仅仅是因为技术的进步而成为一个问题。过去,游戏会附带预编译着色器代码,图形驱动程序会在游戏中运行时将其转换。对于较简单的游戏来说,这种方法效果很好,但随着着色器的复杂性和图形卡的提升,性能问题逐渐出现。
请记住,处理材质变化是一个正在进行的工作,目前只适用于某些着色器。例如,全局着色器(用于运动模糊等效果)的处理方式不同,仍然会遇到问题。不过,未来计划改进这一点。
尽管如此,似乎 Unreal Engine 正走在解决这个问题的前列。希望永久解决方案能让着色器卡顿成为过去。
分类
最新文章
- <p><strong>Satechi SM3 机械键盘测评:安静高效的生产力利器</strong></p>
- This old mobile phone has become a fire hazard right before my eyes.
- <p>苹果日历的邀请函:与苹果待办事项有10种不同之处</p>
- <p><strong>苹果的工作:</strong> 2025 年苹果会发布一个与谷歌 Workspace 竞争的产品吗?</p>
- <p>苹果不太可能会举办特别活动来宣布 iPhone SE 4。</p>
- Today's New York Times Crossword Puzzle Clues and Answers (#608)
- Ubuntu 20.04 LTS 的支持即将到期。
- <p>读书清单太长了吗?让 AI 为您朗读。</p>
- This is my holy grail Blu-ray player.
- <p>Apple will release new products next week. Here's what's coming.</p>