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
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-26GPencil: Duplicate Masks when separate Layer/StrokesAntonio Vazquez
Now, the mask layers are copied and later a cleanup is done in order to verify all mask layer exist in destination object. If the layer mask does not exist, it's removed from the list. This is related to T89234.
2021-06-25Fix T89430: Realizing NURBS curve instances is brokenHans Goudey
The "copy_data" function for nurbs splines was incorrect, it always set the destination's knots vector as "not dirty," even if the source's was.
2021-06-25Fix T88756: crash when baking with autosmoothKévin Dietrich
When baking some data, we create a new Mesh with edits and modifiers applied. However, in some cases (e.g. when there is no modifier), the returned Mesh is actually referencing the original one and its data layers. When autosmooth is enabled we also split the Mesh. However, since the new Mesh is referencing the original one, although `BKE_mesh_split_faces` is creating new vertices and edges, the reallocation of the custom data layers is preempted because of the reference, so adding the new vertices and edges overwrites valid data To fix this we duplicate referenced layers before splitting the faces. Reviewed By: brecht Differential Revision: https://developer.blender.org/D11703
2021-06-25Spreadsheet: Dataset region for spreadsheet editorFabian Schempp
This patch adds a left aligned sidebar to the spreadsheet editor. This Sidebar can be used to navigate the geometry component types and attribute domains. It also provides a quick overview of domain sizes. It replaces the two dropdowns in the regions header. Next step will be to add the domain cycling shortcut using the CTRL + mouse wheel. Reviewer: Dalai Felinto (dfelinto), Julian Eisel (Severin), Hans Goudey (HooglyBoogly). Differential Revision: https://developer.blender.org/D11046
2021-06-24Cleanup: compiler warnings with clangBrecht Van Lommel
* Mark either all or no class methods with override * Don't use zero sized array since it has a different size in C and C++. Using a little more memory here is not significant. * Don't use deprecated mechanism to mark private GSet members in clang just like we don't for MSVC, it warns even for simple zero initialization.
2021-06-24Depsgraph: support flushing parameters without a full COW updateCampbell Barton
Avoid computationally expensive copying operations when only some settings have been modified. This is done by adding support for updating parameters without tagging for copy-on-write. Currently only mesh data blocks are supported, other data-blocks can be added individually. This prepares for changing values such as edit-mesh auto-smooth angle in edit-mode without duplicating all mesh-data. The benefit will only be seen when the user interface no longer tags all ID's for copy on write updates. ID_RECALC_GEOMETRY_ALL_MODES has been added to support situations where non edit-mode geometry is modified in edit-mode. While this isn't something user are likely to do, Python scripts may change the underlying mesh. Reviewed By: sergey Ref D11377
2021-06-24Fix linking code after own recent commit.Bastien Montagne
More stupid mistake in recent enhanced reports for file load code, rB82c17082ba0e left some read-after-free situations.
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-24Cleanup: correct variable name in commentsCampbell Barton
2021-06-23Fix T88769: GPencil smooth incorrect behavior in cyclic strokesAntonio Vazquez
When use smooth tool in a cyclic stroke, the smoothing algorithm was not using the adjacent points if these are the end or start of stroke. Now, the smooth uses the other extreme of the stroke to compute smoothness.
2021-06-23LibOverride: Also override owner collection in Outliner hierarchy override.Bastien Montagne
This change will ensure at least one 'local' collection can host the new 'local' override of all objects (indirectly) overridden by this operation, such that no new override of object ends up in master collection (which can become extremely messy in production files). In practice, it means often at least one of the linked collection owning those objects also has to be overridden. NOTE: This only affect cases where root overridden linked object has some dependencies outside of its own root linked collection. While this situation should be avoided, it cannot always be, so we try to support it as best as we can.
2021-06-23Fix Scene/MasterCollection handling in `BKE_main_collection_sync_remap()`.Bastien Montagne
Those were missing proper (explicit) object cache clear, and DEG tagging. Note that this was most likely not an common issue in practice (Collection object cache clearing recursively goes into all parents, so master collection would only miss it in case they had no child collections at all, and tagging of those happens almost always at other steps on remapping). But better to be explicit and consistent here in any case.
2021-06-23Revert "Revert "Enhanced stats/reports for blendfile reading.""Bastien Montagne
This reverts commit rB3a48147b8ab92, and fixes the issues with linking etc. Change compared to previous buggy commit (rBf8d219dfd4c31) is that new `BlendFileReadReports` reports are now passed to the lowest level function generating the `FileData` (`filedata_new()`), which ensures (and asserts) that all code using it does have a valid non-NULL pointer to a `BlendFileReadReport` data. Sorry for the noise, it's always when you think a change is trivial and do not test it well enough that you end up doing those kind of mistakes...
2021-06-23Fix T89249: incorrect mesh validate error with zeroed vertex normalsCampbell Barton
It's not an error for centered vertices to have a zero normal.
2021-06-23Cleanup: reformat trailing comments that caused line wrappingCampbell Barton
2021-06-23Fix T89374: Erasing/cutting in Grease Pencil makes Blender shut downAntonio Vazquez
When cut a stroke of 1 point, the clean up done to avoid keep 1 point strokes removes the memory, but the pointer to the first stroke was not set to NULL. As this pointer is invalid now, any use of this produces a segment fault because the pointer is corrupted..
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-06-22Cleanup: Remove extra blank lineAntonio Vazquez
2021-06-22Fix T89366: GPencil hide layers above parented layerAntonio Vazquez
The problem was the flag was not reset by layer in the loop.
2021-06-22Fix T89343: Point cloud instances not transformed when realizedHans Goudey
This problem has surprisingly been there for quite a few months. For point clouds all attributes were handled the same, even "position", which should be transformed when combining source points into the destination.
2021-06-22Revert "Enhanced stats/reports for blendfile reading."Brecht Van Lommel
This change crashes library linking operators, related tests and probably more. This reverts commit f8d219dfd4c31a918e33cb715472d91a5cd3fd51. Ref D11583
2021-06-22Geometry Nodes: Join curve attributes when realizing instancesHans Goudey
Previously the code assumed that curve instances had no attributes. This is true when the data came from curve objects, which don't support attributes currently, but it isn't necessarily true when retrieving curves from evaluated geometry sets.
2021-06-22Cleanup: Refactor spline copying functionsHans Goudey
Make the virtual functions protected and simpler, so that the logic is better contained in the base class's implementation. Also introduce a `copy_without_attributes` method to be used for realizing instances.
2021-06-22Fix deadlock with shrinkwrap and other modifiersBrecht Van Lommel
More code that needs task isolation. Encountered in sprite fright production file. Ref D11603
2021-06-22Enhanced stats/reports for blendfile reading.Bastien Montagne
Add direct user feedback (as a warning report) to user when recursive resync of overrides was needed. And some timing (as CLOG logs) about main readfile process steps. This is essentially adding a new BlendFileReadReport structure that wraps BKE_reports list, and adds some extra info (some timing, some info about overrides and (recursive) resync, etc.).
2021-06-22Cleanup: split BKE_object_batch_cache_dirty_tagGermano Cavalcante
Create a more specialized function `BKE_object_data_batch_cache_dirty_tag`
2021-06-22Cleanup: Use more clear visibility tag function nameSergey Sharybin
No functional changes. Just makes it clear this is not an immediate update, and will make an upcoming change more localized.
2021-06-22Cleanup: Use "size" instead of "points_len" in spline codeHans Goudey
Previously this was mostly consistent, but not completely. It's helpful to use the same name for the same meaning everywhere in this area.
2021-06-22Cleanup: Rename variables, use shorter namesHans Goudey
`src` and `dst` are perfectly clear, and avoid repeating unecessary characters when writing the variables many times, allowing more space for everything else.
2021-06-21Refactor: Do not keep a copy of depth buffer in RegionView3DGermano Cavalcante
The depth cache (located in `RegionView3D::depths`) is used for quick and simple occlusion testing in: - particle selection, - "Draw Curve" operator and - "Interactive Light Track to Cursor" operator, However, keeping a texture buffer in cache is not a recommended practice. For displays with high resolution like 8k this represents something around 132MB. Also, currently, each call to `ED_view3d_depth_override` invalidates the depth cache. So that depth is never reused in multiple calls from an operator (this was not the case in blender 2.79). This commit allows to create a depth cache and release it in the same operator. Thus, the buffer is kept in cache for a short time, freeing up space. No functional changes.
2021-06-21Fix deadlocks in mesh modifier evaluation and particlesBrecht Van Lommel
The recent task isolation changes missed two mutex locks that also need task isolation. Ref D11603, T89194
2021-06-21GPencil: Disable Lights when duplicate layerAntonio Vazquez
Missing to disable default light ON when use separate operator.
2021-06-21Cleanup: pass objects as const argumentsCampbell Barton
2021-06-21Cleanup: Rename spline interpolation functionsHans Goudey
The names were slightly longer than they needed to be clear, and when they are shorter they tend to fit on one line better.
2021-06-21Curves: Multithread Curve to CurveEval conversionHans Goudey
A different data structure / implementation is used for curves in the node tree currently. Converting from the DNA `Curve` structure to this wasn't slow, but it's nice to decrease overhead. In a test of 14000 splines with 128000 points, this halves the runtime from about 5ms to about 2.5ms.
2021-06-20Fix T89302: Broken normals after mesh to curve nodeHans Goudey
The normals were broken because the normal calculation mode wasn't set. This patch adds a default normal mode so all code creating a spline does not necessarily have to set it manually. In the future there should be a way to change this value in the node tree.
2021-06-20Cleanup: make BKE_mesh_loops_to_tessdata a static functionCampbell Barton
2021-06-20Docs: add additional notes on tessellation, update commentsCampbell Barton
2021-06-20Mesh: minor optimization to concave quad check for tessellationCampbell Barton
Use the face normal (when available) for a faster concave quad test.
2021-06-20Mesh: optimize object mode face tessellationCampbell Barton
- Multi-thread BKE_mesh_recalc_looptri. - Add BKE_mesh_recalc_looptri_with_normals, this skips having to calculate normals for ngons. Exact performance depends on number of faces, size of ngons and available CPU cores. For high poly meshes the isolated improvement to BKE_mesh_recalc_looptri in my tests was between 6.7x .. 25.0x, with the largest gains seen in meshes containing ngons with many sides. The overall speedup for high poly meshes containing quads and triangles is only ~20% although ngon heavy meshes can be much faster.
2021-06-19Spreadsheet Editor: Row FiltersHans Goudey
This patch adds support for filtering rows based on rules and values. Filters will work for any attribute data source, they are a property of the spreadsheet rather than of the attribute system. The properties displayed in the row filter can depend on data type of the currently visible column with that name. If the name is no longer visible, the row filter filter is grayed out, but it will remember the value until a column with its name is visible again. Note: The comments in `screen.c` combined with tagging the sidebar for redraw after the main region point to a lack of understanding or technical debt, that is a point to improve in the future. **Future Improvements** * T89272: A search menu for visible columns when adding a new filter. * T89273: Possibly a "Range" operation. Differential Revision: https://developer.blender.org/D10959
2021-06-18Armature: add automatic B-Bone Scale toggles.Alexander Gavrilov
Currently B-Bone scaling can only be controlled via their properties, thus requiring up to 8 drivers per joint between B-Bones to transfer scaling factors from the handle bone. A Scale Easing option is added to multiply the easing value by the Y scale channels to synchronize them - this produces a natural scaling effect where both the shape of the curve and the scale is affected. In addition, four toggles are added for each handle, which multiply each of the X, Y, Z and Ease values by the matching Local Scale channel of the handle bone, thus replacing trivial drivers. The Scale Easing option has no effect on this process since it's easy to just enable both Length and Ease buttons. Differential Revision: https://developer.blender.org/D9870
2021-06-18Armature: implement lengthwise scaling of B-Bone segments.Alexander Gavrilov
Implement actual behavior for the B-Bone Y Scale channels added to DNA and UI in the previous commit in addition to the existing X and Z Scale inputs. The two length scale inputs control the ratio between the lengths of the start and end segments of the bone: although for convenience two inputs are provided, the whole chain is still uniformly scaled to fit the curve. Differential Revision: https://developer.blender.org/D9870
2021-06-18Armature: add B-Bone Y scale channel and extra flag fields to DNA.Alexander Gavrilov
In addition to the base bone transformation itself, B-Bones have controls that affect transformation of its segments. For rotation the features are quite complete, allowing to both reorient the Bezier handles via properties, and to control them using custom handle bones. However for scaling there are two deficiencies. First, there are only X and Y scale factors (actually X and Z), while lengthwise all segments have the same scaling. The ease option merely affects the shape of the curve, and does not cause actual scaling. Second, scaling can only be controlled via properties, thus requiring up to 6 drivers per joint between B-Bones to transfer scaling factors from the handle bone. This is very inefficient. Finally, the Z channels are confusingly called Y. This commit adds a B-Bone Y Scale channel and extra B-Bone flag fields to DNA with appropriate versioning (including for F-Curves and drivers) in preparation to addressing these limitations. Functionality is not changed, so the new fields are not used until the following commits. Differential Revision: https://developer.blender.org/D9870
2021-06-18GPencil: Missed flag in previous Copy Settings commitAntonio Vazquez
2021-06-18GPencil: Move copy layer settings to functionAntonio Vazquez
Better to have a function that can be reused to duplicate the settings that need to be copied.
2021-06-18Fix error passing in false as instead of a structCampbell Barton
Error in 8a1860bd9aecddf611b64e3e842bdc8c76f15cc6.
2021-06-18Fix T88394: crash when editing animated Alembic propertiesSybren A. Stüvel
When an object, whose mesh gets loaded from Alembic, gets animated in Blender and the Alembic CacheFile datablock also gets animated, editing keyframes causes both datablock to be re-copied for evaluation. This caused a threading issue and a double-free of some memory. This is fixed by expanding the scope of the spin lock in `BKE_cachefile_reader_free()`.
2021-06-18Cleanup: clang formatJacques Lucke