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-07-04Cleanup: spelling in commentsCampbell Barton
2022-06-30Cleanup: spelling in commentsCampbell Barton
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-05-04Nodes: Add general Combine/Separate Color nodesHallam Roberts
Inspired by D12936 and D12929, this patch adds general purpose "Combine Color" and "Separate Color" nodes to Geometry, Compositor, Shader and Texture nodes. - Within Geometry Nodes, it replaces the existing "Combine RGB" and "Separate RGB" nodes. - Within Compositor Nodes, it replaces the existing "Combine RGBA/HSVA/YCbCrA/YUVA" and "Separate RGBA/HSVA/YCbCrA/YUVA" nodes. - Within Texture Nodes, it replaces the existing "Combine RGBA" and "Separate RGBA" nodes. - Within Shader Nodes, it replaces the existing "Combine RGB/HSV" and "Separate RGB/HSV" nodes. Python addons have not been updated to the new nodes yet. **New shader code** In node_color.h, color.h and gpu_shader_material_color_util.glsl, missing methods hsl_to_rgb and rgb_to_hsl are added by directly converting existing C code. They always produce the same result. **Old code** As requested by T96219, old nodes still exist but are not displayed in the add menu. This means Python scripts can still create them as usual. Otherwise, versioning replaces the old nodes with the new nodes when opening .blend files. Differential Revision: https://developer.blender.org/D14034
2022-04-13Cleanup: use C++ comments for disabled codeCampbell Barton
Also ensure space around text in C-comment blocks.
2022-03-25Cleanup: use count or num instead of nbrCampbell Barton
Follow conventions from T85728.
2022-03-22Cleanup: refactor passing of color management settings for image saveBrecht Van Lommel
Make a copy of ImageFormatData that contains the effective color management settings, and pass that along to the various functions. This will make it possible to add more complex logic later. For compositing nodes, passing along view and display settings through many functions made it harder to add additional settings, so just get those from the scene now. Differential Revision: https://developer.blender.org/D14401
2022-03-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-02-11File headers: add missing copyright, add MIT to SPDX licensesCampbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-02Compositor: Combine and Separate XYZ NodeAaron Carlisle
We have this node for shader and geometry nodes. Compositor can also work with vectors, and this can help with that. Reviewed By: manzanilla Maniphest Tasks: T95385 Differential Revision: https://developer.blender.org/D12919
2022-01-14Fix possible build error with unity buildAaron Carlisle
`NodeOperationBuilder::Link` could conflict with the list base macros. To resolve this dont use `using Link`.
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