5.6下Decal出现奇怪的渲染错误 Texture的预览也出错了

Hi,

我们在5.6下发现部分Decal有奇怪的渲染错误

[Image Removed]

打开材质随便编辑一下,然后保存就会正常。但是有几率导致其他的Decal也出现类似的错误。他们来自同一个母材质。

我们后面发现了一个稳定的触发方法,就是在Content下打开贴图编辑器,就会发现场景中的Decal会随机出现错误。

我们录制了一段视频 里面可以看到详细的错误效果。

https://drive.google.com/file/d/1Kd7lfeJ2IdTtWGPQqKV-K1bv3RX90O8H/view?usp=sharing

另外在附件中,也提供了一个可复现的工程。希望可以帮忙看下是什么原因导致的,有什么修复的办法。

另外我们发现5.6的缩略图似乎也有Bug,我们很多贴图的缩略图都是乱的。

[Image Removed]必须打开一次贴图编辑器才能正常。然后关闭引擎重新打开还是乱的。

[Image Removed]

论坛也有人遇到了这个问题:https://forums.unrealengine.com/t/virtual-texture-thumbnail-issue-in-ue5-6/2554196/3

这个影响还是挺大的,希望也能给个Fix方案。

Hi,

你好,抱歉回复比较晚,我跟另外一个同事都看了一下这个问题,但是我们两个人看到的情况不太一样,他看到的情况跟你视频里的情况类似,但是我这里看到的都是两个竖条的情况,即便切到Mobile Preview下也是(如截图,我不确定是不是因为我的引擎升级过)。我用renderdoc截了一帧,发现这个竖条好像来自Linear-VT这张图,由于材质球有点复杂,所以我不太确定用法。

能否把材质简化一下,看看问题可能来自于哪些节点,或者用更简单的材质来复现问题?这样我可以再分析一下可能出问题的原因。

补充一些发现供参考:就decal的问题和材质里的一个StaticSwtichParameter有关,重新创建一个把老的替代掉就可以了。和是否VT无关。复制这个节点到一个非常简单的新材质使用也会引起类似问题,猜测可能和DDC有关,但尝试清除没有帮助,目前我还不了解为什么会如此。

以下材质函数中的Opacity_UseOpacityTex?节点删除重建即可修复问题。

/Script/Engine.MaterialFunction’/Game/MaterialLib/Scene/MF/BasicMatMaterialLayer/MF_DecalMainMA.MF_DecalMainMA’

[Image Removed]

我们测试过,删除DDC没有用的。可能需要程序老哥帮忙看看了。这个现在对美术同学的影响挺大的。另外​关于FORT-926820,这个是否有对应的外部issues网站的地址方便追踪呢。

Hi,

我尝试删除了大部分逻辑,只保留了BaseColor和Opacity部分。

[Image Removed]还是可以用上面视频中提交的方法进行复现。目前看来似乎是Opacity影响的,但是在5.5的时候它是完全正确的,不知道为什么在5.6中会是这样。

我在附件中提供了修改过的工程。

另外还有一个问题是上面提到的缩略图的问题,那个也比较影响开发,希望也能有个Fix方案。

Hi,

我看了一下材质,母材质的Opacity_UseOpacityTex?是true,然后MI的值都是false,但是因为某些原因,这个static switch没有生效。去掉这个static swtich,直接联接节点就没问题了。

我印象里再Material Function里使用static switch是由bug的,我们一直没有修复,而且可能也不打算修复了,因为正在开发新的材质编译功能,替换老的,所以只能在用法上注意一下。如果你需要用static switch,要放到外面用,不要放到MaterialFunction里。

另外关于缩略图的问题,我们已经有人提了jira,不过暂时还没有被修复,目前优先级不高,可能要等到5.7的版本才能修复。不过如果修复了,我可以尽量通知你修复的改动。

:sweat_smile: 啊这…这bug有点奇怪。

5.5都是正常的 升级到5.6就G了… 难道是升级导致损坏了…

我们测试了一下,重建StaticSwtichParameter确实是正常了… 完全不明白到底是因为什么导致它出错的😂 如果后面能找到原因麻烦同步一下。

从结果上来看,我感觉像是StaticSwtichParameter会在True和False反复切换,为True的时候应用了Linear-VT,所以产生了那个竖条。为False的时候,是用了BaseColor的Alpha。所以效果是对的。 但是不知道什么原因,Instance中设置的Opacity_UseOpacityTex为False似乎不起作用了,导致它在True和False反复切换。

其他的问题就是上面提到缩略图的问题了 那个也是对美术同学影响比较大的

我看你给到的链接里缩略图的问题已经记录在案了,​但还未有同事跟进。

尝试删除DDC再打开试试,如果不行我这边没有太多其他的思绪了,可能需要程序同学帮忙看下,或者等待FORT-926820更新。

目前没有公开的链接可追踪,但问题已经更新到UE-305912,并标注了很高的优先级,计划在5.6.1修复

好的,非常感谢。

Hi,

你好,关于Virtual Texture缩略图的问题,我们已经修复了,你可以试试合入https://github.com/EpicGames/UnrealEngine/commit/607c14afdea1fbe682b3f5a97929f82a092a1f99

好的,我们合一下看看,多谢。

没事,感谢 [mention removed] 帮忙。后续有问题我们再继续沟通。

我们合并了一下,大部分VT的缩略图都正常了。

不过我们发现引擎目录下有的贴图好像还有点问题,比如UVEditorColorGrid_VTAlpha 默认缩略图是偏红的

[Image Removed]打开以后才会正常

[Image Removed]然后重启引擎以后,又变回图1的样子了。

不知道这是没修完全么,还是什么其他原因。 不过这个对我们影响倒不是很大,只是报告一下看到了这个问题。

好的,感谢,我再反馈一下。

好的,辛苦了。