Revision bffa168 by Kévin Dietrich 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 |
Revision 929d759 by Richard Antalik 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 |
Revision a57ba41 by Richard Antalik 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 |
Revision 709ce44 by Richard Antalik 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 |
Revision 24a3446 by Richard Antalik 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 |
Revision a0c8ee0 by Richard Antalik 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 |
Revision 875c2ea by Himanshi Kalra 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 |
Revision be1891e by Germano Cavalcante August 23, 2021, 16:44 (GMT) |
Cleanup: move the buffer list to 'MeshBufferCache' The cache is used to fill the buffer list. |
Revision cbe4036 by Germano Cavalcante 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`. |
Revision eb0c50a by Germano Cavalcante August 23, 2021, 16:43 (GMT) |
Cleanup: rename 'MeshBufferExtractionCache' to 'MeshBufferCache' Matches the existing `MeshBatchCache`. |
Revision 6e51ef9 by Germano Cavalcante August 23, 2021, 16:41 (GMT) |
Cleanup: rename 'MeshBufferCache' to 'MeshBufferList' `MeshBufferList` is more specific and can avoid confusion with `MeshBufferExtractionCache`. |
Revision ebdae75 by Germano Cavalcante 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 |
Revision 153b450 by Manuel Castilla 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 |
Revision 42f89b9 by Manuel Castilla 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. |
Revision 4c6d207 by Manuel Castilla 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. |
Revision 7d17f2a by Manuel Castilla 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 |
Revision daa7c59 by Manuel Castilla 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 |
Revision 344aca3 by Manuel Castilla 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 |
Revision a95e56b by Manuel Castilla 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 |
|