Blender Git Loki
Git Commits -> Revision b5fcdc4
Revision b5fcdc4 by Brecht Van Lommel (apricot) August 13, 2008, 17:37 (GMT) |
Apricot Branch ============== Various cleanups and optimizations in the game engine: * Remove some duplication in the RAS_RenderTools, and sync the blender and game player versions. Also avoid some opengl state changes. * Don't make separate materials for triangles and quads, this distinction was moved to the mesh level. Also don't take some other irrelevant tface settings into account to avoid making more materials. * Refactoring of mesh storage, should fix wrong normals on meshes that are reused. It also allows for joining together nearby meshes for speed, though that's disabled still because it doesn't work together correct yet with ome features. * Added a distinction for game objects to be either culled or set invisible, previously there was only one flag, which couldn't work correct. * For parenting to bones, where_is_pose was executed multiple times per frame, now should be once per armature. * Fix uninitialized intertia value in the physics system. * Various warning fixes. * Removed some conditionals in GLSL and other minor optimizations in the code. Also cache opengl uniform locations, and fix an invalid memory read. * Avoid doing some math for GLSL lamps if it is not required. |
Commit Details:
Full Hash: b5fcdc407498a4477df28f172d89e5126702b5eb
SVN Revision: 16080
Parent Commit: 17c81ef
Lines Changed: +3376, -3967
70 Modified Paths:
/intern/moto/include/GEN_Map.h (+13, -0) (Diff)
/intern/moto/include/MT_Matrix4x4.h (+1, -0) (Diff)
/intern/moto/include/MT_Matrix4x4.inl (+7, -7) (Diff)
/source/blender/blenkernel/intern/armature.c (+2, -1) (Diff)
/source/blender/gpu/GPU_extensions.h (+3, -2) (Diff)
/source/blender/gpu/intern/gpu_codegen.c (+19, -10) (Diff)
/source/blender/gpu/intern/gpu_codegen.h (+1, -1) (Diff)
/source/blender/gpu/intern/gpu_extensions.c (+15, -13) (Diff)
/source/blender/gpu/intern/gpu_material.c (+60, -17) (Diff)
/source/blender/gpu/intern/gpu_shader_material.glsl (+8, -8) (Diff)
/source/blender/gpu/intern/gpu_shader_material.glsl.c (+975, -974) (Diff)
/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp (+6, -8) (Diff)
/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp (+102, -133) (Diff)
/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h (+23, -25) (Diff)
/source/gameengine/Converter/BL_ArmatureObject.cpp (+16, -4) (Diff)
/source/gameengine/Converter/BL_ArmatureObject.h (+4, -1) (Diff)
/source/gameengine/Converter/BL_BlenderDataConversion.cpp (+40, -61) (Diff)
/source/gameengine/Converter/BL_MeshDeformer.cpp (+37, -38) (Diff)
/source/gameengine/Converter/BL_ShapeActionActuator.cpp (+0, -1) (Diff)
/source/gameengine/Converter/BL_ShapeDeformer.cpp (+0, -3) (Diff)
/source/gameengine/Converter/BL_SkinDeformer.cpp (+16, -14) (Diff)
/source/gameengine/Converter/BL_SkinDeformer.h (+0, -4) (Diff)
/source/gameengine/Converter/BL_SkinMeshObject.cpp (+51, -23) (Diff)
/source/gameengine/Converter/BL_SkinMeshObject.h (+5, -40) (Diff)
/source/gameengine/Converter/KX_BlenderSceneConverter.cpp (+5, -5) (Diff)
/source/gameengine/Converter/KX_ConvertActuators.cpp (+1, -1) (Diff)
/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp (+226, -230) (Diff)
/source/gameengine/GamePlayer/common/GPC_RenderTools.h (+46, -104) (Diff)
/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h (+2, -2) (Diff)
/source/gameengine/Ketsji/BL_BlenderShader.cpp (+6, -11) (Diff)
/source/gameengine/Ketsji/BL_BlenderShader.h (+1, -1) (Diff)
/source/gameengine/Ketsji/BL_Material.h (+1, -1) (Diff)
/source/gameengine/Ketsji/BL_Shader.cpp (+7, -5) (Diff)
/source/gameengine/Ketsji/BL_Shader.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.cpp (+49, -67) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.h (+1, -2) (Diff)
/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp (+60, -114) (Diff)
/source/gameengine/Ketsji/KX_GameObject.cpp (+36, -51) (Diff)
/source/gameengine/Ketsji/KX_GameObject.h (+31, -27) (Diff)
/source/gameengine/Ketsji/KX_MeshProxy.cpp (+7, -6) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.cpp (+8, -21) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.h (+0, -2) (Diff)
/source/gameengine/Ketsji/KX_Scene.cpp (+13, -7) (Diff)
/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_VertexProxy.cpp (+7, -7) (Diff)
/source/gameengine/Ketsji/KX_VisibilityActuator.cpp (+1, -1) (Diff)
/source/gameengine/Physics/Bullet/CcdPhysicsController.h (+2, -1) (Diff)
/source/gameengine/Rasterizer/RAS_BucketManager.cpp (+150, -83) (Diff)
/source/gameengine/Rasterizer/RAS_BucketManager.h (+10, -9) (Diff)
/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp (+10, -15) (Diff)
/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h (+3, -6) (Diff)
/source/gameengine/Rasterizer/RAS_IRasterizer.h (+10, -34) (Diff)
/source/gameengine/Rasterizer/RAS_IRenderTools.cpp (+2, -22) (Diff)
/source/gameengine/Rasterizer/RAS_IRenderTools.h (+5, -13) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp (+423, -131) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.h (+128, -85) (Diff)
/source/gameengine/Rasterizer/RAS_MeshObject.cpp (+253, -470) (Diff)
/source/gameengine/Rasterizer/RAS_MeshObject.h (+67, -173) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp (+26, -57) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h (+5, -19) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp (+156, -517) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h (+12, -32) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp (+97, -118) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h (+3, -15) (Diff)
/source/gameengine/Rasterizer/RAS_Polygon.cpp (+33, -50) (Diff)
/source/gameengine/Rasterizer/RAS_Polygon.h (+24, -32) (Diff)
/source/gameengine/Rasterizer/RAS_TexVert.cpp (+15, -15) (Diff)
/source/gameengine/Rasterizer/RAS_TexVert.h (+14, -14) (Diff)
/source/gameengine/Rasterizer/SConscript (+1, -1) (Diff)
/source/kernel/gen_system/GEN_Map.h (+13, -0) (Diff)
/intern/moto/include/MT_Matrix4x4.h (+1, -0) (Diff)
/intern/moto/include/MT_Matrix4x4.inl (+7, -7) (Diff)
/source/blender/blenkernel/intern/armature.c (+2, -1) (Diff)
/source/blender/gpu/GPU_extensions.h (+3, -2) (Diff)
/source/blender/gpu/intern/gpu_codegen.c (+19, -10) (Diff)
/source/blender/gpu/intern/gpu_codegen.h (+1, -1) (Diff)
/source/blender/gpu/intern/gpu_extensions.c (+15, -13) (Diff)
/source/blender/gpu/intern/gpu_material.c (+60, -17) (Diff)
/source/blender/gpu/intern/gpu_shader_material.glsl (+8, -8) (Diff)
/source/blender/gpu/intern/gpu_shader_material.glsl.c (+975, -974) (Diff)
/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp (+6, -8) (Diff)
/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp (+102, -133) (Diff)
/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h (+23, -25) (Diff)
/source/gameengine/Converter/BL_ArmatureObject.cpp (+16, -4) (Diff)
/source/gameengine/Converter/BL_ArmatureObject.h (+4, -1) (Diff)
/source/gameengine/Converter/BL_BlenderDataConversion.cpp (+40, -61) (Diff)
/source/gameengine/Converter/BL_MeshDeformer.cpp (+37, -38) (Diff)
/source/gameengine/Converter/BL_ShapeActionActuator.cpp (+0, -1) (Diff)
/source/gameengine/Converter/BL_ShapeDeformer.cpp (+0, -3) (Diff)
/source/gameengine/Converter/BL_SkinDeformer.cpp (+16, -14) (Diff)
/source/gameengine/Converter/BL_SkinDeformer.h (+0, -4) (Diff)
/source/gameengine/Converter/BL_SkinMeshObject.cpp (+51, -23) (Diff)
/source/gameengine/Converter/BL_SkinMeshObject.h (+5, -40) (Diff)
/source/gameengine/Converter/KX_BlenderSceneConverter.cpp (+5, -5) (Diff)
/source/gameengine/Converter/KX_ConvertActuators.cpp (+1, -1) (Diff)
/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp (+226, -230) (Diff)
/source/gameengine/GamePlayer/common/GPC_RenderTools.h (+46, -104) (Diff)
/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h (+2, -2) (Diff)
/source/gameengine/Ketsji/BL_BlenderShader.cpp (+6, -11) (Diff)
/source/gameengine/Ketsji/BL_BlenderShader.h (+1, -1) (Diff)
/source/gameengine/Ketsji/BL_Material.h (+1, -1) (Diff)
/source/gameengine/Ketsji/BL_Shader.cpp (+7, -5) (Diff)
/source/gameengine/Ketsji/BL_Shader.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.cpp (+49, -67) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.h (+1, -2) (Diff)
/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp (+60, -114) (Diff)
/source/gameengine/Ketsji/KX_GameObject.cpp (+36, -51) (Diff)
/source/gameengine/Ketsji/KX_GameObject.h (+31, -27) (Diff)
/source/gameengine/Ketsji/KX_MeshProxy.cpp (+7, -6) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.cpp (+8, -21) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.h (+0, -2) (Diff)
/source/gameengine/Ketsji/KX_Scene.cpp (+13, -7) (Diff)
/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_VertexProxy.cpp (+7, -7) (Diff)
/source/gameengine/Ketsji/KX_VisibilityActuator.cpp (+1, -1) (Diff)
/source/gameengine/Physics/Bullet/CcdPhysicsController.h (+2, -1) (Diff)
/source/gameengine/Rasterizer/RAS_BucketManager.cpp (+150, -83) (Diff)
/source/gameengine/Rasterizer/RAS_BucketManager.h (+10, -9) (Diff)
/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp (+10, -15) (Diff)
/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h (+3, -6) (Diff)
/source/gameengine/Rasterizer/RAS_IRasterizer.h (+10, -34) (Diff)
/source/gameengine/Rasterizer/RAS_IRenderTools.cpp (+2, -22) (Diff)
/source/gameengine/Rasterizer/RAS_IRenderTools.h (+5, -13) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp (+423, -131) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.h (+128, -85) (Diff)
/source/gameengine/Rasterizer/RAS_MeshObject.cpp (+253, -470) (Diff)
/source/gameengine/Rasterizer/RAS_MeshObject.h (+67, -173) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp (+26, -57) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h (+5, -19) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp (+156, -517) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h (+12, -32) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp (+97, -118) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h (+3, -15) (Diff)
/source/gameengine/Rasterizer/RAS_Polygon.cpp (+33, -50) (Diff)
/source/gameengine/Rasterizer/RAS_Polygon.h (+24, -32) (Diff)
/source/gameengine/Rasterizer/RAS_TexVert.cpp (+15, -15) (Diff)
/source/gameengine/Rasterizer/RAS_TexVert.h (+14, -14) (Diff)
/source/gameengine/Rasterizer/SConscript (+1, -1) (Diff)
/source/kernel/gen_system/GEN_Map.h (+13, -0) (Diff)