Fix transparency materials in particle systems.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3615 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2011-03-20 11:40:00 +00:00
parent 3c1c1085b4
commit c9d021cc36
3 changed files with 7 additions and 6 deletions

View File

@ -328,7 +328,7 @@ int main()
// scale the mesh by factor 50 // scale the mesh by factor 50
core::matrix4 m; core::matrix4 m;
m.setScale ( core::vector3df(50,50,50) ); m.setScale ( core::vector3df(50,50,50) );
manipulator->transformMesh( tangentSphereMesh, m ); manipulator->transform( tangentSphereMesh, m );
earth = smgr->addMeshSceneNode(tangentSphereMesh); earth = smgr->addMeshSceneNode(tangentSphereMesh);
@ -427,7 +427,7 @@ int main()
core::aabbox3d<f32>(-3,0,-3,3,1,3), core::aabbox3d<f32>(-3,0,-3,3,1,3),
core::vector3df(0.0f,0.03f,0.0f), core::vector3df(0.0f,0.03f,0.0f),
80,100, 80,100,
video::SColor(0,255,255,255), video::SColor(0,255,255,255), video::SColor(10,255,255,255), video::SColor(10,255,255,255),
400,1100); 400,1100);
em->setMinStartSize(core::dimension2d<f32>(30.0f, 40.0f)); em->setMinStartSize(core::dimension2d<f32>(30.0f, 40.0f));
em->setMaxStartSize(core::dimension2d<f32>(30.0f, 40.0f)); em->setMaxStartSize(core::dimension2d<f32>(30.0f, 40.0f));
@ -444,7 +444,7 @@ int main()
ps->setMaterialFlag(video::EMF_LIGHTING, false); ps->setMaterialFlag(video::EMF_LIGHTING, false);
ps->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false); ps->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false);
ps->setMaterialTexture(0, driver->getTexture("../../media/fireball.bmp")); ps->setMaterialTexture(0, driver->getTexture("../../media/fireball.bmp"));
ps->setMaterialType(video::EMT_TRANSPARENT_VERTEX_ALPHA); ps->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR);
MyEventReceiver receiver(room, earth, env, driver); MyEventReceiver receiver(room, earth, env, driver);
device->setEventReceiver(&receiver); device->setEventReceiver(&receiver);

View File

@ -1888,7 +1888,7 @@ void CQuake3EventHandler::createParticleImpacts( u32 now )
pas->setMaterialFlag(video::EMF_LIGHTING, false); pas->setMaterialFlag(video::EMF_LIGHTING, false);
pas->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false); pas->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false);
pas->setMaterialType(video::EMT_TRANSPARENT_VERTEX_ALPHA ); pas->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR );
pas->setMaterialTexture(0, Game->Device->getVideoDriver()->getTexture( smoke[g].texture )); pas->setMaterialTexture(0, Game->Device->getVideoDriver()->getTexture( smoke[g].texture ));
} }

View File

@ -525,7 +525,7 @@ void CDemo::loadSceneData()
scene::IParticleEmitter* em = campFire->createBoxEmitter( scene::IParticleEmitter* em = campFire->createBoxEmitter(
core::aabbox3d<f32>(-7,0,-7,7,1,7), core::aabbox3d<f32>(-7,0,-7,7,1,7),
core::vector3df(0.0f,0.06f,0.0f), core::vector3df(0.0f,0.06f,0.0f),
80,100, video::SColor(0,255,255,255),video::SColor(0,255,255,255), 800,2000); 80,100, video::SColor(1,255,255,255),video::SColor(1,255,255,255), 800,2000);
em->setMinStartSize(core::dimension2d<f32>(20.0f, 10.0f)); em->setMinStartSize(core::dimension2d<f32>(20.0f, 10.0f));
em->setMaxStartSize(core::dimension2d<f32>(20.0f, 10.0f)); em->setMaxStartSize(core::dimension2d<f32>(20.0f, 10.0f));
@ -539,7 +539,8 @@ void CDemo::loadSceneData()
campFire->setMaterialFlag(video::EMF_LIGHTING, false); campFire->setMaterialFlag(video::EMF_LIGHTING, false);
campFire->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false); campFire->setMaterialFlag(video::EMF_ZWRITE_ENABLE, false);
campFire->setMaterialTexture(0, driver->getTexture("../../media/fireball.bmp")); campFire->setMaterialTexture(0, driver->getTexture("../../media/fireball.bmp"));
campFire->setMaterialType(video::EMT_TRANSPARENT_VERTEX_ALPHA); campFire->setMaterialType(video::EMT_ONETEXTURE_BLEND);
campFire->getMaterial(0).MaterialTypeParam=video::pack_texureBlendFunc(video::EBF_ONE, video::EBF_ONE_MINUS_SRC_ALPHA, video::EMFN_MODULATE_1X, video::EAS_VERTEX_COLOR);
// load music // load music