各位玩家,目前我们正在开发的开放世界生存手工合作游戏中,我们需要关于Unity着色器预热解决方案的建议。我们正在使用Unity 6(6.3.11)。 https://preview.redd.it/dr50mdccwp0h1.png?width=1920&format=png&auto=webp&s=f3a6c0fab5c0242e9604da99f3fd25dca530b403 我们目前面临着性能困境:当遇到新着色器或区域时,会出现巨大的FPS下降(抖动),但我们的预热尝试却引起了更严重的副作用。我们遇到的问题: * 着色器变体集合(SVC):这是我们的最大瓶颈。它们无法防止游戏中的“编译卡顿”,并且更糟糕的是,它们已经将我们的加载屏幕膨胀到了10分钟以上。另外,SVC与现代图形API如DX12不完全兼容。 * 管道状态对象(PSO):虽然这是Unity 6.3.11中现代解决方案的意图,但有一个已知的问题,使PSO在我们的设置中不可用。 * “摄像机方法”:我们尝试在加载时使用辅助摄像机强制渲染变体,但似乎无法停止抖动一旦那些着色器出现在主视图中。 目标:我需要一种有效的方法来预热着色器以防止抖动,而不强制玩家等待10分钟的加载屏幕。在开放世界合作环境中,这些卡顿使游戏无法玩。社区的问题: 1. 你们如何在Unity 6中处理着色器预编译,给定当前PSO的错误? 2. 是否有方法来优化SVC以减少那些10分钟的加载时间,同时仍然防止抖动? 3. 是否有自定义或第三方解决方案来更有效地处理异步着色器编译,特别是在开放世界环境中? 您可以在这里查看项目以了解我们的范围:Steam链接:https://store.steampowered.com/app/2354810/Elysium/ 有任何见解或技术工作-around将会非常有帮助。感谢!
Unity Shader 预热解决方案:解决 Unity 6 中的卡顿和长时间加载
评论 (0)