微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在虚幻引擎3中,如何跳过材料的运行时编译,或使材料显示为已编译状态?

如何解决在虚幻引擎3中,如何跳过材料的运行时编译,或使材料显示为已编译状态?

我在虚幻引擎3中运行了一个游戏,但该游戏中的某些材料存在问题。我在日志中收到这些警告:

Warning: Warning,Failed to compile Material Instance RPGTacDesert2.Materials.TimeChangeLandscape_Desert_INST with Base TimeChangeLandscape_Desert for platform PC-D3D-SM3,Default Material will be used in game.

每当出现这样的警告时,即游戏花了6秒钟未能编译一个材质实例。我再也不能忍受它了,因为我的级别具有这些警告中的4条,并且我不会忍受24秒的加载时间。

这就是问题:我在编辑器中编译了材质实例,并且材质实例在游戏中显示得很好。我想让这款游戏只是跳过尝试编译材料并使用现有功能方法

在试图找出更多有关问题的信息时,我尝试遵循警告消息。该错误来自UMaterialInstance :: CacheResourceShaders()。该函数的描述是“如果该资源的着色器贴图不存在,则为该平台编译材料资源。”它调用Parent-> CompileStaticPermutation(),它在材质实例的父级上调用相同的函数,直到到达父级材质。我的材质实例的父材质的UMaterial :: CompileStaticPermutation显然无法编译。 (从虚幻材料的意义上进行编译,而不是从编码的意义上进行编译。)

我试图找出CacheResourceShaders()的调用位置,它似乎主要用于编辑器和烹饪包中,但它也在游戏期间运行。显然,游戏找不到预编译的材质实例,因此它尝试在运行时进行编译。然后它告诉我编译失败,但是材质实例在游戏中显示得很好。我要么希望该材料的编译起作用,要么我想告诉游戏,“相信我。我已经在编辑器中对其进行编译。现在不要尝试对其进行编译。只需继续。”

有什么想法为什么会发生或如何解决

编辑:我找到了GForceMinimalshadercompilation。我尝试将其设置为true。好消息是关卡加载速度更快。坏消息是我的材料中有90%已被认材料替换。我想我将不得不改回去...除非我能弄清楚为什么一些材料能幸免于此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。