|
Blender V5.0
|
#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_prim_offsets (Device *device, DeviceScene *dscene, Scene *scene) |
| void | device_update_flags (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress, bool bounds_valid=true) |
| void | device_update_geom_offsets (Device *device, DeviceScene *dscene, Scene *scene) |
| void | device_free (Device *device, DeviceScene *dscene, bool force_free) |
| void | tag_update (Scene *scene, const 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, const Scene *scene) |
| void | device_update_object_transform_task (UpdateObjectTransformState *state) |
| bool | device_update_object_transform_pop_work (UpdateObjectTransformState *state, int *start_index, int *num_objects) |
Definition at line 137 of file scene/object.h.
| anonymous enum : uint32_t |
| Enumerator | |
|---|---|
| PARTICLE_MODIFIED | |
| GEOMETRY_MANAGER | |
| MOTION_BLUR_MODIFIED | |
| OBJECT_ADDED | |
| OBJECT_REMOVED | |
| OBJECT_MODIFIED | |
| HOLDOUT_MODIFIED | |
| TRANSFORM_MODIFIED | |
| VISIBILITY_MODIFIED | |
| UPDATE_ALL | |
| UPDATE_NONE | |
Definition at line 141 of file scene/object.h.
| ObjectManager::ObjectManager | ( | ) |
Definition at line 446 of file scene/object.cpp.
References need_flags_update, and UPDATE_ALL.
|
default |
| void ObjectManager::apply_static_transforms | ( | DeviceScene * | dscene, |
| Scene * | scene, | ||
| Progress & | progress ) |
Definition at line 1004 of file scene/object.cpp.
References device_vector< T >::data(), Progress::get_cancel(), Geometry::has_surface_bssrdf, Geometry::has_true_displacement(), i, Geometry::is_hair(), Geometry::is_mesh(), Geometry::is_pointcloud(), Scene::MOTION_BLUR, Scene::MOTION_PASS, Scene::need_motion(), DeviceScene::object_flag, Scene::objects, SD_OBJECT_TRANSFORM_APPLIED, Mesh::SUBDIVISION_NONE, Geometry::transform_applied, transform_uniform_scale(), and Object::use_motion().
Referenced by ~ObjectManager().
| void ObjectManager::device_free | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| bool | force_free ) |
Definition at line 995 of file scene/object.cpp.
References device_vector< T >::free_if_need_realloc(), DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, DeviceScene::object_prim_offset, and DeviceScene::objects.
Referenced by device_update(), and ~ObjectManager().
| void ObjectManager::device_update | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene, | ||
| Progress & | progress ) |
Definition at line 769 of file scene/object.cpp.
References DeviceScene::data, device_free(), device_update_transforms(), unique_ptr_vector< T >::empty(), HOLDOUT_MODIFIED, Node::is_modified(), LIGHT_BACKGROUND, LOG_INFO, need_update(), OBJECT_ADDED, DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, OBJECT_REMOVED, DeviceScene::objects, Scene::objects, PARTICLE_MODIFIED, Progress::set_status(), unique_ptr_vector< T >::size(), device_vector< T >::tag_modified(), device_vector< T >::tag_realloc(), timer, Scene::update_stats, Scene::volume_manager, and DeviceScene::volume_step_size.
Referenced by ~ObjectManager().
| void ObjectManager::device_update_flags | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene, | ||
| Progress & | progress, | ||
| bool | bounds_valid = true ) |
Definition at line 858 of file scene/object.cpp.
References ATTR_ELEMENT_VOXEL, Object::attributes, Object::bounds, device_vector< T >::clear_modified(), device_vector< T >::copy_to_device(), device_vector< T >::data(), Attribute::element, unique_ptr_vector< T >::empty(), BoundBox::intersects(), need_flags_update, need_update(), DeviceScene::object_flag, Scene::objects, SD_OBJECT_HAS_VOLUME, SD_OBJECT_HAS_VOLUME_ATTRIBUTES, SD_OBJECT_INTERSECTS_VOLUME, SD_OBJECT_SHADOW_CATCHER, timer, UPDATE_NONE, and Scene::update_stats.
Referenced by ~ObjectManager().
| void ObjectManager::device_update_geom_offsets | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene ) |
Definition at line 954 of file scene/object.cpp.
References Geometry::attr_map_offset, KernelObject::attribute_map_offset, device_vector< T >::copy_to_device(), device_vector< T >::data(), KernelObject::numverts, object_num_motion_verts(), DeviceScene::objects, Scene::objects, device_vector< T >::size(), and update().
Referenced by ~ObjectManager().
|
protected |
Definition at line 475 of file scene/object.cpp.
References KernelObject::alpha, KernelObject::ao_distance, ATTR_STD_MOTION_VERTEX_POSITION, ATTR_STD_VOLUME_VELOCITY, KernelObject::attribute_map_offset, Geometry::attributes, KernelObject::blocker_shadow_set, KernelObject::color, Object::color, KernelObject::cryptomatte_asset, KernelObject::cryptomatte_object, Object::data, KernelObject::dupli_generated, KernelObject::dupli_uv, AttributeSet::find(), flag, float, Object::index, Geometry::is_hair(), Geometry::is_mesh(), Geometry::is_pointcloud(), Geometry::is_volume(), KernelObject::itfm, LIGHT_LINK_SET_MAX, KernelObject::light_set_membership, KernelObject::lightgroup, Object::lightgroup, LIGHTGROUP_NONE, Scene::lightgroups, Scene::MOTION_BLUR, KernelObject::motion_offset, Scene::MOTION_PASS, Node::name, KernelObject::num_geom_steps, KernelObject::num_tfm_steps, KernelObject::numverts, OBJECT_MOTION_PASS_SIZE, object_num_motion_verts(), object_volume_density(), KernelObject::particle_index, particle_index(), KernelObject::pass_id, Geometry::primitive_type(), KernelObject::primitive_type, KernelObject::random_number, KernelObject::receiver_light_set, SD_OBJECT_CAUSTICS_CASTER, SD_OBJECT_CAUSTICS_RECEIVER, SD_OBJECT_HAS_VERTEX_MOTION, SD_OBJECT_HAS_VOLUME_MOTION, SD_OBJECT_HOLDOUT_MASK, SD_OBJECT_MOTION, SD_OBJECT_NEGATIVE_SCALE, KernelObject::shadow_set_membership, KernelObject::shadow_terminator_geometry_offset, Object::shadow_terminator_geometry_offset, KernelObject::shadow_terminator_shading_offset, Object::shadow_terminator_shading_offset, state, Mesh::subd_attributes, Mesh::SUBDIVISION_NONE, KernelObject::tfm, transform_inverse(), transform_motion_decompose(), transform_negative_scale(), Object::update_motion(), Object::use_motion(), util_hash_to_float(), util_murmur_hash3(), KernelObject::velocity_scale, KernelObject::visibility, Object::visibility_for_tracing(), KernelObject::volume_density, float3::x, float3::y, and float3::z.
Referenced by ~ObjectManager().
|
protected |
References state.
|
protected |
References state.
| void ObjectManager::device_update_prim_offsets | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene ) |
Definition at line 654 of file scene/object.cpp.
References device_vector< T >::alloc(), BVH_LAYOUT_HIPRT, BVH_LAYOUT_METAL, BVH_LAYOUT_MULTI_HIPRT, BVH_LAYOUT_MULTI_HIPRT_EMBREE, BVH_LAYOUT_MULTI_METAL, BVH_LAYOUT_MULTI_METAL_EMBREE, device_vector< T >::clear_modified(), device_vector< T >::copy_to_device(), DeviceScene::data, Device::get_bvh_layout_mask(), Object::get_device_index(), Scene::integrator, DeviceScene::object_prim_offset, Scene::objects, and unique_ptr_vector< T >::size().
Referenced by ~ObjectManager().
| void ObjectManager::device_update_transforms | ( | DeviceScene * | dscene, |
| Scene * | scene, | ||
| Progress & | progress ) |
Definition at line 687 of file scene/object.cpp.
References device_vector< T >::alloc(), Scene::MOTION_BLUR, Scene::MOTION_PASS, Scene::need_motion(), device_vector< T >::need_realloc(), DeviceScene::object_flag, DeviceScene::object_motion, DeviceScene::object_motion_pass, OBJECT_MOTION_PASS_SIZE, DeviceScene::objects, Scene::objects, Scene::particle_systems, ParticleSystem::particles, ParticleData::size, unique_ptr_vector< T >::size(), state, and Object::update_motion().
Referenced by device_update(), and ~ObjectManager().
| string ObjectManager::get_cryptomatte_assets | ( | Scene * | scene | ) |
Definition at line 1129 of file scene/object.cpp.
References Scene::objects, string_printf(), and util_murmur_hash3().
Referenced by ~ObjectManager().
| string ObjectManager::get_cryptomatte_objects | ( | Scene * | scene | ) |
Definition at line 1112 of file scene/object.cpp.
References Node::name, Scene::objects, string_printf(), and util_murmur_hash3().
Referenced by ~ObjectManager().
| bool ObjectManager::need_update | ( | ) | const |
Definition at line 1107 of file scene/object.cpp.
References UPDATE_NONE.
Referenced by device_update(), device_update_flags(), Film::update_passes(), and ~ObjectManager().
| void ObjectManager::tag_update | ( | Scene * | scene, |
| const uint32_t | flag ) |
Definition at line 1074 of file scene/object.cpp.
References flag, GeometryManager::GEOMETRY_ADDED, GEOMETRY_MANAGER, Scene::geometry_manager, GeometryManager::GEOMETRY_REMOVED, Scene::integrator, Scene::light_manager, OBJECT_ADDED, GeometryManager::OBJECT_MANAGER, Integrator::OBJECT_MANAGER, LightManager::OBJECT_MANAGER, OBJECT_MODIFIED, OBJECT_REMOVED, Integrator::tag_update(), GeometryManager::TRANSFORM_MODIFIED, TRANSFORM_MODIFIED, GeometryManager::VISIBILITY_MODIFIED, and VISIBILITY_MODIFIED.
| bool ObjectManager::need_flags_update |
Definition at line 158 of file scene/object.h.
Referenced by device_update_flags(), and ObjectManager().