Streaming optimizations and black-pop elimination in progress
--HG-- branch : nfb
This commit is contained in:
@@ -106,8 +106,19 @@ void KRLODSet::showLOD()
|
|||||||
|
|
||||||
kraken_stream_level KRLODSet::getStreamLevel(bool prime, const KRViewport &viewport)
|
kraken_stream_level KRLODSet::getStreamLevel(bool prime, const KRViewport &viewport)
|
||||||
{
|
{
|
||||||
if(m_activeLODGroup) {
|
KRLODGroup *new_active_lod_group = NULL;
|
||||||
return m_activeLODGroup->getStreamLevel(prime, viewport);
|
|
||||||
|
// Upgrade and downgrade LOD groups as needed
|
||||||
|
for(std::set<KRNode *>::iterator itr=m_childNodes.begin(); itr != m_childNodes.end(); ++itr) {
|
||||||
|
KRLODGroup *lod_group = dynamic_cast<KRLODGroup *>(*itr);
|
||||||
|
assert(lod_group != NULL);
|
||||||
|
if(lod_group->getLODVisibility(viewport)) {
|
||||||
|
new_active_lod_group = lod_group;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(new_active_lod_group) {
|
||||||
|
return new_active_lod_group->getStreamLevel(prime, viewport);
|
||||||
} else {
|
} else {
|
||||||
return kraken_stream_level::STREAM_LEVEL_IN_HQ;
|
return kraken_stream_level::STREAM_LEVEL_IN_HQ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,8 +124,10 @@ kraken_stream_level KRTexture::getStreamLevel(bool prime, float lodCoverage, KRT
|
|||||||
return kraken_stream_level::STREAM_LEVEL_OUT;
|
return kraken_stream_level::STREAM_LEVEL_OUT;
|
||||||
} else if(m_current_lod_max_dim == KRMIN(getContext().KRENGINE_MAX_TEXTURE_DIM, m_max_lod_max_dim)) {
|
} else if(m_current_lod_max_dim == KRMIN(getContext().KRENGINE_MAX_TEXTURE_DIM, m_max_lod_max_dim)) {
|
||||||
return kraken_stream_level::STREAM_LEVEL_IN_HQ;
|
return kraken_stream_level::STREAM_LEVEL_IN_HQ;
|
||||||
} else {
|
} else if(m_current_lod_max_dim >= KRMAX(getContext().KRENGINE_MIN_TEXTURE_DIM, m_min_lod_max_dim)) {
|
||||||
return kraken_stream_level::STREAM_LEVEL_IN_LQ;
|
return kraken_stream_level::STREAM_LEVEL_IN_LQ;
|
||||||
|
} else {
|
||||||
|
return kraken_stream_level::STREAM_LEVEL_OUT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user