tornavis/intern
Weizhen Huang a2bb547b9a Fix: Cycles spot light spread sampling not considering non-uniform scaling
For spherical spot light, when the shading point is close to the light
source, we switch to sampling the light spread instead of the visible
cone from the shading point. This has the benefit of less noise when the
spread is small.
However, the light spread sampling was not considering non-uniform
object scaling, where the actual spread might be different.
This patch switches sampling method only when the smallest enclosing
spread cone is smaller than the visible cone from the shading point.

An alternative method would be to compute the actual solid angle of the
scaled cone, and sample from the scaled cone. However, that involves
ray transformation and modifying the sampling pdf and angle. Since
non-uniform scaling is rather a niche case, it's probably not worth the
computation effort.

Pull Request: https://projects.blender.org/blender/blender/pulls/119661
2024-03-19 18:55:35 +01: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 Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
cycles Fix: Cycles spot light spread sampling not considering non-uniform scaling 2024-03-19 18:55:35 +01: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 GHOST/Wayland: copy & paste image to clipboard support 2024-03-12 17:42:02 +11:00
guardedalloc Fix #118402: enforce expected minimum alignment in MEM_CXX_CLASS_ALLOC_FUNCS 2024-02-21 18:14:11 +01:00
iksolver Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
itasc License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
libc_compat License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +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: Replace MIN/MAX macros with C++ functions 2024-01-22 15:58:18 +01:00
memutil Cleanup: use braces in headers 2023-09-24 14:52:38 +10:00
mikktspace Cleanup: use braces in headers 2023-09-24 14:52:38 +10:00
opencolorio GPU: Cleanup type aliases 2024-03-08 19:09:10 +01:00
opensubdiv Cleanup: Remove unnecessary keywords from C++ headers 2024-01-04 15:07:48 -05:00
openvdb Volumes: refactor volume grid storage 2023-12-20 15:32:52 +01: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 Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
sky License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
utfconv CMake: Fix Compiling Shader Builder on macOS 2023-12-08 15:47:14 +01:00
wayland_dynload Fix #115878: build error with LIBDECOR & WITH_GHOST_WAYLAND_DYNLOAD=OFF 2023-12-13 10:17:07 +11:00
CMakeLists.txt CMake: Fix Compiling Shader Builder on macOS 2023-12-08 15:47:14 +01:00