0
0
forked from blender/blender
blender/intern/cycles/scene
Alaska 99618031b3 Fix #125168: Cycles spot light theata_e can flip with a wide spread
When the spread of a spot light is at it's maximum (180 degrees),
then `atan(tan(theta_e))` could become quite unpredictable due to
a asymtote in the tan function when working with lights with this
spread (because theta_e is `spread * 0.5 = pi/2`).
This lead to issues like theta_e for the spotlight becoming negative,
which lead to rendering errors due to a malformed light tree.

This commit fixes this issue by adding a episilon region around the
troublesome values and sets theta_e to `pi/2` when in that region.

Candidate for backporting to 4.2 and potentially 3.6

Pull Request: blender/blender#125172
2024-08-16 14:04:44 +02:00
..
alembic_read.cpp Fix #107877: Alembic procedural crashes with point clouds 2023-06-15 03:40:15 +02:00
alembic_read.h Fix #107877: Alembic procedural crashes with point clouds 2023-06-15 03:40:15 +02:00
alembic.cpp Fix #107877: Alembic procedural crashes with point clouds 2023-06-15 03:40:15 +02:00
alembic.h Fix #107877: Alembic procedural crashes with point clouds 2023-06-15 03:40:15 +02:00
attribute.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
attribute.h Cycles: fix missing attribute update 2022-06-02 16:42:53 +02:00
background.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
background.h Cycles: Add support for light groups 2022-04-02 06:14:27 +02:00
bake.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
bake.h Cycles: add option to bake specular from active camera viewpoint 2022-10-03 21:59:31 +02:00
camera.cpp Cleanup: remove redundant lerp function, mix already does the same 2023-05-12 21:00:52 +02:00
camera.h Cycles: add support for volume motion blur 2022-04-19 17:07:53 +02:00
CMakeLists.txt Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
colorspace.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
colorspace.h Fix warnings in Cycles graph test output 2023-03-23 09:55:54 +01:00
constant_fold.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
constant_fold.h Fix T103066: Cycles missing full constant foler for mix float and mix vector 2022-12-12 18:28:09 +01:00
curves.cpp Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
curves.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
devicescene.cpp Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
devicescene.h Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
film.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
film.h Cycles: Add support for light groups 2022-04-02 06:14:27 +02:00
geometry_attributes.cpp Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
geometry_bvh.cpp Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
geometry_mesh.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
geometry.cpp Cycles: fix multi-device rendering with oneAPI and Hardware Raytracing 2023-05-22 15:26:58 +02:00
geometry.h Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
hair.cpp Cleanup: fix various Cycles compilar warnings 2023-04-05 19:48:19 +02:00
hair.h Cycles: reduce mesh memory usage by unflattening 2023-02-27 10:39:19 +01:00
image_oiio.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
image_oiio.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
image_sky.cpp Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
image_sky.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
image_vdb.cpp Fix #107932: crash attempting to load invalid OpenVDB file path on macOS 2023-05-24 17:47:27 +02:00
image_vdb.h Cycles: Add half precision float support for volumes with NanoVDB 2022-05-23 19:08:01 +02:00
image.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
image.h Cleanup: fix various Cycles compilar warnings 2023-04-05 19:48:19 +02:00
integrator.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
integrator.h Cycles: improve many lights sampling using light tree 2022-12-05 16:09:03 +01:00
light_tree.cpp Fix #125168: Cycles spot light theata_e can flip with a wide spread 2024-08-16 14:04:44 +02:00
light_tree.h Fix #107603: queried the area of an empty bounding box 2023-05-11 11:18:12 +02:00
light.cpp Fix #123448: Cycles area light using MIS when the spread is zero 2024-07-10 10:36:22 +02:00
light.h Refactor: move part of light tree logic from #LightManager to #LightTree 2023-04-04 16:24:21 +02:00
mesh_displace.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
mesh_subdivision.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
mesh.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
mesh.h Cycles: reduce mesh memory usage by unflattening 2023-02-27 10:39:19 +01:00
object.cpp Fix #116695: Cycles light tree crash with certain light visibility settings 2024-01-10 09:20:22 +01:00
object.h Fix Cycles missing geometry header in object header, causing crashes 2023-04-03 17:23:46 +02:00
osl.cpp Cleanup: comment blocks, #if 0 commented code 2023-04-14 13:51:38 +10:00
osl.h Fix Cycles link error with debug/asan builds after recent bugfix 2023-02-08 23:20:29 +01:00
particles.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
particles.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
pass.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
pass.h Cycles: Add support for light groups 2022-04-02 06:14:27 +02:00
pointcloud.cpp Fix #103918: Cycles point cloud motion blur artifacts on the GPU 2023-07-12 14:03:49 +02:00
pointcloud.h Fix #103918: Cycles point cloud motion blur artifacts on the GPU 2023-07-12 14:03:49 +02:00
procedural.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
procedural.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
scene.cpp Fix #117586: Cycles: World Lightgroup not updated when creating/deleting LGs 2024-03-07 17:05:38 +01:00
scene.h Cycles: Break up geometry.cpp and scene.cpp file into smaller pieces 2023-04-20 12:26:02 +02:00
shader_graph.cpp Merge branch 'blender-v3.5-release' (won't build, see followup) 2023-03-16 15:26:23 +01:00
shader_graph.h Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
shader_nodes.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
shader_nodes.h Fix #106706: fireflies with Nishita sky sun sampling at certain angles 2023-04-17 17:29:27 +02:00
shader.cpp Fix: Cycles incorrect rendering of certain negative strength lights 2024-03-11 14:07:49 +01:00
shader.h Fix anisotropic Beckmann regression test failing on Metal 2023-01-19 20:12:05 +01:00
stats.cpp Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
stats.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
svm.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
svm.h Cycles: keep track of SVM nodes used in kernels 2022-07-15 13:40:04 +02:00
tables.cpp Cleanup: add verbose logging category names instead of numbers 2022-06-17 14:08:14 +02:00
tables.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
tabulated_sobol.cpp Cycles: switch from pretabulated 2D PMJ02 to pretabulated 4D Sobol 2022-12-14 17:39:13 +01:00
tabulated_sobol.h Cycles: switch from pretabulated 2D PMJ02 to pretabulated 4D Sobol 2022-12-14 17:39:13 +01:00
volume.cpp Fix #106776: Volume cube won't render in Cycles 2023-05-02 20:13:58 +02:00
volume.h Cycles: add support for volume motion blur 2022-04-19 17:07:53 +02:00