From: <axl...@us...> - 2009-08-18 10:41:08
|
Revision: 491 http://hgengine.svn.sourceforge.net/hgengine/?rev=491&view=rev Author: axlecrusher Date: 2009-08-18 10:41:01 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Fix completly broken culling Modified Paths: -------------- Mercury2/src/MercuryAsset.cpp Mercury2/src/MercuryNode.cpp Modified: Mercury2/src/MercuryAsset.cpp =================================================================== --- Mercury2/src/MercuryAsset.cpp 2009-08-18 05:47:39 UTC (rev 490) +++ Mercury2/src/MercuryAsset.cpp 2009-08-18 10:41:01 UTC (rev 491) @@ -6,7 +6,7 @@ extern bool DOOCCLUSIONCULL; MercuryAsset::MercuryAsset() - :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_excludeFromCull(true) + :m_isInstanced(false), m_boundingVolume(NULL), m_loadState(NONE), m_excludeFromCull(false) { } Modified: Mercury2/src/MercuryNode.cpp =================================================================== --- Mercury2/src/MercuryNode.cpp 2009-08-18 05:47:39 UTC (rev 490) +++ Mercury2/src/MercuryNode.cpp 2009-08-18 10:41:01 UTC (rev 491) @@ -275,13 +275,16 @@ { MercuryAssetInstance& mai = *i; MercuryAsset& a = mai.Asset(); + if ( !a.ExcludeFromCull() ) - culled = culled && mai.Culled( a.DoCullingTests( mai.GetOcclusionResult(), matrix ) ); - if ( !mai.Culled() ) { - culled = false; - a.PreRender(this); + mai.Culled( a.DoCullingTests( mai.GetOcclusionResult(), matrix ) ); + culled = culled && mai.Culled(); } + + if ( a.ExcludeFromCull() ) culled = false; //node must be rendered if something was excluded + + if ( !mai.Culled() ) a.PreRender(this); } SetCulled( culled ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |