HDA with time dependent and non-time dependent outputs

   2108   4   0
User Avatar
Member
79 posts
Joined: Feb. 2008
Offline
So I have this HDA that has 2 outputs. The first output is changing values per frame, while the second is not. In this HDA, we calculate and cache a geometry that we then deform per frame and I output both the static geometry and the animated one.

Now because one output is animated, whatever I plug after the static output gets reevaluated every frame as it is tagged as animated, even though it really is not. Is there a way to tell Houdini that this specific HDA output is non time dependent so that whatever I plug after it doesn't get re-evaluated every frame?
User Avatar
Member
79 posts
Joined: Feb. 2008
Offline
BTW, I know I can plug a timeshift after that output to freeze it in time, but it feels a bit dirty and I wonder if there is another way to avoid using this workaround.
User Avatar
Member
79 posts
Joined: Feb. 2008
Offline
Anybody?
User Avatar
Member
7756 posts
Joined: Sept. 2011
Online
It doesn't matter if geometry is changing or not for it to be time dependent. Is the static node down stream of another time dependent node? An hda with multiple inputs and outputs should be able to preserve non-time dependence of an output if the non-time dependent output is only dependent on non-time dependent inputs. It shouldn't matter that one of the inputs happens to be time dependent.
User Avatar
Member
79 posts
Joined: Feb. 2008
Offline
What happens inside the HDA that is non-time dependent doesn't get re-evaluated every frame. It stays cached after first evaluation as expected. The problem is whatever I plug the HDA non-time dependent output to that gets re-evaluated every frame. That's where my issue is. That's the part that baffles me.

The only workaround I found was plugging a timeshift between that HDA output and the next SOP to force it to a non-time dependent evaluation.

As for your question, yes, we do have a time dependent input that's being used in the non-time dependent output evaluation branch, but there is a timeshift before being used in that branch, so that should force it to be non-time dependant. And again, when inspecting the performance monitor, we can see none of that branch is being re-evaluated every frame. Whatever happens inside that HDA works as expected. It's really whatever we plug that output to that's not working as expected.
  • Quick Links