October 19, 2021, 20:27 (GMT) |
Geometry Nodes: Replace String node This commit adds a node that can be used to find and replace strings inside of the input string. One initial use case is to have an easier way to add line breaks to strings to the string to curves node. Differential Revision: https://developer.blender.org/D12721 |
Revision 85c8dd6 by Hans Goudey October 19, 2021, 19:04 (GMT) |
Fix: Display color sockets without labels correctly Don't build a manual property split layout when the label for the socket is hidden. |
Revision fccc530 by Julian Eisel October 19, 2021, 16:54 (GMT) |
Fix asset catalog operators disabled without experimental feature flag If the Extended Asset Browser experimental feature was disabled, the asset catalog operators wouldn't work. This wasn't intentional, catalogs aren't considered experimental. |
Revision 67dbb42 by Charlie Jolly October 19, 2021, 16:30 (GMT) |
Geometry Nodes: Add Wave texture node Port shader wave texture node Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D12733 |
Revision 56bf34a by Charlie Jolly October 19, 2021, 16:18 (GMT) |
Geometry Nodes: Add Magic texture node Port shader node magic texture Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D12732 |
Revision 823996b by Sybren A. Stüvel October 19, 2021, 16:07 (GMT) |
Asset Browser: Improved workflow for asset catalog saving No longer save asset catalogs on blendfile save. Instead: - extend the confirmation prompt for unsaved changes to show unsaved catalogs. - In the confirmation prompt, make catalog saving explicit & optional, just like we do it for external images. {F10881736} - In the Asset Browser catalog tree, show an operator icon to save the catalogs to disk. It's grayed out if there are no changes to save, or if the .blend wasn't saved yet (required to know where to save the catalog definitions to). {F10881743} Much of the work was done by @Severin and reviewed by me, then we swapped roles. Reviewed By: Severin Differential Revision: https://developer.blender.org/D12796 |
Revision b6c3b41 by Sybren A. Stüvel October 19, 2021, 16:05 (GMT) |
Cleanup: use nullptr in C++ |
Revision a3d4ed2 by Bastien Montagne October 19, 2021, 16:01 (GMT) |
Fix liblink tests after recent commit. NOTE: This needs new tests, no time now, will do tomorrow. |
Revision 7a61916 by Hans Goudey October 19, 2021, 15:42 (GMT) |
Fix T92345: Crash with only pointcloud in attribute transfer node The distances array is only allocated if there are mesh distances to compare to, so it is empty when there is only a point cloud. |
Revision a7ade57 by Sybren A. Stüvel October 19, 2021, 14:55 (GMT) |
Asset Catalogs: allow creating catalog in unsaved blend file Allow creating a new asset catalog in a yet-to-be-saved blend file. The problem was caused by `AssetLibrary` not having an `AssetCatalogService` right after creation; only after loading data from disk was this instance created. It's now always there. |
Revision 79a88b5 by Sybren A. Stüvel October 19, 2021, 14:47 (GMT) |
Fix compilation error about undefined `PATH_MAX` |
Revision 57f1379 by Philipp Oeser October 19, 2021, 14:42 (GMT) |
Fix T92265: Outliner crash clicking override warning buttons `outliner_draw_overrides_buts` uses `uiDefIconBlockBut` but doing so without defining a function callback to actually build a block. This will make the button go down the route of spawning a popup, but without a menu. Crash then happens later accesing the (missing) menu in `ui_handler_region_menu`. So while we could dive into making this usage failsafe (carefully checking `BUTTON_STATE_MENU_OPEN` in combination with `uiHandleButtonData->menu` being NULL all over), but it seems much more straightforward to just use `uiDefIconBut` (instead of `uiDefIconBlockBut`) since this Override Warning buttons seem not to intend spawning a menu anyways? Maniphest Tasks: T92265 Differential Revision: https://developer.blender.org/D12917 |
Revision b3b7319 by Bastien Montagne October 19, 2021, 14:26 (GMT) |
Fix T92224: Refactor of append code unexpectedly changed behavior with 'localize all' off. In 2.93 and before, when appending wityh 'localize all' off, all linked IDs (including indirectly linked ones) from initial library would be made local. In 3.0, after refactor from rB3be5ce4aad5e, only directly linked IDs (i.e. user-selected IDs) would be made local. This change was not intentional (result of confusing code and naming in previous implementation), and old behavior is used in some workflows to control which data is kept linked and which data is made local. This commit revert to 2.93 behavior. NOTE: there is still an (extreme) corner case where behavior is different between 2.93 and 3.0: If you append (at the same time) object A from LibA.blend, and object B from LibB.blend, and object B uses somehow a material from LibA.blend: * In 2.93, that material would have been made local (because it belonged to one of the 'initial' libraries, even though not the initial lib of object B). * In 3.0, this material will remain linked, since from object B persective it comes from a different library. |
Revision 1c5722b by Sybren A. Stüvel October 19, 2021, 14:17 (GMT) |
Fix T91197: marking assets from Python may crash When using `asset_mark` function from a Python script and afterwards updating the preview image, a crash might happen. The preview image is generated by the `asset_mark` function. This may happen on a background thread, introducing potential synchronization issues. This patch fixes this by separating the preview generation `ID.asset_generate_preview` from the mark as asset `ID.asset_mark`. Note: this separation of "mark as asset" and "generate preview" also applies to the `ED_asset_mark_id()` C function; if it is desired to have previews rendered after marking as asset, a call to `ED_asset_generate_preview()` is now also required. Reviewed By: sybren Maniphest Tasks: T91197 Differential Revision: https://developer.blender.org/D12922 |
Revision 0a6cf3e by Hans Goudey October 19, 2021, 14:01 (GMT) |
Geometry Nodes: Fields version of the raycast node This patch includes an updated version of the raycast node that uses fields instead of attributes for inputs instead of outputs. This makes the node's UI much clearer. It should be faster too, since the evaluation system for fields provides multi-threading. The source position replaces the input geometry (since this node is evaluated in the context of a geometry like the other field nodes). Thanks to @guitargeek for an initial version of this patch. Differential Revision: https://developer.blender.org/D12638 |
Revision a7075a3 by Sybren A. Stüvel October 19, 2021, 13:53 (GMT) |
BKE_callback_remove: prevent crash on Blender exit `BKE_callback_remove` now checks whether the callback actually is known, before trying to remove it. `BKE_blender_atexit()` runs after `BKE_callback_global_finalize()`. When an at-exit callback tried to unregister its BKE callbacks, these would already be unregistered, causing a crash of Blender when exiting, |
Revision 9a1d75e by Sybren A. Stüvel October 19, 2021, 13:53 (GMT) |
Asset Library Service: make insensitive to trailing slashes Make `AssetLibraryService::get_asset_library_on_disk(path)` insensitive to trailing slashes; i.e. `get_asset_library_on_disk("/path")` and `get_asset_library_on_disk("/path/�)` will now return the same `AssetLibrary*`. |
Revision 219058c by Hans Goudey October 19, 2021, 13:39 (GMT) |
Geometry Nodes: Remove implicit realizing and conversion This commit removes the implicit conversion from points to a mesh that used to happen before the next modifier. It also removes the implicit realizing of instances that happened before another modifier. Now we have specific nodes for both of these operations, the implicit conversions make less sense, and implicit instance realizing has already been removed in other nodes. This adds another geometry nodes modifier before modifiers that would have realized instances implicitly before. Currently adding another data-block during versioning after linking means that an assert needs to be changed. That should be made unnecessary by T92333. Differential Revision: https://developer.blender.org/D12722 |
Revision cd36f59 by Jacques Lucke October 19, 2021, 13:30 (GMT) |
Cleanup: trailing whitespace |
Revision fd77a28 by Brecht Van Lommel October 19, 2021, 13:11 (GMT) |
Cycles: bake transparent shadows for hair These transparent shadows can be expansive to evaluate. Especially on the GPU they can lead to poor occupancy when only some pixels require many kernel launches to trace and evaluate many layers of transparency. Baked transparency allows tracing a single ray in many cases by accumulating the throughput directly in the intersection program without recording hits or evaluating shaders. Transparency is baked at curve vertices and interpolated, for most shaders this will look practically the same as actual shader evaluation. Fixes T91428, performance regression with spring demo file due to transparent hair, and makes it render significantly faster than Blender 2.93. Differential Revision: https://developer.blender.org/D12880 |
|