September 27, 2021, 15:12 (GMT) |
Cycles: Rework OptiX visibility flags handling Before the visibility test against the visibility flags was performed in an any-hit program in OptiX (called `__anyhit__kernel_optix_visibility_test`), which was using the `__prim_visibility` array. This is not entirely correct however, since `__prim_visibility` is filled with the merged visibility flags of all objects that reference that primitive, so if one object uses different visibility flags than another object, but they both are instances of the same geometry, they would appear the same way. The reason that the any-hit program was used rather than the OptiX instance visibility mask is that the latter is currently limited to 8 bits only, which is not sufficient to contain all Cycles visibility flags (12 bits). To mostly fix the problem with multiple instances and different visibility flags, I changed things to use the OptiX instance visibility mask for a subset of the Cycles visibility flags (`PATH_RAY_CAMERA` to `PATH_RAY_VOLUME_SCATTER`, which fit into 8 bits) and only fall back to the visibility test any-hit program if that isn't enough (e.g. the ray visibility mask exceeds 8 bits or when using the built-in curves from OptiX, since the any-hit program is then also used to skip the curve endcaps). This may also improve performance in some cases, since by default OptiX can now perform the normal scene intersection trace calls entirely on RT cores without having to jump back to the SM on every hit to execute the any-hit program. Fixes T89801 Differential Revision: https://developer.blender.org/D12604 |
September 27, 2021, 14:36 (GMT) |
Fix two issues with recent new Append code. * ID pointer returned by `wm_file_link_append_datablock_ex` was improperly extracted from `WMLinkAppendDataItem` before append step. * Code deleting linked IDs when their local matching version was re-used did not properly clear `LIB_TAG_DOIT` beforehand. |
September 27, 2021, 14:13 (GMT) |
Merge branch 'master' into asset-greasepencil |
September 27, 2021, 14:11 (GMT) |
Merge branch 'master' into temp-ui-tweaks |
September 27, 2021, 14:09 (GMT) |
Nodes: Change wire color to increase contrast If the theme used by the user did not touch the wire or the wire outline colors this will update them as well. This was supposed to be a part of a bigger UI theme change for 3.0. But it was expedited because of the recent change in line thickness for the noodles (2bd02052157). Theme change by Pablo Vazquez. Differential Revision: https://developer.blender.org/D12649 |
September 27, 2021, 14:03 (GMT) |
BLI Path: add function `BLI_path_contains()` Add function `BLI_path_contains(container, containee)` that returns true if and only `container` contains `containee`. Paths are normalised and converted to native path separators before comparing. Relative paths are *not* made absolute, to simplify the function call; if this is necessary the caller has to do this conversion first. |
September 27, 2021, 14:03 (GMT) |
BKE Preferences: find asset library containing a path Add `BKE_preferences_asset_library_containing_path(&U, some_path)` that finds the asset library that contains the given path. This is a simple linear search, returning the first asset library that matches. There is no smartness when it comes to nested asset libraries (like returning the library with the best-matching path), although this could be a useful feature to add later. |
September 27, 2021, 14:03 (GMT) |
Asset Catalogs: write catalogs to disk when saving the blend file The Asset Catalog Definition File is now saved whenever the blend file is saved. The location of the CDF depends on where the blend file is saved, and whether previously a CDF was already loaded, according to the following rules. The first matching rule wins: 1. Already loaded a CDF from disk? -> Always write to that file. 2. The directory containing the blend file has a `blender_assets.cats.txt` file? -> Merge with & write to that file. 3. The directory containing the blend file is part of an asset library, as per the user's preferences? -> Merge with & write to `${ASSET_LIBRARY_ROOT}/blender_assets.cats.txt` 4. Create a new file `blender_assets.cats.txt` next to the blend file. |
September 27, 2021, 13:39 (GMT) |
Geometry Nodes: support creating new attributes in modifier This patch allows passing a field to the modifier as output. In the modifier, the user can choose an attribute name. The attribute will be filled with values computed by the field. This only works for realized mesh/curve/point data. As mentioned in T91376, the output domain is selected in the node group itself. We might want to add this functionality to the modifier later as well, but not now. Differential Revision: https://developer.blender.org/D12644 |
September 27, 2021, 13:38 (GMT) |
Merge branch 'master' into temp-asset-browser-catalogs-ui |
September 27, 2021, 13:33 (GMT) |
RNA: Fix bad usages of `scene` pointer in Update callbacks. Scene passed to the update callback is the active scene it //may// not be that actual ID owner of the affected data (although in practice it should always be currently). |
September 27, 2021, 13:33 (GMT) |
RNA: Make is clear that `Scene` parameter of `update` callback may be NULL. There are cases where there is no way to ensure we do have/know about an active scene. Further more, this should not be required to perform 'real' updates on data, only to perform additional special handling in current scene (mostly related to editing tools, UI, etc.). This pointer is actually almost never used in practice, and half of its current usages are fairly close to abuse of the system (like calls to `ED_gpencil_tag_scene_gpencil` or `BKE_rigidbody_cache_reset`). This commit ensures that the few places using this 'active scene' pointer are safely handling the `NULL` case, and clearly document the fact that a NULL scene pointer is valid. |
September 27, 2021, 13:33 (GMT) |
Fix T90570: Constraint validity not updated with library overrides. For some reason was assuming setting a property in RNA would call its update callback if any, but this actually needs to be done separately. So add this call to `rna_property_override_operation_apply`. |
September 27, 2021, 13:24 (GMT) |
Cycles: print name of kernels on errors in CUDA queue, for debugging |
September 27, 2021, 13:10 (GMT) |
Geometry Nodes: make field links thinner than other links This makes it easier to spot which links contain fields and which contain data. Actually, the patch makes all other links a bit thicker. However, with soon-to-be-implemented theme changes, the perceived thickness will be the same as before. This is part of T91563. Differential Revision: https://developer.blender.org/D12646 |
September 27, 2021, 12:58 (GMT) |
Increase VSE strip channels limit from 32 to 128 The original limit dates back from 2002 when Blender went open source. After that many years some productions (e.g., Sprite Fright) are already experiencing limitations for complex edits. The future plans is to support an initial shorter (2?) number of channels with support to "unlimited" channels. Finally, I'm bumping the minimum file requirement since files with more than 32 channels won't work well in old Blender versions. In a future commit I will implement a sanitization so that we only read (and write) 128 channels. Making sure future changes of this number won't corrupt Blender. Differential Revision: https://developer.blender.org/D12645 |
September 27, 2021, 12:41 (GMT) |
VSE: Clamp resulting frame in multiply mode The clamp added will ensure immediate speed direction change on changing to/from positive/negative speed factor when using the Speed effect strip's Multiply mode. Reviewed By: ISS, sergey Differential Revision: https://developer.blender.org/D12462 |
September 27, 2021, 12:25 (GMT) |
Fix T91714: Cycles direct/indirect clamp distinction not working correctly |
September 27, 2021, 12:19 (GMT) |
Fix viewport roll working wrong Mistake in own {rB69893ef27c91}. Was mixing screen on region coordinates. |
September 27, 2021, 11:04 (GMT) |
Keymap: resolve conflict with use_alt_cursor/Ctrl-LMB to add/extrude While the option allows tools be be activated on press instead of tweak, this meant box-select was catching Ctrl-LMB which is also used for add/extrude in edit mode. Resolve this by always using tweak for selection tools, only supporting activation on press for other tools. Note that this doesn't impact the default configuration. |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021