|
Blender V5.0
|
#include <light_tree.h>
Public Types | |
| enum | Child { self = -1 , left = 0 , right = 1 } |
Public Member Functions | |
| LightTree (Scene *scene, DeviceScene *dscene, Progress &progress, const uint max_lights_in_leaf) | |
| LightTreeNode * | build (Scene *scene, DeviceScene *dscene) |
| unique_ptr< LightTreeNode > | create_node (const LightTreeMeasure &measure, const uint &bit_trial) |
| size_t | num_emitters () const |
| const LightTreeEmitter * | get_emitters () const |
Public Attributes | |
| std::atomic< int > | num_nodes = 0 |
| size_t | num_triangles = 0 |
| uint64_t | light_link_receiver_used = 1 |
Definition at line 385 of file light_tree.h.
| enum LightTree::Child |
| Enumerator | |
|---|---|
| self | |
| left | |
| right | |
Definition at line 409 of file light_tree.h.
| LightTree::LightTree | ( | Scene * | scene, |
| DeviceScene * | dscene, | ||
| Progress & | progress, | ||
| const uint | max_lights_in_leaf ) |
Definition at line 284 of file light_tree.cpp.
References DeviceScene::data, if(), and Scene::objects.
| LightTreeNode * LightTree::build | ( | Scene * | scene, |
| DeviceScene * | dscene ) |
Definition at line 339 of file light_tree.cpp.
References LightTreeMeasure::add(), device_vector< T >::alloc(), create_node(), LightTreeMeasure::empty, i, left, LIGHT_TREE_INSTANCE, LightTreeEmitter::measure, LightTreeNode::measure, num_triangles, Mesh::num_triangles(), LightTreeEmitter::object_id, DeviceScene::object_lookup_offset, Scene::objects, LightTreeMeasure::reset(), right, LightTreeEmitter::root, self, unique_ptr_vector< T >::size(), sort_leaf(), LightTreeMeasure::transform(), Geometry::transform_applied, and LightTreeNode::type.
Referenced by LightManager::device_update_tree().
|
inline |
|
inline |
Definition at line 432 of file light_tree.h.
Referenced by LightManager::device_update_tree().
|
inline |
Definition at line 427 of file light_tree.h.
Referenced by LightManager::device_update_tree().
| uint64_t LightTree::light_link_receiver_used = 1 |
Definition at line 406 of file light_tree.h.
Referenced by LightManager::device_update_tree().
| std::atomic<int> LightTree::num_nodes = 0 |
Definition at line 402 of file light_tree.h.
Referenced by create_node(), and LightManager::device_update_tree().
| size_t LightTree::num_triangles = 0 |
Definition at line 403 of file light_tree.h.
Referenced by build(), and LightManager::device_update_tree().