29 SOCKET_FLOAT(transparent_roughness_threshold,
"Transparent Roughness Threshold", 0.0f);
31 SOCKET_FLOAT(volume_step_size,
"Volume Step Size", 0.1f);
33 SOCKET_NODE(shader,
"Shader", Shader::get_node_type());
57 scene->update_stats->background.times.add_entry({
"device_update", time});
61 device_free(device, dscene);
66 KernelBackground *kbackground = &dscene->data.background;
68 kbackground->transparent = transparent;
71 if (transparent && transparent_glass) {
74 kbackground->transparent_roughness_squared_threshold =
sqr(
75 sqr(transparent_roughness_threshold));
78 kbackground->transparent_roughness_squared_threshold = -1.0f;
82 kbackground->volume_shader = kbackground->surface_shader;
86 kbackground->volume_step_size = volume_step_size *
scene->
integrator->get_volume_step_rate();
109 kbackground->lightgroup = it->second;
129 tag_use_shader_modified();
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
NODE_DECLARE Background()
void device_update(Device *device, DeviceScene *dscene, Scene *scene)
void device_free(Device *device, DeviceScene *dscene)
Shader * get_shader(const Scene *scene)
void tag_update(Scene *scene)
list< ShaderNode * > nodes
int get_shader_id(Shader *shader, bool smooth=false)
NODE_DECLARE ShaderGraph * graph
#define CCL_NAMESPACE_END
@ PATH_RAY_VOLUME_SCATTER
@ PATH_RAY_ALL_VISIBILITY
@ SHADER_EXCLUDE_TRANSMIT
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value)
Allocate a new IDProperty of type IDP_INT, set its name and value.
#define SOCKET_FLOAT(name, ui_name, default_value,...)
#define SOCKET_NODE(name, ui_name, node_type,...)
#define SOCKET_UINT(name, ui_name, default_value,...)
#define SOCKET_BOOLEAN(name, ui_name, default_value,...)
#define SOCKET_STRING(name, ui_name, default_value,...)
CCL_NAMESPACE_BEGIN NODE_DEFINE(Background)
static NodeType * add(const char *name, CreateFunc create, Type type=NONE, const NodeType *base=NULL)
void dereference_all_used_nodes()
Shader * default_background
ShaderManager * shader_manager
map< ustring, int > lightgroups
SceneUpdateStats * update_stats
ccl_device_inline float sqr(float a)