bdunderscore / ndmf

MIT License
78 stars 22 forks source link

[PreviewSystem] Reconsider if renderer monitoring is needed in all cases #457

Open Tliks opened 3 weeks ago

Tliks commented 3 weeks ago

NDMF Previewの対象となっているSkinnedMeshRendererのBlendShapeの値が変更されるとIRenderFilter.Instanciateが呼ばれ負荷に繋がっています MA Scale AdjusterやTTT MLIC、AAO Remove Mesh等で確認しました

再現手順

認識に間違いがあれば申し訳ないですが、各ツールのCoputeContext.Observeの監視対象にオリジナルのSkinnedMeshRendererのBlendShapeは含まれないため、更新は入らないはずです

Scale Adjusterや特にMLICは相対的にInstanciateの負荷があるためスライダーによりBlendShapeの値を連続的に変更するときその負荷を実感できます

bdunderscore commented 3 weeks ago

現在の仕様として、ProxyObjectControllerのSetupRendererMonitoringでは、Renderer, Material, Meshなどが変化した際にProxyPipelineを再構築する処理が入っています。

とはいえ、必要がない場合もあるので、NDMF 1.6.xあたりで仕様変更を検討します。