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
2020-10-29Fix T82188: Sculpt Grab Silhouette and symmetry failsPhilipp Oeser
Wasnt checking the symmetrized 'grab_delta_symmetry' so result could flip around. Maniphest Tasks: T82188 Differential Revision: https://developer.blender.org/D9373
2020-10-27Fix T81854: crash when undoing switch between sculpt and edit mode.Bastien Montagne
The logic of `BKE_sculpt_update_object_for_edit` was not correct. such low-level functions should typically never preform depsgraph evaluation themselves, they should be able to rely on getting a fully evaluated depsgraph and just get needed data from there. Supporting that required fixing other broken code higher in the callstack, namely: * `ED_object_sculptmode_enter_ex` was freeing evaluated data, for no valid reason it would seem. * `sculpt_undosys_step_decode` was ensuring an evaluated depsgraph **before** calling `ED_object_mode_generic_exit`, which would invalidate a lot of evaluated data. Note that it is fairly difficult to track down all code paths leading to `BKE_sculpt_update_object_for_edit`, so there may be still cases where this gets called with improperly evaluated depsgraph. Reviewed By: sergey Maniphest Tasks: T81854 Differential Revision: https://developer.blender.org/D9270
2020-10-27Cleanup: use over-line for doxy commentsCampbell Barton
Follow our code style for doxygen sections.
2020-10-23Merge branch 'blender-v2.91-release'Philipp Oeser
2020-10-23Fix T81934: Painting/Sculpting in ortho fails to let strokes pass through ↵Philipp Oeser
clipped geometry Caused by rB7878adf49cff. When getting the stroke location via raycast in ortho view, the above commit flipped the condition of the check to perform adjustments on the rays start/end. This would thus happen (even though it shouldnt), resulting in wrong depth and stroke location. Now just flip the condition back, so adjustments only happen when clipping is OFF. Maniphest Tasks: T81934 Differential Revision: https://developer.blender.org/D9318
2020-10-22Sculpt: Grab silhouette optionPablo Dobarro
This adds a property to the grab that masks vertices based on its original normal and grab delta. When used on thin meshes, it allows to grab the silhouette from one side of the object without affecting the shape of the other side. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9205
2020-10-22Fix T81932: Dyntopo crashing with sculpt vertex colors brush toolsPablo Dobarro
Paint and smear tools are only implemented for regular mesh PBVH, meaning they are not supported by the dynamic topology and multires sculpting. These tools are to be ignored for an unsupported sculpt modes, regardless of state of user preferences. Reviewed By: sergey Maniphest Tasks: T81932 Differential Revision: https://developer.blender.org/D9308
2020-10-20Fix sculpt pen tilt support changing the brush strengthPablo Dobarro
SCULPT_tilt_apply_to_normal expects a normal, and offset was already scaled by radius. The funcion returns a normalized vector, so the strength of the brush was changed. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9275
2020-10-20Fix missing Sculpt Overlays updates when using modifiersPablo Dobarro
Now that sculpt mask and face sets can also be drawn without using the PBVH, these operators need these extra updates when the data changes. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8956
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-10-15Fix brush tip delta orientation with anchored strokesPablo Dobarro
When using anchored stroke, the stroke operator was modifying the coordinates on the "mouse" rna property by setting them to the original position. Because of this, all the sculpt delta calculation was failing and the delta for these brushes was set randomly (with a 0 vector) at the beginning of the stroke. There is now an extra property that uses the unmodified coordinates of the mouse to calculate the delta. Now delta orientation works as expected in all brushes and features that require brush tip orientation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9183
2020-10-15Fix T81649: Cloth simulation dynamic area mode tearing the meshPablo Dobarro
Dynamic area should use the radius instead of the initial radius to get the nodes as the radius can now change during the stroke. In case of anchored strokes, the current radius can be bigger than the initial radius, simulating vertices outside the falloff area and breaking the mesh. Reviewed By: sergey Maniphest Tasks: T81649 Differential Revision: https://developer.blender.org/D9181
2020-10-15Sculpt: Use mpoly flags to sync Face Sets visibilityPablo Dobarro
Previously, all Face Set visibility logic was using mvert flags directly to store the visibility state on the vertices while sculpting. As Face Sets are a poly attribute, it is much simpler to use mpoly flags and let BKE_mesh_flush_hidden_from_polys handle the vertex visibility, even for Multires. Now all operators that update the Face Set visibility state will always copy the visibility to the mesh (using poly flags) and the grids, all using the same code. This should fix a lot of visibility glitches and bugs like the following: - Sculpt visibility reset when changing multires levels. - Multires visibility not updating in edit mode. - Single face visibible when surrounded by visibile face set, even when the face set was hidden. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9175
2020-10-15Sculpt: Add global automasking settings support in filtersPablo Dobarro
When using the sculpt filters, global automasking settings that affect all brushes were ignored because the automasking system was not implemented for filters, making filters and brushes react differently to the global sculpt settings which creates confusion. This makes all filter tools (mesh, cloth, color) use the same general automasking settings and features as the brush tools. Filters will now use the settings in the options panel to limit their effect. This also removes the "use Face Sets" option from the Mesh filter code, as it was duplicated from the automasking code just to have that funcitonality. This is now handled by the regular automasking system. The "Use Face Sets" option is still available in the cloth filter as that option limits the action of the forces, not the displacement. After this, it is possible to initialize the automasking system independently from the StrokeCache and Brush settings, so it can also be added to more tools and features in the future. Fixes T81619 Reviewed By: dbystedt, sergey Maniphest Tasks: T81619 Differential Revision: https://developer.blender.org/D9171
2020-10-15Sculpt: Show paint brush cursor in all toolsPablo Dobarro
This patch enables the paint brush cursor with all tools in sculpt mode, even with the ones that are not brushes. The motivations for this change are: - The filters are using the position of the active vertex for certain features without any visualization of what the active vertex is. - You can call operators like mask expand (which depends on the brush cursor position and active vertex) with a non brush tool enabled. - Having the cursor in the rest of the tools allows to have a scene scale representation of the radius and a direct control of radius and strength (using the current brush shortcuts), which will allow to make features more intuitive without relying on modifying values in the topbar. For example, the brush radius can be used to control the depth of the cut in the trimming tools or the size of the sphere in the sphere mesh filter Reviewed By: #user_interface, dbystedt, pablovazquez Differential Revision: https://developer.blender.org/D9071
2020-10-15Sculpt: Experimental Pen Tilt SupportPablo Dobarro
This adds support for pen tilt in sculpt mode. For now, pen tilt is used by tweaking the tilt strength property, which controls how much the pen angle affects the sculpt normal. This is available in Draw, Draw Sharp, Flatten, Fill, Scrape and Clay Strips brushes, but it can be enabled in more tools later. The purpose of this patch is to have a usable implementation of pen tilt in a painting mode, so users can test and see in which hardware and platforms this feature is supported and how well it works. If it works ok, more tools and features that rely on pen tilt can be implemented, like brushes that blend between two deformations depending on the angle. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8893
2020-10-13Sculpt: Use plasticity for softbody influencePablo Dobarro
Previously the softbody strength property was controlling the strength of the constraints that pin all vertices to the original location. This was causing problems when the forces were trying to deform the vertices too much, like when using gravity or grab brushes. Now softbody is implemented with plasticity, which creates constraints to a separate coordinates array. These coordinates are deformed with the simulation, and the plasticity parameter controls how much the simulation moves the coordinates (plasticity 0), or the coordinates move the simulation back to its previous position (plasticity 1). This creates much better and predictable results and adding softbody plasticity to the brushes can increase its control and the stability of the simulation. Reviewed By: sergey, zeddb Differential Revision: https://developer.blender.org/D9187
2020-10-13Cleanup: remove redundant assignment in SCULPT_brush_test_initPhilipp Oeser
As discussed in D9120, this was an oversight in rBe0c792135adf, the same assignment already happens a couple of lines above.
2020-10-13Fix sculpting/painting with viewport clipping and radial symmetryPhilipp Oeser
This was reported for sculpting, the same is true for weightpaint or vertexpaint though. When viewport clipping and radial symmetry are enabled, the 'sculpt_brush_test_clipping()' function was not considering radial symmetry at all, so if the coordinate was outside the clipping planes, no action would take place. Now the coordinte is brought back to where the stroke actually happens and that is checked against clipping. Since other mirroring options while painting/sculpting (as well as editmode operations with mirroring) usually still take place even if the mirrored coord is outside the clipping planes, this should also be the case for radial symmetry. This grows the 'SculptBrushTest' struct a bit, but should be acceptable? Fixes T81466 Maniphest Tasks: T81466 Differential Revision: https://developer.blender.org/D9120
2020-10-08Fix sculpt raycast function returning wrong valuePablo Dobarro
When sampled normals were disabled SCULPT_cursor_geometry_info_update was returning false instead of the value from the raycast data.
2020-10-01Fix T80873: Grab active vertex preview not working with shape keysPablo Dobarro
When a Shape Key is active, use the PBVH deformed coordinates for the preview. Reviewed By: sergey Maniphest Tasks: T80873 Differential Revision: https://developer.blender.org/D8921
2020-10-01Sculpt: Cloth Simulation Dynamic area modePablo Dobarro
This simulation area mode moves the active area with the brush. When enabled, the cloth brush has no restrictions on stroke length, area or mesh vertex count. In order to work, this enables PBVH nodes dynamically for simulation as the stroke location moves and builds the constraints for new nodes during the stroke. When a node is not inside the simulated area, all the constraints that were created for it and vertex collisions are not computed. The simulation limits falloff areas and constraints tweaking control how the simulated and no simulated nodes blend. Reviewed By: sergey, zeddb Differential Revision: https://developer.blender.org/D8726
2020-09-30Cleanup: convert gforge task ID's to phabricator formatValentin
Cleanup old tracker task format to the new. e.g: [#34039] to T34039 Ref D8718
2020-09-29Sculpt: Preserve Mesh visibility from edit mode using the Face SetsPablo Dobarro
Before this change, when users switch from edit mode to sculpt mode, the entire mesh would be visible. Even if in the edit mesh mode part of it was set to invisible. With this change the visibility is preserved, by creating a separate face set for the visible and invisible parts of the mesh and setting their initial visibility. Implementation details: This adds a function to initialize a new Face Set datalayer taking the current mesh visibility into account which is stored in the ME_HIDE flag of the vertices. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8901
2020-09-29Sculpt: Line Project Gesture toolPablo Dobarro
This tool projects all vertices to the right of the plane defined by the line gesture towards the plane. By doing this, this tool can create cuts and plane surfaces in the mesh without modifying the geometry or using boolean operations, so it is much faster than bisecting the mesh for cases where the geometry was going to be remeshed afterwards. Added as experimental as it does not have icon. Reviewed By: sergey, Severin Differential Revision: https://developer.blender.org/D9021
2020-09-19Cleanup: consistent TODO/FIXME formatting for namesCampbell Barton
Following the most widely used convention for including todo's in the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
2020-09-18Cleanup: Resolve warningsJulian Eisel
Unused variables, missing include for declaration, missing 'static' specifier. Also rename function to match naming convention.
2020-09-18Unify all XYZ symmetry options using Mesh SymmetryPablo Dobarro
This adds XYZ symmetry as a property of meshes and updates all modes to use the mesh symmetry by default to have a consistent tool behavior between all modes and when switching objects. Reviewed By: brecht, mano-wii, campbellbarton Maniphest Tasks: T79785 Differential Revision: https://developer.blender.org/D8587
2020-09-18Sculpt: Scale Cloth FilterPablo Dobarro
This filter scales the mesh as it was a softbody, producing folds in the surface. The orientation of the folds can be controlled using the filter axis and orientation. This is an example of a cloth filter that uses deform coordinates instead of forces, but probably it does not make much sense to expose it to the user in a different way and with different parameters. I'll remove FilterCache->enabled_force_axis in a later commit and use always enabled_axis in SCULPT_filter_zero_disabled_axis_components for both forces and deformation filters, so this function can also be used in the mesh filter. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8661
2020-09-10Sculpt: Enable pen pressure for Scrape/Fill Area RadiusPablo Dobarro
This should improve the issue with Scrape accumulation in concave surfaces. When the strength of the brush is higher, the area radius is also bigger, so the scrape plane is more stable preventing it from accumulating displacement in the same area. The Scrape/Fill default presets are also updated to include this functionality. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8821
2020-09-07Sculpt: Sculpt Trimming gestures toolsPablo Dobarro
This implements Box Trim as a boolean based trimming too gesture in sculpt mode. This is the intended way to remove parts of the sculpt instead of using box mask and mask slice. It also creates new face sets for the new faces created after the boolean operation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8766
2020-09-07Fix T79914: Grab active vertex using wrong coordinatesPablo Dobarro
This was introduced in the first commit of the cloth brush. In order to support the cloth brush deformations with subsurf modifiers, the sculpt API was changed to return the deformed coordinates from the PBVH instead of the mesh coordinates. When using grab active vertex and rendering the original mesh wireframe it should render the undeformed mesh coordinates when available. Reviewed By: sergey Maniphest Tasks: T79914 Differential Revision: https://developer.blender.org/D8630
2020-09-03Sculpt: Remove unused code in Clay StripsPablo Dobarro
This was doing a matrix inversion per vertex per stroke step and it was unused. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8791
2020-09-03Fix cloth brush not working with anchored strokePablo Dobarro
All brushes except for grab need delta for tip orientation in order to work with anchored stroke, not only snake hook, which is the one that needs it always. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8789
2020-09-03Sculpt: Sculpt Face Set gestures toolsPablo Dobarro
This implements the sculpt gesture lasso and box operators for face sets. They work the same way as the mask gesture operator and tools. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8716
2020-09-02Fix Cloth Snake Hook brush not using pressurePablo Dobarro
The Snake Hook deformation mode was using the same strength as grab (not supporting pressure), but this deformation mode supports pressure. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8724
2020-09-02Cleanup: use bool instead of int in various placesJacques Lucke
2020-08-28cleanup: Fix style issue in sculpt.cRay Molenkamp
At first sight this code should not build at all but due to the use of macro's that look like functions this seemingly has no issues building. Clang-format alerted me to this strange bit of code by placing the `if` on it's own line for some reason. added the missing brackets, and clang-format is happy again.
2020-08-25Sculpt: Cloth Snake Hook BrushPablo Dobarro
This implements Snake Hook as a deform type for the cloth brush. This brush changes the strength of the deformation constraints per brush step to avoid affecting the results of the simulation as much as possible. It allows to grab the cloth without producing any artifacts in the surface and create more natural looking folds than any of the other deformation modes. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8621
2020-08-18Sculpt: Enable Cloth Simulation Target for Pose and BoundaryPablo Dobarro
This adds a new brush property called "Deformation Target" which controls how the brush deformations is going to affect the mesh data. By default is set to Geometry, which makes the brushes displace the vertices. When set to Cloth Simulation, the deformation of the brush is applied to the cloth solver constraints, so the simulation is responsible to apply the final deformation. This allows to add cloth simulation effects to other sculpt tools with minor modifications to their code. This patch enables Cloth Simulation deformation target for Pose and Boundary brushes, which are tools that are already designed to work in low poly counts and produce large deformations. This allows creating the most common cloth effects, like bending and compressing folds, without relying on collisions. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8578
2020-08-18Sculpt: Invert Smooth to Enhance DetailsPablo Dobarro
This enables the invert mode in the smooth brush as Enhance Details. The operation is similar to the Sharpen Filter intensify details parameter, which consist in applying the laplacian smooth displacement in the opposite direction calculated using the original coordinates. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8509
2020-08-18Cleanup: rename bdata to boundaryPablo Dobarro
Reviewed By: sergey Differential Revision: https://developer.blender.org/D8556
2020-08-17Fix T79597: Crash with dyntopo after paint cursor refactorPablo Dobarro
The paint cursor now uses a single call to SCULPT_cursor_geometry_info_update and the Sculpt API to update both the radius and the SculptSession data, so random access needs to be initialized for dyntopo before using API functions. Reviewed By: sergey Maniphest Tasks: T79597 Differential Revision: https://developer.blender.org/D8489
2020-08-12Sculpt: Multires Displacement Eraser BrushPablo Dobarro
This brush deletes displacement information of the Multires Modifier, resetting the mesh to the subdivision limit surface. This can be use to easily delete parts of the sculpt or to fix reprojection artifacts after applying a shrinkwrap. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8543
2020-08-12Cleanup: Remove explicit float casts in sculpt codePablo Dobarro
Differential Revision: https://developer.blender.org/D8553
2020-08-12Clenaup: Rename random_access_init to random_access_ensurePablo Dobarro
Reviewed By: sergey Differential Revision: https://developer.blender.org/D8529
2020-08-12Cleanup: Use clamp_f instead of CLAMP in sculpt codePablo Dobarro
Reviewed By: sergey Differential Revision: https://developer.blender.org/D8528
2020-08-12Merge branch 'blender-v2.90-release'Philipp Oeser
2020-08-12Fix T79622: Mesh Filter on a locked Shape crashesPhilipp Oeser
For a locked shapekey, a SculptSession's orig_cos / deform_cos / deform_imats are not initialized (they only are when deform_modifiers_active is true -- this in turn is only true for shapekeys if they are //not// locked [and for deforming modifiers of course]) We can just update that keyblock with sculpt_update_keyblock() in case of a locked shapekey Maniphest Tasks: T79622 Differential Revision: https://developer.blender.org/D8499
2020-08-10Sculpt: Boundary BrushPablo Dobarro
This brush includes a set of deformation modes designed to deform and control the shape of the mesh boundaries, which are really hard to do with regular sculpt brushes (and even in edit mode). This is useful for creating cloth assets and hard surface base meshes. The brush detects the mesh boundary closest to the active vertex and propagates the deformation using the brush falloff into the mesh. It includes bend, expand, inflate, grab and twist deform modes. The main use cases of this brush are the Bend and Expand deformation modes, which depend on a grid topology to create the best results. In order to do further adjustments and tweaks to the result of these deformation modes, the brush also includes the Inflate, Grab and Twist deformation modes, which do not depend that much on the topology. Grab and Inflate are the same operation that is implemented in the Grab and Inflate tools, they are also available in the boundary brush as producing deformations with regular brushes in these areas is very hard to control. Even if this brush can produce deformations in triangle meshes and meshes with a non-regular quad grid, the more regular and clean the topology is, the better. Most of the assets this brush is intended to deform are always created from a cylindrical or plane quad grid, so it should be fine. Also, its algorithms can be improved in future versions to handle more corner cases and topology patterns. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8356