Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 330 / 5574

March 26, 2021, 14:51 (GMT)
Cleanup: Replace std::vector With blender::Vector.
March 26, 2021, 14:51 (GMT)
Cleanup: Remove ptr For Owned Children.
March 26, 2021, 14:48 (GMT)
LineArt: Fix unreported material user count error when apply modifier

The number of users was 0 after applying the modifier.
March 26, 2021, 13:44 (GMT)
Geometry-Nodes: Sort the Nodes Categories alphabetically

The exception is still Group and Layout to be consistent with the
other node editors. This could use a separator though.
March 26, 2021, 11:43 (GMT)
FFMPEG: refactor seeking

Split seeking section of `ffmpeg_fetchibuf()` function into multiple
smaller functions.

Conditional statements are moved to own funtions with human readable
names, so code flow is more clear.

To remove one branch of seeking, first frame is now decoded by
scanning, which will do only one iteration. So nothing has technically
changed.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D10638
March 26, 2021, 11:43 (GMT)
FFmpeg: improve threading settings

Generalize threading settings in proxy building and use them for encoding
and decoding in general. Check codec capabilities, prefer FF_THREAD_FRAME
threading over FF_THREAD_SLICE and automatic thread count over setting it
explicitly.

ffmpeg-codecs man page suggests that threads option is global and used by
codecs, that supports this option. Form some tests I have done, it seems that

`av_dict_set_int(&codec_opts, "threads", BLI_system_thread_count(), 0)`

has same effect as

```
pCodecCtx->thread_count = BLI_system_thread_count();
pCodecCtx->thread_type = FF_THREAD_FRAME;
```

Looking at `ff_frame_thread_encoder_init()` code, these cases are not
equivalent. It is probably safer to leave threading setup on libavcodec than
setting up each codec threading individually.

From what I have read all over the internet, frame multithreading should be
faster than slice multithreading. Slice multithreading is mainly used for low
latency streaming.

When running Blender with --debug-ffmpeg it complains about
`pCodecCtx->thread_count = BLI_system_thread_count()` that using thread count
above 16 is not recommended. Using too many threads can negatively affect image
quality, but I am not sure if this is the case for decoding as well - see
https://streaminglearningcenter.com/blogs/ffmpeg-command-threads-how-it-affects-quality-and-performance.html
This is fine for proxies but may be undesirable for final renders.

Number of threads is limited by image size, because of size of motion vectors,
so if it is possible let libavcodec determine optimal thread count.

Performance difference:
Proxy building: None
Playback speed: 2x better on 1920x1080 sample h264 file
Scrubbing: Hard to quantify, but it's much more responsive
Rendering speed: None on 1920x1080 sample h264 file, there is improvement with codecs that do support FF_THREAD_FRAME for encoding like MPNG

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D10791
March 26, 2021, 10:52 (GMT)
Geometry Nodes: Add Attribute Clamp Node

This adds a Clamp node for Geometry Nodes Attributes.

Supports both Min-Max and Range clamp modes.

Float, Vector, Color and Int data types supported.

Reviewed By: HooglyBoogly, simonthommes

Differential Revision: https://developer.blender.org/D10526
March 26, 2021, 10:27 (GMT)
Cleanup: Replaced unneeded branch with assert.
March 26, 2021, 09:50 (GMT)
Fix T86939: Cycles objects bounds not updated when transforming objects

As a rather premature optimization from rBbbe6d4492823, Object bounds
were only computed when either the Object or its Geometry were modified.
Prior to rB42198e9eb03b, this would work, as the Geometry was tagged as
modified if the Object's transform was also modified.

Since this tagging is not done anymore due to side effects, and since at
the time bounds are computed Objects were already processed and tag as
unmodified, the check on the modified status was always false.

For now remove this check, so the bounds are always unconditionally
updated. If this ever becomes a performance problem in large scenes with
motion blur, we will then try to find a way to nicely optimize it.

This would only affect BHV2 as OptiX and Embree handle object bounds
themselves.
March 26, 2021, 09:50 (GMT)
Cleanup: redundant expression
March 26, 2021, 09:46 (GMT)
Fix error when an addon has no `__init__.py`

When an addon has been removed, but its `.pyc` files are still there,
the Python module can still be loaded. However, because `__init__.py` is
missing, it becomes a namespace instead of a module, and its `__file__`
will be set to `None`. As a result, it's impossible to get the mtime
from the file (because there is none).

This should not influence any regularly uninstalled add-on, as that
would just remove the add-on's directory; I ran into the problem when
switching Git branches caused an add-on's Python files to disappear
while keeping the `__pycache__` directory around.
March 26, 2021, 08:13 (GMT)
Cryptomatte: Fix error loading incomplete metadata.

When rendering with cycles at some point the manifest is trimmed. This
leads to incomplete/corrupted metadata. This patch will make sure that
the manifest parser doesn't crash.

This solved the issue when the manifest is trimmed at the start of a
hash. Eg '"Name":"'.
March 26, 2021, 07:38 (GMT)
Cleanup: Fix clang-tidy errors.
March 26, 2021, 06:59 (GMT)
UV: warn when unwrapping fails

Report an error when unwrapping can't solve some UV islands,
note that edge-seams may need to be set.

Address T86936
March 26, 2021, 03:58 (GMT)
Cleanup: use code doxy command for Python snippet
March 26, 2021, 03:55 (GMT)
Cleanup: spelling
March 26, 2021, 03:29 (GMT)
Geometry Nodes: Add Attribute Map Range Node

This commit adds a node with a "Map Range" operation for attributes
just like the non-attribute version of the node. However, unlike the
regular version of the node, it also supports operations on vectors.

Differential Revision: https://developer.blender.org/D10344
March 26, 2021, 02:37 (GMT)
Animation: add BKE_fcurves_calc_keyed_frames utility

This function returns an array of keyed frames with rounding,
to avoid duplicates caused by subtle floating point difference.

Reviewed By: sybren

Ref D10781
March 26, 2021, 02:37 (GMT)
Animation: add BKE_fcurve_pathcache_find API

Support a cache for fast RNA path look-ups for RNA-path + index.

Unlike a regular hash lookup, this supports using a single lookup
for the RNA path which is then used to fill an array of F-curves.

Reviewed By: sybren

Ref D10781
March 26, 2021, 02:37 (GMT)
Animation: action mirror RNA API using pose contents

This adds a new RNA method `Action.flip_with_pose(ob)` to flip the
action channels that control a pose.
The rest-pose is used to properly flip the bones transformation.

This is useful as a way to flip actions used in pose libraries,
so the same action need not be included for each side.

Reviewed By: sybren

Ref D10781
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021