Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-24VSE: Add Sequence.parent_meta() python API functionFélix
This function can be used to find metastrip parent of nested strip. Reviewed By: ISS Differential Revision: https://developer.blender.org/D11985
2021-08-24VSE: Cleanup speed effect mathRichard Antalik
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
2021-08-24Fix T88237: Prefetch crash on rendering scene stripRichard Antalik
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
2021-08-24Fix T90407: Split fails on transition stripsRichard Antalik
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
2021-08-24Fix T90646: VSE hangs when strips overlapRichard Antalik
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
2021-08-24Fix T90467: Initialize CurveMapping on demandRichard Antalik
`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
2021-08-23Using relative threshold for floats in mesh comparisonHimanshi Kalra
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
2021-08-23Cleanup: move the buffer list to 'MeshBufferCache'Germano Cavalcante
The cache is used to fill the buffer list.
2021-08-23Cleanup: Isolate the batch list struct into a struct called MeshBatchListGermano Cavalcante
This allows for a simplification of macros and combines with `MeshBufferList`.
2021-08-23Cleanup: rename 'MeshBufferExtractionCache' to 'MeshBufferCache'Germano Cavalcante
Matches the existing `MeshBatchCache`.
2021-08-23Cleanup: rename 'MeshBufferCache' to 'MeshBufferList'Germano Cavalcante
`MeshBufferList` is more specific and can avoid confusion with `MeshBufferExtractionCache`.
2021-08-23Cleanup: Move 'tris_per_mat' member out of 'MeshBufferCache'Germano Cavalcante
`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
2021-08-23Fix T89998: Cryptomatte node output values doubled with Multi-ViewManuel Castilla
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
2021-08-23Compositor: Fix crash enabling buffer groups on full frameManuel Castilla
Full frame doesn't support this option as all operations are already buffered. UI option will be removed in the future.
2021-08-23Compositor: Fix incorrect copying of uchar buffersManuel Castilla
Row stride and the area x coordinate offset were not taken into account.
2021-08-23Compositor: Full frame matte nodesManuel Castilla
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
2021-08-23Compositor: Full frame Bokeh Blur and Blur nodesManuel Castilla
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
2021-08-23Compositor: Full frame distort nodesManuel Castilla
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
2021-08-23Compositor: Full frame transform nodesManuel Castilla
Adds full frame implementation to "Rotate", "Transform" and "Stabilize2D" nodes. To avoid sampling twice when concatenating scale and rotate operations, a `TransformOperation` is implemented with all the functionality. The nodes have no functional changes. Part of T88150. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12165
2021-08-23Compositor: Add sampling methods for full frameManuel Castilla
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
2021-08-23Compositor: Full frame convert nodesManuel Castilla
Adds full frame implementation to all nodes in "Converter" sub-menu except "ID Mask" which is implemented separately. No functional changes. Part of T88150. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12095
2021-08-23Fix T88107: rename Convertor to Converter nodes to correct spellingJames Partsafas
Differential Revision: https://developer.blender.org/D11198
2021-08-23Cleanup: rename parameter in transform utilityGermano Cavalcante
`inv_unit_scale` is not descriptive.
2021-08-23Fix T90872: Dopesheet messes up keyframe handlesGermano Cavalcante
Y coordinate was not being constrained. Caused by {rBb0d9e6797fb866e7a58876c7977c98a190070310}
2021-08-23GPencil: Fix memory leak in split & trim functionsYimingWu
Authored by Henrik Dick (weasel) Reviewed By YimingWu (NicksBest), Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D12284
2021-08-23Fix T90772: Image Editor not sampling color from the the currentlyPhilipp Oeser
selected pass Caused by {rBebaa3fcedd23}. Seems this above commit assumed an ImageUser's multi_index is only used for Multiview/Stereo? This is not the case, multi_index also stores the index for layer/pass combination. If we call both BKE_image_multilayer_index and BKE_image_multiview_index (even though this is not appropriate/needed for multilayer images?), we might end up overwriting multi_index again. note: looking at this I was also wondering why we update the ImageUser in image-buffer-aquiring funnctions [and not from the UI, e.g. template_image_layers, but that is a whole different story I guess, see comment in T90772 as well] note2: this could also use a utility function (this is not the only place where this is done), this is fo a cleanup commit. Maniphest Tasks: T90772 Differential Revision: https://developer.blender.org/D12267
2021-08-23Fix T90651: camera reconstruction crash without scene cameraPhilipp Oeser
This was working differently in 2.79, tried tracking this down and it seems this was wrong since the 2.8 beginning in {rB7907dfc40018}. This would not only crash without an active scene camera, but would also result in different tracks from different camera's constraints could not be selected. So select id depends on corresponding camera, remove the dependency on scene camera completely. Maniphest Tasks: T90651 Differential Revision: https://developer.blender.org/D12230
2021-08-23RNA: add length augmented to RNA_string_get_allocCampbell Barton
This was noted as a TODO as it wraps RNA_property_string_get_alloc which takes a length return argument.
2021-08-23Cleanup: rename len to str_len for BLF functionsCampbell Barton
Make it obvious which variable this is the length of.
2021-08-23Cleanup: use BLI_str_utf8 prefixCampbell Barton
Rename: - BLI_str_utf8_invalid_byte (was BLI_utf8_invalid_byte) - BLI_str_utf8_invalid_strip (was BLI_utf8_invalid_strip)
2021-08-23Fix T90847: snap to face of Add Primitive tool not working in edit modeGermano Cavalcante
BVHTree was being created but not balanced. Error introduced in {rBfcc844f8fbd0}.
2021-08-22Fix Windows builds after Zstandard commitsLukas Stockner
2021-08-21Use Zstandard compression for the sequencer cacheLukas Stockner
Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-08-21Add support for Zstandard compression for .blend filesLukas Stockner
Compressing blendfiles can help save a lot of disk space, but the slowdown while loading and saving is a major annoyance. Currently Blender uses Zlib (aka gzip aka Deflate) for compression, but there are now several more modern algorithms that outperform it in every way. In this patch, I decided for Zstandard aka Zstd for several reasons: - It is widely supported, both in other programs and libraries as well as in general-purpose compression utilities on Unix - It is extremely flexible - spanning several orders of magnitude of compression speeds depending on the level setting. - It is pretty much on the Pareto frontier for all of its configurations (meaning that no other algorithm is both faster and more efficient). One downside of course is that older versions of Blender will not be able to read these files, but one can always just re-save them without compression or decompress the file manually with an external tool. The implementation here saves additional metadata into the compressed file in order to allow for efficient seeking when loading. This is standard-compliant and will be ignored by other tools that support Zstd. If the metadata is not present (e.g. because you manually compressed a .blend file with another tool), Blender will fall back to sequential reading. Saving is multithreaded to improve performance. Loading is currently not multithreaded since it's not easy to predict the access patterns of the loading code when seeking is supported. In the future, we might want to look into making this more predictable or disabling seeking for the main .blend file, which would then allow for multiple background threads that decompress data ahead of time. The compression level was chosen to get sizes comparable to previous versions at much higher speeds. In the future, this could be exposed as an option. Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-08-21Refactor low-level blendfile reading into separate filesLukas Stockner
Instead of handling mmap, compression etc. all directly in readfile.c, refactor the code to use a generic FileReader. This makes it easier to add new compression methods or similar, and allows to reuse the logic in other places (e.g. thumbnail reading). Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-08-21Cleanup: minor changes to blf_font.cCampbell Barton
- Use early return when kerning isn't used. - Remove early return that prevented matching acquire/release calls.
2021-08-21Cleanup: organize blf_font.c functions using doxy-sectionsCampbell Barton
Functions in this file were scattered and not well organized.
2021-08-21Cleanup: spelling in comments & minor cleanupCampbell Barton
Also hyphenate 'mouse-move' use doxy sections in render_update.c & move function comment from the header to the source.
2021-08-21Correct build error from 0d7aab2375e6bb06e89dad851550b283a1ff805cCampbell Barton
2021-08-21Refactor: BLF Kerning Cache After UseHarley Acheson
Optimization of font kerning by only caching kerning values after a pair is encountered. Also saves unscaled values so they don't have to be rebuilt between font size changes. See D12274 for more details and speed comparison. Differential Revision: https://developer.blender.org/D12274 Reviewed by Campbell Barton
2021-08-20DocPy: Cleanup missing newline resulting in wrong html generationAaron Carlisle
2021-08-20Cleanup, use BKE_scene_uses_cycles_experimental_featuresKévin Dietrich
2021-08-20Cleanup, remove extra code from previous commitKévin Dietrich
This got accidentally introduced while revising dependencies between patches for this feature, did not notice until it was too late.
2021-08-20Alembic Procedural: basic cache control settingsKévin Dietrich
This adds a setting to enable data caching, and another one to set the maximum cache size in megabytes. When caching is enabled we load the data for the entire animation in memory, as we already do, however, if the data exceeds the memory limit, render is aborted. When caching is disabled, we simply load the data for the current frame in memory. Ref D10197 Reviewed By: brecht Differential Revision: https://developer.blender.org/D11163
2021-08-20Fix T90795: Moving keys in Grease Pencil Dopesheet crashes BlenderGermano Cavalcante
`td->loc` is referenced but not initialized.
2021-08-20Functions: remove multi-function networkJacques Lucke
The multi-function network system was able to compose multiple multi-functions into a new one and to evaluate that efficiently. This functionality was heavily used by the particle nodes prototype a year ago. However, since then we only used multi-functions without the need to compose them in geometry nodes. The upcoming "fields" in geometry nodes will need a way to compose multi-functions again. Unfortunately, the code removed in this commit was not ideal for this different kind of function composition. I've been working on an alternative that will be added separately when it becomes needed. I've had to update all the function nodes, because their interface depended on the multi-function network data structure a bit. The actual multi-function implementations are still the same though.
2021-08-20Geometry Nodes: add missing versioning for subdivision surface nodeJacques Lucke
This was missing from rBfecec1644ce54ea386eaeed5ca6748d4a7b2737b.
2021-08-20Cleanup: remove duplicate lineJacques Lucke
2021-08-20Functions: add utility methods to parameter builderJacques Lucke
2021-08-20Functions: add clear method to vector arrayJacques Lucke