void FBasePassForwardOpaqueDrawingPolicyFactory::AddStaticMesh(FRHICommandList& RHICmdList, FScene* Scene, FStaticMesh* StaticMesh) { // Determine the mesh's material and blend mode. const auto FeatureLevel = Scene->GetFeatureLevel(); const FMaterial* Material = StaticMesh->MaterialRenderProxy->GetMaterial(FeatureLevel); const EBlendMode BlendMode = Material->GetBlendMode(); // Only draw opaque materials. if( !IsTranslucentBlendMode(BlendMode) ) { // following check moved from ProcessBasePassMeshForForwardShading to avoid passing feature level. check(!AllowHighQualityLightmaps(Scene->GetFeatureLevel())); ProcessBasePassMeshForForwardShading( RHICmdList, FProcessBasePassMeshParameters( *StaticMesh, Material, StaticMesh->PrimitiveSceneInfo->Proxy, true, false, ESceneRenderTargetsMode::DontSet, FeatureLevel ), FDrawBasePassForwardShadingStaticMeshAction(Scene,StaticMesh) ); } }
void FBasePassForwardOpaqueDrawingPolicyFactory::AddStaticMesh(FScene* Scene,FStaticMesh* StaticMesh) { // Determine the mesh's material and blend mode. const FMaterial* Material = StaticMesh->MaterialRenderProxy->GetMaterial(GRHIFeatureLevel); const EBlendMode BlendMode = Material->GetBlendMode(); // Only draw opaque materials. if( !IsTranslucentBlendMode(BlendMode) ) { ProcessBasePassMeshForForwardShading( FProcessBasePassMeshParameters( *StaticMesh, Material, StaticMesh->PrimitiveSceneInfo->Proxy, true, false, ESceneRenderTargetsMode::DontSet ), FDrawBasePassForwardShadingStaticMeshAction(Scene,StaticMesh) ); } }