Blender Git Commit Log

Git Commits -> Revision 561a2f6

Revision 561a2f6 by Daniel Stokes (soc-2011-cucumber)
June 29, 2011, 07:20 (GMT)
Ported the VBO code from the bb_dev25 branch.
Notes from the bb_dev25 VBO commit:
"
20409 - Patch:[#17523] BGE VBO patch by Samuel Anjam (toonist)
20411 - Missing files from last commit (Patch:[ #17523] BGE VBO patch by Samuel Anjam (toonist))
20549 - Don' t create VBO at the same time as Display list.
20662 - Fix for: Normals are not being updated in VBO.
20663 - BGE VBO updates

To do:
1) check if we need to update the tangent matrix as well
2) create the buffers only when necessary

"The buffers for all the texture coordinates are [currently] created unconditionally even if some are not used during the render. Which buffer is used depends on the wireframe, GLSL/multitexture and the texture coordinate used by the material. RAS_VAOpenGLRasterizer::TexCoordPtr(), RAS_VAOpenGLRasterizer::IndexPrimitivesMulti() and RAS_VAOpenGLRasterizer::IndexPrimitives() show the buffers that are actually bound to. Only those buffers should be created."

Note:
VBO doesn't necessarly means better performance than Display List. They can perform faster in Skinned objects (where DisplayList is not being used). But it uses less memory than DisplayList and is a more modern Game Engine technology.

Thanks again to Samuel Anjam (toonist) for the original patch.
"

Commit Details:

Full Hash: 561a2f656fb82f40bb97d723abaac2681c4ba72b
SVN Revision: 37942
Parent Commit: d278ac6
Lines Changed: +814, -13

12 Modified Paths:

/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp (+7, -3) (Diff)
/source/gameengine/GamePlayer/ghost/GPG_Application.cpp (+7, -3) (Diff)
/source/gameengine/Rasterizer/RAS_IRasterizer.h (+5, -0) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp (+27, -0) (Diff)
/source/gameengine/Rasterizer/RAS_MaterialBucket.h (+32, -0) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h (+2, -1) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp (+2, -2) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h (+1, -1) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp (+80, -2) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h (+5, -1) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp (+562, -0) (Diff)
/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h (+84, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021