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
2019-10-07Fix T70476: Sculpting with Subsurf on top produces artifactsSergey Sharybin
The issue was caused by crazy space distortion orientation happening for subsurf modifier. Solved by making it so subsurf only deforms the surface but keeps matrices as-is. This is not fully mathematically correct, but is better that the fall-back solution which was doing wrong matrices anyway. Also, this is closer to have subsurf was handled prior to the related changes. Reviewed By: brecht, pablodp606 Differential Revision: https://developer.blender.org/D5991
2019-09-19Subdiv: Add vertex deformation callback to multires/subsurfSergey Sharybin
Currently unused but the intention is to use this to hook up these modifiers to a generic deformed PBVH to make it easier to sculpt or paint on a subdivided mesh.
2019-09-03Subsurf: Show error when Blender is built without OpenSubdivSergey Sharybin
2019-06-20Fix T65877: crash when baking in sculpt modeAlexander Gordeev
Also fixes bug where mesh with multires modifier is invisible in render while in sculpt mode. Differential Revision: https://developer.blender.org/D5099
2019-05-08Fix T64274: Crash with more than 1 subdivision with the Multiresolution ModifierSergey Sharybin
Update more relevant fields in the sculpt session. Really becoming annoying, but was also annoying in the old code as well.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-05Fix T63283: Second subdivision modifier does not ignore creaseSergey Sharybin
This is something where there is no single correct behavior, sometimes it's needed to ignore the crease to make mesh more smooth. But sometimes crease is to be considered after first subdivision surface: for example, when adding extra subdivisions for render-time displacement. Made it an option whether modifier needs to take crease into account or not. Existing files should be openable in the 2.7 compatible way, to re-create an old behavior the options is to be manually disabled in the modifier settings. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4652
2019-04-03Multires: Make topology cache to work with copy-on-writeSergey Sharybin
Allows to preserve topology cache even when copy-on-write is fully re-copying the object. For example, toggling edit mode in and out does no longer causes full topology to be re-created.
2019-03-30Cleanup: remove unused modifier methods.Brecht Van Lommel
2019-03-18Subdiv: Enable topology cache in edit modeSergey Sharybin
The general idea of this change is to have a runtime data pointer in the ModifierData, so it can be preserved through copy-on-write updates by the dependency graph. This is where subdivision surface modifier can store its topology cache, so it is not getting trashed on every copy-on-write which is happening when moving a vertex. Similar mechanism should be used by multiresolution, dynamic paint and some other modifiers which cache evaluated data. This fixes T61746. Thing to keep in mind, that there are more reports about slow subdivision surface in the tracker, but that boils down to the fact that those have a lot of extraordinary vertices, and hence a lot slower to evaluated topology. Other thing is, this speeds up oeprations which doesn't change topology (i.e. moving vertices). Reviewers: brecht Reviewed By: brecht Maniphest Tasks: T61746 Differential Revision: https://developer.blender.org/D4541
2019-03-15Cleanup: indentation, wrappingCampbell Barton
Mostly functions wrapping args, not confirming to our style guide.
2019-03-07Multires: Fix crash on exit when sculpting with modifiersSergey Sharybin
The SubdivCCG structure was re-allocated, but the cached one in the sculpt session was still pointing to an original one. This is rather a workaround, but is least evil from what i can currently think. Remember something similar was also required in 2.7 as well. Definitely need to revision this change.
2019-02-25Cleanup: finish modifiers' hearder re-order from rBe31f0fad9744c813.Bastien Montagne
For some reason forgot to handle half of modifier files...
2019-02-22Multires: Fix ownership problem causing crashesSergey Sharybin
Fixes crash when leaving multires mode. Fixes T61836: Saving while in multires makes blender crash
2019-02-21Subdiv: Enable topology cache for animationSergey Sharybin
This commit makes it so both Subdivision Surface and Multiresolution modifiers are caching OpenSubdiv topology. This cuts down evaluation time quite a bit, especially for meshes which don't have many extra ordinary verticies. Only working for animation. Other modifications like edit mode needs more work to make topology cache preserved by copy-on-write.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-28Fix several missing cases of copy func for modifiers.Bastien Montagne
Any time a modifier data has non-ID pointer, it should have own copy function (and also take care of proper init/reset in its init callback).
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2019-01-22Fix T59395: Subdivision modifier with quality 1 crashes blenderSergey Sharybin
This is actually a workaround for the crash in OpenSubdiv. Topology refiner will have a crash when special conditions are met: - Refiner is configured to use infinitely sharp patches. - Refinement happens for the level 1 (which we call Quality 1 on Blender side). - Mesh has non-quad faces. The workaround is to force refinement to happen to level 2 (or quality 2 on Blender side) when those conditions are met. Later on with the next OpenSubdiv update we can remove this workaround, since there was work done on OpenSubdiv side to deal better with such configurations. The modifier will now be somewhat slower, but this will be compensated with upcoming topology cache enabled by default. The workaround is done when initializing settings, so the comparison of topology refiner settings is happening without any extra workarounds there.
2019-01-16Multires: Prepare for cached topologySergey Sharybin
Note that the actual caching is still disabled, since more tests is needed with more production-looking files.
2018-11-26Enable OpenSubdiv modifier by defaultSergey Sharybin
This commit makes it so that subsurf/multires modifiers will respect the WITH_OPENSUBDIV option. The WITH_OPENSUBDIV_MODIFIER option is now gone. For artists it mean that subsurf modifier will behave same as it is planned for 2.80. Multires will now support sculpting, but it has some known limitations. Those will be worked on before the final release. If OpenSubdiv is disabled, no subsurf/multires functionality will present. For the details see: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Modeling#Subsurf.2FMultires
2018-10-24Cleanup: Remove unused modifiers callbackSergey Sharybin
Was only used by subsurf in the past years, it is unlikely other modifiers will every need this any time soon.
2018-09-26Multires: Use proper subdivision level for reshapeSergey Sharybin
Apparently, part of code got lost last minute prior to push.
2018-09-26Multires: Promote OSD CCG to be officially supportedSergey Sharybin
Only active when WITH_OPENSUBDIV_MODIFIER is set to ON. There is still some work to be done to make that one enabled by default.
2018-09-26Cleanup: Silence strict compiler warningSergey Sharybin
Was happening when using OSD for modifiers.
2018-09-20Cleanup: move DerivedMesh wrappers for modifiers further down the hierarchyJacques Lucke
The main goal of this patch is to cleanup the interface of every modifier. More specifically the interface of modifiers should be DerivedMesh-free. Internally some modifiers still use DerivedMesh. However I think it is better when the wrappers are in the modifiers so that higher level functions can use the simplified interface. This patch removes the applyModifier_DM and applyModifierEM_DM functions. In a previous patch (rB3614d9d) the other functions that used DerivedMesh have been removed. Reviewers: brecht
2018-09-14Multires: Initial work to get sculpting to work with OpenSubdivSergey Sharybin
Allows to go to sculpt mode, do brush strokes, get out of sculpt mode and have deformation preserved. The issues currently is that the current implementation of CCG storage is created from the limit surface, without displacement taken into account. It is trivial to get displaced coordinates, but it is more tricky to get displaced normals. This is something to be solved next. Another limitation is that this only works for sculpting at a maximal multires level. There is code to be done to support propagation of displacement onto a higher levels.
2018-09-14Subdiv: Cache Subdiv in CCG surfaceSergey Sharybin
Allows to do re-shaping easier, since we will know for sure what was the limit surface the CCG is created for.
2018-09-12Cleanup: Spelling mistakesSergey Sharybin
Pointed by John Roper and Ray Molenkamp.
2018-09-11Subdiv: Initial implementation of CCGSergey Sharybin
Attempts to substitude CCGDM with an OpenSubdiv based structure which has less abstraction levels. The missing part in this substitude is a face pointers which old CCGDM/multires code was using to stitch faces (averaging boundaries). Another curial bit missing: "reshaping" of multires CD_MDISPS to the state of new PBVH grids. The new code is only available when OpenSubdiv modifier is enabled (WITH_OPENSUBDIV_MODIFIER=ON) and with debug value of 128. This is so this WIP code is not interfering with current production machines in the studio. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D3685
2018-09-04Subdiv: Move mesh creation functionality to own headerSergey Sharybin
2018-08-24Multires: Fix wrong apply deform results when multires has sculpt alreadySergey Sharybin
2018-08-22Multires: Fix reshape when active level is lower than the total oneSergey Sharybin
2018-08-22Multires: implement reshape operationSergey Sharybin
The one which is used by applying deformation modifiers on the multires.
2018-08-15Multires: Initial groundwork to hook up displacement to new Subdiv objectSergey Sharybin
Adds a displacement support for OpenSubdiov based subsurf object implemented as a callback which gives vector displacement in object space. Currently is implemented to calculate displacement based on myltires displacement grids, but we can support things in the future if needed. Submitting to review to see if there is something obviously wrong in the direction (old multires code was sharing same displacement code to both calculate final displaced mesh and reshape an existing one, which is rather confusing and probably can be done more cleanly?). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D3604
2018-08-14Multires: Begin hooking it up to the new subdiv codeSergey Sharybin
Currently behaves same as subsurf, support of displacement is the next task in the line to tackle!
2018-08-14Multires: Synchronize settings with Subsurf modifierSergey Sharybin
Currently no functional changes, just exposes all settings which we need for OpenSubdiv, similar to what Subsurf modifier is doing already. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D3602
2018-06-22Multires: Move away from using scene from modifier dataSergey Sharybin
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for modifiersCampbell Barton
2018-05-12Merge branch 'master' into blender2.8Campbell Barton
2018-05-12Cleanup: modifier arg wrappingCampbell Barton
2018-05-08Merge branch 'master' into blender2.8Bastien Montagne
2018-05-08Cleanup: Nuke empty dummy wrappers around modifier_copyData_generic().Bastien Montagne
This also changes signature of modifier copy callback, first (source) parameter is now a const, which is saner anyway!
2018-05-01Extract common modifier parameters into ModifierEvalContext structSybren A. Stüvel
The contents of the ModifierEvalContext struct are constant while iterating over the modifier stack. The struct thus should be only created once, outside any loop over the modifiers.
2018-05-01Modifiers: Add wrapper functions with Mesh / DerivedMesh conversionMai Lavelle
Makes the follow changes: - Add new `deform*` and `apply*` function pointers to `ModifierTypeInfo` that take `Mesh`, and rename the old functions to indicate that they take `DerivedMesh`. These new functions are currently set to `NULL` for all modifiers. - Add wrapper `modifier_deform*` and `modifier_apply*` functions in two variants: one that works with `Mesh` and the other which works with `DerivedMesh` that is named with `*_DM_depercated`. These functions check which type of data the modifier supports and converts if necessary - Update the rest of Blender to be aware and make use of these new functions The goal of these changes is to make it possible to port to using `Mesh` incrementally without ever needing to enter into a state where modifiers don't work. After everything has been ported over the old functions and wrappers could be removed. Reviewers: campbellbarton, sergey, mont29 Subscribers: sybren Tags: #bf_blender_2.8 Differential Revision: https://developer.blender.org/D3155
2018-04-16Depsgraph: remove EvaluationContext, pass Depsgraph instead.Brecht Van Lommel
The depsgraph was always created within a fixed evaluation context. Passing both risks the depsgraph and evaluation context not matching, and it complicates the Python API where we'd have to expose both which is not so easy to understand. This also removes the global evaluation context in main, which assumed there to be a single active scene and view layer. Differential Revision: https://developer.blender.org/D3152
2018-04-05Remove workspace object mode, reverts changes w/ 2.8Campbell Barton
This caused too many problems syncing object modes with multiple objects/windows/workspaces, see: D3130 for details.