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
2018-02-01Cleanup: rename BLI_*_empty() -> clear()Campbell Barton
Consistent with other BLI API's
2018-01-24Fix (unreported) missing feature in ccgdm pbvh generator.Bastien Montagne
Compared to usual cddm one, ccgdm one was not applying the ob->derivedDeform deformation to the pbvh generated from the original mesh geometry, when possible.
2018-01-24Fix T53551: Weight paint crash when subsurf modifier is not first (master ↵Bastien Montagne
not 2.79). We can only support painting from subsurf DM in a limited subset of cases, others (like multiple subsurf, or topology-modyfying ones, break mapping to original geometry). This is not the most ideal fix (ideally, we should always be able to get a mapping to original geometry from any point in modifiers stack...).
2018-01-21Cleanup: styleCampbell Barton
2018-01-15Sculpting: Sdd an option to hide mask in viewportSergey Sharybin
Brushes themselves are still affected by the mask, but the viewport is not showing the mask. This way it's easier to see details while sculpting. Studio request by Julien Kaspar
2018-01-11Subsurf: Make copyFinalLoopArray() threadedSergey Sharybin
Gives about 40% speedup of object which has simple-ish deformation applied on top of subdivided mesh. This might easily happen with single character animation.
2018-01-11Subsurf: Use regular mutex instead of RW oneSergey Sharybin
Mutex is now local to particular CCGDM, and guarding edge hash which is only used by a single function only. There is no need to acquire read lock after edge hash was created.
2018-01-10Subsurf: Loop array should not be called mvSergey Sharybin
mv is a mesh vertex, not loop.
2018-01-10Subsurf: Remove increment of unused variableSergey Sharybin
2017-12-22Subsurf: Avoid possible use of partially initialized edge hashSergey Sharybin
2017-12-22Subsurf: Avoid global lock for loops and orig index layersSergey Sharybin
This is a bit annoying to have per-DM locking, but it's way better (as in, up to 4 times better) for playback speed when having lots of subsurf objects,
2017-11-19Fix T53347: Vertex paint crash on undo/exitCampbell Barton
2017-09-30Fix vertex paint w/ subsurf drawingCampbell Barton
Only use alpha blending when in vertex paint mode.
2017-09-27Vertex/Weight Paint: Use PBVH for paintingCampbell Barton
2016 GSOC project by @nathanvollmer, see D2150 - Mirrored painting and radial symmetry, like in sculpt mode. - Volume based splash prevention, which avoids painting vertices far away from the 3D brush location. - Normal based splash prevention, which avoids painting vertices with normals opposite the normal at the 3D brush location. - Blur mode now uses a nearest neighbor average. - Average mode, which averages the color/weight of the vertices within the brush - Smudge mode, which pulls the colors/weights along the direction of the brush - RGB^2 color blending, which gives a more accurate blend between two colors - multithreading support. (PBVH leaves are painted in parallel.) - Foreground/background color picker in vertex paint
2017-09-25Add an 'atomic cas' wrapper for pointers.Bastien Montagne
Avoids having to repeat obfuscating castings everywhere...
2017-09-25Tweak to fix for thread concurency in looptri generation.Bastien Montagne
Even if pointer assignment may be atomic, it does not prevent reordering and other nifty compiler tricks, we need a memory barrier to ensure not only that transferring pointer from wip array to final one is atomic, but also that all previous writing to memory are “flushed” to (visible by) all CPUs... Thanks @sergey for finding the potential (though quite unlikely) issue.
2017-09-20Fix T52852: Assert in looptri calculation after recent changes.Bastien Montagne
Wrong condition in asserts...
2017-09-19Fix T52816: regression can't open file in 2.79 (crash).Bastien Montagne
Tentative fix, since I cannot reproduce thenissue for some reason here on linux. Core of the problem is pretty clear though, thanks to Germano Cavalcante (@mano-wii): another thread could try to use looptris data after worker one had allocated it, but before it had actually computed looptris. So now, we use a temp 'wip' pointer to store looptris being computed (since this is protected by a mutex, other threads will have to wait on it, no possibility for them to double-compute the looptris here). This should probably be backported to 2.79a if done.
2017-08-11Fix T52149: LoopTriArray computation was not correctly protected against ↵Bastien Montagne
concurrency. Note: this commit seems to work as expected (also with transform snapping etc.). However, it is rather unsafe - not enough for 2.79 at least, unless we get much more testing on it. It also depends on three previous ones. Note that using a global lock here is far from ideal, we should rather have a lock per DM, but that will do for now, whole DM thing is doomed to oblivion anyway in 2.8. Also, we may need a `DM_DIRTY_LOOPTRIS` dirty flag at some point. Looks like we can survive without it for now though... Probably because cached looptris are never copied accross DM's?
2017-08-11Cleanup: deduplicate DM's getLoopTriArray() callback.Bastien Montagne
All three functions were doing exactly the same thing, simpler to only have one in that case!
2016-12-01Fix (unreported) looptri array not being recalculated in ccgDM and emDMLuca Rood
In ccgDM and emDM, looptri array recalculation was being handled directly by `*DM_getLoopTriArray` (`getLoopTriArray` callback), while `*DM_recalcLoopTri` (`recalcLoopTri` callback) was doing nothing. This results in the array not being recalculated when other functions that depend on the array data called the recalc function. This moves all the recalculation code to `*DM_recalcLoopTri` and makes `*DM_getLoopTriArray` call that. This commit also makes a minor change to the `getNumLoopTri` function, so that it returns the correct number without having to recalculate the looptri array. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D2375
2016-09-07OpenSubdiv: Support multiple materials drawing in Cycles textured viewSergey Sharybin
Consider for inclusion into 2.78.
2016-09-05cleanup: macro whitespace \ alignmentMike Erwin
Gotta be careful mixing tabs & spaces. This commit uses 4-space indent to align the line continuation markers. Follow-up to 3b52c4056aaf
2016-09-05Fix glUniform called from glBegin/glEnd blocksSergey Sharybin
Was causing some invalid operations in OpenGL. After more testing should be fine for 2.78.
2016-08-20Fix T49090: color picking draws wrong when using subsurf in material draw mode.Brecht Van Lommel
ccgDM_drawMappedFacesMat was missig a smooth shade model restore, some other functions were redundantly setting it since we can assume it to be the default state already.
2016-07-25OpenSubdiv: Fix opensubdiv option obscuring the interfaceSergey Sharybin
2016-07-25OpenSubdiv: Fix missing support of flat shading in textured viewportSergey Sharybin
2016-07-25OpenSubdiv: Use proper material indexSergey Sharybin
2016-07-23Cleanup: warningCampbell Barton
2016-07-22OpenSubdiv: Properly respect Subdivide UVs optionSergey Sharybin
2016-07-22OpenSubdiv: Properly support active UV layer in textured viewSergey Sharybin
2016-07-22OpenSubdiv: Lay down fundamentals to support multiple UV mapsSergey Sharybin
2016-07-20OpenSubdiv: Initial work to support UV maps in textured OSD viewportSergey Sharybin
A bit work in progress, currently the following limitations: - Texture shading only, Material shading will come later - No UVs subdivision yet - Always uses active UV and currently changing active UV will not properly update the viewport. Well, need to start somewhere :)
2016-07-14Cleanup: comment blocksCampbell Barton
2016-06-09Flat shading for basic shaderAlexander Romanov
The purpose of the patch is to replace deprecated glShadeModel. To decrease glShadeModel calls I've set GL_SMOOTH by default Reviewers: merwin, brecht Reviewed By: brecht Subscribers: blueprintrandom, Evgeny_Rodygin, AlexKowel, yurikovelenov Differential Revision: https://developer.blender.org/D1958
2016-05-31Properly handle vertex color color space for Cycles GLSLSergey Sharybin
A bit tricky, need to pass additional information about what the attribute is and how to deal with it. BI path stays unchanged, just to make things simplier for now. Fixes T48555: Cycles GLSL- Incorrect Vertex Color results from Attribute node
2016-05-19Ignore vertex color when doing texture paintSergey Sharybin
It was totally useless to multiply diffuse color with the vertex color when doing texture painting. It was masking actual texture and only was forcing artists to create an empty vertex color layer to work this around.
2016-04-26Fix T48176: Shrinkwrap crashes when multiple objects uses same targetSergey Sharybin
Annoying bug caused by temp nature of looptri layer for CCGDM. Fixed in a similar to CCG loops by using lock when allocating and filling looptri arrays. Real fix would be to make sure this array is allocated on object evaluation using DAG's eval_flag, but that's more involved change which we'll work on later.
2016-04-26Support multiple tangents for BI render & viewportAlexander Romanov
Normal Map node support for GLSL mode and the internal render (multiple tangents support). The Normal Map node is a useful node which is present in the Cycles render. It makes it possible to use normal mapping without additional material node in a node tree. This patch implements Normal Map node for GLSL mode and the internal render. Previously only the active UV layer was used to calculate tangents.
2016-03-05Cleanup: unnecessary comma useCampbell Barton
2016-02-14Fix T47405: subsurf triangulation was producing incorrect normals after last ↵Brecht Van Lommel
fix.
2016-02-14Fix T47405: subsurf inconsistent triangulation in OpenGL compared to applied ↵Brecht Van Lommel
modifier and render.
2016-01-13Remove outdated assertCampbell Barton
2015-12-27OpenGL: stipple support added to basic GLSL shaderAlexander Romanov
The is intended to replace the deprecated glPolygonStipple() calls with a shader based alternative, once we switch over to GLSL shaders. Reviewers: brecht Differential Revision: https://developer.blender.org/D1688
2015-12-08OpenGL: split off framebuffer, shader and texture code into separate files.Brecht Van Lommel
2015-11-26Cleanup: whitespaceCampbell Barton
2015-11-23Cleanup: shadowing (blenkernel)Campbell Barton
2015-11-23C99 is now the C standard for all our C code.Brecht Van Lommel
The main new feature is mixed variable declarations and code, which can help reduce uninitialized variables or accidental variable reuse. Due to incomplete C99 support in VS 2013, variable length arrays are not supported, BLI_array_alloca must still be used. The header <tgmath.h> is also not supported. Differential Revision: https://developer.blender.org/D1631
2015-11-22Remove vertex array support from GPUBuffers. Remove USER_DISABLE_VBO. AllAntony Riakiotakis
GPUBuffer rendering is now done using vertex buffers. Vertex arrays are completely removed from GL 3.2 core profile, so we'll have to do this change at some point anyway. This commit, though big, is not modifying blender in any way. Use should be exactly as if the vetex buffer option is constantly on.
2015-11-13Fix T46726 shading issues in sculpt mode.Antony Riakiotakis
This fixes two issues: * Normals were not being recalculated correctly when not using optimized drawing for CDDerivedMesh (Multires actually handles that correctly). * Loop normals (autosmooth option) were also not being calculated. Doing this calculation is not desirable, since it can't be done correctly without a severe performance hit. This is easy to test by doing a dependency flush on the mesh after each scuplt stroke step. Instead they are now disabled during sculpting.