Age | Commit message (Collapse) | Author |
|
|
|
|
|
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
|
|
|
|
Previously, `ImageTile->ok` and `ImageUser->ok` were used to indicate
whether an image failed to load. There were three possible values
which (probably) had the following meanings:
* `0`: There was an error while loading the image. Don't try to load again.
* `1`: Default value. Try to load the image.
* `2`: The image was loaded successfully.
This image-wide flag did not make sense unfortunately, because loading
may work for some frames of an image sequence but not for others.
Remember than an image data block can also contain a movie.
The purpose of the `->ok` flag was to serve as an optimization to avoid
trying to load a file over and over again when there is an error (e.g. the
file does not exist or is invalid). To get the optimization back, the patch
is changing `MovieCache` so that it can also cache failed load attempts.
As a consequence, `ibuf` is allowed to be `NULL` in a few more places.
I added the appropriate null checks.
This also solves issues when image sequences are used with the
Image Texture node in Geometry nodes (also see D12827).
Differential Revision: https://developer.blender.org/D12957
|
|
|
|
It doesn't have definition either.
|
|
|
|
Caused by an accidental renaming in {rB1c42d4930a24d639b3aa561b9a8b4bbc}
|
|
The thread affinity setting in OIDN can break multithreading on some CPUs.
While this leads to somewhat worse performance on CPUs that do work correctly,
it's better than having some CPUs use only half the cores.
|
|
|
|
The artifacts are due to the loss of precision when doing some
calculations with float precision.
|
|
|
|
This is especially noticeable when using the default center with full
width and height as some borders are masked by 1 pixel.
The relative coordinates are now calculated respect the last ones
instead of the dimensions for centering, and the limits
are inclusive to mask more accurately.
|
|
Caused by {rBf84fb12f5d72433780a96} after changing
`get_areas_to_render` to return a vector instead of a span.
|
|
For code style and clarity.
|
|
To convert old code to the current convention and
use a single code style.
|
|
To convert old code to the current convention and
use a single code style.
|
|
For cleaning old code style as new code usually omit it.
|
|
And move unneeded includes in frequently used headers
to source files.
Slightly reduces compile time.
|
|
Alpha input was not receiving the final composite canvas
as preferred causing a Translate operation being inserted
for centering. This resulted in a transparent background.
The issue only affects Full Frame mode.
|
|
To match tiled implementation, flip center should not be translated
when canvas has offset. Instead the canvas offset needs to be flipped.
|
|
It was writing the buffer out of bounds.
Only "Full Frame" mode was affected.
|
|
Input area of interest calculation was incorrect because `m_margin`
was uninitialized.
Only "Full Frame" mode was affected.
|
|
|
|
|
|
Part of T88150.
|
|
Mostly unused and originally meant for areas with positive values.
With canvas compositing areas position may be negative.
|
|
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
|
|
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
|
|
Previously this was only loading built-in render passes. Now instead of trying
to load the scene render passes, load whatever passes exist in the cache file.
|
|
This includes much improved GPU rendering performance, viewport interactivity,
new shadow catcher, revamped sampling settings, subsurface scattering anisotropy,
new GPU volume sampling, improved PMJ sampling pattern, and more.
Some features have also been removed or changed, breaking backwards compatibility.
Including the removal of the OpenCL backend, for which alternatives are under
development.
Release notes and code docs:
https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles
https://wiki.blender.org/wiki/Source/Render/Cycles
Credits:
* Sergey Sharybin
* Brecht Van Lommel
* Patrick Mours (OptiX backend)
* Christophe Hery (subsurface scattering anisotropy)
* William Leeson (PMJ sampling pattern)
* Alaska (various fixes and tweaks)
* Thomas Dinges (various fixes)
For the full commit history, see the cycles-x branch. This squashes together
all the changes since intermediate changes would often fail building or tests.
Ref T87839, T87837, T87836
Fixes T90734, T89353, T80267, T80267, T77185, T69800
|
|
It's equivalent to the OpenImageDenoise prefiltering option in Cycles.
See D12043.
Prefilter modes:
- None: No prefiltering, use when guiding passes are noise-free.
- Fast: Denoise image and guiding passes together. Improves quality when
guiding passes are noisy using least amount of extra processing time.
- Accurate: Prefilter noisy guiding passes before denoising image.
Improves quality when guiding passes are noisy using extra
processing time.
Reviewed By: #compositing, jbakker, sergey
Differential Revision: https://developer.blender.org/D12342
|
|
ImBuf allocates 4 channels, use copying to support buffers
with 1 and 3 channels.
|
|
It was an issue on Full Frame mode only.
|
|
|
|
Adds full frame implementation to PreviewOperation.
Part of T88150.
|
|
It was causing some tests to fail when enabling Full Frame mode.
|
|
|
|
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
|
|
Addresses D12341 review.
|
|
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
|
|
Adds full frame implementation to Map Range, Map Value, Normal and
Normalize nodes. The other nodes in "Vector" sub-menu are submitted
separately.
Part of T88150.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D12233
|
|
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
|
|
|
|
|
|
|
|
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
|
|
Full frame doesn't support this option as all operations are already
buffered. UI option will be removed in the future.
|
|
Row stride and the area x coordinate offset were not taken into
account.
|