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
2022-11-03Blender 3.5 Alpha: Start of new release cycle.Thomas Dinges
2022-11-03Mesh: Parallelize remesh reprojectionsErik Abrahamsson
In high poly meshes the reprojections after remesh can become slow. This parallelizes reprojection of face sets, paint mask and vertex paint. It also adds flags to disable dependency graph updates on setting remesh options to remove UI lag. Profiling of remeshing a 3.4M poly mesh (in sculpt mode): Before: 19.6s After: 8.7s Differential Revision: https://developer.blender.org/D15638
2022-11-02Refactor: Rename Object->imat to Object->world_to_objectSergey Sharybin
The goal is to improve clarity and readability, without introducing big design changes. Follows the recent obmat to object_to_world refactor: the similar naming is used, and it is a run-time only rename, meaning, there is no affect on .blend files. This patch does not touch the redundant inversions. Those can be removed in almost (if not all) cases, but it would be the best to do it as a separate change. Differential Revision: https://developer.blender.org/D16367
2022-11-02Fix: Crash adding rest positions to empty meshHans Goudey
The position attribute might not exist when the mesh is empty, which may be another problem, but there is no need to count on it here.
2022-11-02Nodes: Reuse input sockets when creating new node groupsCsaba Boncsér
**Problem** Currently multiple input sockets are created when a new node group is made from selected nodes. Some of these are linked from the same source. It is not convenient to sort out and remove multiple input sockets that represent the same input. These inputs usually have meaningless names like 'value', 'x', etc. **Solution** Create common input sockets for each link starting from the same input. Move links inside the new group's node tree and reroute it to connect the common input socket to the original nodes. This is done by building up a mapping between the incoming link sources to the input interfaces created for them. The input interfaces are reused by the rest of the links having the same source. This patch also changes the way the input sockets get their names. Output socket names of the group nodes usually are specific and are given consciously. Use the output socket names from group nodes instead of the inputs where the links point to. Differential Revision: https://developer.blender.org/D15802
2022-11-02Geometry Nodes: Add index and value inputs to sample curve nodeHans Goudey
As described in T92474 and T91650, this patch adds two features to the sample curve node. First is an index input, to allow choosing the curve to sample for each point. Second is a custom field input, which is evaluated on the control points of the curve and then sampled like the other outputs. There is an "All Curves" option for the old behavior which takes the length of all curves into account. For invalid curve indices, the node outputs zeros (default values). Invalid lengths and factors are clamped. There have been various discussions about splitting the node up more, but this is an intuitive combination of options and will work well enough for current use cases. The node could still be generalized more in the future. Keep in mind that the source field is evaluated on curve control points, not the evaluated points used for sampling. This is necessary so that fields like "Index" work as expected. Differential Revision: https://developer.blender.org/D16147
2022-11-02Cleanup: spelling in commentsCampbell Barton
2022-11-01UI: Support C defined menu types to listen to notifiersJulian Eisel
Needed to dynamically load assets as menu items, see cf985180551d and 99e5024e97f1. The next commit will add the listener for the node add menu.
2022-11-01Nodes: Add node group assets in add menuHans Goudey
This patch builds on the work from bdb57541475f to add node group assets directly in the node editor add menu. Assets are added after separators to distinguish them, but otherwise they look like any other node. The catalog trees from all configured libraries are used to build the menu hierarchy. Only catalogs with matching asset types are used though. There are a few limitations of this initial version. For now this only supports geometry nodes. Support for other built-in node systems just requires some refactoring of the corresponding add menu though. Lazy loading will be added in a followup commit. For now there is a label the first time the menu is opened. Like the search menu integration, re-saving asset library files in 3.4 is required, if it hasn't been done already. Implementation wise, there is a some ugly code here. A lot of that is because the asset system isn't complete. The RNA API doesn't work well yet, and the system isn't built to interact with multiple libraries at once. It's also ugly because of the way we combine automatic menu generation with builtin menus. As noted in a code comment, these two systems could be merged completely so that the menus for builtin nodes are also generated in the same way. Differential Revision: https://developer.blender.org/D16135
2022-11-01Cleanup: Use bool for binary (true-ish/false-ish) return valueJulian Eisel
2022-11-01Refactor: Rename Object->obmat to Object->object_to_worldSergey Sharybin
Motivation is to disambiguate on the naming level what the matrix actually means. It is very easy to understand the meaning backwards, especially since in Python the name goes the opposite way (it is called `world_matrix` in the Python API). It is important to disambiguate the naming without making developers to look into the comment in the header file (which is also not super clear either). Additionally, more clear naming facilitates the unit verification (or, in this case, space validation) when reading an expression. This patch calls the matrix `object_to_world` which makes it clear from the local code what is it exactly going on. This is only done on DNA level, and a lot of local variables still follow the old naming. A DNA rename is setup in a way that there is no change on the file level, so there should be no regressions at all. The possibility is to add `_matrix` or `_mat` suffix to the name to make it explicit that it is a matrix. Although, not sure if it really helps the readability, or is it something redundant. Differential Revision: https://developer.blender.org/D16328
2022-11-01Cleanup: spelling in commentsCampbell Barton
2022-11-01Cleanup: doxy comment formattingCampbell Barton
2022-10-31Nodes: Improve socket node lookup performanceHans Goudey
Use the newly added node topology cache to find the node that contains a socket rather than looping through all nodes every time. The change improves performance of drawing a some large node trees by 2-3x.
2022-10-30Fix T102163: GPencil:Set start point Operator make stroke deletedAntonio Vazquez
There were two problems: * The stroke was deleted if the last point was selected. Now the stroke is flipped because is faster. * If the second point was selected, the first point was removed because the internal api, removed one point strokes by default. This was done becaus ethe tools that used this API did not need one point strokes as result. Now this optional and keep one point strokes.
2022-10-30Fix potential buffer overflow with BLI_path_slash_ensure useCampbell Barton
BLI_path_slash_ensure was appending to fixed sized buffers without a size check.
2022-10-29NLA: Push down Action names the Track after the ActionSybren A. Stüvel
When pushing down an Action to a new NLA track, the track is now named after the Action.
2022-10-29Cleanup: use STREQ macroCampbell Barton
2022-10-26Fix T101925: sculpt color painting not updating with Cycles viewport renderBrecht Van Lommel
* External engines do not use the PBVH and need slower depsgraph updates. * Final depsgraph tag after stroke finishes was missing for sculpt color painting, caused missing updates for other viewports as well as any modifiers or nodes on other objects using the colors.
2022-10-26Fix slow continuous depsgraph updates in sculpt paint mode in some casesBrecht Van Lommel
Updates for cursor could cause the paint data to be continuously refreshed, which is pretty cheap by itself, but not when it starts tagging the depsgraph. The paint slot refresh code ideally should not be doing depsgraph tags at all, but checking if there were changes at least avoids continuous updates.
2022-10-24Fix T100571: Subdivision disabled with Orbit Around SelectionGermano Cavalcante
The bug has existed since crasy space was implemented. rBbf8a26b7453d made the error even worse as the `modifiers_disable_subsurf_temporary` function, which works like a toggle, did not temporarily re-enable subsurf. The main problem is that the derived mesh is modified but not marked as dirty at the end.
2022-10-24Fix T101210: invalid internal node links lead to crashJacques Lucke
Internal links are run-time/derived data. Therefore it is not necessary to load them from .blend files where invalid internal links may be stored. They will be regenerated after a node tree is loaded anyway.
2022-10-23Fix T101607: Changing Image source inadvertently clears file pathJesse Yurkovich
This could result in wrong behavior depending on the order in which the Image.filepath and Image.source fields are set from within Python for example. Caused by rB72ab6faf5d80
2022-10-22Fix T101329: EXR 'JPG Preview' doesn't use color space anymoreLukas Stockner
For the JPG preview, the only thing that was changed in the image format was the format itself. However, the colorspace code now also checks the bitdepth through BKE_image_format_is_byte, so the depth needs to be explicitly set to 8-bit for the JPG preview output.
2022-10-22Fix T101930: NLA Actions Stash remove doesn't work on overriden linked data.Bastien Montagne
Code adding stash track was clearing out track flags, instead of editing them as it should have... Note that there are a lot of other weaknesses in action stash code (like relying on the (translated!!!!!!) name of the track to know whether it's a stah or not).
2022-10-22Video rendering: FFMpeg AV1 codec encoding supportStephen Seo
Previously, the Blender video renderer did not have support for encoding video to AV1 (not to be confused with the container AVI). The proposed solution is to leverage the existing FFMpeg renderer to encode to AV1. Note that avcodec_find_encoder(AV_CODEC_ID_AV1) usually returns "libaom-av1" which is the "reference implementation" for AV1 encoding (the default for FFMpeg, and is slow). "libsvtav1" is faster and preferred so there is extra handling when fetching the AV1 codec for encoding such that "libsvtav1" is used when possible. This commit should only affect the options available for video rendering, which includes the additional AV1 codec to choose from, and setting "-crf". Also note that the current release of FFMpeg for ArchLinux does not support "-crf" for "libsvtav1", but the equivalent option "-qp" is supported and used as a fallback when "libsvtav1" is used (as mentioned here: https://trac.ffmpeg.org/wiki/Encode/AV1#SVT-AV1 ). (Actually, both "-crf" and "-qp" is specified with the same value in the code. When a release of FFMpeg obtains support for "-crf" for "libsvtav1" is released, the code shouldn't be needed to change.) The usage of the AV1 codec should be very similar to the usage of the H264 codec, but is limited to the "mp4" and "mkv" containers. This patch pertains to the "VFX & Video" module, as its main purpose is to supplement the Video Sequencer tool with the additional AV1 codec for encoded video output. Differential Revision: https://developer.blender.org/D14920 Reviewed By: sergey , ISS, zeddb
2022-10-20Lib reload/relocate: Improve performances.Bastien Montagne
Reduce amounts of viewlayer updates during remapping while relocating libraries. Gives some improvements on relocating process, depending on complexity of existing scene and reloaded libraries, whether there is liboverrides to resync, etc., can give up to 10% speedup.
2022-10-20Fix (studio-reported) issue with overrides on library relocating.Bastien Montagne
Liboverrides that were using a missing linked reference ID would not get their 'MISSING' tag properly cleared afer relocating, in case their linked reference is no more missing. Reported by Andy (@eyecandy) from Blender studio.
2022-10-19Fix T101926: Curves: Remove type-specific attributes when deletingHans Goudey
Remove NURBS or Bezier specific attributes after removing points or curves. In theory we could avoid copying those attributes in the first place, but that doesn't seem worth the extra complexity here, since we don't necessarily know the result curve type counts before copying attributes.
2022-10-19Fix T101622: Sequencer channels not updating while panning viewYann Lanthony
`V2D_VIEWSYNC_AREA_VERTICAL` flag was mistakenly set to the sequencer toolbar region instead of the channels region. Reviewed By: ISS Differential Revision: https://developer.blender.org/D16155
2022-10-19Fix: Geometry Nodes: Memory leak when deleting instancesHans Goudey
The instance attributes assignment operators were broken in multiple ways: there wasn't a move constructor (probably causing performance issues), and the destination attributes weren't freed before they were replaced.
2022-10-19Geometry Nodes: Use common utility for copying attribute dataHans Goudey
Attribute copying often uses identical logic for copying selected elements or copying with an index map. Instead of reimplementing this in each file, use the common implementation in the array_utils namespace. This makes the commonality more obvious, gives improved performance (this implementation is multithreaded), reduces binary size (I observed a 173KB reduction), and probably reduces compile time.
2022-10-19Fix (devs-reported) mistake in batch delete code in recent change.Bastien Montagne
Mistake in own rB358155a8da60, change ended up discarding the case where we need to also delete IDs using a tagged-to-be-deleted ID in a 'never NULL' way. Typical example: Whene deleting a Mesh ID, one also needs to delete all the Objects using that mesh, since obdata pointer is of type 'never NULL'. Note that luckily, this fix does not affect the performance improvements from rB358155a8da60. Noted by Brecht and Clement because of failing unittests, shame on me.
2022-10-19Fix T101922: transforming surface points misses redrawPhilipp Oeser
Oversight in rBf8b1483566cc which resulted in fonts/surfaces not having their draw caches being tagged dirty. Not only OB_CURVES_LEGACY have their object data of type ID_CU_LEGACY, but also OB_SURF/OB_FONT objects. Maniphest Tasks: T101922 Differential Revision: https://developer.blender.org/D16298
2022-10-19Fix T101888: Curves editmode: modifiers "Display in Edit mode" no effectPhilipp Oeser
Add the eModifierMode_Editmode to the required modes for curves modifier evaluation. Only this way the modifier can be skipped in evaluation. Maniphest Tasks: T101888 Differential Revision: https://developer.blender.org/D16280
2022-10-19Fix (unreported) error messages about invalid ID usercount when ↵Bastien Montagne
batch-deleting IDs. Batch-delete by-passes a lot of ID usages handling in to-be-deleted IDs, so usercount of deleted IDs needs to be manually reset to avoid the annoying error messages in the console.
2022-10-19Make batch ID deletion 100 times faster.Bastien Montagne
Simplify and optimize remapping handling in bacth ID deletion, by moving it outside of the initial loop gathering all IDs to be deleted, and and by using batch remapping code. Speedup can be over 100 times faster in complex production scenes using thousands of IDs, when e.g. deleting a whole library. Examples before/after times on my machine (deleting two different libraries): lib1: 5.55 sec/0.03 sec lib2: 13.60 sec/0.13 sec Found while investigating T101903.
2022-10-19Fix T101903: Crash when deleting library in some cases.Bastien Montagne
Remapping in batch deletion could end up calling viewlayer resync code on partially invalid BMain (some IDs still in Main using IDs removed from Main). Think this code can actually be further optimized, but this fix should be safe enough for 3.3 (and potentially 2.93). Thanks to Jeroen (@jbakker) for the initial investigation.
2022-10-19Sculpt curves: Fix BKE_paint_object_mode_from_paintmodePhilipp Oeser
Currently harmless (since atm. it is not possible to trigger this part of the code from curves sculpting), but in a future fix (for T101518), it would be good to use `BKE_paint_init` (and having the correct ob_mode for the brush would be nice). Differential Revision: https://developer.blender.org/D16286
2022-10-19Cleanup: remove NDOF_BUTTON_NONE from the range of usable buttonsCampbell Barton
This is used to represent unknown state, so there is no need to be able to store it's pressed state.
2022-10-19Cleanup: spelling in commentsCampbell Barton
2022-10-18Fix T101883: Issue applying modifier to mesh with shape keysHans Goudey
Caused by 21f2bacad977d3fd83d which misunderstood the logic handling shape keys in this function. The shape key on the original mesh in the main data-base should be cleared if the "no-main" mesh doesn't have any shape key layers and the vertex count has changed. The complexity is necessary because shape keys are stored differently on original and evaluated meshes. Also change to "Warn" because this is expected behavior in some cases, like when applying a geometry nodes modifier that creates a new mesh from scratch.
2022-10-18Fix T101660: crash when trying to propagate string attributes in some nodesJacques Lucke
String attributes are intentionally not fully supported in geometry nodes yet because more design work is necessary to decide how they should behave. For now just disable handling string attributes to avoid crashes.
2022-10-18Cleanup: add missing CPPType for MStringPropertyJacques Lucke
2022-10-18Brush: Wrap mtex/mask_tex around functions.Jeroen Bakker
`Brush` has two attributes for holding texture information (`MTex`). One for color textures (`mtex`) and one for mask textures (`mask_mtex`). Unfortunately sculpt mode due to reasons used `mtex` to store mask textures. Changes like brush asset/paint mode require modes/tools to read the mask/color texture from one place. To start sanatizing this we isolate the attributes in functions. `BKE_brush_color_texture_get` and `BKE_brush_mask_texture_get`. All object paint modes should use these functions.
2022-10-17Weight Paint: relax heuristic to determine when final mesh can be used.Alexander Gavrilov
Checking for polygon and loop data to be referenced is too fragile re changes in geometry node implementations. Instead, compare counts of polygons, face corners and vertices: topology changes are unlikely to keep all three unchanged. Ref D15501
2022-10-17Sculpt: add versioning for Auto-masking cavity factor defaultPablo Vazquez
Also remove automasking_cavity_factor default from RNA for brushes. Data-blocks set their defaults via `DNA_brush_defaults.h` Continuation from previous commit and rBdb40b6 Thanks to Dalai for the help!
2022-10-17Cleanup: compiler warningsBrecht Van Lommel
2022-10-17Fix AssetCatalogTest failure on WIN32Campbell Barton
Recent changes to path handling (most likely [0]) caused AssetCatalogTest.create_catalog_after_loading_file to fail on WIN32. The test relied on the resulting path to be joined with "/" as a path separator. The resulting path used both forward and back-slashes. While these do work for some API's on WIN32, mixing both in a file path isn't expected behavior in most cases, so update the tests to use native slash direction for file-paths. [0]: 9f6a045e23cf4ab132ef78eeaf070bd53d0c509f
2022-10-17Fix T101705: crash when connecting reroute to multi-input socketIliya Katueshenock
Differential Revision: https://developer.blender.org/D16203