Blender Git Commit Log
Git Commits -> Revision 3d74e55
Revision 3d74e55 by Antonis Ryakiotakis (gooseberry, gooseberry_farm, temp_constraint_volume, temp_hair_modifiers, temp_motionpaths, temp_widgets_c++_experiment, temp_widgets_files_refactor, temp_widgets_update_tagging, UI-experiments, wiggly-widgets) December 16, 2014, 17:26 (GMT) |
Initial VBO code for GPU subsurf. This commit adds a few generalizations to the VBO code so that modifiers can create and populate their own GPU objects. The VBO code originally supported CDDerivedMesh only. The design moves slightly towards the viewport refactor where the rendering system requests data from modifiers. What we do have is support for solid shading with multiple materials, flat/smooth shading and a big performance boost. Performance could In this commit only basic support for vertices and normals is provided and some features from blender's VBO system, such as mapping to original faces, unique element indices for vertices and loose vertex/ and can be added later. The one feature that is missing now is the quick navigation feature of the multires modifier (which uses the same code). - Why this commit is made on the widget branch - Facemap widgets need to avoid drawing the whole mesh when we do collision detection on them. For subsurf drawing we need to iterate through the whole mesh every time. What we need instead is sort indexed elemet drawing according to the facemap each face belongs to. This screams VBOs but since I was going to add that, I thought that I could push it a bit further and add proper solid shading support. |
Commit Details:
Full Hash: 3d74e55dd7628d8d72e114911651b737c371409e
Parent Commit: c32ac24
Lines Changed: +395, -53
6 Modified Paths:
/release/scripts/modules/sys_info.py (+3, -0) (Diff)
/source/blender/blenkernel/BKE_DerivedMesh.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/cdderivedmesh.c (+3, -3) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+315, -4) (Diff)
/source/blender/gpu/GPU_buffers.h (+16, -1) (Diff)
/source/blender/gpu/intern/gpu_buffers.c (+54, -45) (Diff)
/source/blender/blenkernel/BKE_DerivedMesh.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/cdderivedmesh.c (+3, -3) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+315, -4) (Diff)
/source/blender/gpu/GPU_buffers.h (+16, -1) (Diff)
/source/blender/gpu/intern/gpu_buffers.c (+54, -45) (Diff)