blender/intern/cycles
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
..
app Cleanup: format 2024-03-12 20:56:48 +11:00
blender Merge branch 'blender-v4.1-release' 2024-03-16 19:45:51 +01:00
bvh Fix #119551: Cycles denoising crash canceling tiled render with MetalRT 2024-03-18 11:00:21 +01:00
cmake Build: Remove LLVM linking no longer needed by OSL 2024-02-14 12:06:52 +01:00
device Merge branch 'blender-v4.1-release' 2024-03-18 11:00:49 +01:00
doc License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
graph Fix #113777: Cycles IES texture not working for sphere lights 2023-10-18 20:40:07 +02:00
hydra Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
integrator Merge branch 'blender-v4.1-release' 2024-03-11 13:11:36 +01:00
kernel Fix: Cycles spot light spread sampling not considering non-uniform scaling 2024-03-19 18:55:35 +01:00
scene Fix: Cycles spot light spread sampling not considering non-uniform scaling 2024-03-19 18:55:35 +01:00
session Clang Format: bump to version 17 2024-01-03 13:38:14 +01:00
subd Cleanup: use braces for sources in intern/ 2023-09-17 09:05:40 +10:00
test Cycles: Increase minimum target on x86 to SSE4.2 2024-02-26 14:49:19 +01:00
util Cycles: Add Windows ARM64 support 2024-03-06 16:14:34 +01:00
CMakeLists.txt Unbreak build on macOS with AppleClang from recent cleanup 2024-03-07 19:56:58 +11:00