|
Blender V4.3
|
#include <light_tree.h>
Public Types | |
| enum | Child { self = -1 , left = 0 , right = 1 } |
Public Member Functions | |
| LightTree (Scene *scene, DeviceScene *dscene, Progress &progress, 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 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 377 of file light_tree.h.
| enum LightTree::Child |
| Enumerator | |
|---|---|
| self | |
| left | |
| right | |
Definition at line 401 of file light_tree.h.
| LightTree::LightTree | ( | Scene * | scene, |
| DeviceScene * | dscene, | ||
| Progress & | progress, | ||
| uint | max_lights_in_leaf ) |
Definition at line 276 of file light_tree.cpp.
References DeviceScene::data, Progress::get_cancel(), LIGHT_BACKGROUND, LIGHT_DISTANT, light_link_receiver_used, mesh, and num_triangles.
| LightTreeNode * LightTree::build | ( | Scene * | scene, |
| DeviceScene * | dscene ) |
Definition at line 334 of file light_tree.cpp.
References LightTreeMeasure::add(), device_vector< T >::alloc(), create_node(), LightTreeMeasure::empty, Progress::get_cancel(), left, LIGHT_TREE_INSTANCE, LightTreeEmitter::measure, mesh, num_triangles, LightTreeEmitter::object_id, DeviceScene::object_lookup_offset, LightTreeMeasure::reset(), right, LightTreeEmitter::root, self, sort_leaf(), LightTreeMeasure::transform(), and TaskPool::wait_work().
Referenced by LightManager::device_update_tree().
|
inline |
|
inline |
Definition at line 424 of file light_tree.h.
Referenced by LightManager::device_update_tree().
|
inline |
Definition at line 419 of file light_tree.h.
Referenced by LightManager::device_update_tree().
| uint64_t LightTree::light_link_receiver_used = 1 |
Definition at line 398 of file light_tree.h.
Referenced by LightManager::device_update_tree(), and LightTree().
| std::atomic<int> LightTree::num_nodes = 0 |
Definition at line 394 of file light_tree.h.
Referenced by create_node(), and LightManager::device_update_tree().
| size_t LightTree::num_triangles = 0 |
Definition at line 395 of file light_tree.h.
Referenced by build(), LightManager::device_update_tree(), and LightTree().