Blender Git Commits

Blender Git "cycles-x" branch commits.

Page: 23 / 44

May 12, 2021, 08:35 (GMT)
Merge branch 'master' into cycles-x
May 10, 2021, 10:36 (GMT)
Fix albedo used instead of normal pass in Cycles X OptiX denoiser
May 10, 2021, 09:52 (GMT)
Merge branch 'master' into cycles-x
May 8, 2021, 15:24 (GMT)
Fix new shadow catcher not handling emissive meshes correctly

These must also be excluded from direct light sampling for the shadow
catcher pass.
May 7, 2021, 14:43 (GMT)
Cycles X: Initial implementation of shadow catcher

It is re-implemented in a way which does differential rendering: the
path is split at a first non-transparent bounce when shadow catcher
object is hit. One path will track state of the shadow catcher object
without other objects affecting it. The other path is rendering scene
as usual.

Upon user access of the shadow catcher pass the result is calculated
as combined pass divided by the pass with shadow catcher object. This
gives a pass which is to be multiplied with a backdrop to transport
light and shadows caught.

For the artificial objects which are to be added to the backdrop
there is an internal matte pass. This pass is presented as combined
to artists, so they alpha-over it onto the footage as usual. In the
future we might implement shadow approximation to gain old-style
shadow catcher behavior (maybe for compatibility reasons, maybe for
some artistic reasons).

This process is a bit more involved that the old single pass approach,
but it allows to deal with indirect light, caustics.

Example file: {F10059890}
Example result: {F10055172}

The footage is the Old_Factory MVI_4005.mov from

https://cloud.blender.org/training/track-match-blend/56040f9b044a2a00ad6c660d

Differential Revision: https://developer.blender.org/D11172
May 7, 2021, 13:12 (GMT)
Cycles X: refactoring of kernel globals

* Declare kernel globals and associated macros in one place
* Add IntegratorStateGPU for CPU host to access
* Reduce code duplication between CUDA and OptiX
* Make shader sort key part of integrator state template
* Remove unused CPU kernel globals
* Prepare for copying/moving states
* Rename integrator_path_state.h to integrator_state_flow.h, to avoid
confusion with kernel_path_state.h.

Part of these changes were implemented by Sergey for D11172.

Differential Revision: https://developer.blender.org/D11185
May 7, 2021, 13:11 (GMT)
Cleanup: make ShaderType a template parameter for SVM nodes
May 5, 2021, 12:18 (GMT)
Cycles X: tune kernel parameters for RTX cards

As the kernel keeps changing the optimal values will change as well, so this
will need to be revisited when more work is done. And every kernel probably
has a different optimal value. But this is an easy step in the right direction.

Differential Revision: https://developer.blender.org/D11160
May 5, 2021, 12:18 (GMT)
Fix Cycles X crash using a BSDF in a light shader

* Move BSDF feature test so the right offset is applied
* Exclude BSDFs from volume shaders, and volumes from surface shaders,
to prevent a similar issues.

It would be most efficient to exclude BSDFs entirely from light shaders, but
this is difficult since Cycles does not make a distinction. A shader can be used
by both a Mesh and Light and is compiled only once. We do make a distinction
between surface/volume/displacement shaders, so for that case we can ignore
the node during shader compilation.

Differential Revision: https://developer.blender.org/D11164
May 5, 2021, 09:31 (GMT)
Fix kernel loading time accounted twice in render progress

The render session is keeping track of the scene update, which includes
kernel loading time.

This fixes negative render times reported when CUDA kernels are compiled
at runtime.

A bit fragile logic, can be re-implemented using some user-counted
scope utility classes, so that only outer-most time skip is applied.
May 5, 2021, 08:36 (GMT)
Cycles: Report device compute type to the full log

Makes it more explicitly visible whether rendering was done on CUDA
or OptiX.

Before this change one had to carefully look at the device ID, and the
look of OptiX device IDs was a bit confusing (mentioning both CUDA and
OPTIX in the ID).
May 4, 2021, 14:04 (GMT)
Cleanup: Remove redundant Cycles attributes

- Remove `ccl_maybe_unused` which was only defined for CPU, use more
portable `ccl_attr_maybe_unused` instead.

- Assume C++11 is always available, so use `constexpr` directly in the
kernel code.

Differential Revision: https://developer.blender.org/D11161
May 4, 2021, 13:13 (GMT)
Cycles: Rename __SHADOW_TRICKS__ to __SHADOW_CATCHER__

Makes it more explicit what the code and feature is about.

The shadow tricks are not used anymore (they were used by the NLM
denoiser). Some of the code is still referring to the __SHADOW_TRICKS__
but it is all in an unused code paths.
May 4, 2021, 13:13 (GMT)
Cycles: Add ccl_constexpr utility macros

Allows to give constexpr qualifier on backends and compilers which support this
attribute.

Currently only enabled for CPU. Need to check CUDA and OptiX for support.
May 4, 2021, 13:13 (GMT)
Cycles: Enable constexpr and maybe_unused attributes for CUDA and OptiX

Tested on Linux with CUDA toolkit 11.3. Seems no additional compiler flags
are needed to have C++11/C++17 attributes available.
May 4, 2021, 13:13 (GMT)
Cycles: Refactor shadow catcher ray visibility

Allow to "filter" shadow catcher objects by any of the visibility
(diffuse, glossy, and so on) to allow complete separation of objects
in the scene.

Implemented as a bitmask shift magic: shadow catcher objects have their
visibility "duplicated" as a shift left by 16. The ray visibility for
tracing will use either low or high visibility bits depending on whether
shadow catcher object was hit or not.

Currently no functional changes, just committing separately to make it
easier to bisect possible unintended functional changes.

Initial idea implementation from Brecht, adopted to the shadow catcher
code by self.

Differential Revision: https://developer.blender.org/D11158
May 4, 2021, 13:13 (GMT)
Cycles: Avoid pixel offset calculation when is not needed

Possibly gives unmeasurable speedup in the denoising passes
writing function.
May 4, 2021, 13:12 (GMT)
Cycles: Undefine utility macro after use

Was missing since the initial implementation of those macros for the
new integrator kernels.
May 4, 2021, 11:59 (GMT)
Cycles: don't copy object matrices for objects without motion blur

To avoid memory read/write cost on the GPU.

Differential Revision: https://developer.blender.org/D11132
April 30, 2021, 16:19 (GMT)
Cleanup: compiler warnings
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021