|
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.
|