forked from blender/blender
Support several instancers on one object #24
@ -17,12 +17,12 @@ namespace blender::render::hydra {
|
||||
LightData::LightData(BlenderSceneDelegate *scene_delegate, Object *object)
|
||||
: ObjectData(scene_delegate, object)
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s id=%s", id->name, p_id.GetText());
|
||||
ID_LOG(2, "");
|
||||
}
|
||||
|
||||
void LightData::init()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
|
||||
Light *light = (Light *)((Object *)id)->data;
|
||||
data.clear();
|
||||
@ -154,19 +154,19 @@ bool LightData::update_visibility(View3D *view3d)
|
||||
|
||||
void LightData::insert()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().InsertSprim(p_type, scene_delegate, p_id);
|
||||
}
|
||||
|
||||
void LightData::remove()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().RemoveSprim(p_type, p_id);
|
||||
}
|
||||
|
||||
void LightData::update()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
|
||||
Light *light = (Light *)((Object *)id)->data;
|
||||
if (prim_type(light) != p_type) {
|
||||
|
@ -42,12 +42,12 @@ MaterialData::MaterialData(BlenderSceneDelegate *scene_delegate, Material *mater
|
||||
: IdData(scene_delegate, (ID *)material)
|
||||
{
|
||||
p_id = prim_id(scene_delegate, material);
|
||||
CLOG_INFO(LOG_BSD, 2, "%s, id=%s", id->name, p_id.GetText());
|
||||
ID_LOG(2, "");
|
||||
}
|
||||
|
||||
void MaterialData::init()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
|
||||
material_network_map = pxr::VtValue();
|
||||
|
||||
@ -84,7 +84,7 @@ void MaterialData::init()
|
||||
PyGILState_Release(gstate);
|
||||
|
||||
mtlx_path = pxr::SdfAssetPath(path, path);
|
||||
CLOG_INFO(LOG_BSD, 2, "Export: %s, mtlx=%s", id->name, mtlx_path.GetResolvedPath().c_str());
|
||||
ID_LOG(2, "mtlx=%s", mtlx_path.GetResolvedPath().c_str());
|
||||
}
|
||||
|
||||
pxr::VtValue MaterialData::get_data(pxr::TfToken const &key) const
|
||||
@ -94,7 +94,7 @@ pxr::VtValue MaterialData::get_data(pxr::TfToken const &key) const
|
||||
if (!mtlx_path.GetResolvedPath().empty()) {
|
||||
ret = mtlx_path;
|
||||
}
|
||||
CLOG_INFO(LOG_BSD, 3, "%s", key.GetText());
|
||||
ID_LOG(3, "%s", key.GetText());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -121,20 +121,20 @@ pxr::VtValue MaterialData::material_resource()
|
||||
|
||||
void MaterialData::insert()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().InsertSprim(
|
||||
pxr::HdPrimTypeTokens->material, scene_delegate, p_id);
|
||||
}
|
||||
|
||||
void MaterialData::remove()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().RemoveSprim(pxr::HdPrimTypeTokens->material, p_id);
|
||||
}
|
||||
|
||||
void MaterialData::update()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
init();
|
||||
scene_delegate->GetRenderIndex().GetChangeTracker().MarkSprimDirty(p_id,
|
||||
pxr::HdMaterial::AllDirty);
|
||||
|
@ -18,7 +18,7 @@ namespace blender::render::hydra {
|
||||
MeshData::MeshData(BlenderSceneDelegate *scene_delegate, Object *object)
|
||||
: ObjectData(scene_delegate, object), mat_data(nullptr)
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s, id=%s", id->name, p_id.GetText());
|
||||
ID_LOG(2, "");
|
||||
}
|
||||
|
||||
pxr::VtValue MeshData::get_data(pxr::TfToken const &key) const
|
||||
@ -167,7 +167,7 @@ void MeshData::set_material()
|
||||
|
||||
void MeshData::init()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
|
||||
Object *object = (Object *)id;
|
||||
if (object->type == OB_MESH && object->mode == OB_MODE_OBJECT &&
|
||||
@ -191,7 +191,7 @@ void MeshData::insert()
|
||||
return;
|
||||
}
|
||||
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().InsertRprim(pxr::HdPrimTypeTokens->mesh, scene_delegate, p_id);
|
||||
}
|
||||
|
||||
@ -201,7 +201,7 @@ void MeshData::remove()
|
||||
return;
|
||||
}
|
||||
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().RemoveRprim(p_id);
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ void MeshData::update()
|
||||
remove();
|
||||
return;
|
||||
}
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().GetChangeTracker().MarkRprimDirty(p_id, bits);
|
||||
}
|
||||
|
||||
|
@ -47,12 +47,12 @@ WorldData::WorldData(BlenderSceneDelegate *scene_delegate, World *world, bContex
|
||||
: IdData(scene_delegate, (ID *)world), context(context)
|
||||
{
|
||||
p_id = prim_id(scene_delegate);
|
||||
CLOG_INFO(LOG_BSD, 2, "%s, id=%s", id->name, p_id.GetText());
|
||||
ID_LOG(2, "");
|
||||
}
|
||||
|
||||
void WorldData::init()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
|
||||
World *world = (World *)id;
|
||||
data.clear();
|
||||
@ -150,20 +150,20 @@ pxr::VtValue WorldData::get_data(pxr::TfToken const &key) const
|
||||
|
||||
void WorldData::insert()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().InsertSprim(
|
||||
pxr::HdPrimTypeTokens->domeLight, scene_delegate, p_id);
|
||||
}
|
||||
|
||||
void WorldData::remove()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
scene_delegate->GetRenderIndex().RemoveSprim(pxr::HdPrimTypeTokens->domeLight, p_id);
|
||||
}
|
||||
|
||||
void WorldData::update()
|
||||
{
|
||||
CLOG_INFO(LOG_BSD, 2, "%s", id->name);
|
||||
ID_LOG(2, "");
|
||||
init();
|
||||
scene_delegate->GetRenderIndex().GetChangeTracker().MarkSprimDirty(p_id, pxr::HdLight::AllDirty);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user