|
Blender V4.3
|
#include "device/device.h"#include "scene/background.h"#include "scene/film.h"#include "scene/integrator.h"#include "scene/light.h"#include "scene/light_tree.h"#include "scene/mesh.h"#include "scene/object.h"#include "scene/scene.h"#include "scene/shader.h"#include "scene/shader_graph.h"#include "scene/shader_nodes.h"#include "scene/stats.h"#include "integrator/shader_eval.h"#include "util/foreach.h"#include "util/hash.h"#include "util/log.h"#include "util/path.h"#include "util/progress.h"#include "util/task.h"#include <stack>Go to the source code of this file.
Classes | |
| struct | LightTreeFlatten |
|
static |
Definition at line 904 of file scene/light.cpp.
References average(), fabs(), M_PI_F, sin_theta(), sinf, float2::x, and float2::y.
|
static |
Definition at line 666 of file scene/light.cpp.
References LightTreeNode::Inner::children, LightTreeNode::get_inner(), LightTreeNode::is_distant(), LightTreeNode::is_inner(), LightTreeNode::is_leaf(), LightTree::left, light_tree_emitters_copy_and_flatten(), light_tree_leaf_emitters_copy_and_flatten(), and LightTree::right.
Referenced by LightManager::device_update_tree(), and light_tree_emitters_copy_and_flatten().
|
static |
Definition at line 631 of file scene/light.cpp.
References LightTreeNode::Inner::children, LightTreeNode::get_inner(), LightTreeNode::is_distant(), LightTreeNode::is_inner(), LightTreeNode::is_instance(), LightTreeNode::is_leaf(), LightTree::left, light_tree_flatten(), light_tree_leaf_emitters_copy_and_flatten(), light_tree_node_copy_to_device(), and LightTree::right.
Referenced by LightManager::device_update_tree(), light_tree_flatten(), and light_tree_leaf_emitters_copy_and_flatten().
|
static |
Definition at line 534 of file scene/light.cpp.
References LightTreeMeasure::bcone, KernelLightTreeEmitter::bit_trail, KernelLightTreeNode::bit_trail, LightTreeNode::bit_trail, KernelLightTreeEmitter::emission_sampling, Shader::emission_sampling, LightTreeFlatten::emitters, KernelLightTreeEmitter::energy, LightTreeMeasure::energy, LightTreeNode::Leaf::first_emitter_index, LightTreeNode::get_leaf(), LightTreeNode::get_reference(), KernelLightTreeEmitter::id, KernelLightTreeNode::instance, LightTreeFlatten::instances, LightTreeEmitter::is_light(), LightTreeEmitter::is_mesh(), LightTreeEmitter::is_triangle(), KernelLightTreeEmitter::light, LightTreeFlatten::light_array, LightTreeEmitter::light_id, light_tree_flatten(), LIGHT_TREE_INSTANCE, LightTreeEmitter::measure, KernelLightTreeEmitter::mesh, LightTreeFlatten::mesh_array, KernelLightTreeEmitter::mesh_light, KernelLightTreeEmitter::node_id, KernelLightTreeEmitter::object_id, LightTreeEmitter::object_id, LightTreeFlatten::object_lookup_offset, OBJECT_NONE, Scene::objects, PATH_RAY_CAMERA, PATH_RAY_DIFFUSE, PATH_RAY_GLOSSY, PATH_RAY_TRANSMIT, PATH_RAY_VOLUME_SCATTER, LightTreeEmitter::prim_id, Geometry::prim_offset, KernelLightTreeNode::reference, LightTreeEmitter::root, LightTreeFlatten::scene, SHADER_EXCLUDE_CAMERA, SHADER_EXCLUDE_DIFFUSE, SHADER_EXCLUDE_GLOSSY, SHADER_EXCLUDE_SCATTER, SHADER_EXCLUDE_SHADOW_CATCHER, SHADER_EXCLUDE_TRANSMIT, KernelLightTreeEmitter::theta_e, OrientationBounds::theta_e, KernelLightTreeEmitter::theta_o, OrientationBounds::theta_o, KernelLightTreeEmitter::triangle, LightTreeFlatten::triangle_array, LightTreeNode::type, and LightTreeNode::variant_type.
Referenced by light_tree_emitters_copy_and_flatten(), and light_tree_flatten().
|
static |
Definition at line 498 of file scene/light.cpp.
References OrientationBounds::axis, KernelLightTreeNode::bbox, LightTreeMeasure::bbox, KernelLightTreeNode::bcone, LightTreeMeasure::bcone, KernelLightTreeNode::bit_skip, KernelLightTreeNode::bit_trail, LightTreeNode::bit_trail, KernelLightTreeNode::energy, LightTreeMeasure::energy, KernelLightTreeNode::first_emitter, LightTreeNode::Leaf::first_emitter_index, LightTreeNode::get_leaf(), KernelLightTreeNode::inner, LightTreeNode::is_distant(), LightTreeNode::is_inner(), LightTreeNode::is_leaf(), KernelLightTreeNode::leaf, KernelLightTreeNode::left_child, BoundBox::max, LightTreeNode::measure, BoundBox::min, KernelLightTreeNode::num_emitters, LightTreeNode::Leaf::num_emitters, KernelLightTreeNode::right_child, OrientationBounds::theta_e, OrientationBounds::theta_o, KernelLightTreeNode::type, and LightTreeNode::type.
Referenced by light_tree_flatten(), and light_tree_specialize_nodes_flatten().
|
static |
Definition at line 692 of file scene/light.cpp.
References LightTreeMeasure::add(), LightTreeNode::bit_trail, LightTreeNode::Inner::children, LightTreeFlatten::emitters, LightTreeMeasure::empty, LightTreeNode::Leaf::first_emitter_index, LightTreeNode::get_inner(), LightTreeNode::get_leaf(), LightTreeNode::is_distant(), LightTreeNode::is_inner(), LightTreeNode::is_instance(), LightTreeNode::is_leaf(), LightTree::left, LightTreeNode::light_link, LightTreeEmitter::light_set_membership, light_tree_node_copy_to_device(), light_tree_specialize_nodes_flatten(), LightTreeNode::make_distant(), LightTreeNode::make_leaf(), LightTreeEmitter::measure, LightTreeNode::measure, LightTree::right, LightTreeLightLink::set_membership, LightTreeLightLink::shareable, and LightTreeLightLink::shared_node_index.
Referenced by LightManager::device_update_tree(), and light_tree_specialize_nodes_flatten().
| NODE_DEFINE | ( | Light | ) |
Definition at line 88 of file scene/light.cpp.
References NodeType::add(), angle(), NodeEnum::insert(), LIGHT_AREA, LIGHT_BACKGROUND, LIGHT_DISTANT, LIGHT_LINK_MASK_ALL, LIGHT_POINT, LIGHT_SPOT, M_PI_F, normalize(), one_float3(), size(), SOCKET_BOOLEAN, SOCKET_COLOR, SOCKET_ENUM, SOCKET_FLOAT, SOCKET_INT, SOCKET_NODE, SOCKET_STRING, SOCKET_TRANSFORM, SOCKET_UINT, SOCKET_UINT64, and transform_identity().
|
static |
Definition at line 32 of file scene/light.cpp.
References Device::const_copy_to(), device_vector< T >::data(), DeviceScene::data, ShaderEval::eval(), KernelShaderEvalInput::object, OBJECT_NONE, KernelShaderEvalInput::prim, PRIM_NONE, SHADER_EVAL_BACKGROUND, size(), KernelShaderEvalInput::u, KernelShaderEvalInput::v, v, x, and y.
Referenced by LightManager::device_update_background().