FMeshPassProcessor* CreateBasePassProcessor(ERHIFeatureLevel::Type FeatureLevel, const FScene* Scene, const FSceneView* InViewIfDynamicMeshCommand, FMeshPassDrawListContext* InDrawListContext)
{
const FExclusiveDepthStencil::Type DefaultBasePassDepthStencilAccess = FScene::GetDefaultBasePassDepthStencilAccess(FeatureLevel);
FMeshPassProcessorRenderState PassDrawRenderState;
SetupBasePassState(DefaultBasePassDepthStencilAccess, false, PassDrawRenderState);
<br/>
const FBasePassMeshProcessor::EFlags Flags = FBasePassMeshProcessor::EFlags::CanUseDepthStencil;
<br/>
return new FBasePassMeshProcessor(EMeshPass::BasePass, Scene, FeatureLevel, InViewIfDynamicMeshCommand, PassDrawRenderState, InDrawListContext, Flags);
}
<br/>
发现虚幻五创建processor的方式改成了:
return new FBasePassMeshProcessor(EMeshPass::BasePass, Scene, FeatureLevel, InViewIfDynamicMeshCommand, PassDrawRenderState, InDrawListContext, Flags);
的方式了。
<br/>
虚幻四的时候,还是使用,类似:
return new(FMemStack::Get()) FBasePassMeshProcessor(EMeshPass::BasePass, Scene, FeatureLevel, InViewIfDynamicMeshCommand, PassDrawRenderState, InDrawListContext, Flags);
<br/>
虚幻五的这种写法有什么讲究吗?无需显示 new(FMemStack::Get()) 能起到优化内存缓存的做用吗?
我们新建customprocessor的话,是要遵循五的这种写法吗?