blender/intern/cycles/kernel/svm
Sv. Lockal 7201f6d14c Cycles: Use curve approximation for blackbody instead of lookup table
Now we calculate color in range 800..12000 using an approximation a/x+bx+c for R and G and ((at + b)t + c)t + d) for B.
Max absolute error for RGB for non-lut function is less than 0.0001, which is enough to get the same 8 bit/channel color as for OSL with a noticeable performance difference.
However there is a slight visible difference between previous non-OSL implementation because of lookup table interpolation and offset-by-one mistake.
The previous implementation gave black color outside of soft range (t > 12000), now it gives the same color as for 12000.

Also blackbody node without input connected is being converted to value input at shader compile time.

Reviewers: dingto, sergey

Reviewed By: dingto

Subscribers: nutel, brecht, juicyfruit

Differential Revision: https://developer.blender.org/D1280
2015-05-05 06:11:54 +00:00
..
svm_attribute.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01: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 Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_brightness.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_camera.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_checker.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_closure.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_convert.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_displace.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_fresnel.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_gamma.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_geometry.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01: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: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_invert.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_light_path.h Cycles: Avoid float/int conversion in few places 2015-03-31 19:52:14 +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 Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05: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: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_normal.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_ramp.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +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: Fix for bump node not working with object texture mapping 2015-01-29 21:48:22 +05:00
svm_texture.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_types.h Fix T43755: Wireframe attribute doesn't work with displace 2015-02-21 17:30:29 +05:00
svm_value.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_vector_transform.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_voronoi.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_wave.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_wavelength.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_wireframe.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm.h Cycles: Use curve approximation for blackbody instead of lookup table 2015-05-05 06:11:54 +00:00