blender/intern/cycles/kernel/svm
Sergey Sharybin ed5dbb0a7b Cycles: Implement extrapolation for RGB curves
Previously RGB Curves node will clamp input to 0..1 which is rather useless
when one wants to use HDR image textures and do bit of correction on them.

Now kernel code supports extrapolation of baked LUT based on first/last two
table points and performs linear extrapolation.

The only tricky part is to guess the range to bake the LUT for. Currently
it's using simple approach -- minmax of the input curves. While this behaves
ok for the simple cases it's easy to trick the system up causing incorrect
results.

Not sure we can solve those issues in a general case and since the new code
is giving more expected results it's not that bad actually. In the worst
case artist migh always create explicit point to make sure LUT is created
for the needed HDR range.

Reviewers: brecht, juicyfruit

Subscribers: sebastian_k

Differential Revision: https://developer.blender.org/D1658
2015-12-06 01:21:14 +05:00
..
svm_attribute.h Fix T46352: Cycles fails to render when material contains UV mapped texture as volume input 2015-10-05 14:45:03 +05:00
svm_blackbody.h Cycles: Use curve approximation for blackbody instead of lookup table 2015-05-05 06:11:54 +00:00
svm_brick.h Fix T46030: Strange behavior of Cycles Brick Texture 2015-09-18 17:32:17 +05:00
svm_brightness.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_camera.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_checker.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_closure.h Fix T45058: Cycles hair shader reflects incorrectly for meshes 2015-10-11 19:43:30 +05:00
svm_convert.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_displace.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_fresnel.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_gamma.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_geometry.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_gradient.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_hsv.h Cleanup: Typo fix in HSV code. 2015-04-04 07:50:09 +02:00
svm_image.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_invert.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_light_path.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_magic.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_mapping.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_math_util.h Cycles: Use curve approximation for blackbody instead of lookup table 2015-05-05 06:11:54 +00:00
svm_math.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_mix.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_musgrave.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_noise.h Cleanup: Remove some unused / unreferenced functions for perdiodic perlin noise. 2014-10-03 18:00:45 +02:00
svm_noisetex.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_normal.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_ramp.h Cycles: Implement extrapolation for RGB curves 2015-12-06 01:21:14 +05:00
svm_sepcomb_hsv.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_sepcomb_vector.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_sky.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_tex_coord.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_texture.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_types.h Cleanup: spelling/style 2015-08-23 21:12:48 +10:00
svm_value.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_vector_transform.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_voronoi.h Cleanup: Remove unused Voronoi texture code. 2015-05-28 00:36:33 +02:00
svm_voxel.h Cycles: Remove redundant coordinate clipping in voxel SVM node 2015-10-05 12:41:16 +05:00
svm_wave.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_wavelength.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_wireframe.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm.h Cycles: Workaround for sm_50 on 32bit platform 2015-07-21 10:18:04 +02:00