各位开发者, 我正在寻找关于Unity shader预热解决方案的建议,特别是针对目前在Unity 6(6.3.11)上开发的开放世界生存手工合作游戏。 我们面临着一个双刃剑的问题:每当遇到新shader或区域时,都会出现大幅度的FPS下降(抖动),但是我们尝试预热它们却引入了新的问题。 我们遇到的问题: * Shader Variant Collections(SVC):这是我们最大的头痛。 不仅它们无法预防游戏中的“编译卡顿”,而且它们还使我们的加载屏幕时间超过10分钟。 这对于合作体验来说是不可接受的。 * Pipeline State Objects(PSOs): 我们知道这是现代标准,但Unity 6.3.11中存在一个已知问题,使PSOs在我们的当前设置下无法正常工作。 * “摄像机方法”: 我们尝试使用一个副摄像机来在加载阶段强制渲染变体,但当那些shader最终进入主视图时,抖动仍然存在。 目标: 我需要一种有效的方法来预热shader以防止抖动而不强制玩家进入10分钟的加载屏幕。 对社区的提问: 1. 你们如何在Unity 6中管理shader预编译,考虑到当前PSO的错误? 2. 你们是否有优化SVC的方法来预防巨大的加载时间,同时实际上停止抖动? 3. 你们是否有自定义或第三方解决方案来更有效地处理异步shader编译,特别是在开放世界环境中? 任何见解或技术解决方案都将大大帮助。 谢谢!