diff options
author | Sv. Lockal <lockalsash@gmail.com> | 2015-05-05 09:11:54 +0300 |
---|---|---|
committer | Sv. Lockal <lockalsash@gmail.com> | 2015-05-05 09:11:54 +0300 |
commit | 7201f6d14c0161ad9a0d4143d1c5caf872e0d93e (patch) | |
tree | cf3d0b69ed4a1ad54a42c4c9322df396ab3e2a0e /intern/cycles/render/graph.h | |
parent | 22bbd1c51219aafb40adb3e9a206f660a621fd70 (diff) |
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
Diffstat (limited to 'intern/cycles/render/graph.h')
-rw-r--r-- | intern/cycles/render/graph.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h index 301938aa158..7817a4cdc6d 100644 --- a/intern/cycles/render/graph.h +++ b/intern/cycles/render/graph.h @@ -194,7 +194,6 @@ public: virtual bool has_surface_emission() { return false; } virtual bool has_surface_transparent() { return false; } virtual bool has_surface_bssrdf() { return false; } - virtual bool has_converter_blackbody() { return false; } virtual bool has_bssrdf_bump() { return false; } virtual bool has_spatial_varying() { return false; } virtual bool has_object_dependency() { return false; } |