blender/intern/cycles/render/CMakeLists.txt
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

81 lines
946 B
CMake

set(INC
.
../device
../kernel
../kernel/svm
../kernel/osl
../bvh
../util
../../glew-mx
)
set(INC_SYS
${GLEW_INCLUDE_DIR}
)
set(SRC
attribute.cpp
background.cpp
bake.cpp
buffers.cpp
camera.cpp
film.cpp
graph.cpp
image.cpp
integrator.cpp
light.cpp
mesh.cpp
mesh_displace.cpp
nodes.cpp
object.cpp
osl.cpp
particles.cpp
curves.cpp
scene.cpp
session.cpp
shader.cpp
sky_model.cpp
sobol.cpp
svm.cpp
tables.cpp
tile.cpp
)
set(SRC_HEADERS
attribute.h
bake.h
background.h
buffers.h
camera.h
film.h
graph.h
image.h
integrator.h
light.h
mesh.h
nodes.h
object.h
osl.h
particles.h
curves.h
scene.h
session.h
shader.h
sky_model.h
sky_model_data.h
sobol.h
svm.h
tables.h
tile.h
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}")
include_directories(${INC})
include_directories(SYSTEM ${INC_SYS})
add_definitions(${GL_DEFINITIONS})
add_library(cycles_render ${SRC} ${SRC_HEADERS})