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
2022-06-20Curves: extract surface brush sampling into separate functionJacques Lucke
This functionality will also be necessary in the Density brush.
2022-06-20BLI: add min_inplace and max_inplace functionsJacques Lucke
2022-06-20Fix: assert when deleting all curvesJacques Lucke
2022-06-20Mask Editor: Add mask blending factor for combined overlaySimon Lenz
This adds a new parameter to the "Combined" overlay mode of the mask editor. The "blending factor" allows users to blend the mask exterior with the original footage to visualise the content of the mask in a more intuitive way. The "Alpha" overlay is unaffected by this change. The existing "Combined" overlay is used like before (covering everything outside the mask in black), but can be blended with the slider in the mask overlay to look at the exterior. This is part of an effort to make mask editing more intuitive & easy to use: https://developer.blender.org/T93097 Differential Revision: https://developer.blender.org/D13284
2022-06-20Fix artefacts with GPU subdiv and weight paint face selectionKévin Dietrich
Addendum to previous fix, which was for point selection, this fixes the face selection mode. The issue is caused by wrong flags used for paint mode (the edit mode flag was always used). Also add back flag which was accidentally removed in 16f5d51109bce849dff5379c60360f271622ac0f.
2022-06-20Fix T98913: GPU Subdivision: "Show Wire" overlay glitchKévin Dietrich
Issue is caused by an off by one error which would map some edge loops to the loops of some the next polygon in the list of polygon, which may not be a topological neighbor.
2022-06-20Cleanup: Add description of more mask editing poll functionsSergey Sharybin
No functional changes.
2022-06-20Refactor: De-duplicate mask operator poll functionsSergey Sharybin
The poll function with same semantic was defined in both screen and mask space modules. The only reason for this seems to be that the image editor needed a mask poll function which was private to the mask module. Make the mask editing poll functions public, avoiding code duplication. Also, added a brief explanation about what the poll functions are checking for. No user-level changes are expected to happen.
2022-06-19STL: Fix missing space in C++ .stl importer info outputIyad Ahmed
Fixes C++ .stl importer info output having no space between the number and the word after it. Reviewed By: Aras Pranckevicius Differential Revision: https://developer.blender.org/D15240
2022-06-19Fix T98874: new obj importer missing an option to import vertex groupsAras Pranckevicius
The old Python OBJ importer had a (somewhat confusingly named) "Keep Vertex Order -> Poly Groups" option, that imported OBJ groups as "vertex groups" on the resulting mesh. All vertices of any face were assigned the vertex group, with a 1.0 weight. The new C++ importer did not have this option. It was trying to do something with vertex groups, but failing to actually achieve anything :) -- the vertex groups were created on the wrong object (later on overwritten by "nomain mesh to main mesh" operation); vertex weights were set to 1.0/vertex_count, and each vertex was only set to be in one group, even when it belongs to multiple faces from different groups. End result was that to the user, vertex groups were not visible/present at all (see T98874). This patch adds the import option (named "Vertex Groups"), which is off by default, and fixes the import code logic to actually do the right thing. Tested on file from T98874; vertex groups are imported just like with the Python importer. Reviewed By: Howard Trickey Differential Revision: https://developer.blender.org/D15200
2022-06-19Fix T97820: new OBJ importer wrongly producing "sharp" edges in some casesAras Pranckevicius
The new OBJ importer is producing "sharp" edges on some meshes that should be completely smooth. Only observed on UV-Sphere type meshes so far (see T97820). I'm not 100% sure what is the root cause, but my theory was that maybe due to limited number of float digits that are printed for vertex normals in the file, the normals that are read in are not always exactly 1.0 length. And then the Blender's "set custom loop normals" function (which expects normalized inputs) wrongly marks some edges as sharp. Adding explicit normalization for the normals that are read from the file fixes the wrongly-sharp edges in test cases from T97820. I have not observed measurable performance impact in importing large models (e.g. 6-level subdivided Monkey) that contain vertex normals. Reviewed By: Howard Trickey Differential Revision: https://developer.blender.org/D15202
2022-06-19BLI: avoid unnecessary allocation when converting virtual arrayJacques Lucke
2022-06-19Functions: speedup multi-function procedure executorJacques Lucke
This improves performance of the procedure executor on secondary metrics (i.e. not for the main use case when many elements are processed together, but for the use case when a single element is processed at a time). In my benchmark I'm measuring a 50-60% improvement: * Procedure with a single function (executed many times): `5.8s -> 2.7s`. * Procedure with 1000 functions (executed many times): `2.4 -> 1.0s`. The speedup is mainly achieved in multiple ways: * Store an `Array` of variable states, instead of a map. The array is indexed with indices stored in each variable. This also avoids separately allocating variable states. * Move less data around in the scheduler and use a `Stack` instead of `Map`. `Map` was used before because it allows for some optimizations that might be more important in the future, but they don't matter right now (e.g. joining execution paths that diverged earlier). * Avoid memory allocations by giving the `LinearAllocator` some memory from the stack.
2022-06-18Constraints: handle the custom target at the constraint level.Alexander Gavrilov
Since the custom target is a feature implemented at constraint level, it is more appropriate to handle it in the common wrapper functions, instead of modifying all the type specific callbacks like get_constraint_targets and flush_constraint_targets. Also, tag the special target with a flag so other code can handle it appropriately where necessary. This was split from D9732, and effectively reverts and refactors part of D7437. This patch should cause no functional changes. Differential Revision: https://developer.blender.org/D15168
2022-06-18Geometry Nodes: speedup Separate XYZ nodeJacques Lucke
This speeds up the node ~20% in common cases, e.g. when only the X axis is used. The main optimization comes from not writing to memory that's not used afterwards anymore anyway. The "optimal code" for just extracting the x axis in a separate loop was not faster for me. That indicates that the node is bottlenecked by memory bandwidth, which seems reasonable.
2022-06-18Cleanup: Remove unused argument, unnecessary struct keywordHans Goudey
2022-06-18Fix: curves have incorrect resolution attribute after realizing instancesJacques Lucke
If the resolution attribute existed on some curves, but not on others, it was initialized to zero by default. However, zero is not a valid resolution.
2022-06-18Cleanup: Always store attribute name in attribute requestHans Goudey
Previously the attribute name was only stored in the request for curves. Instead, pass it as part of the "add request" function, so that it is always used. Since the whole attribute pipeline is name-based, this can simplify code in a few places.
2022-06-18Cleanup: Remove unnecessary switch statementHans Goudey
The types are retrieved by the attribute matching above anyway, there is no reason to have another switch based on the type.
2022-06-18GHOST/Wayland: support displaying custom software cursorsCampbell Barton
Add a method to access the custom cursor from GHOST which is used for drawing a software cursor. This means the knife tools cursor now work as expected. Although non-custom cursors are still not supported.
2022-06-18Fix T98793: Wayland clamps cursor movement fails with gnome-shellCampbell Barton
The current gnome-shell (v42.2) has a bug where grabbing the cursor doesn't scale the region when confining it to the window. For Hi-DPI displays this means the cursor may be confined to a quarter of the window, making grab unusable. Even though this has been fixed up-stream the issue remains in the latest release - so workaround the problem by implementing window confined grab using a software cursor. This is only used gnome-shell for displays that use Hi-DPI scaling.
2022-06-17Cleanup: Compiler Warning of Sign Conversion #2Ray Molenkamp
Second attempt to silence sign-conversion warning on Linux, introduced in rB524a9e3db810. Confirmed fix on buildbot.
2022-06-17Cleanup: Compiler Warning of Sign ConversionHarley Acheson
rB524a9e3db810 introduced sign-conversion warning on Linux. Own Code
2022-06-17USD: speed up large USD imports by not rebuilding material name map for each ↵Aras Pranckevicius
object Previous code was rebuilding "name to material" map for each object being imported. Which means O(N*M) complexity (N=object count, M=material count). There was already a TODO comment suggesting that a single map that's maintained for the whole import would be enough. This commit does exactly that. While importing Moana USD scene (260k objects, 18k materials) this saves about 6 minutes of import time. Reviewed By: Bastien Montagne Differential Revision: https://developer.blender.org/D15222
2022-06-17IO: speed up large Alembic & USD imports by doing fewer collection syncsAras Pranckevicius
Previous code was doing N collection syncs when importing N objects (essentially quadratic complexity in terms of object count). New code avoids all the intermediate syncs by using BKE_layer_collection_resync_forbid and BKE_layer_collection_resync_allow, and then does one BKE_main_collection_sync + BKE_main_collection_sync_remap for the whole operation. The things done on the importer objects that are dependent on the sync happening (marking them selected) are done in a separate loop after the sync. Timings: importing Moana USD scene (480k objects) on Windows, VS2022 Release build, AMD Ryzen 5950X: 12344sec -> 10979sec (saves 22 minutes). Reviewed By: Bastien Montagne Differential Revision: https://developer.blender.org/D15215
2022-06-17Fix T93446: search box active result does not reset when typingPatrick Huang
Whenever the user edits the query in a search box, the active (highlighted) result resets to the first. Previously, it would remain at the last highlighted result, jumping around as the results update. This is better than the previous behavior. If a user highlights a choice either on purpose or by accidental mouse movement and continues to type, it is likely that they are not looking for the currently highlighted choice, so setting it to the top search result is more useful. Differential Revision: https://developer.blender.org/D15211
2022-06-17BLF: Fallback Font StackHarley Acheson
Allow use of multiple fonts acting together like a fallback stack, where if a glyph is not found in one it can be retrieved from another. See D12622 for much more detail Differential Revision: https://developer.blender.org/D12622 Reviewed by Brecht Van Lommel
2022-06-17Cleanup: compiler warningsBrecht Van Lommel
2022-06-17Cleanup: deduplicate generating transform matrices in curves brushesJacques Lucke
2022-06-17Cleanup: simplify Add Curves brushJacques Lucke
2022-06-17Curves: refactor Add brushJacques Lucke
This splits out the code that samples points on a surface and the code that initializes new curves. This code will be reused by D15134. Differential Revision: https://developer.blender.org/D15216
2022-06-17Cleanup: Simplify syntax in curves draw cache fileHans Goudey
Also remove some unnecessary logic and change a variable name.
2022-06-17LibOverride: Handle dependencies in both directions in partial override cases.Bastien Montagne
When creating etc. a liboverride based on a partial hierarchy pre-selection (e.g: override hierarchy on the rig object of a character), now all linked data also using that rig (e.g. all meshes deformed by that armature) will also automatically be overridden. This si achieved by following dependencies in the reversed order (from used IDs to using IDs) when we find one tagged for override.
2022-06-17BKE_main: Relations: Add `TO`/`FROM` variants of processed flags.Bastien Montagne
In some cases, it can be usefull to distinguish when an entry has been processed in which direction (`to` when handling ID pointers used by the entry, `from` when handling ID using this entry). Previous `MAINIDRELATIONS_ENTRY_TAGS_PROCESSED` tag is now a combination of the two new ones.
2022-06-17Geometry Nodes: new Volume Cube nodeChris Clyne
This commit adds a Volume Cube primitive node. It outputs a volume that contains a single "density" float grid. The density per voxel can be controlled with a field that depends on the voxel position (using the existing Position node). Other field inputs are not supported. The density field is evaluated on every voxel. Possible future improvements are listed in D15198. Differential Revision: https://developer.blender.org/D15198
2022-06-17Geometry Nodes: tweak Volume to Mesh threshold declarationJacques Lucke
* Remove the minimum value, because that doesn't make sense in general. * Add a description.
2022-06-17Fix crash invoking layer add/remove operators without maskSergey Sharybin
2022-06-17Cleanup: Remove redundant doxygen sectionHans Goudey
Also remove const for the object argument, since the object data is logically modified by generating the data.
2022-06-17Cleanup: use booleans for GHOST C-APICampbell Barton
Also use GHOST_ prefix for public functions.
2022-06-17Cleanup: remove redundant string formattingCampbell Barton
2022-06-17Cleanup: remove `r_` prefix for non-return valuesCampbell Barton
2022-06-17Fix T98663: Eevee compilation error cryptomatte shaders.Jeroen Bakker
On MacOS Eevee cyptomatte shaders fails as it doesn't ignore the `attrib_load` parameter. I validated that removind the parameter works on Linux/AMD and MacOS Intel. It could be that there are other platforms that require the dummy parameter. If this should use a forward declaration and implement an emoty function in the cryptomatte vertex shader.
2022-06-17Cleanup: spelling in commentsCampbell Barton
2022-06-17Cleanup: unused variable warningCampbell Barton
2022-06-16Geometry Nodes: add 'Intersecting Edges' output for boolean nodePhilipp Oeser
This patch adds a 'Intersecting Edges' output with a boolean selection that only gives you the new edges on intersections. Will work on a couple of examples next, this should make some interesting effects possible (including getting us closer to the "bevel- after-boolean-usecase") To achieve this, a Vector is passed to `direct_mesh_boolean` when the iMesh is still available (and intersecting edges appended), then from those edge indices a selection will be stored as attribute. Differential Revision: https://developer.blender.org/D15151
2022-06-16UI: Add file browser operator to edit directory fieldDamien Picard
This allows using a shortcut from the file browser to edit the directory path. The shortcut Ctrl + L is quite standard and used in multiple GNU/Linux desktop desktop environments, Windows, as well as most web browsers. Safari on macOS uses Cmd + L. Reviewed by: Jacques Lucke, Julian Eisel Differential Revision: https://developer.blender.org/D15196
2022-06-16Cleanup: Use const in File Browser filtering operatorJulian Eisel
2022-06-16UI: Add initial "grid view"Julian Eisel
Part of T98560. See https://wiki.blender.org/wiki/Source/Interface/Views Adds all the basic functionality needed for grid views. They display items in a grid of rows and columns, typically with a preview image and a label underneath. Think of the main region in the Asset Browser. Current features: - Active item - Notifier listening (also added this to the tree view) - Performance: Skip adding buttons that are not scrolled into view (solves performance problems for big asset libraries, for example). - Custom item size - Preview items (items that draw a preview with a label underneath) - Margins between items scale so the entire region width is filled with column, rather than leaving a big empty block at the right if there's not enough space for another column (like the File and current Asset Browser does it). - "Data-View Item" theme colors. Not shown in the UI yet. No user visible changes expected since the grid views aren't used for anything yet. This was developed as part of a rewrite of the Asset Browser UI (`asset-browser-grid-view` branch), see T95653. There's no reason to keep this part in a branch, continuing development in master makes things easier. Grid and tree views have a lot of very similar code, so I'm planning to unify them to a degree. I kept things separate for the start to first find out how much and what exactly makes sense to override.
2022-06-16Cleanup: Spelling in commentSergey Sharybin
2022-06-16Cleanup: use proper variable nameSergey Sharybin
The `SpaceClip *sc` got incorrectly renamed to `SpaceClip *screen` in the ad85989a3f88.