Commit patch #8724:
authorBenoit Bolsee <benoit.bolsee@online.be>
Sun, 23 Mar 2008 23:12:40 +0000 (23:12 +0000)
committerBenoit Bolsee <benoit.bolsee@online.be>
Sun, 23 Mar 2008 23:12:40 +0000 (23:12 +0000)
commitb20f6e27ff24f60bfa39b2311be3cc2f4130ac09
treecb528d7c2d3cfe9d983a17cea3866a695f1c1e43
parentf162428bd244687116c5a51edc64b1b49c634154
Commit patch #8724:

This patch modifies the BL_ConvertMesh method from the data conversion module in order to reduce the number of polygon
material objects that are created.

Normally, there should be only one material object for each material bucket(the group of meshes that are rendered together
with a single material). However, the number of materials that are created right now in the converter is much higher
and eats a lot of memory in scenes with large polygon counts. This patch deletes those material objects(KX_BlenderMaterial)
that are used only temporarily in the converter(and are now deleted only when the converter is destroyed, at the end
of the game).

For a cube that's subdivided 7 times(90+ k polygons) I get 200 MB usage in the game engine in 2.45 and 44 MB with a
svn build with this patch applied if the "Use Blender Materials" option is activated in the Game menu.
source/gameengine/Converter/BL_BlenderDataConversion.cpp
source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
source/gameengine/Ketsji/KX_Scene.cpp
source/gameengine/Ketsji/KX_Scene.h
source/gameengine/Rasterizer/RAS_BucketManager.cpp
source/gameengine/Rasterizer/RAS_BucketManager.h