blender/source/gameengine/Ketsji
Benoit Bolsee d95a109990 BGE modifier: generate correct physic shape, share static derived mesh, share display list.
This commit completes the support for modifiers in the BGE.
- The physic shape is generated according to the derived mesh. 
  This is true for all types of shapes and all types of 
  objects except soft body.
- Optimization for static derived mesh (mesh with modifiers
  but no armature and no shape keys). Replicas will share
  the derived mesh and the display list: less memory and
  faster rendering. With this optimization, the static 
  derived mesh will render as fast as if the modifiers were
  applied.

Known Limits:
- Sharing of mesh and display list is only possible between
  in-game replicas or dupligroup. If you want to instantiate
  multiple objects with modifiers, use dupligroup to ensure
  best memory and GPU utilization.
- rayCast() will interact with the derived mesh as follow:
  Hit position and hit normal are the real values according
  to the derived mesh but the KX_PolyProxy object refers to
  the original mesh. You should use it only to retrieve the
  material.
- Dynamic derived mesh have very poor performance:
  They use direct openGL calls for rendering (no support
  for display list and vertex array) and they dont't share
  the derived mesh memory. Always apply modifiers on dynamic
  mesh for best performance.
- Time dependent modifiers are not supported.
- Modifiers are not supported for Bullet soft body.
2009-05-14 13:47:08 +00:00
..
KXNetwork Fix Makefiles for gameengine. 2009-05-11 15:34:46 +00:00
BL_BlenderShader.cpp BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
BL_BlenderShader.h BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
BL_Material.cpp BGE: speed up mesh conversion by avoiding allocation/deallocation of material object on each face. The speed up is minor on optimized builds but considerable on less optimized builds, good for debugging large scene. 2009-04-29 10:06:38 +00:00
BL_Material.h BGE: speed up mesh conversion by avoiding allocation/deallocation of material object on each face. The speed up is minor on optimized builds but considerable on less optimized builds, good for debugging large scene. 2009-04-29 10:06:38 +00:00
BL_Shader.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
BL_Shader.h BGE Python API 2009-04-20 23:17:52 +00:00
BL_Texture.cpp BGE Python API 2009-02-19 13:42:07 +00:00
BL_Texture.h Preparation to VideoTexture: everything but the VideoTexture module itself. 2008-10-31 21:06:48 +00:00
CMakeLists.txt added Geometry as a BGE module, removed its dependency on gen_utils.c 2009-04-30 12:45:13 +00:00
KX_BlenderMaterial.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_BlenderMaterial.h BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
KX_BulletPhysicsController.cpp BGE bug #18091: Hitbox of object X doesn't move along when object X is parented to object Y. 2009-04-30 19:00:17 +00:00
KX_BulletPhysicsController.h BGE bug #18091: Hitbox of object X doesn't move along when object X is parented to object Y. 2009-04-30 19:00:17 +00:00
KX_Camera.cpp BGE Py API 2009-05-14 07:59:44 +00:00
KX_Camera.h BGE Py API 2009-05-14 07:59:44 +00:00
KX_CameraActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_CameraActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_CameraIpoSGController.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_CameraIpoSGController.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_CDActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_CDActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_ClientObjectInfo.h Building the game engine with Solid/Sumo is now optional for scons using WITH_BF_SOLID. 2009-02-25 12:07:51 +00:00
KX_ConstraintActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_ConstraintActuator.h BGE C++ API 2009-04-22 14:42:00 +00:00
KX_ConstraintWrapper.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_ConstraintWrapper.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_ConvertPhysicsObject.h BGE modifier: generate correct physic shape, share static derived mesh, share display list. 2009-05-14 13:47:08 +00:00
KX_ConvertPhysicsObjects.cpp BGE modifier: generate correct physic shape, share static derived mesh, share display list. 2009-05-14 13:47:08 +00:00
KX_Dome.cpp BGE Dome: Reducing FBO size to warped meshes. 2009-05-09 21:54:22 +00:00
KX_Dome.h BGE Dome: Truncated Dome are back (Upright and Downright) + GLEW_EXT_framebuffer_object check before generating FBO 2009-05-08 18:59:08 +00:00
KX_EmptyObject.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_EmptyObject.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_GameActuator.cpp BGE Py API patch from Mitchell Stokes, adds extra attributes and docs 2009-05-02 02:40:11 +00:00
KX_GameActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_GameObject.cpp BGE Py API 2009-05-14 07:59:44 +00:00
KX_GameObject.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_IInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_IPhysicsController.cpp BGE patch: dynamically update the coumpound parent shape when parenting to a compound object. 2009-01-13 22:59:18 +00:00
KX_IPhysicsController.h BGE Physics 2009-04-14 12:34:39 +00:00
KX_IPO_SGController.cpp BGE bug #18596: No ipo dynamics is 2.49rc1. 2009-05-11 23:05:13 +00:00
KX_IPO_SGController.h BGE bug #17657 fixed: dRotY doesn't work properly after 90 degrees rotation. 2008-09-23 20:07:15 +00:00
KX_IpoActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_IpoActuator.h BGE C++ API 2009-04-22 14:42:00 +00:00
KX_IPOTransform.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_IScalarInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ISceneConverter.h Merge of first part of changes from the apricot branch, especially 2008-09-04 20:51:28 +00:00
KX_ISystem.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_KetsjiEngine.cpp BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
KX_KetsjiEngine.h BGE performance: 2009-05-01 20:34:23 +00:00
KX_Light.cpp BGE #18732: Python Light options don't work with GLSL materials. Commited patch from dfelinto and moguri, thanks for the good work. 2009-05-13 06:42:15 +00:00
KX_Light.h BGE #18732: Python Light options don't work with GLSL materials. Commited patch from dfelinto and moguri, thanks for the good work. 2009-05-13 06:42:15 +00:00
KX_LightIpoSGController.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_LightIpoSGController.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_MaterialIpoController.cpp Win64: please check my changes if you ran across them ;) But should be fine since no additional crashes were reported! 2008-08-17 17:08:00 +00:00
KX_MaterialIpoController.h BGE patch: approve patch #17312: Multiple material IPOs per mesh in BGE. 2008-07-25 13:45:57 +00:00
KX_MeshProxy.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_MeshProxy.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_MotionState.cpp gcc wouldn't compile using a reference 2009-04-07 23:21:30 +00:00
KX_MotionState.h BGE Scenegraph and View frustrum culling improvement. 2009-04-07 22:14:06 +00:00
KX_MouseFocusSensor.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_MouseFocusSensor.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_NearSensor.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_NearSensor.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_ObColorIpoSGController.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ObColorIpoSGController.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ObjectActuator.cpp BGE API cleanup: motion actuator. Apply patch from Moguri. 2009-05-13 16:48:33 +00:00
KX_ObjectActuator.h BGE API cleanup: motion actuator. Apply patch from Moguri. 2009-05-13 16:48:33 +00:00
KX_OdePhysicsController.cpp BGE patch: dynamically update the coumpound parent shape when parenting to a compound object. 2009-01-13 22:59:18 +00:00
KX_OdePhysicsController.h BGE: Keep Sumo and ODE in sync with Bullet at API level, fix a compilation problem in MSVC. 2009-04-14 17:22:14 +00:00
KX_OrientationInterpolator.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_OrientationInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ParentActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_ParentActuator.h BGE Py API patch from Mitchell Stokes, adds extra attributes and docs 2009-05-02 02:40:11 +00:00
KX_PhysicsEngineEnums.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_PhysicsObjectWrapper.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_PhysicsObjectWrapper.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_PhysicsPropertiesobsolete.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_PolygonMaterial.cpp BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
KX_PolygonMaterial.h BGE: speed up mesh conversion by avoiding allocation/deallocation of material object on each face. The speed up is minor on optimized builds but considerable on less optimized builds, good for debugging large scene. 2009-04-29 10:06:38 +00:00
KX_PolyProxy.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_PolyProxy.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_PositionInterpolator.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_PositionInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_PyConstraintBinding.cpp python modules in the game engine could point to builtin modules like GameLogic that was cleared. 2009-04-29 23:39:27 +00:00
KX_PyConstraintBinding.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_PyMath.cpp [#18606] Writing to KX_GameObject.orientation causes crash 2009-04-25 07:17:36 +00:00
KX_PyMath.h BGE Python API 2009-04-20 09:13:59 +00:00
KX_PythonInit.cpp BGE performance, 3rd round: culling and rasterizer. 2009-05-07 09:13:01 +00:00
KX_PythonInit.h added Geometry as a BGE module, removed its dependency on gen_utils.c 2009-04-30 12:45:13 +00:00
KX_PythonInitTypes.cpp moved py controller functions from SCA_PythonController to SCA_IController - the base controller class so python can get the sensors & actuators from any controller (not just SCA_PythonController types) 2009-05-06 09:12:08 +00:00
KX_PythonInitTypes.h SVN maintenance. 2009-04-13 19:33:22 +00:00
KX_PythonSeq.cpp use the same sequence mapping types as CListValue, hopefully this means it will build on different python versions 2009-05-10 22:33:21 +00:00
KX_PythonSeq.h deprecate controller.getActuator(name) and controller.getSensor(name) for 2009-05-10 01:48:14 +00:00
KX_RadarSensor.cpp BGE Py API patch from Mitchell Stokes, add distance attribute to the radar sensor, dont use 'continue' because its a python keyword. 2009-05-02 04:53:01 +00:00
KX_RadarSensor.h BGE: some more cleanup, implement proper GetReplica/ProcessReplica workflow for touch/near/radar sensor. Remove duplicated code. 2009-04-22 18:20:41 +00:00
KX_RayCast.cpp BGE Bugfixes (mostly in the py api) 2009-04-05 14:01:49 +00:00
KX_RayCast.h BGE patch: KX_GameObject::rayCast() improvements to have X-Ray option, return true face normal and hit polygon information. 2008-08-27 19:34:19 +00:00
KX_RayEventManager.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_RayEventManager.h BGE patch: logic optimization part 2: remove inactive sensors from logic manager. 2008-07-30 17:41:47 +00:00
KX_RaySensor.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_RaySensor.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_SCA_AddObjectActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_SCA_AddObjectActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_SCA_DynamicActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_SCA_DynamicActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_SCA_EndObjectActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_SCA_EndObjectActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_SCA_ReplaceMeshActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_SCA_ReplaceMeshActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_ScalarInterpolator.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ScalarInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ScalingInterpolator.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_ScalingInterpolator.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_Scene.cpp BGE Py API 2009-05-14 07:59:44 +00:00
KX_Scene.h BGE Py API 2009-05-14 07:59:44 +00:00
KX_SceneActuator.cpp BGE Py API 2009-05-14 07:59:44 +00:00
KX_SceneActuator.h BGE Py API 2009-05-14 07:59:44 +00:00
KX_SG_BoneParentNodeRelationship.cpp BGE performance: second round of scenegraph improvement. 2009-05-03 22:29:00 +00:00
KX_SG_BoneParentNodeRelationship.h BGE Scenegraph and View frustrum culling improvement. 2009-04-07 22:14:06 +00:00
KX_SG_NodeRelationships.cpp BGE performance: second round of scenegraph improvement. 2009-05-03 22:29:00 +00:00
KX_SG_NodeRelationships.h BGE Scenegraph and View frustrum culling improvement. 2009-04-07 22:14:06 +00:00
KX_SoundActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_SoundActuator.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_StateActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_StateActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_SumoPhysicsController.cpp BGE patch #18051: add localInertia attribute to GameObject. 2009-04-08 16:25:00 +00:00
KX_SumoPhysicsController.h BGE: Keep Sumo and ODE in sync with Bullet at API level, fix a compilation problem in MSVC. 2009-04-14 17:22:14 +00:00
KX_TimeCategoryLogger.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_TimeCategoryLogger.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_TimeLogger.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_TimeLogger.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_TouchEventManager.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_TouchEventManager.h BGE patch: logic optimization part 2: remove inactive sensors from logic manager. 2008-07-30 17:41:47 +00:00
KX_TouchSensor.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_TouchSensor.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_TrackToActuator.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_TrackToActuator.h BGE C++ API 2009-04-22 14:42:00 +00:00
KX_VehicleWrapper.cpp python3 compatibility for the BGE api, this only works with scons when WITH_BF_NOBLENDER is enabled. 2009-05-07 05:23:15 +00:00
KX_VehicleWrapper.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_VertexProxy.cpp BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_VertexProxy.h BGE performance, 4th round: logic 2009-05-10 20:53:58 +00:00
KX_VisibilityActuator.cpp ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing) 2009-04-29 16:54:45 +00:00
KX_VisibilityActuator.h BGE Python API 2009-04-20 23:17:52 +00:00
KX_WorldInfo.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_WorldInfo.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_WorldIpoController.cpp Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
KX_WorldIpoController.h Patch from GSR that a) fixes a whole bunch of GPL/BL license 2008-04-16 22:40:48 +00:00
Makefile Merge of first part of changes from the apricot branch, especially 2008-09-04 20:51:28 +00:00
SConscript python3 compatibility for the BGE api, this only works with scons when WITH_BF_NOBLENDER is enabled. 2009-05-07 05:23:15 +00:00