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
path: root/source
AgeCommit message (Collapse)Author
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-20Cleanup: clang-formatCampbell Barton
2021-06-19Cleanup: use doxy sectionsCampbell Barton
2021-06-19Cleanup: clang-tidyCampbell Barton
2021-06-19VSE: Remove seq->tmp usageRichard Antalik
Remove `seq->tmp` usage from transform code. It was used to tag strips that need to be "shuffled". Pass these strips in `SeqCollection` instead. Reviewed By: sergey, mano-wii Differential Revision: https://developer.blender.org/D11631
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-18Fix T89261: Crash when calculating bmesh tessellationGermano Cavalcante
Error passing `false` instead of a `BMeshCalcTessellation_Params` struct.
2021-06-18Cleanup: Remove dead codeAaron Carlisle
This code was disabled in 2.8 and all other associated code/comments have been removed/cleared. These rna properties have been replaced with `seq_prev_type`
2021-06-18Fix Build WarningHarley Acheson
Removal of unused local variable. Calculation of underline thickness no longer needed with change to text output of underscore character. Introduced in aee04d496035 Differential Revision: https://developer.blender.org/D11641
2021-06-18Fix T89259: GPencil Duplicate point doesn't work for last pointAntonio Vazquez
The loop was checking the len of the island, but if the island started in the last point the copy was not executed.
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-18Fix T89246: No Mnemonic Underlines in DialogsHarley Acheson
When drawing mnemonic underlines for hotkeys, use text output of underscore character instead of direct drawing a line. Otherwise these are not visible in dialog buttons. Introduced in 0fcc063fd99c Differential Revision: https://developer.blender.org/D11641 Reviewed by Campbell Barton
2021-06-18UI: Sequencer: Use ampersand instead of slash for "Sequencer/Preview"Aaron Carlisle
Using an ampersand here is more semantically correct. A slash indicates "or" while an ampersand indicates "and". An ampersand here is best because the view type shows both the Sequencer and the Preview.
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-18DrawManager: Multithreaded counting of material buckets.Jeroen Bakker
When having multiple materials in a mesh the triangles are sorted based on material index. This sorting is done single threaded, but needs two loops over the data. One to count the bucket size and the second one to add the triangles to the right position in the buckets. This patch will do the counting in a multithreaded approach that would speed up the cache creation. It has been measured that this part is the most blocking part of the cache creation. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11615
2021-06-18BMesh: use threading to count total selection.Jeroen Bakker
During selections the total selection is refreshed at the end. This process was done single threaded. This patch will do a parallel iter approach. Master: 0.043612s Threaded 0.017964s. Master: {F10179586} This patch: {F10179587} Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11622
2021-06-18Fix T89262: Crash in regular FileBrowser ID listing of 'asset' .blend files.Bastien Montagne
`ED_fileselect_get_asset_params` would only return actual data pointer when file browser is in ASSET mode. Calling that whole section only makes sense if filebrowser is in asset mode anyway. Regression introduced in rBf6c5af3d4753 I think. @Severin committing this fix now as this is a fairly critical bug for the studio, feel free to revert and do proper fix if this one is not the best solution.
2021-06-18Performance: Limit recounting during selection mode flushing.Jeroen Bakker
This patch ensures that selection mode flushing updates total selection counts internally. This reduces recounting when we are sure that the input total selection counts were up to date. For example for circle selection the total selection counts were correct. But during flushing the selection could have been changed and therefore the selection was always recounted. This increased the performance on selected system from 6.90 FPS to 8.25 FPS during circle selection operations. Before: {F10179981} After: {F10179982} Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11647
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-18Fix T89240: Crash when moving vertices on a linked duplicateGermano Cavalcante
There is an attempt to free an illegal pointer in `extract_edge_fac_finish`.
2021-06-18Fix T88605: Alembic import crashes when missing `arbGeomParams`Sybren A. Stüvel
Add check for the `arbGeomParams` property being valid, before attempting to access a sub-property from it.
2021-06-18Cleanup: clang formatJacques Lucke
2021-06-18Fix invalid polygon normal array access building bake dataCampbell Barton
Pre computed normals index wasn't properly aligned. Regression from 2ec00ea0c1be1ace7cd0c7b68e43cc8e87dd07c7.
2021-06-18Cleanup: use 'bmesh' prefix for BMesh tessellation utilitiesCampbell Barton
2021-06-18Cleanup: rename test_index_face -> BKE_mesh_mface_index_validateCampbell Barton
2021-06-18Cleanup: remove unused MFace custom-data utilitiesCampbell Barton
Remove: - BKE_mesh_loops_to_mface_corners - BKE_mesh_tangent_loops_to_tessdata
2021-06-18Cleanup: move mesh tessellation into it's own fileCampbell Barton
This matches BMesh which also has tessellation in it's own file. Using a separate file helps with organization when extracting code into smaller functions.
2021-06-18Cleanup: clang-tidyCampbell Barton
2021-06-18Cleanup: replace 'unsigned in' with 'uint'Campbell Barton
2021-06-18Cleanup: use standard identifier for uint64_t string formattingCampbell Barton
2021-06-18Fix undefs from previous commitGermano Cavalcante
2021-06-18Fix T89210: Box selection can fail in graphics editorGermano Cavalcante
Test the intersection of segment instead of point.
2021-06-18Fix T89247: Dereference arguments to comparison function correctlyFen
`bm_face_len_cmp` incorrectly interpreted its arguments as `BMFace *` instead of `BMFace **`, causing an out-of-bounds read. Ref D11637
2021-06-18Fix T89233: Incorrect attribute remove warning for curvesHans Goudey
The curve attribute delete function didn't return whether it was successful or not.
2021-06-17Raycast geometry node.Lukas Tönne
The //Raycast// node intersects rays from one geometry onto another. It computes hit points on the target mesh and returns normals, distances and any surface attribute specified by the user. A ray starts on each point of the input //Geometry//. Rays continue in the //Ray Direction// until they either hit the //Target Geometry// or reach the //Ray Length// limit. If the target is hit, the value of the //Is Hit// attribute in the output mesh will be true. //Hit Position//, //Hit Normal//, //Hit Distance// and //Hit Index// are the properties of the target mesh at the intersection point. In addition, a //Target Attribute// can be specified that is interpolated at the hit point and the result stored in //Hit Attribute//. Docs: D11620 Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D11619
2021-06-17Fix T89234: Gpencil Separate doesn't copy settings in Stroke/Point modeAntonio Vazquez
Some values were not copied from the old layer to the new one as Tint or Opacity factor. The error affected to Strokes and Point mode
2021-06-17Geometry Nodes: Add Curve Subdivision NodeHans Goudey
This node creates splines with more control points in between the existing control points. The point is to give the splines more definition for further tweaking like randomization with white noise, instead of deforming a resampled poly spline with a noise texture. For poly splines and NURBS, the node simply interpolates new values between the existing control points. However, for Bezier splines, the result follows the existing evaluated shape of the curve, changing the handle positions and handle types to make that possible. The number of "cuts" can be controlled by an integer input, or an attribute can be used. Both spline and point domain attributes are supported, so the number of cuts can vary using the value from the point at the start of each segment. Dynamic curve attributes are interpolated to the result with linear interpolation. Differential Revision: https://developer.blender.org/D11421
2021-06-17Geometry Nodes: support minimum twist normal modeJacques Lucke
The minimum twist mode is important because it allows creating normals without sudden changes in direction. The disadvantage of minimum twist normals is that the normals depend on all control points. So changing one control point can change the normals everywhere. The computed normals do not match the existing code exactly, although they do match quite well on non-cyclic and on some cyclic curves. I also noticed that the existing implementation has some fairly simple failure cases that I haven't found in the new implementation so far. Differential Revision: https://developer.blender.org/D11621
2021-06-17Geometry Nodes: fix ownership issue in spline to points conversionJacques Lucke
Previously, `VArray_For_SplineToPoint` did not take ownership of the virtual array leading to use-after-free errors.
2021-06-17Geometry Nodes: improve node locking in evaluatorJacques Lucke
This makes the parts where a node is locked more explicit. Also, now the thread is isolated when the node is locked. This prevents some kinds of deadlocks (which haven't happened in practice yet).
2021-06-17Cleanup: use doxy sections for rna_mesh.cCampbell Barton
2021-06-17Cleanup: rename rna_Mesh_update_data to rna_Mesh_update_data_deg_allCampbell Barton
It's ambiguous what rna_Mesh_update_data does compared with functions that use `rna_Mesh_update_data_*` as a prefix. Noticed by @sybren D11377 review.
2021-06-17Cleanup: improved comment for skipping updated with zero user meshesCampbell Barton
Noticed by @sybren D11377 review.