Blender Git Commits

Blender Git "cycles-x" branch commits.

Page: 18 / 44

June 15, 2021, 14:01 (GMT)
Cycles X: Implement float support in PassAccessorGPU

Rather straightforward implementation, with some code-generation
macro which takes care of some boiler plate code.

Unfortunately, clang-format does some weird decision in the
`kernel_as_string ` function. Attempt to disable clang-format via
comment makes the comment to be weirdly indented. So this part
is left-as is.

Similar to the PassAccessorCPU there is no overlays applied to
the float result.

Tested with an upcoming refactor of the OptiX denoiser which
uses pass accessor.

No functional changes so far.
June 15, 2021, 13:55 (GMT)
Fix OptiX denoiser for transparent film in Cycles X
June 15, 2021, 13:52 (GMT)
Fix Cycles X shadow catcher display pass

Missed in the previous fix for viewport passes in d9a645dcc02.
June 15, 2021, 12:47 (GMT)
Cycles X: Spelling corrections

Got ,missed in patch transition between computers.
June 15, 2021, 09:40 (GMT)
Cycles X: Initial implementation of shadow catcher denoising

Currently only implemented for OIDN denoiser.

Almost straightforward. The tricky part is the albedo pass: using the
real albedo causes unexpected discontinuity of the shadow catcher based
on the albedo of the surface the shadow is cast on. Worked around by
passing a fake albedo values. The downside is that it requires a full
frame of constant values. Not sure if there is a way around it.

Differential Revision: https://developer.blender.org/D11585
June 15, 2021, 09:40 (GMT)
Refactor Cycles X OIDN denoiser to use PassAccessor

No functional changes, just laying down code which is needed to denoise
passes different from combined.
June 15, 2021, 09:40 (GMT)
Cycles X: Store information whether pass needs compositing on read

Currently unused, but will allow to properly feed pixels to the
denoiser (ignoring possible optimizations related on general scaling
rules).
June 15, 2021, 09:40 (GMT)
Cycles X: Allow float3 access to shadow catcher pass
June 15, 2021, 09:38 (GMT)
Merge branch 'master' into cycles-x
June 11, 2021, 17:36 (GMT)
Fix previous Cycles X OIDN change

Seems that device needs to be recreated as well (preventing
crash), as well as initial commit missed assignment of the
cached configuration.

Maybe there is a way to "remove" images from filter without
re-creating the filter?
June 11, 2021, 17:19 (GMT)
Cycles X: restore homogeneous volume absorption

This is a first step towards bringing back volume scattering. Almost nothing
works yet, no scattering, heterogeneous media, cameras inside volumes, etc.

Differential Revision: https://developer.blender.org/D11556
June 11, 2021, 17:09 (GMT)
Fix possible use of stalled data in Cycles X OIDN denoiser

The denoiser object is only re-created if denoiser type changes.
Need to manually ensure implementation is up-to-date with the
new parameters.

Solves possible issues with denoiser using image from previous
execution (in viewport render, enable normal pass, then disable
it).
June 11, 2021, 16:53 (GMT)
Fix pass offset calculation in Cycles X

Caused by recent refactor.

In the typical load did not notice that name could be empty:
happens when Combined pass is replaced with Shadow Catcher Matte.

Additionally, return PASS_UNUSED for passes which are not written.
June 11, 2021, 15:06 (GMT)
Cleanup: removed unused data structures from old integrator
June 11, 2021, 12:50 (GMT)
Cycles X: Refactor noisy/denoised passes access

The goal is to make it easily to extend denoising support for passes
like light passes and shadow catcher, without need to double-write in
the kernel, and without duplicating pass type for every noisy/denoised
combination.

Avoid double-write of noisy pass in the kernel, introducing an explicit
separation of noisy pass written by the kernel and denoised pass written
by a denoiser.

The idea is to allow marking pass as "please read denoised result of the
type when available". If there is no denoiser configured, then the pass
will access its noisy data (and no data will be allocated for the pass
which is requesting to return denoised result).

It is possible to simplify some of the pass accessing in the denoisers,
as well as possibly avoiding memory allocation. Will look into this as
a followup development related on making denoiser able to denoise any
input.

The positive side is that now there is no need in the denoised pass
film convert kernel.

Should be no functional changes.

Differential Revision: https://developer.blender.org/D11565
June 10, 2021, 17:58 (GMT)
Cleanup: Even more unused functions in Cycles X pass

Didn't notice those in the previous cleanup.
June 10, 2021, 17:57 (GMT)
Cleanup: De-duplicate pass find logic

The code of `Pass::contains()` and `Pass::find()` was almost identical.
June 10, 2021, 17:55 (GMT)
Cleanup: Remove unused pass functions in Cycles X

Additionally, the comparison function was wrong: was using same vector
of passes to get the next indices.
June 10, 2021, 16:13 (GMT)
Cycles X: De-duplicate shadow pass accessor kernel

The downside is that there is one extra if statement per pixel, but it
is probably unmeasurable because of other calculations involved. Could
not run actual numbers because it is not a function which is run often.

The upside is that it opens possibilities for ease support of passes
with optional alpha channel. For example, it will become useful for
shadow catcher pass denoising.

We can also now implement passes with divider for both RGB and RGBA
destinations and get rid of an exception in the pass Destination
constructor.

Differential Revision: https://developer.blender.org/D11573
June 10, 2021, 15:44 (GMT)
Reduce kernel type boiler plate code in Cycles X

This is kind of a step back from an initial idea of making it easier
to find where kernel type is handled. It worked fine when number of
kernels was low. Now there are so many kernels and only so few of
them require special case that being explicit is actually in a way.

Now there corner cases are really handled as a corner cases, and there
is a note about where to look for those written next to the kernel
enum definition.

Differential Revision: https://developer.blender.org/D11571
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021