在FPSOCollectorCreateManager类里面的,MaxPSOCollectorCount = 64的一疑问。

大佬们好,我们使用unreal5.4的引擎。

最近新加一个pass发现个问题,

在MeshPassProcessor.h中,断言的pass数量为:

static_asset(EMeshPass::Num == 32, "Need to update swith(MeshPass)…"​

但是,在PSOPrecacheMaterial.h中,

class FPSOCollectorCreateManage

{

constexpr static uint32 MaxPSOCollectorCount =64;

}​

记得在老版本的引擎中,​MaxPSOCollectorCount 是和 EMeshPass::Num一一对应的。

在5.4中,​MaxPSOCollectorCount 直接给了64,看起来是为了直接给一个够用的值?还是有什么讲究的。

也就是,如果我添加了一个新的pass, 除了​在MeshPassProcessor.h中要改成:

static_asset(EMeshPass::Num == 32 + 1, "Need to update swith(MeshPass)…"​

在​PSOPrecacheMaterial.h中的MaxPSOCollectorCount =64; 要+1吗?

您好,之前每次添加就需要增加一个,后来只是为了不依赖pass数量,直接设置为一个比较大的64

添加新的pass不需要+1,暂时不会超过64个pass数量​

对应的修改是 https://github.com/EpicGames/UnrealEngine/commit/09b7c396e1fc1c87e49e0050e3e8956926566c3d

可以看下提交的信息​

感谢