Added limited form of LOD on particle emitters
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@9718 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
3de0d344f7
commit
cb47023202
@ -1190,6 +1190,9 @@ void Track::loadTrackModel(World* parent, unsigned int mode_id)
|
|||||||
node->get("kind", &path);
|
node->get("kind", &path);
|
||||||
node->getXYZ(&emitter_origin);
|
node->getXYZ(&emitter_origin);
|
||||||
|
|
||||||
|
int clip_distance = -1;
|
||||||
|
node->get("clip_distance", &clip_distance);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ParticleKind* kind = ParticleKindManager::get()->getParticles( path.c_str() );
|
ParticleKind* kind = ParticleKindManager::get()->getParticles( path.c_str() );
|
||||||
@ -1198,8 +1201,21 @@ void Track::loadTrackModel(World* parent, unsigned int mode_id)
|
|||||||
throw std::runtime_error(path + " could not be loaded");
|
throw std::runtime_error(path + " could not be loaded");
|
||||||
}
|
}
|
||||||
ParticleEmitter* emitter = new ParticleEmitter( kind, emitter_origin );
|
ParticleEmitter* emitter = new ParticleEmitter( kind, emitter_origin );
|
||||||
|
|
||||||
|
if (clip_distance > 0)
|
||||||
|
{
|
||||||
|
scene::ISceneManager* sm = irr_driver->getSceneManager();
|
||||||
|
scene::ISceneNode* sroot = sm->getRootSceneNode();
|
||||||
|
LODNode* lod = new LODNode(sroot, sm);
|
||||||
|
lod->add(clip_distance, (scene::ISceneNode*)emitter->getNode(), true);
|
||||||
|
//m_all_emitters.push_back(emitter);
|
||||||
|
m_all_nodes.push_back( lod );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
m_all_emitters.push_back(emitter);
|
m_all_emitters.push_back(emitter);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch (std::runtime_error& e)
|
catch (std::runtime_error& e)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "[Track] WARNING: Could not load particles '%s'; cause :\n %s", path.c_str(), e.what());
|
fprintf(stderr, "[Track] WARNING: Could not load particles '%s'; cause :\n %s", path.c_str(), e.what());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user