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-08-07Merge branch 'blender-v2.90-release' into masterJacques Lucke
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-08-06Merge branch 'blender-v2.90-release'Pablo Dobarro
2020-08-06Fix Pose Brush FK mode detecting wrong rotation originPablo Dobarro
The Pose FK mode assings the rotation origin to the boundary of the last visited face set in the floodfill operation. In some cases, the topology of the model may make the flood fill operation to visit a face set as the first one (assinging it to target) and visit it again as the last one (assinging it to origin). This will make the pose brush to default the origin and target to the brush location and not to the face sets as it considers that there is only one possible boundary. This adds a GSet to ensure that a particular face set is not visited twice in the flood fill, fixing these cases. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7984
2020-08-06Sculpt: Cloth Brush simulation area propertyPablo Dobarro
This makes possible to choose between a local and a global simulation when the cloth brush is used. Local simulation is the current default. When global simulation is enabled, the cloth brush simulates the entire mesh without taking any simulation limits into account. This was possible before by setting the simulation limits to 10 (the current maximum value allowed) so the entire mesh was inside the limits, but this was a hack as the limits scale with the radius and there should not be any limitation on how big the simulated area can be to be able to simulate an entire object. This also allows to make a more clear distinction between cloth brush presets that are intended to be used in local areas to add details or globally to generate the base shape of the mesh. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8481
2020-08-06Cleanup: Paint Cursor RefactorPablo Dobarro
The paint_draw_cursor function was handling the cursor drawing for 2D and 3D views of all paint modes, calculating the brush radius, updating the SculptSession data and updating and drawing all sculpt cursor overlays for different tools. It was almost impossible to understand when and what was being drawn and in which state the GPU matrix was. Now everyting is organized into different functions, with clear separation between modes, sculpt tool overlays and different drawing setups. Update and drawing functions are also separated (this allows to skip one PBVH query on each cursor drawing). Reviewed By: sergey Differential Revision: https://developer.blender.org/D8206
2020-08-06Cleanup: undeclared warningsCampbell Barton
2020-08-06Cleanup: no need for plural for term 'collision'Campbell Barton
2020-08-06Sculpt: Cloth Brush/Filter CollisionsPablo Dobarro
This implements collisions in the solver of the cloth brush/filter. It uses the scene colliders as a regular physics simulation. There are still some parameters (friction, distance to the surface...) that can be exposed as properties in later patches. Thanks to Sebastian Parborg for helping me with the implementation. Reviewed By: sergey, zeddb Differential Revision: https://developer.blender.org/D8019
2020-08-06Sculpt: Sharpen Mesh Filter curvature smoothing and intensify detailsPablo Dobarro
This adds a curvature smoothing and intensify details properties to control the result of the Sharpen Mesh Filter. Curvature smoothing removes high frequency details from the precalculated sharpen data, so the filter result has much smoother surfaces and cleaner sharpen lines; Intensify details displaces the vertices of creases and valleys in the direction opposite to its neighbors average, so it intensifies high frequency details in those areas, producing more noisy and sharp shapes: Both this properties can be used in combination to achieve a good balance of high and low frequency details depending on the shape and the desired result. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8447
2020-08-05Sculpt: Option to lock the rotation in the Pose Brush scale deform modePablo Dobarro
The scale deform mode includes rotation by default, so when when scaling down a part of the models it becomes harder to control as the effect of the rotation less predictable (similar to using trackball rotation in a very small radius). This locks the rotation of the segment, so parts of the model can be scaled down in a more predictable way. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8465
2020-08-05Sculpt: Cloth brush Pin Simulation Boundary propertyPablo Dobarro
The cloth brush has a defined simulated area with a falloff. In the falloff area (the area between the dashed white circle and the exterior white circle), simulation properties change in order to fade out the simulation deformation effects towards the boundary. With some brushes and stroke types (like anchored strokes with pinching or grabbing with full strength), it is possible to apply more force than what the boundary falloff can compensate, so the simulation breaks when this happens. This option pins the falloff area with softbody constraints, This produces a much better deformation falloff and it is no longer possible to move the vertices near the simulation boundary, so the simulation won't break no matter the strength of the forces applied inside the simulated areas. This is an option as it is particularly useful for some brushes to add localized details, but for brushes that are supposed to deform the entire mesh (like the grab brush in D8424), this can add unwanted softbody constraints that affect the simulation result. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8435
2020-08-04Sculpt: Split Box Mask into its own operatorPablo Dobarro
Box mask is not a selection, so it should not be part of the select operator. This allows to add more sculpt mode specific functionality and properties and to share more code with the lasso mask operator in a later refactor. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8456
2020-08-04Merge branch 'blender-v2.90-release'Bastien Montagne
Conflicts: source/blender/editors/gpencil/gpencil_primitive.c
2020-08-04Cleanup: typos & co in UI messages (and some other places).Bastien Montagne
2020-08-01Cleanup: use term init instead of initialize/initialiseCampbell Barton
The abbreviation 'init' is brief, unambiguous and already used in thousands of places, also initialize is often accidentally written with British spelling.
2020-08-01Cleanup: spellingCampbell Barton
2020-07-30Cleanup: Use MEM_calloc_arrayN in the Cloth BrushPablo Dobarro
Reviewed By: sergey Differential Revision: https://developer.blender.org/D8432
2020-07-30Sculpt: Use constraints in cloth deform brushesPablo Dobarro
Previously, deform brushes were modifying the final positions in the simulation directly, which was causing all sorts of artifacts in the deformed area and problems with other features of the solver. Now these brushes deform a separate array of positions and the solver adds constraints to them, so the real vertices are moved when solving the constraints. This prevents those artifacts and gives the brush a much better behavior. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8424
2020-07-30Sculpt: Enable persistent base for the cloth brushPablo Dobarro
The cloth brush builds the constraints when the stroke starts usign the current state of the mesh. This means that deformations profuced by the simulattion will accumulate after multiple strokes as it will always start from the previous deformed state. While this is useful in many cases, for other uses it is convenient to always simulate the same initial shape, but applying different forces to it. The persistent base options work like the persistent base in the layer brush and allows the cloth brush to not accumulate deformation after each stroke. When enabled, constraints are created for the shape stored in the persistent base instead of from the current state of the mesh. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8428
2020-07-30Cleanup: warningsCampbell Barton
2020-07-30Cleanup: GPU: Remove GPU_draw.h and move fluid gpu function to DRWClément Foucault
2020-07-30Cleanup: Split gpu_texture_image.c into BKE and IMB modulesClément Foucault
This is in order to disolve GPU_draw.h into more meaningful code blocks. All the Image related function are in `image_gpu.c`. All the MovieClip related function are in `movieclip.c`. The IMB module now has a connection with GPU. This is not strickly necessary and the code could be move to `image_gpu.c` if needed. The Image garbage collection is also ported to `image_gpu.c`.
2020-07-29Sculpt: Cloth Brush Soft Body Influence propertyPablo Dobarro
This property adds constraints to the simulation using the initial location of the vertices, making it behave like a soft body. The strength of these constraints can be modified with the brush parameter. This makes some deformation modes more subtle and predictable, making it possible to use the cloth brush to add surface detail in a more controllable way without loosing completely the original shape of the mesh. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7845
2020-07-29Merge branch 'blender-v2.90-release'Pablo Dobarro
2020-07-29Fix Cloth Brush global Sculpt gravity applied in the wrong falloffPablo Dobarro
Previously, gravity was only applied in the real brush radius, not in the whole simulation radius. For most deformation modes, applying gravity to the entire simulation instead of just to the brush radius and scaled by the radius (like a regular sculpt brush) makes more sense. After this fix and with the cloth collisions patch applied, it is possible to do things like this with the cloth grab brush. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8406
2020-07-29Fix T79054: Crash with Cloth Brush and anchored strokePablo Dobarro
As the comment says, anchored stroke can't rely on the first stroke iteration for creating the simulation data. Probably lost in a cleanup. I also made that anchored stroke doesn't restore the mesh state in the cloth brush, so it can create the simulation effect. Reviewed By: sergey Maniphest Tasks: T79054 Differential Revision: https://developer.blender.org/D8348
2020-07-29Merge branch 'blender-v2.90-release'Germano Cavalcante
2020-07-29Fix T79355: switch to texture paint workspace changes image in other workspacesBrecht Van Lommel
Only automatically change image in editor to follow texture paint editors and workspaces that are visible.
2020-07-29Cleanup: declare static variablesCampbell Barton
2020-07-27Fix Sculpt Relax operation when deforming mesh boundariesPablo Dobarro
Previously, mesh boundaries were relaxed as any other vertex, which was causing artifacts and unwanted deformation. In order to prevent this, the mesh filter was using the automasking system to lock the boundary vertices, which was hacked into the tool. For the brush, the only solution was to enable boundary automasking to lock those vertices in plance. Now the relax vertex function slides the boundary vertices along the mesh boundary edges, relaxing all the topology correctly while preserving the shape of the mesh. The automasking hack in the relax mesh filter was also removed as now vertices slide correctly along the boundary. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8350
2020-07-27Fix T79164: Sculpting with smooth shading doesn't update normalsPablo Dobarro
Just a missing update flag Reviewed By: sergey Maniphest Tasks: T79164 Differential Revision: https://developer.blender.org/D8364
2020-07-27Fix T78242: Crash when using a Sculpt color tools that needs connectivity ↵Pablo Dobarro
for the first time When there is no color layer available, BKE_sculpt_update_object_for_edit creates a new one and tags the mesh with ID_RECLAC_GEOMETRY, so this layer is inmediatly available when the tool starts. This also deletes the PBVH and when it is created again in BKE_sculpt_update_object_after_eval, the pmap is not initialized, making the tool crash. This moves the color layer creation to a separate function outside BKE_sculpt_update_object_for_edit, which now runs after the color layer is available, so it won't need to update again and the pmap will still be available when the tool is used. Reviewed By: sergey Maniphest Tasks: T78242 Differential Revision: https://developer.blender.org/D8135
2020-07-21Sculpt: Add extra deform types to SlidePablo Dobarro
This adds extra deform modes to the slide mode of the Topology Slide/Relax brush (both slide and smear are almost identical). This is useful to move topology to a specific area to add more localized details Reviewed By: sergey Differential Revision: https://developer.blender.org/D8349
2020-07-21Sculpt: Support pen pressure modulation in Paint Brush propertiesPablo Dobarro
This allows to use pen pressure modulation in hardness, wet mix, wet persistence, flow and density, as well as inverting the modulation (more pressure, less density...). With this, it is possible to create brushes that mix paint or apply a new color based on the pressure. Reviewed By: sergey, campbellbarton Differential Revision: https://developer.blender.org/D8267
2020-07-21Fix T79056: Topology automasking artifacts in multiresPablo Dobarro
Both to_v and form_v need to be included. From_v is needed to include the active vertex when there is only one vertex in the radius of the brush, to_v needs to be included to add all grids duplicates Reviewed By: sergey Maniphest Tasks: T79056 Differential Revision: https://developer.blender.org/D8347
2020-07-21Fix T79007: Smooth brushes crasing in dyntopoPablo Dobarro
The custom smooth functions for bmesh and meshes where removed and replaced by a generic smooth function using the sculpt API, which needs to initialize the bmesh indices in order to be used Reviewed By: sergey Maniphest Tasks: T79007 Differential Revision: https://developer.blender.org/D8333
2020-07-18Cleanup: GPU: Encapsulate scissor testClément Foucault
2020-07-18Cleanup: PaintCursor: Use GPUTexture instead of opengl callsClément Foucault
2020-07-16Cleanup: GPU: Move depth/color masks functions to GPU_stateClément Foucault
2020-07-16Cleanup: GPU: Replace all glReadPixels by GPU equivalentClément Foucault
2020-07-16Cleanup: undeclared function warning, unused argumentCampbell Barton
2020-07-15Fix T78747: Fix mesh boundary detection and automaskingPablo Dobarro
This issue was produced by a hack in the sculpt mode code from 2.80 when the sculpt API for connectivity info was not available. The smooth brush was the only brush that needed connectivity info, so there were 3 different smooth functions with the connectivity queries implemented for dyntopo, meshes and grids. The mesh version of smoothing was checking the number of connected faces to a vertex to mask the mesh boundaries, which was not covering all cases and was hardcoded in the smooth function itself. This patch removes all those legacy functions and unifies all smooth functions into a single one using the new API and the automasking system. In order to achieve this, there were needed some extra changes: - The smooth brush now does not automasks the boundaries by default, so its default preset needs to be updated to enable automasking - The mesh boundary info is extracted once and cached in a bitmap, similar to the disconnected elements IDs. This makes boundary detection work as expected in all cases, solving a lot of known issues with the smooth brush. In multires, this info is extracted and cached only at the base mesh level, so it is much more memory efficient than the previous automasking system. - In order to keep the brushes responsive as they were before, the automasking system can now skip creating the cache when it is not needed for the requested options. This means that for high poly meshes and simple automasking options the brushes won't lag on start. Reviewed By: sergey Maniphest Tasks: T78747 Differential Revision: https://developer.blender.org/D8260
2020-07-15Fix T77417: Topology Automasking not working with individual verticesPablo Dobarro
The flood fill operation was setting the mask using to_v, so in the first iteration when the floodfill callback was using the active vertex as from_v and any other neighbor as to_v, the mask for the active vertex was never set. Now the mask is set using from_v and it checks if it should continue propagating to the next neighbor using to_v. Reviewed By: sergey Maniphest Tasks: T77417 Differential Revision: https://developer.blender.org/D8294
2020-07-13Sculpt: Add extra deform types to SmearPablo Dobarro
The smear brush was using the stroke direction to slide colors across the mesh surface (this is called drag in other sculpt tools). Similarly, other deformations can be included. The most common ones in image editing are pinch and expand, which can be used to sharpen transitions between colors. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8270
2020-07-13Sculpt: Enable color palettes for sculpt vertex colorsPablo Dobarro
Enables the color palette subpanel for brushes that have color capabilities (only the paint brush for now) Reviewed By: sergey Differential Revision: https://developer.blender.org/D8268
2020-07-13Clang Tidy: enable readability-non-const-parameter warningJacques Lucke
Clang Tidy reported a couple of false positives. I disabled those `NOLINTNEXTLINE`. Differential Revision: https://developer.blender.org/D8199
2020-07-10Cleanup: spellingCampbell Barton
2020-07-10Cleanup: spellingCampbell Barton
2020-07-10Cleanup: undeclared warningsCampbell Barton