Only create RenderData if we actually want to render the Renderable

This commit is contained in:
Alexander Bock
2020-08-18 13:43:51 +02:00
parent 88b6fdd9fe
commit 4f2d612abe
3 changed files with 25 additions and 12 deletions
+11 -11
View File
@@ -489,17 +489,6 @@ void SceneGraphNode::render(const RenderData& data, RendererTasks& tasks) {
return;
}
RenderData newData = {
data.camera,
data.time,
data.renderBinMask,
{ _worldPositionCached, _worldRotationCached, _worldScaleCached }
};
if (!isTimeFrameActive(data.time)) {
return;
}
const bool visible = _renderable && _renderable->isVisible() &&
_renderable->isReady() && _renderable->isEnabled() &&
_renderable->matchesRenderBinMask(data.renderBinMask);
@@ -508,9 +497,20 @@ void SceneGraphNode::render(const RenderData& data, RendererTasks& tasks) {
return;
}
if (!isTimeFrameActive(data.time)) {
return;
}
{
TracyGpuZone("Render")
RenderData newData = {
data.camera,
data.time,
data.renderBinMask,
{ _worldPositionCached, _worldRotationCached, _worldScaleCached }
};
_renderable->render(newData, tasks);
if (_computeScreenSpaceValues) {
computeScreenSpaceData(newData);