feat(srp): add render layer filtering to scene draw
- carry MeshRenderer renderLayer through scene extraction into VisibleRenderItem - extend native and managed FilteringSettings with renderLayerMask support - let RenderObjectsRendererFeature author layer-filtered object draws
This commit is contained in:
@@ -116,6 +116,7 @@ void AppendRenderItemsForGameObject(
|
||||
visibleItem.renderObjectId = renderObjectId;
|
||||
visibleItem.sectionIndex = static_cast<Core::uint32>(sectionIndex);
|
||||
visibleItem.hasSection = true;
|
||||
visibleItem.renderLayer = meshRenderer->GetRenderLayer();
|
||||
visibleItem.material = ResolveMaterial(meshRenderer, mesh, section.materialID);
|
||||
visibleItem.renderQueue = ResolveMaterialRenderQueue(visibleItem.material);
|
||||
visibleItem.cameraDistanceSq = cameraDistanceSq;
|
||||
@@ -134,6 +135,7 @@ void AppendRenderItemsForGameObject(
|
||||
visibleItem.materialIndex = 0;
|
||||
visibleItem.sectionIndex = 0;
|
||||
visibleItem.hasSection = false;
|
||||
visibleItem.renderLayer = meshRenderer->GetRenderLayer();
|
||||
visibleItem.material = ResolveMaterial(meshRenderer, mesh, 0);
|
||||
visibleItem.renderQueue = ResolveMaterialRenderQueue(visibleItem.material);
|
||||
visibleItem.cameraDistanceSq = cameraDistanceSq;
|
||||
|
||||
@@ -932,9 +932,9 @@ static_assert(
|
||||
struct ManagedFilteringSettingsData {
|
||||
int32_t renderQueueMin = std::numeric_limits<int32_t>::lowest();
|
||||
int32_t renderQueueMax = std::numeric_limits<int32_t>::max();
|
||||
uint32_t renderLayerMask = std::numeric_limits<uint32_t>::max();
|
||||
uint8_t requireShadowCasting = 0u;
|
||||
uint8_t requireRenderObjectId = 0u;
|
||||
uint8_t padding[2] = {};
|
||||
};
|
||||
|
||||
static_assert(
|
||||
|
||||
Reference in New Issue
Block a user