blender/intern/cycles/scene
Sergey Sharybin 5c25277f6c Fix #108374: Sun light linking issue on direct sampling
This is a continuation of a fix from the last week in #108311.
The issue was not fully fixed due to a mistake in the regression
test file.

There are two major things which left to be fixed since the
previous patch:

1. Root nodes can not be shared, even if the local and distant
lights belong to the same light set. If the root node is shared
then the flattening will use the same node index for specialized
trees, which is not a desired behavior.

2. The node type needs to be preserved when a new node is
created for a subset of emitters. This is because tree sampling
in kernel will handle distant and local lights differently for
nodes where there are multiple emitters.

Pull Request: https://projects.blender.org/blender/blender/pulls/108427
2023-05-30 17:39:50 +02:00
..
alembic_read.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
alembic_read.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01:00
alembic.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
alembic.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01: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 Refactor: group multiple floats to float2 or float3 2023-05-24 18:56:58 +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 Cycles: Path Guiding: Adding guiding on glossy surfaces via RIS 2023-05-22 16:47:05 +02:00
integrator.h Cycles: Path Guiding: Adding guiding on glossy surfaces via RIS 2023-05-22 16:47:05 +02:00
light_tree.cpp Fix #108374: Sun light linking issue on direct sampling 2023-05-30 17:39:50 +02:00
light_tree.h Fix specialized light tree building for distant lights 2023-05-26 13:29:47 +02:00
light.cpp Fix #108374: Sun light linking issue on direct sampling 2023-05-30 17:39:50 +02:00
light.h Fix hiding receiver disabling light/shadow linking 2023-05-26 12:21:44 +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 hiding receiver disabling light/shadow linking 2023-05-26 12:21:44 +02:00
object.h Fix hiding receiver disabling light/shadow linking 2023-05-26 12:21:44 +02:00
osl.cpp Cycles: light and shadow linking 2023-05-24 14:11:47 +02: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 Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
pointcloud.h Cycles: use SPDX license headers 2022-02-11 17:47:34 +01: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 hiding receiver disabling light/shadow linking 2023-05-26 12:21:44 +02: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 Cycles: Merge Anisotropic BSDF node into Glossy BSDF node 2023-05-18 23:12:20 +02:00
shader_nodes.h Cycles: light and shadow linking 2023-05-24 14:11:47 +02:00
shader.cpp Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") 2023-05-02 09:37:49 +10:00
shader.h Fix anisotropic Beckmann regression test failing on Metal 2023-01-19 20:12:05 +01:00
stats.cpp Cycles: light and shadow linking 2023-05-24 14:11:47 +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