GPUParticles: Use transparent_effect pass

This commit is contained in:
Vincent Lejeune 2014-01-27 18:12:38 +01:00
parent 5be8dbedab
commit 098303dced
3 changed files with 13 additions and 1 deletions

View File

@ -214,7 +214,7 @@ public:
//! Returns type of the scene node
virtual ESCENE_NODE_TYPE getType() const { return ESNT_PARTICLE_SYSTEM; }
private:
protected:
void reallocateBuffers();

View File

@ -609,6 +609,17 @@ void ParticleSystemProxy::render() {
static_cast<irr::video::COpenGLDriver*>(drv)->setRenderStates3DMode();
}
void ParticleSystemProxy::OnRegisterSceneNode()
{
doParticleSystem(os::Timer::getTime());
if (IsVisible && (Particles.size() != 0))
{
SceneManager->registerNodeForRendering(this, scene::ESNRP_TRANSPARENT_EFFECT);
ISceneNode::OnRegisterSceneNode();
}
}
RainNode::RainNode(scene::ISceneManager* mgr, ITexture *tex)
: GPUParticle(0, mgr, tex)
{

View File

@ -69,6 +69,7 @@ public:
virtual void setEmitter(scene::IParticleEmitter* emitter);
virtual void render();
virtual void OnRegisterSceneNode();
void setAlphaAdditive(bool);
void setIncreaseFactor(float);
void setHeightmap(const std::vector<std::vector<float> >&, float, float, float, float);