Skip to content

Commit 29d41a5

Browse files
committed
- We no longer need to recreate instancers when refining proxy meshes.
1 parent 017a7d7 commit 29d41a5

File tree

1 file changed

+2
-44
lines changed

1 file changed

+2
-44
lines changed

Source/HoudiniEngine/Private/HoudiniOutputTranslator.cpp

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -812,9 +812,6 @@ FHoudiniOutputTranslator::BuildStaticMeshesOnHoudiniProxyMeshOutputs(
812812

813813
// Keep track of all generated houdini materials to avoid recreating them over and over
814814
TMap<FHoudiniMaterialIdentifier, TObjectPtr<UMaterialInterface>> AllOutputMaterials;
815-
816-
bool bFoundProxies = false;
817-
TArray<UHoudiniOutput*> InstancerOutputs;
818815
for(int Idx = 0; Idx < HC->GetNumOutputs(); Idx++)
819816
{
820817
UHoudiniOutput* CurOutput = HC->GetOutputAt(Idx);
@@ -826,7 +823,6 @@ FHoudiniOutputTranslator::BuildStaticMeshesOnHoudiniProxyMeshOutputs(
826823
{
827824
if (CurOutput->HasAnyCurrentProxy())
828825
{
829-
bFoundProxies = true;
830826
FHoudiniMeshTranslator::CreateAllMeshesAndComponentsFromHoudiniOutput(
831827
CurOutput,
832828
PackageParams,
@@ -841,20 +837,6 @@ FHoudiniOutputTranslator::BuildStaticMeshesOnHoudiniProxyMeshOutputs(
841837
);
842838
}
843839
}
844-
else if (OutputType == EHoudiniOutputType::Instancer)
845-
{
846-
for (auto& CurOutputObject : CurOutput->OutputObjects)
847-
{
848-
if (CurOutputObject.Value.ProxyComponent != nullptr
849-
|| CurOutputObject.Value.ProxyObject != nullptr)
850-
{
851-
// This is a single instance instancer (a mesh)
852-
// that will need to be rebuilt
853-
InstancerOutputs.Add(CurOutput);
854-
bFoundProxies = true;
855-
}
856-
}
857-
}
858840

859841
for (auto& CurMat : CurOutput->AssignmentMaterialsById)
860842
{
@@ -864,32 +846,8 @@ FHoudiniOutputTranslator::BuildStaticMeshesOnHoudiniProxyMeshOutputs(
864846
}
865847
}
866848

867-
// No proxies were found
868-
// TODO: Dont return if we found instancers???
869-
if (!bFoundProxies || InstancerOutputs.Num() <= 0)
870-
return true;
871-
872-
// We might need to also rebuild some instancer outputs (single instance instancer)
873-
// And we might need to destroy the proxies for the instancer outputs before rebuilding the instancer
874-
if (bInDestroyProxies)
875-
{
876-
for (auto& CurOutput : InstancerOutputs)
877-
{
878-
for (auto& CurOutputObject : CurOutput->OutputObjects)
879-
{
880-
if (CurOutputObject.Value.ProxyComponent)
881-
FHoudiniMeshTranslator::RemoveAndDestroyComponent(CurOutputObject.Value.ProxyComponent);
882-
883-
if (IsValid(CurOutputObject.Value.ProxyObject))
884-
{
885-
CurOutputObject.Value.ProxyObject->MarkAsGarbage();
886-
}
887-
}
888-
}
889-
}
890-
891-
// Rebuild the instancers
892-
FHoudiniInstanceTranslator::CreateAllInstancersFromHoudiniOutputs(InstancerOutputs, HC->GetOutputs(), OuterComponent, PackageParams);
849+
// Bug: 150419
850+
// No need to recreate instancers when refining proxy meshes.
893851

894852
return true;
895853
}

0 commit comments

Comments
 (0)