That was really mean Benoit :) to promise all that without providing us a scons buildable code :p (ok, I know you use MSVC only)<br><br>Anyways,
I&#39;m really willing to test that, so if anyone (jesterKing?) could take
a look at the linking problems (msvc+scons), it will be very
appreciated:<br>
<br><a href="http://pastebin.com/m5f6f500f" target="_blank">http://pastebin.com/m5f6f500f</a><br><br>Cheers,<br>Dalai<br><br><a href="http://blenderecia.orgfree.com/" target="_blank">http://blenderecia.orgfree.com</a><br>
<br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Benoit Bolsee</b> <span dir="ltr">&lt;<a href="mailto:benoit.bolsee@online.be">benoit.bolsee@online.be</a>&gt;</span><br>
Date: 2009/4/7<br>Subject: [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19592] trunk/blender: BGE Scenegraph and View frustrum culling improvement.<br>To: <a href="mailto:bf-blender-cvs@blender.org">bf-blender-cvs@blender.org</a><br>
<br><br>Revision: 19592<br>
          <a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=19592" target="_blank">http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=19592</a><br>

Author:   ben2610<br>
Date:     2009-04-08 00:14:06 +0200 (Wed, 08 Apr 2009)<br>
<br>
Log Message:<br>
-----------<br>
BGE Scenegraph and View frustrum culling improvement.<br>
<br>
This commit contains a number of performance improvements for the<br>
BGE in the Scenegraph (parent relation between objects in the<br>
scene) and view frustrum culling.<br>
<br>
The scenegraph improvement consists in avoiding position update<br>
if the object has not moved since last update and the removal<br>
of redundant updates and synchronization with the physics engine.<br>
<br>
The view frustrum culling improvement consists in using the DBVT<br>
broadphase facility of Bullet to build a tree of graphical objects<br>
in the scene. The elements of the tree are Aabb boxes (Aligned<br>
Axis Bounding Boxes) enclosing the objects. This provides good<br>
precision in closed and opened scenes. This new culling system<br>
is enabled by default but just in case, it can be disabled with<br>
a button in the World settings. There is no do_version in this<br>
commit but it will be added before the 2.49 release. For now you<br>
must manually enable the DBVT culling option in World settings<br>
when you open an old file.<br>
<br>
The above improvements speed up scenegraph and culling up to 5x.<br>
However, this performance improvement is only visible when<br>
you have hundreds or thousands of objects.<br>
<br>
The main interest of the DBVT tree is to allow easy occlusion<br>
culling and automatic LOD system. This will be the object of further<br>
improvements.<br>
<br>
Modified Paths:<br>
--------------<br>
    trunk/blender/extern/bullet2/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp<br>
    trunk/blender/projectfiles_vc9/gameengine/gameplayer/ghost/GP_ghost.vcproj<br>
    trunk/blender/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Bullet/PHY_Bullet.vcproj<br>
    trunk/blender/projectfiles_vc9/gameengine/physics/PHY_Physics/PHY_Physics.vcproj<br>
    trunk/blender/source/blender/blenkernel/intern/world.c<br>
    trunk/blender/source/blender/makesdna/DNA_world_types.h<br>
    trunk/blender/source/blender/src/buttons_shading.c<br>
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp<br>
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_Camera.h<br>
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.h<br>
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_Light.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_MotionState.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_MotionState.h<br>
    trunk/blender/source/gameengine/Ketsji/KX_NearSensor.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h<br>
    trunk/blender/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_SG_NodeRelationships.h<br>
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp<br>
    trunk/blender/source/gameengine/Ketsji/KX_Scene.h<br>
    trunk/blender/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h<br>
    trunk/blender/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h<br>
    trunk/blender/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_DynamicTypes.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IMotionState.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IPhysicsController.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h<br>
    trunk/blender/source/gameengine/Rasterizer/RAS_BucketManager.cpp<br>
    trunk/blender/source/gameengine/Rasterizer/RAS_FramingManager.h<br>
    trunk/blender/source/gameengine/Rasterizer/RAS_MaterialBucket.h<br>
    trunk/blender/source/gameengine/SceneGraph/SG_BBox.cpp<br>
    trunk/blender/source/gameengine/SceneGraph/SG_BBox.h<br>
    trunk/blender/source/gameengine/SceneGraph/SG_IObject.cpp<br>
    trunk/blender/source/gameengine/SceneGraph/SG_IObject.h<br>
    trunk/blender/source/gameengine/SceneGraph/SG_Node.cpp<br>
    trunk/blender/source/gameengine/SceneGraph/SG_Node.h<br>
    trunk/blender/source/gameengine/SceneGraph/SG_ParentRelation.h<br>
    trunk/blender/source/gameengine/SceneGraph/SG_Spatial.cpp<br>
    trunk/blender/source/gameengine/SceneGraph/SG_Spatial.h<br>
<br>
Added Paths:<br>
-----------<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdGraphicController.cpp<br>
    trunk/blender/source/gameengine/Physics/Bullet/CcdGraphicController.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IController.cpp<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IController.h<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IGraphicController.cpp<br>
    trunk/blender/source/gameengine/Physics/common/PHY_IGraphicController.h<br>
<br>
(...)<br></div><br>