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-09-01Fix T80224: Crash after duplicating and hiding vertices while using X Axis ↵Germano Cavalcante
Mirror The mirror map can reference a hidden vertex that is currently ignored in the transformation. Thus the mirror element array is not filled.
2020-08-31New Boolean: Always expose solver propery, add warningHans Goudey
After discussion with @howardt, it seems the solver property should always be exposed, even in lite builds. This commit removes the ifdefs for that property and adds a warning if the "Exact" solver is used when Blender is compiled without GMP. These changes apply to the boolean modifier as well.
2020-08-31Cleanup: Resolve unused variable warning in lite buildHans Goudey
2020-08-28Merge newboolean branch into master.Howard Trickey
This is for design task T67744, Boolean Redesign. It adds a choice of solver to the Boolean modifier and the Intersect (Boolean) and Intersect (Knife) tools. The 'Fast' choice is the current Bmesh boolean. The new 'Exact' choice is a more advanced algorithm that supports overlapping geometry and uses more robust calculations, but is slower than the Fast choice. The default with this commit is set to 'Exact'. We can decide before the 2.91 release whether or not this is the right choice, but this choice now will get us more testing and feedback on the new code.
2020-08-27Fix T80159: Custom Normals Averaging crash after clearingPhilipp Oeser
custom split normals data Clearing custom split normals would get rid of the CD_CUSTOMLOOPNORMAL layer - but editing data `lnor_spacearr` would be kept. Adding a CD_CUSTOMLOOPNORMAL layer (if none exists yet) should be done in `edbm_average_normals_exec` / `BKE_editmesh_lnorspace_update` / `BM_lnorspace_update` / `BM_lnorspacearr_store`. The thing is that if the editing data `lnor_spacearr` would still be valid after `Clear Custom Split Normals Data`, blender would happily call `BM_lnorspace_rebuild` instead. Doing that without a CD_CUSTOMLOOPNORMAL layer is asking for trouble. Now clear lnor_spacearr on `Clear Custom Split Normals Data` as well. Thx @mont29 for feedback here. Maniphest Tasks: T80159 Differential Revision: https://developer.blender.org/D8730
2020-08-26Cleanup: remove unused UvVertMap.flagCampbell Barton
2020-08-26Cleanup: simplify edge loop/boundary select cycling logicCampbell Barton
2020-08-25Fix T80077: Objects disappear when joining with a zero scaled axisCampbell Barton
Use invert_m4_m4_safe_ortho when joining objects so zero scaled axis doesn't cause all points to be scaled to zero. Instead geometry is left un-scaled on degenerate axes. Report a warning in this case since users may want to adjust the active objects scale.
2020-08-21Fix T79987: Crash when joining objectsJulian Eisel
Mistake in b077de086e14. I did the same fix for a few operators there, but missed the object "Join" one. The joining operator changes the layer content. So it must send a notifier for that. Before b077de086e14 that didn't cause a noticeable issue, because the Outliner happened to listen to other notifiers (active/selection changes) the operator sent and fully rebuilt its tree in response. Now missing these notifiers can be more problematic, since we try to avoid more rebuilds. Added comments to the notifier types to avoid at least this pitfall.
2020-08-20GPUState: Use explicit depth test enumClément Foucault
2020-08-18Cleanup: GPUState: remove double GPU_blend callsClément Foucault
2020-08-18GPUState: GPU_blend final API renamingClément Foucault
We now use GPU_blend for enabling / disabling blending and explicitly set the blend equation.
2020-08-18Cleanup: GPUState: Replace blend func separate by enumClément Foucault
2020-08-18Fix Mask Slice deleting the Face SetsPablo Dobarro
This was a TODO in the code. Previously the Face Set datalayer was deleted and recreated with a constant ID of 0. Now the datalayer is preserved and set to the SculptSession after slicing the mask and a new ID is calculated for the new faces that the slicing operation produced, so they can be easily isolated for further tweaking. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8583
2020-08-13GPUBatch: Merge phase and ownership flags and cleanup there usageClément Foucault
Also add new flags to communicate specific behavior to future backend.
2020-08-13GPUBatch: Remove most use of GPU_batch_draw_advanced()Clément Foucault
This is in order to better encapsulate / isolate the drawing code.
2020-08-13GPUShader: Change shader state tracking to be part of the GPUContextClément Foucault
This remove the use of batch->program and replace it with batch->shader. This will allow GL abstraction latter.
2020-08-11Fix T75588: Missing loop cuts preview for edges without quadsGermano Cavalcante
The preview of points was only done when the edge is wire. Now the preview of points is done when the edge is not connected to any quad. Also to avoid edge slide in this case, all new vertices created in this specific case are not selected. Differential Revision: https://developer.blender.org/D7457
2020-08-11Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-11BMesh: add UV calculate center callCampbell Barton
Move uv_poly_center to BM_face_uv_calc_center_median as it was only defined in uvedit_intern.h
2020-08-08Cleanup: use array syntax for sizeof with fixed valuesCampbell Barton
Also order sizeof(..) first to promote other values to size_t.
2020-08-07Cleanup: pass arrays const where possibleCampbell Barton
2020-08-07Cleanup: declare arrays arrays where possibleCampbell Barton
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-06UI: Fixes and small improvements to some labels and UI messagesYevgeny Makarov
Small tweaks to make labels and texts more correct, consistent and polished. Reviewed by: Aaron Carlisle, Julian Eisel Differential Revision: https://developer.blender.org/D8346
2020-08-04Fix T71488: Flipping Custom Split Normal Data leads to artifactsSebastian Parborg
The winding order of the faces changes when flipping the faces. This lead to the loop indices changing as well. Now we take this into account when restoring and flipping the custom normals. Before the normals would be swapped.
2020-08-04Fix T71488: Flipping Custom Split Normal Data leads to artifactsSebastian Parborg
The winding order of the faces changes when flipping the faces. This lead to the loop indices changing as well. Now we take this into account when restoring and flipping the custom normals. Before the normals would be swapped.
2020-08-04Cleanup: Reduce indentation in functionHans Goudey
2020-07-28Merge branch 'blender-v2.90-release'Bastien Montagne
2020-07-28Fix T54544: "Copy Materials to Selected" only works when materials are ↵Bastien Montagne
defined on the mesh. Build a temp matarray storing materials from obdata and source object (depending on slots 'allocation' of source object), and assign those to targets. Also remove limitation of 'using same obdata is forbidden', just never edit obdata materials in that case... Certainly not perfect, but already much better than existing code.
2020-07-28Cleanup: incorrect spelling of 'manhattan'Campbell Barton
2020-07-28Cleanup: spelling, commentsCampbell Barton
2020-07-22UI: use term 'Vertex' instead of 'Vert'Yevgeny Makarov
2020-07-21Bevel: Refactor "Vertex Only" to an enumHans Goudey
This matches the change that was done to the bevel modifier so that the interface for the modifier, the active tool, and the operator are consistent. This commit extends the refactor to the bmesh implementation too, so that the parameters in the implementation don't stray too far from what is exposed. Tests are adjusted and still pass.
2020-07-21UI: Use consistent layout for custom operator UIHans Goudey
Operators are one of the last places in Blender to use older UI designs that don't fit in with recent style conventions. This commit updates these custom operator UI callbacks for consistency and clarity. Some of the code is also simplified a lot. Some of the older operator layouts were much more complex (in terms of code) than they needed to be. See the differential revision for a before and after screenshot of each operator. Differential Revision: https://developer.blender.org/D8326
2020-07-21UV: remove selection threshold for nearby coordinatesCampbell Barton
Internally UV selection considered close UV's to be connected. While this could be convenient in some cases, it complicates logic for more advanced selection operations that need to check when UV's should be considered part of the same vertex since simple threshold checks would give different results depending on the order of UV's tested. Users must now run "Merge by Distance" instead of relying on this selection threshold.
2020-07-20Fix T70455: Knife Tool failing to cut edgesGermano Cavalcante
Analyzing the cuts, the points shown in the viewport (indicating the previous and current cuts) do not correspond to the final cuts. Sometimes a point, even snapped to a vert, is a point that cuts an edge and sometimes a point, even snapped to an edge, is a point that cuts only the face. This is because the detection of snapping vertices from mouse is different from the "snap" that detects vertices that are cut. So small projection inaccuracies can result in detection failures. The solution for this is simply to confirm the cuts whose vertices indicate the `prev` ou and `cur` point. The tolerance distance does not need to be calculated in these cases.
2020-07-18Cleanup: KnifeTool: Replace glPolygonOffset by GPU_polygon_offsetClément Foucault
2020-07-16Cleanup: spellingCampbell Barton
2020-07-14Fix T78880: UV Editor - Match prop edit connected behavior with mesh editing ↵Sebastian Parborg
and fix Rip Region double proportional checkbox This fixes the double prop edit checkbox in the redo menu. This also makes it so that proportional edit in connected mode now matches how it behaves in mesh edit mode. Without this change, ripping in UV edit mode with proportional edit on would be useless as the UV verts you ripped will still be stuck together even if they were not connected anymore. Reviewed By: Campbell Differential Revision: http://developer.blender.org/D8289
2020-07-14Fix wrong vector size functions used in knife toolSergey Sharybin
Should not use copy_v3_v3 on a 2 element vectors.
2020-07-13Cleanup: remove unnecessary memberGermano Cavalcante
`Kfv-> sco` was being treated as a local variable, and can be confusing since this value is not updated when navigating the viewport.
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-09Fix repeated Face Sets IDs when joining meshesPablo Dobarro
As Face Sets IDs start from 0 and increase by 1 each time a new face set is created in a mesh, when joining multiple meshes it could happen that the same ID is used by several unrelated areas in multiple objects. This checks the Face Sets IDs when joining meshes and ensures that they are not repeated between different objects when joining them, so in the resulting mesh all previous face sets will have different IDs. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8224
2020-07-09UV: path selection supportCampbell Barton
This adds support for path selection for vertex edge & face selection modes, matching mesh editing behavior, useful with the UV rip tool. Region select & edge tagging are currently not supported, although they could be added eventually.
2020-07-07Fix: remove accidental codeGermano Cavalcante
`v1` and `v2` are already set.
2020-07-07Optimization: use `BLI_bvhtree_intersect_plane` to detect faces that will be ↵Germano Cavalcante
affected by the knife tool The knife code currently calls the `BLI_bvhtree_overlap` function that tests the overlap between the mesh tree and an AABB that encompasses the points projected in the clip_start, clip_end and or clip_planes of the view. This resulted in many false positives since the AABB is very large. Often all the triangles "overlapped". The solution was to create a new function that actually tests the intersection of AABB with a plane. Even not considering the clip_planes of the view, this solution is more appropriate than using overlap. Differential Revision: https://developer.blender.org/D8229
2020-07-06Optimization: Don't compute the snap to face on the knife tool twiceGermano Cavalcante
Both `knife_find_closest_vert` and `knife_find_closest_edge` call `knife_find_closest_face`. Thus, running the raycast twice and setting values like `kcd->curr.bmface` and `kcd->curr.is_space` repeatedly. So: - separate `knife_find_closest_face` from `knife_find_closest_vert` and `knife_find_closest_edge`. - rename `knife_find_closest_vert` to `knife_find_closest_vert_of_face` - rename `knife_find_closest_edge `to `knife_find_closest_edge_of_face`. - do not set parameters previously set. Differential Revision: https://developer.blender.org/D8198