Blender Git Commits

Blender Git "master" branch commits.

Page: 168 / 5574

August 23, 2021, 23:43 (GMT)
Fix T90854: Cycles, normal map fails with applied transformations

Prior to rBb8ecdbcd964a normals were stored both in
DeviceScene.tri_vnormal and the float3 attributes buffer. However, the
normals in `DeviceScene.tri_vnormal` might have be transformed to world
space if the object's transformation was applied, while the data in the
float3 attributes buffer were not. This caused shading issues in cases
where the objects did have transformation applied, as the math expects
the normals to be in object space.

To fix this, convert the normals to object space if necessary before
applying the normal map.

Reviewed By: brecht

Maniphest Tasks: T90854

Differential Revision: https://developer.blender.org/D12294
August 23, 2021, 23:21 (GMT)
VSE: Add Sequence.parent_meta() python API function

This function can be used to find metastrip parent of nested strip.

Reviewed By: ISS

Differential Revision: https://developer.blender.org/D11985
August 23, 2021, 23:10 (GMT)
VSE: Cleanup speed effect math

Simplify logic of speed effect frame calculation by using discrete math
where possible. Only `SEQ_SPEED_MULTIPLY` mode with animation requires
frame map to be built. Frame map building was simplified by removing
unused branches.

Functional change: Animating strip in negative range will reverse playback.
I assume this was limitation of previous system, where each frame map item
was limited to be within correct frame range. Now frame map can contain
values that point beyond usable range and they are limited by
`seq_speed_effect_target_frame_get`. This way it is possible to control
playback rate in both directions.

Mostly fixes T89120 apart from offset handling.

Reviewed By: mano-wii

Differential Revision: https://developer.blender.org/D11939
August 23, 2021, 22:58 (GMT)
Fix T88237: Prefetch crash on rendering scene strip

Prefetch needs to avoid rendering scene strips, because

- Rendering in background needs own dependency graph, which fails to
initialize from evaluated data.
- This locks UI and can make it unresponsive for long time periods.

In T88237 prefetch failed to avoid scene strip, because of effect strip
was attached to scene strip.

Ensure, that no effect that is attached to scene strip either directly
or indirectly would be rendered.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D11247
August 23, 2021, 22:52 (GMT)
Fix T90407: Split fails on transition strips

When splitting strips, first they are duplicated and then offsets
adjusted. This can fail on cross transitions, because some strips don't
overlap with split frame.

All strips, that relate to each other must be duplicated to ensure
correct relations after splitting, so solution is to delete non
overlapping strips from left or right side respectively.

Since cross transition don't have to overlap with source strips,
splitting such strips would lead to effect being deleted, which
could cause crash when iterating over strips in python. Therefore
splitting of such strips is now forbidden and will generate error.

Splitting of transition will also generate error solely because such
operation is illogical.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D12121
August 23, 2021, 22:46 (GMT)
Fix T90646: VSE hangs when strips overlap

When all strips are selected and overlap is caused, this causes VSE to
hang in infinite loop, because such situation should never happen.

To prevent infinite loop, ensure, that strip overlap is not tested
against single overlapping strip itself.

Prevent overlap that can not be handled because of issue described above
by moving overlapping strip between channels.

Reviewed By: campbellbarton

Differential Revision: D12209
August 23, 2021, 22:37 (GMT)
Fix T90467: Initialize CurveMapping on demand

`CurveMapping.evaluate` function expectes `CurveMapping` to be
initialized, while this wasn't documented.

I don't see any reason for not initializing `CurveMapping` on demand.
Initialization was added in rBf16047c2df1e8be56bf76524f9eb1fa5ecde2176

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D12145
August 23, 2021, 19:20 (GMT)
Using relative threshold for floats in mesh comparison

Changes the threshold comparison from absolute to relative.
Removes threshold for MLoopCol comparison.

Adds a compare relative threshold function.

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D12273
August 23, 2021, 16:44 (GMT)
Cleanup: move the buffer list to 'MeshBufferCache'

The cache is used to fill the buffer list.
August 23, 2021, 16:43 (GMT)
Cleanup: Isolate the batch list struct into a struct called MeshBatchList

This allows for a simplification of macros and combines with
`MeshBufferList`.
August 23, 2021, 16:43 (GMT)
Cleanup: rename 'MeshBufferExtractionCache' to 'MeshBufferCache'

Matches the existing `MeshBatchCache`.
August 23, 2021, 16:41 (GMT)
Cleanup: rename 'MeshBufferCache' to 'MeshBufferList'

`MeshBufferList` is more specific and can avoid confusion with
`MeshBufferExtractionCache`.
August 23, 2021, 16:37 (GMT)
Cleanup: Move 'tris_per_mat' member out of 'MeshBufferCache'

`MeshBufferCache` is a struct representing a list of buffers.

As such, `GPUIndexBuf **tris_per_mat` is out of place as it does not
represent one of the buffers in the list.

In fact this member should be close to `GPUBatch **surface_per_mat` as
they are related.

The code for dependencies between buffer and batch had to be reworked
as it relies on the member's position.

Differential Revision: https://developer.blender.org/D12227
August 23, 2021, 15:09 (GMT)
Compositor: Full frame matte nodes

Adds full frame implementation to Channel Key, Chroma Key, Color Key,
Color Spill, Cryptomatte, Difference Key, Distance Key, Keying,
Keying Screen and Luminance Key nodes. The other nodes
in "Matte" sub-menu are submitted separately.

No functional changes.

Part of T88150.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D12220
August 23, 2021, 15:09 (GMT)
Compositor: Fix incorrect copying of uchar buffers

Row stride and the area x coordinate offset were not taken into
account.
August 23, 2021, 15:09 (GMT)
Compositor: Fix crash enabling buffer groups on full frame

Full frame doesn't support this option as all operations are already
buffered. UI option will be removed in the future.
August 23, 2021, 15:09 (GMT)
Fix T89998: Cryptomatte node output values doubled with Multi-View

When using a Cryptomatte node and selecting 2 views in Multi-View,
its output values are doubled. When selecting 3 tripled and so on.
This causes incorrect compositing results for all the views.

The node creates an input operation for each rendered cryptomatte
pass. In Multi-View, passes are rendered for each view but compositor
is executed per view and should only create operations for those
corresponding to the current view being executed. Otherwise duplicated
operations add up later in cryptomatte operation.

Reviewed By: jbakker

Maniphest Tasks: T89998

Differential Revision: https://developer.blender.org/D12216
August 23, 2021, 15:08 (GMT)
Compositor: Full frame Bokeh Blur and Blur nodes

Adds full frame implementation to these nodes operations.

When enabling "extend bounds" node option, tiled implementation
result is slightly different because it's using `TranslateOperation`
with bilinear sampling for centering.
Full frame always uses nearest to don't lose image quality.
It has the disadvantage of causing image jiggling on backdrop
when switching size values as it's not pixel perfect.
This is fixed by rounding to even.

No functional changes.

Part of T88150.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D12167
August 23, 2021, 15:07 (GMT)
Compositor: Full frame distort nodes

Adds full frame implementation to "Displace", "Crop", "Flip",
"Plane Track Deform", "Corner Pin", "Movie Distortion",
"Lens Distortion" and "Map UV" nodes.

The other nodes in "Distort" sub-menu are implemented
separately in other commits.

No functional changes.

Part of T88150.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D12166
August 23, 2021, 14:36 (GMT)
Compositor: Add sampling methods for full frame

Current sampling methods have off by one issues on full frame:
- Bilinear sampling do not fully sample bottom and left image border,
creating edges.
- Single elem buffers are not sampled at all when they should be
at least on the borders to smooth edges.
- EWA filtering is partially implemented on `ReadBufferOperation`, it
needs to be moved to `MemoryBuffer` on full frame.

In order to not affect tiled implementation, this commit creates
specific sampling methods for full frame needs.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D12164
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021