Move more repeated logic out of node render methods into KRScene
This commit is contained in:
@@ -127,9 +127,6 @@ int KRDirectionalLight::configureShadowBufferViewports(const KRViewport& viewpor
|
||||
|
||||
void KRDirectionalLight::render(RenderInfo& ri)
|
||||
{
|
||||
|
||||
if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return;
|
||||
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
KRLight::render(ri);
|
||||
|
||||
@@ -225,8 +225,6 @@ void KRLight::render(RenderInfo& ri)
|
||||
{
|
||||
KRNode::render(ri);
|
||||
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_SHADOWMAP && (ri.camera->settings.volumetric_environment_enable || ri.camera->settings.dust_particle_enable || (ri.camera->settings.m_cShadowBuffers > 0 && m_casts_shadow))) {
|
||||
allocateShadowBuffers(configureShadowBufferViewports(*ri.viewport));
|
||||
renderShadowBuffers(ri);
|
||||
@@ -429,7 +427,6 @@ void KRLight::render(RenderInfo& ri)
|
||||
}
|
||||
|
||||
}
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
|
||||
void KRLight::allocateShadowBuffers(int cBuffers)
|
||||
|
||||
@@ -254,8 +254,6 @@ void KRModel::loadModel()
|
||||
|
||||
void KRModel::render(KRNode::RenderInfo& ri)
|
||||
{
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
KRNode::render(ri);
|
||||
|
||||
// Don't render meshes on second pass of the deferred lighting renderer, as only lights will be applied
|
||||
@@ -263,8 +261,7 @@ void KRModel::render(KRNode::RenderInfo& ri)
|
||||
&& ri.renderPass->getType() != RenderPassType::RENDER_PASS_ADDITIVE_PARTICLES
|
||||
&& ri.renderPass->getType() != RenderPassType::RENDER_PASS_PARTICLE_OCCLUSION
|
||||
&& ri.renderPass->getType()!= RenderPassType::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE
|
||||
&& ri.renderPass->getType() != RenderPassType::RENDER_PASS_SHADOWMAP
|
||||
&& ri.renderPass->getType() != RenderPassType::RENDER_PASS_PRESTREAM) {
|
||||
&& ri.renderPass->getType() != RenderPassType::RENDER_PASS_SHADOWMAP) {
|
||||
loadModel();
|
||||
|
||||
/*
|
||||
@@ -315,8 +312,6 @@ void KRModel::render(KRNode::RenderInfo& ri)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
|
||||
void KRModel::preStream(const KRViewport& viewport)
|
||||
|
||||
@@ -82,8 +82,6 @@ bool KRParticleSystemNewtonian::hasPhysics()
|
||||
|
||||
void KRParticleSystemNewtonian::render(RenderInfo& ri)
|
||||
{
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
KRNode::render(ri);
|
||||
|
||||
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_ADDITIVE_PARTICLES) {
|
||||
@@ -111,7 +109,6 @@ void KRParticleSystemNewtonian::render(RenderInfo& ri)
|
||||
vkCmdDraw(ri.commandBuffer, particle_count * 3, 1, 0, 0);
|
||||
}
|
||||
}
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
|
||||
bool KRParticleSystemNewtonian::getShaderValue(ShaderValue value, float* output) const
|
||||
|
||||
@@ -75,8 +75,6 @@ AABB KRPointLight::getBounds()
|
||||
|
||||
void KRPointLight::render(RenderInfo& ri)
|
||||
{
|
||||
if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return;
|
||||
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
KRLight::render(ri);
|
||||
|
||||
@@ -126,8 +126,6 @@ void KRSprite::preStream(const KRViewport& viewport)
|
||||
|
||||
void KRSprite::render(RenderInfo& ri)
|
||||
{
|
||||
ri.reflectedObjects.push_back(this);
|
||||
|
||||
KRNode::render(ri);
|
||||
|
||||
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_ADDITIVE_PARTICLES) {
|
||||
@@ -160,7 +158,6 @@ void KRSprite::render(RenderInfo& ri)
|
||||
}
|
||||
}
|
||||
}
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
|
||||
bool KRSprite::getShaderValue(ShaderValue value, float* output) const
|
||||
|
||||
@@ -157,7 +157,9 @@ void KRScene::render(KRNode::RenderInfo& ri)
|
||||
}
|
||||
} else {
|
||||
if ((*itr)->getLODVisibility() > KRNode::LOD_VISIBILITY_PRESTREAM) {
|
||||
ri.reflectedObjects.push_back(node);
|
||||
node->render(ri);
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -361,7 +363,9 @@ void KRScene::render(KRNode::RenderInfo& ri, KROctreeNode* pOctreeNode, std::vec
|
||||
} else {
|
||||
if ((*itr)->getLODVisibility() > KRNode::LOD_VISIBILITY_PRESTREAM)
|
||||
{
|
||||
ri.reflectedObjects.push_back(*itr);
|
||||
(*itr)->render(ri);
|
||||
ri.reflectedObjects.pop_back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user