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
2022-01-12Compositor: Add Scene Time Node, Rename Time nodeNathan Rozendaal
Fixes issue T94603 It adds a new compositor node called Scene Time which is already present as a geo node, having the same basic nodes available in all node trees is a nice thing to have. Renames "Time" node to "Time Curve", this is done to avoid confusion between the Time node and the Scene Time node. Reviewed By: jbakker Maniphest Tasks: T94603 Differential Revision: https://developer.blender.org/D13762
2022-01-10Compositing Convert color space nodeJeroen Bakker
Compositor node to convert between color spaces. Conversion is skipped when converting between the same color spaces or to or from data spaces. Implementation done for tiled and full frame compositor. Reviewed By: Blendify, jbakker Differential Revision: https://developer.blender.org/D12481
2022-01-07Cleanup: remove redundant const qualifiers for POD typesCampbell Barton
MSVC used to warn about const mismatch for arguments passed by value. Remove these as newer versions of MSVC no longer show this warning.
2021-12-22Fix: Large stack allocation in compositorMichael
When COM_EXPORT_GRAPHVIZ is enabled, DebugInfo::graphviz uses a char[1000000] as local variable. When this function is called this is allocated on the stack, which has a size of just 1MB on mac and may cause a stack overflow. This patch allocates the memory on the heap and frees the memory at the end of the function. Reviewed By: LazyDodo Differential Revision: https://developer.blender.org/D13628
2021-12-20Cleanup: Const arguments, remove unused argumentHans Goudey
2021-12-15Initialize the fourth and final instance variable of MemoryProxyMichael
The constructor of MemoryProxy initializes 3 of 4 instances variables. If a MemoryProxy is constructed and MemoryProxy::free is called on this instance, buffer_ is undefined and 'delete buffer_;' causes errors. Although this misuse pattern does not exist in the current codebase it already tripped up the Address Sanitizer on various occasions while debugging unrelated problems. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D13569
2021-12-09Cleanup: move public doc-strings into headers for 'compositor'Campbell Barton
Ref T92709
2021-11-29Fix T93310: crash due to broken image pathsJacques Lucke
The crash was caused by allocating an uninitialized amount of memory. This fix initializes a bunch of variables that could cause the error. It should be possible to also fix this in the function that actually uses the uninitialized memory, but that could cause unknown consequences that are a bit too risky for 3.0. Just initializing some variables should be safe though. For more details see D13369. Differential Revision: https://developer.blender.org/D13369
2021-10-24Cleanup: spelling in commentsCampbell Barton
2021-10-23Cleanup: remove unused functionManuel Castilla
It doesn't have definition either.
2021-10-14Fix compile error with 'WITH_CXX_GUARDEDALLOC'Germano Cavalcante
2021-10-14Fix Compositor stack use after scopeManuel Castilla
Caused by {rBf84fb12f5d72433780a96} after changing `get_areas_to_render` to return a vector instead of a span.
2021-10-14Cleanup: use `_` suffix for non-public data members in CompositorManuel Castilla
For code style and clarity.
2021-10-14Cleanup: convert camelCase naming to snake_case in CompositorManuel Castilla
To convert old code to the current convention and use a single code style.
2021-10-14Cleanup: replace members `m_` prefix by `_` suffix in CompositorManuel Castilla
To convert old code to the current convention and use a single code style.
2021-10-14Cleanup: remove `this->` for `m_` prefixed members in CompositorManuel Castilla
For cleaning old code style as new code usually omit it.
2021-10-14Cleanup: remove unused includes in CompositorManuel Castilla
And move unneeded includes in frequently used headers to source files. Slightly reduces compile time.
2021-09-29Cleanup: spelling in commentsCampbell Barton
2021-09-28Compositor: Add support for canvas compositingManuel Castilla
This commit adds functionality for operations that require pixel translation or resizing on "Full Frame" mode, allowing to adjust their canvas. It fixes most cropping issues in translate, scale, rotate and transform nodes by adjusting their canvas to the result, instead of the input canvas. Operations output buffer is still always on (0,0) position for easier image algorithm implementation, even when the canvas is not. Current limitations (will be addressed on bcon2): - Displayed translation in Viewer node is limited to 6000px. - When scaling up the canvas size is limited to the scene resolution size x 1.5 . From that point it crops. If none of these limitations are hit, the Viewer node displays the full input with any translation. Differential Revision: https://developer.blender.org/D12466
2021-09-28Compositor: Replace resolution concept by canvasManuel Castilla
This is a code refactor in preparation of supporting canvas compositing. See {D12466}. No functional changes, all canvases are at (0,0) position matching tiled implementation. Differential Revision: https://developer.blender.org/D12465
2021-09-19Compositor: Fix crash exporting buffers on debugManuel Castilla
ImBuf allocates 4 channels, use copying to support buffers with 1 and 3 channels.
2021-09-15Cleanup: doxy sections, parameter syntaxCampbell Barton
2021-09-11Compositor: Fix crash when hashing unconnected operationsManuel Castilla
It was causing some tests to fail when enabling Full Frame mode.
2021-09-06Cleanup: clang-formatAaron Carlisle
2021-09-05Compositor: New Posterize NodeAaron Carlisle
The posterize node limits the number of colors per channel. This is useful to generate masks or to generate stylized images Both the tiled and full-frame implementation are included in this patch {F10314012} Reviewed By: manzanilla, jbakker Differential Revision: https://developer.blender.org/D12304
2021-09-05Cleanup: improve code clarityManuel Castilla
Addresses D12341 review.
2021-09-04Compositor: Merge equal operationsManuel Castilla
Some operations can take a lot of time to execute and any duplication should be avoided. This patch implements a compile step that detects operations with the same type, inputs and parameters that produce the same result and merge them. Now operations can generate a hash that represents their output result. They only need to implement `hash_output_params` and hash any parameter that affects the output result. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12341
2021-09-04Compositor: Full frame filter nodesManuel Castilla
Adds full frame implementation to Anti-Aliasing, Defocus, Denoise, Despeckle, Dilate/Erode, Directional Blur, Filter, Inpaint and Vector Blur nodes. The other nodes in "Filter" sub-menu are submitted separately. Part of T88150. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12219
2021-08-31Cleanup: Use C style comments for descriptive textCampbell Barton
2021-08-26Cleanup: use C style comments for descriptive textCampbell Barton
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 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: 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-10Fix T90572: "Render Region" is broken due to compositingManuel Castilla
It was using viewer instead of render border. A copy-paste error.
2021-08-10Compositor: Fix memory leaks when initializing tiles multi-threadedManuel Castilla
It was only affecting tiled fallback on full frame mode. If tiles from a constant operation were multi-thread initialized, its buffer was inflated multiple times.
2021-08-10Compositor: Full frame input nodesManuel Castilla
Adds full frame implementation to "Bokeh Image" node, "Track Position" node, `SetVectorOperation` and `MovieClipAttribute`. The other nodes in "Input" submenu are implemented separately. `MovieClipAttribute` needs resolution to calculate its constant value, it can't be constant folded, which requires it to be a `ConstantOperation`. Now `ConstantOperation` contemplate this case and any operation that is always constant without depending on inputs should implement it. If in the future an operation needs to get an input constant element during `determineResolution` it must first determine its input resolution. The nodes have no functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D12090
2021-07-30Compositor: Fix wrong number of threads during constant foldingManuel Castilla
The variable was uninitialized at that point of execution.
2021-07-27Cleanup: comment spelling & punctuationYimingWu
2021-07-26Compositor: Full frame Levels nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11749
2021-07-26Compositor: Fix memory leak when exporting operations on debugManuel Castilla
2021-07-26Compositor: Full frame Scale nodeManuel Castilla
Adds full frame implementation to this node operations. No functional changes. Includes a new operation method `init_data` used to initialize any data needed after operations are linked and resolutions determined. Once tiled implementation is removed `initExecution` may be renamed to `init_rendering` and `init_data` to `init_execution`. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11944
2021-07-22Compositor: Fix crash when using empty input sourcesManuel Castilla
It's the case of Image or Movie Clip node when not selecting any source or an empty one. Render methods expect an output buffer with size, only render operations with resolution.
2021-07-22Compositor: Fix buffer area iterating past the endManuel Castilla
2021-07-22Compositor: Add coordinates to BuffersIteratorManuel Castilla
Allows to cover many use cases where iterating both buffers and coordinates is needed.
2021-07-20Compositor: Fix crash when connecting multiple constant inputsManuel Castilla
Operation receiving inputs was being folded more than once when it was constant foldable.
2021-07-19Compositor: Export operation results as debug optionManuel Castilla
When fixing issues, seeing operation results can be helpful for detecting which operation went wrong. This commit adds an option for exporting all operations results to image files. Exceptions are: - Output operations: They are already exported or can be seen in UI. - Constant operations: There are too many and is rarely useful. They are exported to "<temp session folder>/COM_operations/" with filenames "<operation class name>_<operation id>.png". Only works on full frame execution mode. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11722
2021-07-19Compositor: Buffer iteratorsManuel Castilla
Currently we mostly iterate buffer areas using x/y loops or through utility methods extending from base classes. To simplify code in simple operations this commit adds wrappers for specifying buffer areas and their iterators for raw buffers with any element stride: - BufferRange: Specifies a range of contiguous buffer elements from a given element index. - BufferRangeIterator: Iterates elements in a BufferRange. - BufferArea: Specifies a rectangle area of elements in a 2D buffer. - BufferAreaIterator: Iterates elements in a BufferArea. - BuffersIterator: Simultaneously iterates an area of elements in an output buffer and any number of input buffers. - BuffersIteratorBuilder: Helper for building BuffersIterator adding buffers one by one. For iterating areas coordinates it adds `XRange` and `YRange` methods that return `IndexRange`. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11882
2021-07-15Cleanup: replace BLI_assert(!"text") with BLI_assert_msg(0, "text")Campbell Barton
This shows the text as part of the assertion message.