Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1


DOPnet steps vs Carbon substeps vs subsamples in an alembic cache? 2 years 1 week ago #312

  • JK
  • JK's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
  • Posts: 11
  • Thank you received: 0
Hi, In the DOP there is a global animation step setting - how does changing that interact with Carbon?
Also related to this, we have subsamples in an alembic cache. It looks like, even if our input
cache has subframe data i.e. (1001.25 1001.5 1001.75), that Carbon ignores it and is doing a
linear interpolation between the whole frames. Is this correct? If so, how can we make it read the
subframe data?

Many thanks,

Please Log in or Create an account to join the conversation.

DOPnet steps vs Carbon substeps vs subsamples in an alembic cache? 2 years 1 week ago #313

  • admin
  • admin's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 157
  • Thank you received: 20
Hi JK,
The simulation uses the DOP timestep. And is called for each of the DOP steps every frame.
The Subdivision parameter on the Carbon Simulation node determines how many internal substeps the solver performs for 1 simulation call that it gets from the DOP. Carbon will internally perform a linear interpolation per Carbon Subdivision of all animated input geometry and all animated parameters that should be linearly interpolated (not all animated parameters are interpolated; for example simulation iterations and subdivisions are not interpolated). To be clear, it does NOT pull geometry from Houdini per Simulation Subdivision!

We would recommend having the Simulation Debug Output -> "Output Console Messages" ticked, as this will print simulated frame information to the Houdini console for each and every Simulation call. This means that if you set the DOP Steps parameter to 10 and move forward one frame in the timeline, you will see that there are 10 simulated steps that print information to the Houdini Console. Carbon will use the geometry/parameters that the DOP provides for each step and then, of course, still do its internal linear interpolation between each subdivision.

This becomes a bit clearer if I give you an example.
I created a scene that just has an animated collider and I only animate it in Y direction via: ty = ($FF-1)*($FF-1). I.e. quadratic movement, so it will be at 0,1,4,9,16, etc at frames 1,2,3,4,5.
If I run the simulation with 10 Subdivisions (Carbon Simulation Subdivisions parameter), it will internally (linearly) interpolate the geometry between frames, meaning that it will work with geometry ty 0.0, 0.1, 0.2, 0.3, ... 0.8, 0.9, 1.0 during the first frame. Second frame will be interpolating between 1.0 and 4.0. So that is 1.0, 1.3, 1.6, 1.9, ..., 3.7, 4.0.
You see, while the values go up quadratically on a per frame basis, 1, 4, 9, etc. The in between is calculated linearly internally. This all is with 1 DOP step per frame.

Now, when you apply 10 DOP steps per frame, the DOP will trigger a simulation 10 times per timeline frame - one for each DOP step. So, from Carbon's perspective, we are now simulating 10 frames (with10 times smaller timestep.) Meaning that the first Carbon simulation frame gets start ty 0.0 and end ty 0.01 and linearly interpolates for each subdivision (0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009). The next simulation frame triggered by the DOP passes on an animated position of 0.04, so Carbon will again linearly interpolate. This time from 0.01 to 0.04 (0.013 0.016 0.019 0.022 0.025 0.028 0.031 0.034 0.037) So, all in all, with 1 DOP step per frame, we get 1 simulation for each frame.

And with 10 DOP steps per frame, we get 10 simulation calls per frame. Here is a graph showing the ty per simulation subdivision for the 2 scenarios:

So Carbon interpolates the data, that it receives at each DOP step call, linearly. In your scenario, where you have substeps with non-linear data, you need to make sure you call Carbon with that data (i.e. use DOP steps). Obviously, if you run a simulation with 10 DOP steps per frame, you can use less Carbon Simulation subdivisions to achieve a similar look.

Hope that helps explain how these relate.


Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.084 seconds