blender/intern/cycles/kernel/film
Lukas Stockner 73000c792d Cycles: Reorganize Fresnel handling in Microfacet closures
This is both a cleanup and a preparation for the Principled v2 changes.
Notable changes:
- Clearcoat weight is now folded into the closure weight, there's no reason
  to track this separately.
- There's a general-purpose helper for computing a Closure's albedo, which is
  currently used by the denoising albedo and diffuse/gloss/transmission color
  passes.
- The d/g/t color passes didn't account for closure albedo before, this means
  that e.g. metallic shaders with Principled v2 now have their color texture
  included in the glossy color pass. Also fixes T104041 (sheen albedo).
- Instead of precomputing and storing the albedo during shader setup, compute
  it when needed. This is technically redundant since we still need to compute
  it on shader setup to adjust the sample weight, but the operation is cheap
  enough that freeing up the storage seems worth it.
- Future changes (Principled v2) are easier to integrate since the Fresnel
  handling isn't all over the place anymore.
- Fresnel handling in the Multiscattering GGX code is still ugly, but since
  removing that entirely is the next step, putting effort into cleaning it up
  doesn't seem worth it.
- Apart from the d/g/t color passes, no changes to render results are expected.

Differential Revision: https://developer.blender.org/D17101
2023-02-03 21:03:48 +01:00
..
adaptive_sampling.h Cleanup: format 2022-11-15 16:43:18 +11:00
aov_passes.h Cleanup: refactoring of kernel film function names and organization 2022-09-02 17:13:28 +02:00
cryptomatte_passes.h Cleanup: refactoring of kernel film function names and organization 2022-09-02 17:13:28 +02:00
data_passes.h Fix T98951: Shadow catcher objects are double-counting data passes 2022-12-17 01:45:07 +01:00
denoising_passes.h Cycles: Reorganize Fresnel handling in Microfacet closures 2023-02-03 21:03:48 +01:00
light_passes.h Fix T103403: Lightgroup passes can contain lighting on shadow catchers 2023-01-06 02:33:22 +01:00
read.h Cleanup: remove some unnecessary kernel feature defines 2022-09-02 17:13:28 +02:00
write.h Fix T100537: gaps in Cycles depth pass with transparency 2022-11-18 15:52:34 +01:00