blender/intern/cycles/kernel
Lukas Stockner 07de832e22 Cycles: Use correct light sampling PDF for MIS calculation with Branched Path Tracing
The light sampling functions calculate light sampling PDF for the case that the light has been randomly selected out of all lights.
However, since BPT handles lamps and meshlights separately, this isn't the case. So, to avoid a wrong result, the code just included the 0.5 factor in the throughput.

In theory, however, the correction should be made to the sampling probability, which needs to be doubled. Now, for the regular calculation, that's no real difference since the throughput is divided by the pdf.
However, it does matter for the MIS calculation - it's unbiased both ways, but including the factor in the PDF instead of the throughput should give slightly better results.

Reviewers: sergey, brecht, dingto, juicyfruit

Differential Revision: https://developer.blender.org/D2258
2016-09-25 23:16:05 +02:00
..
bvh Cycles: Make regular bvh traversal functions close to each other 2016-09-20 16:58:39 +02:00
closure Cycles: Fix T49411: Multiscatter GGX with zero roughness when Filter Glossy is enabled 2016-09-25 22:09:38 +02:00
geom Cycles: Also support the constant emission speedup for mesh lights 2016-09-14 18:53:35 +02:00
kernels Cycles: Change code order for Image Data Types. 2016-08-11 22:30:03 +02:00
osl Cycles: Silence strict compiler warning in release build 2016-09-02 09:14:34 +02:00
shaders Fix T49327: Cycles OSL Mode: RGB Curves node only outputs gray scale images 2016-09-12 16:14:40 +02:00
split Cycles: Cleanup code style in split kernel 2016-09-19 16:05:12 +02:00
svm Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00
CMakeLists.txt Cycles: Move BVH constants to an own files, so they are easily re-usable 2016-09-19 13:00:41 +02:00
kernel_accumulate.h Cycles: Deduplicate light pass code 2016-09-14 20:09:37 +02:00
kernel_bake.h Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00
kernel_camera.h Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00
kernel_compat_cpu.h Fix a few OpenCL compiler warnings. 2016-09-03 23:06:12 +02:00
kernel_compat_cuda.h Fix Cycles OpenCL textures after recent CUDA fix. 2016-08-15 16:28:48 +02:00
kernel_compat_opencl.h Fix Cycles CUDA adaptive kernel not working correctly after recent closure changes. 2016-08-09 01:31:07 +02:00
kernel_debug.h Cycles: Add debug pass which shows number of instance pushes during camera ray intersection 2015-06-12 00:12:03 +02:00
kernel_differential.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_emission.h Cycles: Also support the constant emission speedup for mesh lights 2016-09-14 18:53:35 +02:00
kernel_film.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
kernel_globals.h Cycles: Support half and half4 textures. 2016-06-19 17:31:16 +02:00
kernel_jitter.h Fix T48301: Cycles incorrect render with CMJ and viewport samples 0. 2016-04-28 23:57:20 +02:00
kernel_light.h Cycles: Stop lamp sampling if the lamp isn't visible 2016-09-14 19:45:12 +02:00
kernel_math.h Cleanup: Move texture definitions to util, to avoid bad level include. 2016-04-15 23:02:44 +02:00
kernel_montecarlo.h Cycles code refactor: minor refactoring and comments for volume code. 2014-03-29 13:03:49 +01:00
kernel_passes.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_branched.h Cycles: Cleanup, indentation 2016-08-25 12:33:07 +02:00
kernel_path_common.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_path_state.h Fix T49078: Cycles tries to render volume from another render layer when camera is in volume 2016-08-25 10:55:59 +02:00
kernel_path_surface.h Cycles: Use correct light sampling PDF for MIS calculation with Branched Path Tracing 2016-09-25 23:16:05 +02:00
kernel_path_volume.h Cycles: Use correct light sampling PDF for MIS calculation with Branched Path Tracing 2016-09-25 23:16:05 +02:00
kernel_path.h Cycles: Recent SSS inline changes broke CPU tests 2016-08-03 15:27:48 +02:00
kernel_projection.h Cycles: Tweaks to support CUDA 8 toolkit 2016-08-01 15:54:29 +02:00
kernel_queues.h Cycles: Code cleanup in split kernel, whitespaces 2015-07-03 11:03:56 +02:00
kernel_random.h Cycles: Fix/workaround for missing AA on Pascal (GTX10x0) cards 2016-08-23 16:32:09 +02:00
kernel_shader.h Cycles: Also support the constant emission speedup for mesh lights 2016-09-14 18:53:35 +02:00
kernel_shadow.h Cycles: Make code more uniform across two versions of shadow_blocked() 2016-09-21 11:50:11 +02:00
kernel_subsurface.h Cycles: Fix wrong SSS in combination with hair on AVX2 platform 2016-09-12 12:48:35 +02:00
kernel_textures.h Fix Cycles OpenCL textures after recent CUDA fix. 2016-08-15 16:28:48 +02:00
kernel_types.h Cycles: Cleanup, whitespace 2016-09-21 14:42:05 +02:00
kernel_volume.h Cycles: Also support the constant emission speedup for mesh lights 2016-09-14 18:53:35 +02:00
kernel_work_stealing.h Cycles: Cleanup, indent nested preprocessor directives 2016-03-25 13:55:42 +01:00
kernel.h Cycles: Deduplicte CPU kernel declaration and definition code 2015-12-30 17:54:02 +05:00