|
Blender
V2.93
|
#include <object.h>
Public Types | |
| enum | : uint32_t { PARTICLE_MODIFIED = (1 << 0) , GEOMETRY_MANAGER = (1 << 1) , MOTION_BLUR_MODIFIED = (1 << 2) , OBJECT_ADDED = (1 << 3) , OBJECT_REMOVED = (1 << 4) , OBJECT_MODIFIED = (1 << 5) , HOLDOUT_MODIFIED = (1 << 6) , TRANSFORM_MODIFIED = (1 << 7) , VISIBILITY_MODIFIED = (1 << 8) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u } |
Public Member Functions | |
| ObjectManager () | |
| ~ObjectManager () | |
| void | device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
| void | device_update_transforms (DeviceScene *dscene, Scene *scene, Progress &progress) |
| void | device_update_flags (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress, bool bounds_valid=true) |
| void | device_update_mesh_offsets (Device *device, DeviceScene *dscene, Scene *scene) |
| void | device_free (Device *device, DeviceScene *dscene, bool force_free) |
| void | tag_update (Scene *scene, uint32_t flag) |
| bool | need_update () const |
| void | apply_static_transforms (DeviceScene *dscene, Scene *scene, Progress &progress) |
| string | get_cryptomatte_objects (Scene *scene) |
| string | get_cryptomatte_assets (Scene *scene) |
Public Attributes | |
| bool | need_flags_update |
Protected Member Functions | |
| void | device_update_object_transform (UpdateObjectTransformState *state, Object *ob, bool update_all) |
| void | device_update_object_transform_task (UpdateObjectTransformState *state) |
| bool | device_update_object_transform_pop_work (UpdateObjectTransformState *state, int *start_index, int *num_objects) |
| anonymous enum : uint32_t |
| ObjectManager::ObjectManager | ( | ) |
Definition at line 376 of file object.cpp.
References need_flags_update, and UPDATE_ALL.
| ObjectManager::~ObjectManager | ( | ) |
Definition at line 382 of file object.cpp.
| void ObjectManager::apply_static_transforms | ( | DeviceScene * | dscene, |
| Scene * | scene, | ||
| Progress & | progress | ||
| ) |
Definition at line 835 of file object.cpp.
References device_vector< T >::data(), Geometry::geometry_type, Progress::get_cancel(), Geometry::HAIR, Geometry::has_surface_bssrdf, Geometry::has_true_displacement(), Geometry::MESH, mesh, Scene::MOTION_BLUR, Scene::MOTION_PASS, Scene::need_motion(), DeviceScene::object_flag, Scene::objects, scene, SD_OBJECT_NEGATIVE_SCALE_APPLIED, SD_OBJECT_TRANSFORM_APPLIED, Mesh::SUBDIVISION_NONE, Geometry::transform_applied, Geometry::transform_negative_scaled, transform_uniform_scale(), and Object::use_motion().
| void ObjectManager::device_free | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| bool | force_free | ||
| ) |
Definition at line 826 of file object.cpp.
References device_vector< T >::free_if_need_realloc(), DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, DeviceScene::object_volume_step, and DeviceScene::objects.
Referenced by device_update(), and Scene::free_memory().
| void ObjectManager::device_update | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene, | ||
| Progress & | progress | ||
| ) |
Definition at line 604 of file object.cpp.
References device_free(), HOLDOUT_MODIFIED, Node::is_modified(), need_update(), OBJECT_ADDED, DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, OBJECT_REMOVED, DeviceScene::object_volume_step, DeviceScene::objects, Scene::objects, PARTICLE_MODIFIED, scene, device_vector< T >::tag_modified(), device_vector< T >::tag_realloc(), time, Scene::update_stats, and VLOG.
Referenced by Scene::device_update().
| void ObjectManager::device_update_flags | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene, | ||
| Progress & | progress, | ||
| bool | bounds_valid = true |
||
| ) |
Definition at line 694 of file object.cpp.
References need_flags_update, need_update(), scene, time, and Scene::update_stats.
Referenced by Scene::device_update().
| void ObjectManager::device_update_mesh_offsets | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene | ||
| ) |
Definition at line 781 of file object.cpp.
References Geometry::attr_map_offset, KernelObject::attribute_map_offset, device_vector< T >::copy_to_device(), device_vector< T >::data(), Geometry::geometry_type, if(), Object::index, Geometry::MESH, mesh, PackedPatchTable::num_nodes, DeviceScene::objects, Scene::objects, KernelObject::patch_map_offset, PATCH_NODE_SIZE, scene, device_vector< T >::size(), PackedPatchTable::total_size(), and update().
Referenced by GeometryManager::device_update_attributes().
|
protected |
Definition at line 399 of file object.cpp.
References ATTR_STD_MOTION_VERTEX_POSITION, KernelObject::attribute_map_offset, Geometry::attributes, KernelObject::color, Object::color, KernelObject::cryptomatte_asset, KernelObject::cryptomatte_object, Object::data, KernelObject::dupli_generated, KernelObject::dupli_uv, AttributeSet::find(), float(), Geometry::geometry_type, Geometry::HAIR, Object::index, KernelObject::itfm, Geometry::MESH, mesh, Scene::MOTION_BLUR, KernelObject::motion_offset, Scene::MOTION_PASS, Node::name, KernelObject::numkeys, KernelObject::numsteps, KernelObject::numverts, OBJECT_MOTION_PASS_SIZE, object_volume_density(), particle_index(), KernelObject::particle_index, KernelObject::pass_id, KernelObject::patch_map_offset, KernelObject::random_number, SD_OBJECT_HAS_VERTEX_MOTION, SD_OBJECT_HOLDOUT_MASK, SD_OBJECT_MOTION, KernelObject::shadow_terminator_offset, Mesh::size, state, KernelObject::tfm, transform_inverse(), transform_motion_decompose(), Object::update_motion(), Object::use_motion(), util_hash_to_float(), util_murmur_hash3(), Geometry::VOLUME, KernelObject::volume_density, float3::x, float3::y, and float3::z.
|
protected |
|
protected |
| void ObjectManager::device_update_transforms | ( | DeviceScene * | dscene, |
| Scene * | scene, | ||
| Progress & | progress | ||
| ) |
Definition at line 525 of file object.cpp.
References device_vector< T >::alloc(), Scene::MOTION_BLUR, Scene::MOTION_PASS, Scene::need_motion(), device_vector< T >::need_realloc(), NULL, DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, OBJECT_MOTION_PASS_SIZE, DeviceScene::object_volume_step, DeviceScene::objects, Scene::objects, blender::parallel_for(), Scene::particle_systems, ParticleSystem::particles, r, scene, ParticleData::size, state, and Object::update_motion().
| string ObjectManager::get_cryptomatte_assets | ( | Scene * | scene | ) |
Definition at line 953 of file object.cpp.
References Scene::objects, scene, string_printf(), and util_murmur_hash3().
Referenced by BlenderSession::stamp_view_layer_metadata().
| string ObjectManager::get_cryptomatte_objects | ( | Scene * | scene | ) |
Definition at line 936 of file object.cpp.
References Node::name, Scene::objects, scene, string_printf(), and util_murmur_hash3().
Referenced by BlenderSession::stamp_view_layer_metadata().
| bool ObjectManager::need_update | ( | ) | const |
Definition at line 931 of file object.cpp.
References UPDATE_NONE.
Referenced by device_update(), device_update_flags(), and Scene::need_data_update().
Definition at line 903 of file object.cpp.
References GeometryManager::GEOMETRY_ADDED, GEOMETRY_MANAGER, Scene::geometry_manager, GeometryManager::GEOMETRY_REMOVED, Scene::light_manager, OBJECT_ADDED, GeometryManager::OBJECT_MANAGER, LightManager::OBJECT_MANAGER, OBJECT_REMOVED, scene, GeometryManager::tag_update(), LightManager::tag_update(), GeometryManager::TRANSFORM_MODIFIED, TRANSFORM_MODIFIED, GeometryManager::VISIBILITY_MODIFIED, and VISIBILITY_MODIFIED.
Referenced by Scene::create_node(), Scene::delete_node_impl(), Scene::delete_nodes(), Scene::reset(), Object::tag_update(), GeometryManager::tag_update(), and Integrator::tag_update().
| bool ObjectManager::need_flags_update |
Definition at line 145 of file object.h.
Referenced by device_update_flags(), ObjectManager(), and Shader::tag_update().