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