blender/intern
Lukas Stockner 5e40b9bb5c Cycles: Switch to energy-preserving multiscattering Oren-Nayar BSDF
This multiscattering term comes from the OpenPBR specification and nicely
preserves energy while correctly modeling increased saturation at high
roughness.

Preparation for adding a diffuse roughness option to the Principled BSDF.

To me, the difference in output and computation seems small enough to
not need an enum for the old behavior.

Note that this also switches sampling to cosine-weighted, in my tests this
gives lower noise. I also checked doing MIS between cosine and uniform,
using the A term as a weight for how often to use cosine (since that term
is Lambertian diffuse), but always using cosine was better.
A nice consequence of that is that you don't get a huge noise jump when
going from 0.0 to 0.01 roughness.

Pull Request: https://projects.blender.org/blender/blender/pulls/123345
2024-06-18 21:07:21 +02:00
..
atomic Cleanup: move CMake test utility functions into testing.cmake 2024-01-03 14:49:11 +01:00
audaspace Cleanup: use braces for sources in intern/ 2023-09-17 09:05:40 +10:00
clog Cleanup: match function/declaration names 2024-04-17 11:36:36 +10:00
cycles Cycles: Switch to energy-preserving multiscattering Oren-Nayar BSDF 2024-06-18 21:07:21 +02:00
dualcon Mesh: Rename MLoopTri variable names, and functions 2023-12-19 14:57:49 +01:00
eigen Cleanup: remove redundant define checks 2023-12-07 10:39:03 +11:00
ffmpeg Tests: add option to build one binary per GTest file 2024-01-03 18:35:50 +01:00
ghost Merge branch 'blender-v4.2-release' 2024-06-18 20:38:38 +10:00
guardedalloc Cleanup: various non functional C++ changes 2024-04-20 13:46:14 +10:00
iksolver Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
itasc Fix #120763: Fix memory leak in itasc cache 2024-04-24 09:35:04 +02:00
libc_compat Build: fix linking FFMPEG & x265 on Linux 2024-06-15 14:15:53 +10:00
libmv UI: fix and improve a few messages 2024-02-05 17:08:17 +01:00
locale License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
mantaflow Cleanup: remove redundant variables & assignments 2024-04-09 13:52:41 +10:00
memutil Cleanup: use braces in headers 2023-09-24 14:52:38 +10:00
mikktspace Cleanup: Mikktspace: use sqrtf() function with float type 2024-06-04 14:27:17 +02:00
opencolorio Fix #121819: OpenColorIO GLSL error after recent change, only apply to Metal 2024-06-12 18:29:49 +02:00
opensubdiv Subdiv: Make OpenSubdiv_TopologyRefiner into a C++ class 2024-04-19 09:03:48 -04:00
openvdb Cleanup: spelling in code comments & minor edits 2024-06-06 09:55:13 +10:00
quadriflow Cleanup: Replace MVertTri type with C++ vector 2023-12-20 20:59:11 -05:00
renderdoc_dynload RenderDoc: Set Capture Title 2024-02-23 10:57:37 +01:00
rigidbody Cleanup: use const pointers 2024-04-20 12:41:23 +10:00
sky Cleanup: use C-style comments for descriptive text 2024-04-11 17:44:27 +10:00
utfconv CMake: Fix Compiling Shader Builder on macOS 2023-12-08 15:47:14 +01:00
wayland_dynload GHOST/Wayland: expose wl_display_get_protocol_error function 2024-05-03 10:55:17 +10:00
CMakeLists.txt CMake: Fix Compiling Shader Builder on macOS 2023-12-08 15:47:14 +01:00