Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-06Cleanup: whitespace, unused varCampbell Barton
2015-08-04Fix fast navigate winding being incorrect (apparent when backfaceAntony Riakiotakis
culling was on)
2015-08-03Multires sculpting drawing optimization:Antony Riakiotakis
Use OpenGL 3.2 extension ARB_draw_elements_base_vertex, which allows us to add offset in index buffer indices automatically. This should reduce the number of draw calls significantly. We may have some errors on the Mac with VBO setting off. OSX OpenGL extensions don't play well with vertex arrays. Will test that more later. We might also use a full element buffer here, like we do when hiding some quads, but this approach keeps the memory savings intended originally.
2015-08-03Fix T45654 fast navigate artifacts.Antony Riakiotakis
Was overdrawing the buffer, in case of fast drawing just use one draw call. Should also make performance quite smoother. Note: Just discovered we are doing one draw call - per grid - in multires apparently to keep reusing the same element buffer. This is horribly, dreadfully slow and will check about fixing it later.
2015-07-31Use polygon normals for sculpt drawingCampbell Barton
Wasn't working correctly since using MLoopTri, this is improved over 2.75 which only handled tris & quads.
2015-07-25Convert CCGSubsurf VBO system to also sort hidden and visible faces.Antony Riakiotakis
It's not actually used during drawing though.
2015-07-25GPU buffer materials:Antony Riakiotakis
Separate and reuse some shared code. Also avoid counting for information we already know, such as total loop triangles etc.
2015-07-24Fix T45541 crash when mixing flat and smooth shaded faces in sculptAntony Riakiotakis
mode. Issue from looptri merge.
2015-07-23Subsurf: Optimize edge drawing, now it uses VBOs.Antony Riakiotakis
Also the refactor exposed an error where we requested too much memory from the video memory in general for all mesh types. Now we are back to normal :)
2015-07-21Try to remap buffer before rejecting.Antony Riakiotakis
I suspect code here can be cleaned up but for now try this. Alternatively we can check for errors around buffer allocation but this needs bigger changes.
2015-07-21Failure to alllocate vertex buffer would not fall back to vertex arrayAntony Riakiotakis
properly. This should fix failure to use vertex arrays in OSX with high polycounts. Note this will not suffice as a fix when we move to VBOs exclusively (GL 3+), we'll have to think of some way to separate huge meshes to many VBOs.
2015-07-20Fix recent own stupidity with indexed sculpt drawing.Antony Riakiotakis
2015-07-20Use abstraction to unbind buffers, should avoid crashes in systems thatAntony Riakiotakis
don't support VBOs. Exposed by initialization error in GLEW, which should be fixed seperately.
2015-07-17Fix no longer being possible to display a suzanne with 8 levels ofAntony Riakiotakis
subdivision. Classic integet overflow/size_t substitution case. Machines are getting powerful enough to easily expose these kinds of error now.
2015-07-16Add tessellation data to DerivedMesh (LoopTri)Campbell Barton
This stores loop indices into the loop array giving easier acess to data such as vertex-colors and UV's, removing the need to store an MFace duplicate of custom-data. This doesn't yet move all internal code from MFace to LoopTri just yet. Only applies to: - opengl drawing - sculpting (pbvh) - vertex/weight paint Thanks to @psy-fi for review, fixes and improvements to drawing!
2015-07-16Sculpt draw code:Antony Riakiotakis
Remove legacy code completely, now dyntopo, multires et al even work on GL 1.1 for really hardcore users :p Real purpose here though is to be able to have fast multires drawing even with VBO off, since it requires using indices for vertex buffers. Also made own code elf puke an eaten normal update function which made multires not update normals in solid mode...sorry.
2015-07-15 VBO offscreen selection drawing, cdderivedmeshAntony Riakiotakis
Get rid of legacy drawing, it's only used for selection, in which case we can prepare a temporary color buffer and draw at once. Code is not complete here because we still redundantly set the draw color in the draw function and don't ommit hidden faces automatically. Still it works 100% without immediate mode now.
2015-07-14Display optimizations part 1.Antony Riakiotakis
This patch changes the way we draw meshes by introducing indexed drawing. This makes it possible to easily upload and rearrange faces ad lib according to any criteria. Currently we use material sorting but textured sorting and hiding will be added to optimize textured drawing and skip per face testing. It also adds support for vertex buffers for subsurf modifiers (Except from GLSL drawing), making drawing of subsurf much faster without need for bogus modifiers. Tests show that we gain approximately 20-25% performance by that for solid mode drawing with up to 50% gains for material drawing. Textured drawing should also have a small performance gain, but more substantial optimizations are possible there. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D1406
2015-07-10Cleanup: use const for gpu bufferCampbell Barton
2015-06-16Optimize drawing of outlines as wellAntony Riakiotakis
2015-06-16Drawing speedup:Antony Riakiotakis
We really don't need to iterate all edges of the mesh every frame to search for loose edges, this calculation can be cached when filling the edge index buffer.
2015-03-23cleanup: use spaces for alignmentMike Erwin
while studying GPU lib
2015-03-16Make sure disabling attribute arrays also resets the counter so we don'tAntony Riakiotakis
do it twice.
2015-02-11cleanup: style/indentationCampbell Barton
2015-02-03Fix T43530 using blender on remote connection crashesAntony Riakiotakis
Issue here is that remote connection will use OpenGL 1.1. There was a call here that would free VBOs always without a check, however the VBO free function pointer is NULL on such contexts causing a crash. This must have been causing some of the crashes with old contexts. While I think supporting those systems is not such a good idea in general, they can have a few more moments of support I guess. Things might be better now for systems using OGL 1.1 though there are still things that could be done better here - for instance going to dyntopo can crash immediately because we don't have a fallback implementation there. It might be worth reimplementing sculpting with vertex arrays for the legacy case too, but I guess if we move on to OpenGL 2.1 soon this is a bit of a wasted effort.
2014-12-16Fix typo in VBOAntony Riakiotakis
2014-12-16Remove NULL checking variable after using it.Antony Riakiotakis
2014-12-12Fix T42875 GLSL display not correct in vertex array mode.Antony Riakiotakis
GLSL used a global variable to store the enabled vertex attributes which were not set for vertex arrays after the VBO refactor.
2014-12-03Another crappy mistake in VBO code.Antony Riakiotakis
2014-11-29Cleanup: use const, avoid float -> double in matrix invertCampbell Barton
2014-11-29Cleanup: unused headersCampbell Barton
2014-11-28Cleanup GPU: get rid of some extremely legacy draw code.Antony Riakiotakis
Basically this commit gets rid of most of the derived mesh immediate mode drawing (cases such as subsurf excluded). Even when VBO is turned off in user preferences, we still use vertex arrays, which are very similar to VBOs but memory is client side. Vertex arrays are OpenGL 1.1 so compatibility is not an issue here. Reviewers: campbellbarton, sergey, jwilkins Differential Revision: https://developer.blender.org/D919
2014-10-08Ghost Context RefactorJason Wilkins
https://developer.blender.org/D643 Separates graphics context creation from window code in Ghost so that they can vary separately.
2014-09-02Fix T41682.Antony Riakiotakis
Bring back shading in texture painting. This works now but it uses 3 texture units instead of two. Most GPUs of DirectX 8 (OpenGL 1.4 should cover that) functionality even should have those, but some old GPUs might not work with that. In any case, I hope we will be moving to OpenGL 2.1 requirement soon anyway where 4-8 texture units are usually the norm.
2014-08-13Fix possible uninitialized var useCampbell Barton
2014-08-07Fix crash on dyntopo when show diffuse option + collapse is usedAntony Riakiotakis
Some nodes could end up without any faces and in that case getting a face material would fail.
2014-08-05Cleanup: indentationCampbell Barton
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
2014-05-05Hidden PBVH nodes:Antony Riakiotakis
Set hidden when rebuilding the PBVH tree if all primitives are hidden.
2014-05-05Attempt to solve T39950,Antony Riakiotakis
Avoid filling up buffers when total buffer triangles are zero. Better still would be to tag a node as hidden when doing recreation of the PBVH tree by checking for any visible elements. Original bug report probably has to do with OpenGL doing something funky but hidden nodes should be tagged as hidden to completely avoid iterating for painting. This is to be done in a later commit. Also some naming cleanup for consistency, GPU_build_pbvh_mesh_buffers to GPU_build_mesh_pbvh_buffers.
2014-05-01Add PBVH debug display, where we can see the PBVH node bounding boxes.Antony Riakiotakis
To enable enter debug value 14. Leaf nodes are green while container nodes are red.
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-27Code cleanup: const args and arraysCampbell Barton
2014-04-26Code cleanup: use 'const' for arrays (blenloader, gpu, imbuf, makesdna, ↵Campbell Barton
modifiers, nodes)
2014-04-17Code cleanup: use boolsCampbell Barton
also rename BLI_omp_thread_count -> BLI_system_thread_count_omp
2014-04-15Fix regression, sculpting on mesh with matcaps (without multires/Antony Riakiotakis
2014-04-13Split Normals I (3/5): Add 3Dview shading support of split normals.Bastien Montagne
Mostly monkey coding in gpu ("modern" VBO drawing) and DM variants ("legacy" drawing) code... Reviewers: brecht Reviewed By: brecht CC: campbellbarton Differential Revision: https://developer.blender.org/D367
2014-04-11Change GPU deletion at GPU buffer update time. This should be detectedAntony Riakiotakis
and done at PBVH update time, since it is possible to have no triangles to display in a buffer if node is hidden.
2014-04-11Dyntopo: use hidden face flags in more placesCampbell Barton
2014-04-10Dyntopo: Minor display optimization.Antony Riakiotakis
While hiding, flush the hidden flags to the faces. This avoids iterating through all the loops while updating the GPU buffers.