|
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 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 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, KernelLightTreeEmitter::emission_sampling, LightTreeFlatten::emitters, KernelLightTreeEmitter::energy, LightTreeMeasure::energy, 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(), 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, 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 KernelLightTreeNode::bbox, KernelLightTreeNode::bcone, KernelLightTreeNode::bit_skip, KernelLightTreeNode::bit_trail, KernelLightTreeNode::energy, KernelLightTreeNode::first_emitter, KernelLightTreeNode::inner, KernelLightTreeNode::leaf, KernelLightTreeNode::left_child, KernelLightTreeNode::num_emitters, KernelLightTreeNode::right_child, and KernelLightTreeNode::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::Inner::children, LightTreeFlatten::emitters, LightTreeMeasure::empty, LightTreeNode::get_inner(), LightTreeNode::is_inner(), 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, and LightTreeLightLink::set_membership.
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(), NodeEnum::insert(), LIGHT_AREA, LIGHT_BACKGROUND, LIGHT_DISTANT, LIGHT_LINK_MASK_ALL, LIGHT_POINT, LIGHT_SPOT, M_PI_F, normalize(), one_float3(), 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, PRIM_NONE, SHADER_EVAL_BACKGROUND, size(), v, and x.
Referenced by LightManager::device_update_background().