Commit 4325befb authored by bitplane's avatar bitplane

Volume light to use hardware buffers and correct render pass. Doesn't make...

Volume light to use hardware buffers and correct render pass. Doesn't make much difference as complex lights do lots of filling when close up

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1317 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 818b7985
...@@ -31,6 +31,7 @@ CVolumeLightSceneNode::CVolumeLightSceneNode(ISceneNode* parent, ISceneManager* ...@@ -31,6 +31,7 @@ CVolumeLightSceneNode::CVolumeLightSceneNode(ISceneNode* parent, ISceneManager*
setDebugName("CVolumeLightSceneNode"); setDebugName("CVolumeLightSceneNode");
#endif #endif
Buffer.setHardwareMappingHint(EHM_STATIC);
constructLight(); constructLight();
} }
...@@ -167,6 +168,8 @@ void CVolumeLightSceneNode::constructLight() ...@@ -167,6 +168,8 @@ void CVolumeLightSceneNode::constructLight()
Buffer.Material.Lighting = false; Buffer.Material.Lighting = false;
Buffer.Material.ZWriteEnable = false; Buffer.Material.ZWriteEnable = false;
Buffer.setDirty(EBT_VERTEX_AND_INDEX);
} }
...@@ -177,10 +180,7 @@ void CVolumeLightSceneNode::render() ...@@ -177,10 +180,7 @@ void CVolumeLightSceneNode::render()
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation); driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
driver->setMaterial(Buffer.Material); driver->setMaterial(Buffer.Material);
driver->drawVertexPrimitiveList( driver->drawMeshBuffer(&Buffer);
Buffer.getVertices(), Buffer.getVertexCount(),
Buffer.getIndices(), Buffer.getIndexCount() / 3 ,
Buffer.getVertexType(), EPT_TRIANGLES);
} }
...@@ -195,14 +195,7 @@ void CVolumeLightSceneNode::OnRegisterSceneNode() ...@@ -195,14 +195,7 @@ void CVolumeLightSceneNode::OnRegisterSceneNode()
{ {
if (IsVisible) if (IsVisible)
{ {
//lie to sceneManager SceneManager->registerNodeForRendering(this, ESNRP_TRANSPARENT);
Buffer.Material.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
Buffer.Material.MaterialTypeParam = 0.01f;
SceneManager->registerNodeForRendering(this, ESNRP_AUTOMATIC);
//restore state
Buffer.Material.MaterialType = video::EMT_ONETEXTURE_BLEND;
Buffer.Material.MaterialTypeParam = pack_texureBlendFunc( video::EBF_SRC_COLOR, video::EBF_SRC_ALPHA, video::EMFN_MODULATE_1X );
} }
ISceneNode::OnRegisterSceneNode(); ISceneNode::OnRegisterSceneNode();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment