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 |
|