Hi Benoit, in readfile.c, shouldn't it be sce->gm.deactivationtime = 0.0f?
Best Regards, Jorge 2012/5/29 Benoit Bolsee <[email protected]> > Revision: 47195 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47195 > Author: ben2610 > Date: 2012-05-29 20:30:33 +0000 (Tue, 29 May 2012) > Log Message: > ----------- > BGE #30734: add support for physics linear and angular thresholds and > deactivation time from python and GUI. > ======================== > The linear and angular thresholds set the speed limit (in m/s) and > rotation limit (in rad/s) > under which a rigid body will go to sleep (stop moving) if it stays below > the limits for a > time equal or longer than the deactivation time (sleeping is disabled is > deactivation time is > set to 0). > These settings help reducing the processing spent on Physics during the > game. > > Previously they were only accessible from python but not working because > of a bug. > Now the python functions are working and the settings are available in the > Physics panel > of the World settings when using the Blender Game render engine. > > Python API: > import PhysicsConstraints > PhysicsConstraints.setDeactivationLinearTreshold(float) > PhysicsConstraints.setDeactivationAngularTreshold(float) > > Modified Paths: > -------------- > trunk/blender/release/scripts/startup/bl_ui/properties_game.py > trunk/blender/source/blender/blenkernel/BKE_blender.h > trunk/blender/source/blender/blenkernel/intern/scene.c > trunk/blender/source/blender/blenloader/intern/readfile.c > trunk/blender/source/blender/makesdna/DNA_object_types.h > trunk/blender/source/blender/makesdna/DNA_scene_types.h > trunk/blender/source/blender/makesrna/intern/rna_scene.c > trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp > trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp > > Modified: trunk/blender/release/scripts/startup/bl_ui/properties_game.py > =================================================================== > --- trunk/blender/release/scripts/startup/bl_ui/properties_game.py > 2012-05-29 20:06:31 UTC (rev 47194) > +++ trunk/blender/release/scripts/startup/bl_ui/properties_game.py > 2012-05-29 20:30:33 UTC (rev 47195) > @@ -622,6 +622,14 @@ > col.prop(gs, "logic_step_max", text="Max") > > col = layout.column() > + col.label(text="Physics Deactivation:") > + sub = col.row(align=True) > + sub.prop(gs, "deactivation_linear_threshold", text="Linear > Threshold") > + sub.prop(gs, "deactivation_angular_threshold", text="Angular > Threshold") > + sub = col.row() > + sub.prop(gs, "deactivation_time", text="Time") > + > + col = layout.column() > col.prop(gs, "use_occlusion_culling", text="Occlusion Culling") > sub = col.column() > sub.active = gs.use_occlusion_culling > > Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h > =================================================================== > --- trunk/blender/source/blender/blenkernel/BKE_blender.h 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/blenkernel/BKE_blender.h 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -42,7 +42,7 @@ > * and keep comment above the defines. > * Use STRINGIFY() rather than defining with quotes */ > #define BLENDER_VERSION 263 > -#define BLENDER_SUBVERSION 7 > +#define BLENDER_SUBVERSION 8 > > #define BLENDER_MINVERSION 250 > #define BLENDER_MINSUBVERSION 0 > > Modified: trunk/blender/source/blender/blenkernel/intern/scene.c > =================================================================== > --- trunk/blender/source/blender/blenkernel/intern/scene.c 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/blenkernel/intern/scene.c 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -516,6 +516,9 @@ > sce->gm.maxlogicstep = 5; > sce->gm.physubstep = 1; > sce->gm.maxphystep = 5; > + sce->gm.lineardeactthreshold = 0.8f; > + sce->gm.angulardeactthreshold = 1.0f; > + sce->gm.deactivationtime = 0.0f; > > sce->gm.flag = GAME_DISPLAY_LISTS; > sce->gm.matmode = GAME_MAT_MULTITEX; > > Modified: trunk/blender/source/blender/blenloader/intern/readfile.c > =================================================================== > --- trunk/blender/source/blender/blenloader/intern/readfile.c 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/blenloader/intern/readfile.c 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -7230,9 +7230,9 @@ > > if (main->versionfile < 263) { > /* set fluidsim rate. the version patch for this in 2.62 > was wrong, so > - * try to correct it, if rate is 0.0 that's likely not > intentional */ > + try to correct it, if rate is 0.0 that's likely not > intentional */ > Object *ob; > - > + > for (ob = main->object.first; ob; ob = ob->id.next) { > ModifierData *md; > for (md = ob->modifiers.first; md; md = md->next) { > @@ -7502,6 +7502,19 @@ > } > } > > + if (main->versionfile < 263 || (main->versionfile == 263 && > main->subversionfile < 8)) > + { > + /* set new deactivation values for game settings */ > + Scene *sce; > + > + for (sce = main->scene.first; sce; sce = sce->id.next) { > + /* Game Settings */ > + sce->gm.lineardeactthreshold = 0.8f; > + sce->gm.angulardeactthreshold = 1.0f; > + sce->gm.deactivationtime = 2.0f; > + } > + } > + > /* WATCH IT!!!: pointers from libdata have not been converted yet > here! */ > /* WATCH IT 2!: Userdef struct init has to be in > editors/interface/resources.c! */ > { > > Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_object_types.h 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/makesdna/DNA_object_types.h 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -201,7 +201,7 @@ > float rdamping, sizefac; > float margin; > float max_vel; /* clamp the maximum velocity 0.0 is disabled */ > - float min_vel; /* clamp the maximum velocity 0.0 is disabled */ > + float min_vel; /* clamp the minimum velocity 0.0 is disabled */ > float m_contactProcessingThreshold; > float obstacleRad; > > > Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_scene_types.h 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/makesdna/DNA_scene_types.h 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -625,6 +625,7 @@ > short ticrate, maxlogicstep, physubstep, maxphystep; > short obstacleSimulation, pad1; > float levelHeight; > + float deactivationtime, lineardeactthreshold, > angulardeactthreshold,pad2; > } GameData; > > #define STEREO_NOSTEREO 1 > > Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c > =================================================================== > --- trunk/blender/source/blender/makesrna/intern/rna_scene.c 2012-05-29 > 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/blender/makesrna/intern/rna_scene.c 2012-05-29 > 20:30:33 UTC (rev 47195) > @@ -2577,6 +2577,31 @@ > "higher value give better physics > precision"); > RNA_def_property_update(prop, NC_SCENE, NULL); > > + prop = RNA_def_property(srna, "deactivation_linear_threshold", > PROP_FLOAT, PROP_NONE); > + RNA_def_property_float_sdna(prop, NULL, "lineardeactthreshold"); > + RNA_def_property_ui_range(prop, 0.001, 10000.0, 2, 3); > + RNA_def_property_range(prop, 0.001, 10000.0); > + RNA_def_property_ui_text(prop, "Deactivation Linear Threshold", > + "Linear velocity that an object must be > below before the deactivation timer can start"); > + RNA_def_property_update(prop, NC_SCENE, NULL); > + > + prop = RNA_def_property(srna, "deactivation_angular_threshold", > PROP_FLOAT, PROP_NONE); > + RNA_def_property_float_sdna(prop, NULL, "angulardeactthreshold"); > + RNA_def_property_ui_range(prop, 0.001, 10000.0, 2, 3); > + RNA_def_property_range(prop, 0.001, 10000.0); > + RNA_def_property_ui_text(prop, "Deactivation Angular Threshold", > + "Angular velocity that an object must be > below before the deactivation timer can start"); > + RNA_def_property_update(prop, NC_SCENE, NULL); > + > + prop = RNA_def_property(srna, "deactivation_time", PROP_FLOAT, > PROP_NONE); > + RNA_def_property_float_sdna(prop, NULL, "deactivationtime"); > + RNA_def_property_ui_range(prop, 0.0, 60.0, 1, 1); > + RNA_def_property_range(prop, 0.0, 60.0); > + RNA_def_property_ui_text(prop, "Deactivation Time", > + "Amount of time (in seconds) after > objects with a velocity less than than a certain " > + "threshold will deactivate. Time 0.0 > means deactivation inactive"); > + RNA_def_property_update(prop, NC_SCENE, NULL); > + > /* mode */ > prop = RNA_def_property(srna, "use_occlusion_culling", > PROP_BOOLEAN, PROP_NONE); > RNA_def_property_boolean_sdna(prop, NULL, "mode", (1 << 5)); /*XXX > mode hardcoded *//* WO_DBVT_CULLING */ > > Modified: > trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp > =================================================================== > --- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp > 2012-05-29 20:06:31 UTC (rev 47194) > +++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp > 2012-05-29 20:30:33 UTC (rev 47195) > @@ -324,8 +324,9 @@ > { > CcdPhysicsEnvironment* ccdPhysEnv = new > CcdPhysicsEnvironment(useDbvtCulling); > ccdPhysEnv->setDebugDrawer(new > BlenderDebugDraw()); > - > ccdPhysEnv->setDeactivationLinearTreshold(0.8f); // default, can be > overridden by Python > - > ccdPhysEnv->setDeactivationAngularTreshold(1.0f); // default, can be > overridden by Python > + > ccdPhysEnv->setDeactivationLinearTreshold(blenderscene->gm.lineardeactthreshold); > + > ccdPhysEnv->setDeactivationAngularTreshold(blenderscene->gm.angulardeactthreshold); > + > ccdPhysEnv->setDeactivationTime(blenderscene->gm.deactivationtime); > > SYS_SystemHandle syshandle = > SYS_GetSystem(); /*unused*/ > int visualizePhysics = > SYS_GetCommandLineInt(syshandle,"show_physics",0); > > Modified: > trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp > =================================================================== > --- > trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp > 2012-05-29 20:06:31 UTC (rev 47194) > +++ > trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp > 2012-05-29 20:30:33 UTC (rev 47195) > @@ -60,8 +60,8 @@ > extern bool gDisableDeactivation; > > > -float gLinearSleepingTreshold = 0.8f; > -float gAngularSleepingTreshold = 1.0f; > +float gLinearSleepingTreshold; > +float gAngularSleepingTreshold; > > > btVector3 startVel(0,0,0);//-10000); > @@ -519,6 +519,7 @@ > body->setAngularFactor(0.f); > } > > body->setContactProcessingThreshold(m_cci.m_contactProcessingThreshold); > + body->setSleepingThresholds(gLinearSleepingTreshold, > gAngularSleepingTreshold); > > } > if (m_object && m_cci.m_do_anisotropic) > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
