Blender Git Loki
Git Commits -> Revision 7201f6d
Revision 7201f6d by Sv. Lockal (master) May 5, 2015, 06:11 (GMT) |
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 |
Commit Details:
Full Hash: 7201f6d14c0161ad9a0d4143d1c5caf872e0d93e
Parent Commit: 22bbd1c
Lines Changed: +76, -258
2 Deleted Paths:
/intern/cycles/render/blackbody.cpp (+0, -140)
/intern/cycles/render/blackbody.h (+0, -28)
/intern/cycles/render/blackbody.h (+0, -28)
11 Modified Paths:
/intern/cycles/kernel/kernel_types.h (+1, -8) (Diff)
/intern/cycles/kernel/svm/svm.h (+2, -1) (Diff)
/intern/cycles/kernel/svm/svm_blackbody.h (+1, -37) (Diff)
/intern/cycles/kernel/svm/svm_math_util.h (+62, -0) (Diff)
/intern/cycles/render/CMakeLists.txt (+0, -2) (Diff)
/intern/cycles/render/graph.h (+0, -1) (Diff)
/intern/cycles/render/nodes.cpp (+10, -2) (Diff)
/intern/cycles/render/nodes.h (+0, -2) (Diff)
/intern/cycles/render/shader.cpp (+0, -29) (Diff)
/intern/cycles/render/shader.h (+0, -3) (Diff)
/intern/cycles/render/svm.cpp (+0, -5) (Diff)
/intern/cycles/kernel/svm/svm.h (+2, -1) (Diff)
/intern/cycles/kernel/svm/svm_blackbody.h (+1, -37) (Diff)
/intern/cycles/kernel/svm/svm_math_util.h (+62, -0) (Diff)
/intern/cycles/render/CMakeLists.txt (+0, -2) (Diff)
/intern/cycles/render/graph.h (+0, -1) (Diff)
/intern/cycles/render/nodes.cpp (+10, -2) (Diff)
/intern/cycles/render/nodes.h (+0, -2) (Diff)
/intern/cycles/render/shader.cpp (+0, -29) (Diff)
/intern/cycles/render/shader.h (+0, -3) (Diff)
/intern/cycles/render/svm.cpp (+0, -5) (Diff)