[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24871] trunk/blender: BGE: replace mesh works for Soft Body ( including reinstantiation of physics soft body mesh).
Benoit Bolsee
benoit.bolsee at online.be
Tue Nov 24 23:44:29 CET 2009
Revision: 24871
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24871
Author: ben2610
Date: 2009-11-24 23:44:29 +0100 (Tue, 24 Nov 2009)
Log Message:
-----------
BGE: replace mesh works for Soft Body (including reinstantiation of physics soft body mesh).
Even a static mesh can be used as replacement: the mesh
will be instantiated with the soft body settings of the
object. The position and orientation of the soft body
is preserved after the replacement.
Known limitation: the velocity of the soft body is reset
aftet the replacement. This is because soft body don't
have a well defined velocity.
Modified Paths:
--------------
trunk/blender/projectfiles_vc9/gameengine/converter/KX_converter.vcproj
trunk/blender/projectfiles_vc9/gameengine/rasterizer/RAS_rasterizer.vcproj
trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
trunk/blender/source/gameengine/Converter/BL_MeshDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h
trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_ModifierDeformer.h
trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h
trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp
trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h
trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h
trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
trunk/blender/source/gameengine/Rasterizer/CMakeLists.txt
trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp
trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.h
trunk/blender/source/gameengine/Rasterizer/SConscript
Added Paths:
-----------
trunk/blender/source/gameengine/Converter/KX_SoftBodyDeformer.cpp
trunk/blender/source/gameengine/Converter/KX_SoftBodyDeformer.h
Removed Paths:
-------------
trunk/blender/source/gameengine/Converter/BL_SkinMeshObject.cpp
trunk/blender/source/gameengine/Converter/BL_SkinMeshObject.h
Modified: trunk/blender/projectfiles_vc9/gameengine/converter/KX_converter.vcproj
===================================================================
--- trunk/blender/projectfiles_vc9/gameengine/converter/KX_converter.vcproj 2009-11-24 20:15:24 UTC (rev 24870)
+++ trunk/blender/projectfiles_vc9/gameengine/converter/KX_converter.vcproj 2009-11-24 22:44:29 UTC (rev 24871)
@@ -526,10 +526,6 @@
>
</File>
<File
- RelativePath="..\..\..\source\gameengine\Converter\BL_SkinMeshObject.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\source\gameengine\Converter\BlenderWorldInfo.cpp"
>
</File>
@@ -561,6 +557,10 @@
RelativePath="..\..\..\source\gameengine\Converter\KX_IpoConvert.cpp"
>
</File>
+ <File
+ RelativePath="..\..\..\source\gameengine\Converter\KX_SoftBodyDeformer.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
@@ -615,10 +615,6 @@
>
</File>
<File
- RelativePath="..\..\..\source\gameengine\Converter\BL_SkinMeshObject.h"
- >
- </File>
- <File
RelativePath="..\..\..\source\gameengine\Converter\BlenderWorldInfo.h"
>
</File>
@@ -650,6 +646,10 @@
RelativePath="..\..\..\source\gameengine\Converter\KX_IpoConvert.h"
>
</File>
+ <File
+ RelativePath="..\..\..\source\gameengine\Converter\KX_SoftBodyDeformer.h"
+ >
+ </File>
</Filter>
</Files>
<Globals>
Modified: trunk/blender/projectfiles_vc9/gameengine/rasterizer/RAS_rasterizer.vcproj
===================================================================
--- trunk/blender/projectfiles_vc9/gameengine/rasterizer/RAS_rasterizer.vcproj 2009-11-24 20:15:24 UTC (rev 24870)
+++ trunk/blender/projectfiles_vc9/gameengine/rasterizer/RAS_rasterizer.vcproj 2009-11-24 22:44:29 UTC (rev 24871)
@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB"
StringPooling="true"
RuntimeLibrary="2"
@@ -194,7 +194,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
StringPooling="true"
RuntimeLibrary="0"
@@ -269,7 +269,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="_DEBUG,WIN32,_LIB"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -344,7 +344,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -419,7 +419,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
+ AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Expressions;..\..\..\source\gameengine\SceneGraph;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender\makesdna"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;WITH_GLEXT;GLEW_STATIC"
StringPooling="true"
RuntimeLibrary="0"
Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2009-11-24 20:15:24 UTC (rev 24870)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2009-11-24 22:44:29 UTC (rev 24871)
@@ -89,11 +89,11 @@
#include "BKE_global.h"
#include "BKE_object.h"
#include "BKE_scene.h"
-#include "BL_SkinMeshObject.h"
#include "BL_ModifierDeformer.h"
#include "BL_ShapeDeformer.h"
#include "BL_SkinDeformer.h"
#include "BL_MeshDeformer.h"
+#include "KX_SoftBodyDeformer.h"
//#include "BL_ArmatureController.h"
#include "BlenderWorldInfo.h"
@@ -720,7 +720,6 @@
RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene, KX_BlenderSceneConverter *converter)
{
RAS_MeshObject *meshobj;
- bool skinMesh = false;
int lightlayer = blenderobj ? blenderobj->lay:(1<<20)-1; // all layers if no object.
if ((meshobj = converter->FindGameMesh(mesh/*, ob->lay*/)) != NULL)
@@ -743,14 +742,7 @@
tangent = (float(*)[3])dm->getFaceDataArray(dm, CD_TANGENT);
}
- // Determine if we need to make a skinned mesh
- if (blenderobj && (mesh->dvert || mesh->key || ((blenderobj->gameflag & OB_SOFT_BODY) != 0) || BL_ModifierDeformer::HasCompatibleDeformer(blenderobj)))
- {
- meshobj = new BL_SkinMeshObject(mesh);
- skinMesh = true;
- }
- else
- meshobj = new RAS_MeshObject(mesh);
+ meshobj = new RAS_MeshObject(mesh);
// Extract avaiable layers
MTF_localLayer *layers = new MTF_localLayer[MAX_MTFACE];
@@ -877,7 +869,7 @@
if (kx_blmat == NULL)
kx_blmat = new KX_BlenderMaterial();
- kx_blmat->Initialize(scene, bl_mat, skinMesh);
+ kx_blmat->Initialize(scene, bl_mat);
polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat);
}
else {
@@ -1736,31 +1728,35 @@
bool bHasDvert = mesh->dvert != NULL && ob->defbase.first;
bool bHasArmature = (ob->parent && ob->parent->type == OB_ARMATURE && ob->partype==PARSKEL && bHasDvert);
bool bHasModifier = BL_ModifierDeformer::HasCompatibleDeformer(ob);
+ bool bHasSoftBody = (!ob->parent && (ob->gameflag & OB_SOFT_BODY));
if (bHasModifier) {
BL_ModifierDeformer *dcont = new BL_ModifierDeformer((BL_DeformableGameObject *)gameobj,
- kxscene->GetBlenderScene(), ob, (BL_SkinMeshObject *)meshobj);
+ kxscene->GetBlenderScene(), ob, meshobj);
((BL_DeformableGameObject*)gameobj)->SetDeformer(dcont);
if (bHasShapeKey && bHasArmature)
dcont->LoadShapeDrivers(ob->parent);
} else if (bHasShapeKey) {
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list