two simultaneous retimer events result in position mismatch/offset
#1
Retimer gives mismatched mesh position results used on two different Tyflow events simutaneously.
So i'm working on a burger animation and have the different ingredients explode and collapse. To collapse, let's say the bottom bun falls first then the patty hits the bun nicely. I have them both rigged using particles birth per vertices and Typarticleskin applied but separated the bun and patty in two tyflow events to avoid particle bind collision issues, so it's basically two tyflow instances.
All works fine, they collide after hitting the ground surface. Somewhere at frame 12 and simulation ends at frame 30. Wanted to extend it till frame 120 for smooth slomo.
Now the issue, when i retime the Tyflow event for the bun at the bottom everything's okay but when i retime the patty on the same frame and percentage it collides half way in the air with the invisible bun below it at the initial position the bun had on frame 0 before falling. Im sure it has an explanation but I was expecting them to fall in the same place if i use the same keyframes. The retimer keys need to be offset for the 2nd event using some additional calculation? Any ideas that may help get the same collision result i was before retiming?

Update: i see the patty sits on the original hidden Bun reference model. I had to clone it for the Typarticleskin and hide it. Now if i could probably invert the colliders problem would be solved except that i can't invert them. Only works in one direction. For patty i can pick the bun skinned collider but not the otherway around. I noticed it in other scenes. I know you cannot Circle add them but only one of them should be possible both ways. Could it be a bug? Its just a 3d model with the Tyskin on it but removing the tyskin doesnt let me select it either.
  Reply
#2
It's really difficult to understand what's going on from just that explanation. Need to see a scene or playblast or something...

If you can't select something, that means there's a circular dependency somewhere. For example, if your flow is referencing an object, you can't also apply a tyParticleSkin to that object and select the flow - you need to duplicate the object and apply the tyParticleSkin to the duplicate.
  Reply
#3
(05-26-2023, 01:21 PM)tyFlow Wrote: It's really difficult to understand what's going on from just that explanation. Need to see a scene or playblast or something...

If you can't select something, that means there's a circular dependency somewhere. For example, if your flow is referencing an object, you can't also apply a tyParticleSkin to that object and select the flow - you need to duplicate the object and apply the tyParticleSkin to the duplicate.

Okay so i have managed to sort the bun and patty collision with retimer by merging both tyflows into one event. I found it is the only way for the retimer to apply equally to both objects and have them synchronized but using one event for everything has it's Pros and Cons. For example you are limited picking colliders so if you need to add more objects that have different bind soft properties and collide with each other you cant pick them all because you run into the circular referencing issue. So if i add another layer on the burger, let's say cheese object, separately it behaves ok in normal speed but activating the retimer it seems to collide with an invisible patty from a different point in time as you can see in my file. If i merge the cheese tyflow with the bun and patty into one event then i cannot pick the patty collider for the cheese also their particle bind behaviour changes drastically with same parameters, they react like way too soft bodies deinflating and collapsing. This was happening with the Bun + patty as well. So basically there's a huge difference in behaviour when retimer is enabled and i don't know how to compensate for it to get the same result or remove that patty invisible collider or control it in some way that would not interfere. It seems it belongs to the same patty falling but at a slower speed, bugs my mind.
I've also tried the Tyretimer controller for the cheese referencing the patty but it just collides in a weird way intersecting with the patty. It's important to get it right as i need to add other elements, like another layer of patty + cheese, tomatoes, salad + the top bun. I know it could be challenging but well worth it. As of now i feel it requires too much param fiddling with so many different behaviors Smile
Another thing...i noticed that using single core it takes around  20% less time to simulate than using auto on my 32cores machine (2990WX). Why would that be as it would render the pro license a bit useless at least for this project. It's very slow, like 5th day fiddling with the params to get the right behavior. Thank god it's only for my portfolio and not a customer.
Also i cant use CUDA at all as the behaviour again is crazy, cheese and bun was twisting and acting crazy no matter what params i tried never got anything similar to simulating without CUDA. Using the latest nvidia studio drivers on a 2080TI.  

Any thoughs that could put me in the right direction will be much appreciated.

Edit: particle groups may or may not be correctly configured, i just tried all different options i could but the colliding issue on retimer was the same without using groups on 1,2,3 as well, i thought i should clarify it in case it helps...you will see that if you disable the retimer for the Tyflow_cheese it then collides correctly with the patty. Same goes for that other layer i had with sesame seeds. If i want them retimed in sync with the rest i can't. in a separate Tyflow it never gets in sync, putting them in the same Tyflow event with hte Bun and Patty doesn't let me pick the Bun to bind the seeds to its body due to circular referencing restriction. I hope it makes sense. I know there must be a way around it im just too inexperienced


Attached Files
.max   Cheese_practice_scene.max (Size: 6.82 MB / Downloads: 66)
  Reply
#4
Any idea on this?
  Reply
#5
Sorry but the stream-of-consciousness style explanation you posted above is incomprehensible to me. Can you break down the issue you're having into very simple bullet points or something? I can't make sense of what you're asking. I loaded your file and the burger/patty fall down as expected. I don't know what the issue is supposed to be.

As for threading issues, are you using the latest build? Threading improvements were made recently. Either way, the sims you're running are bottlenecked by PhysX and PhysX threading works a little differently than regular tyFlow threading. Improvements were recently made in general tyFlow threading (specifically the ability to pin threads in the CPU rollout) which help prevent issues on certain AMD hardware (yours might be included there)...but I don't have the same control over PhysX threads currently, which could explain the slowdown you're experiencing.
  Reply
#6
(06-03-2023, 03:05 AM)tyFlow Wrote: Sorry but the stream-of-consciousness style explanation you posted above is incomprehensible to me. Can you break down the issue you're having into very simple bullet points or something? I can't make sense of what you're asking. I loaded your file and the burger/patty fall down as expected. I don't know what the issue is supposed to be.

As for threading issues, are you using the latest build? Threading improvements were made recently. Either way, the sims you're running are bottlenecked by PhysX and PhysX threading works a little differently than regular tyFlow threading. Improvements were recently made in general tyFlow threading (specifically the ability to pin threads in the CPU rollout) which help prevent issues on certain AMD hardware (yours might be included there)...but I don't have the same control over PhysX threads currently, which could explain the slowdown you're experiencing.

Okay, i'll try my best...

So i need to collapse these different meshes/burger elements as shown in screenshots named "burger 1" and "burger 2" with water droplets and sesame seeds spraying on impact etc (in the scene you tested there were only 3 elements but sorting the problem i will add more meshes later). they all have different colliding properties ofc (meat behaves different than cheese etc) which i try to replicate to make it look as natural as possible but i also need them retimed for a commercial slomo at 30% speed.



Problem: Tyflow_cheese simulation is colliding with an invisible field as shown in "retimed collision" screenshot attached BEFORE reaching the actual patty but ONLY when Retimer is used, and i need it to be enabled of course so it can match the slomo speed of the bun + patty. There's a difference in the collision behaviour when Retimer is enabled. Everything collides well without Retimer.

and yes i was using the latest build and drivers available at the time i sent the file.


Attached Files Thumbnail(s)
           
  Reply
#7
Well the retimer doesn't affect any colliders directly...likely what's happening is your retimer settings are at odds with the playback speed of whatever the "invisible" collider is (the collider you've added to the PhysX Collision operator). Ex: if your collider is the retimed hamburger, and you're also retiming the cheese after, the retiming is being doubled-up on the cheese relative to the hamburger.

You need to simulate everything at regular speed and then retime everything after, not sim #1, retime #1, sim #2, retime #2, etc.
  Reply
#8
(06-06-2023, 03:02 AM)tyFlow Wrote: Well the retimer doesn't affect any colliders directly...likely what's happening is your retimer settings are at odds with the playback speed of whatever the "invisible" collider is (the collider you've added to the PhysX Collision operator). Ex: if your collider is the retimed hamburger, and you're also retiming the cheese after, the retiming is being doubled-up on the cheese relative to the hamburger.

You need to simulate everything at regular speed and then retime everything after, not sim #1, retime #1, sim #2, retime #2, etc.

I agree but how can i do that? Already simmed everything at normal speed. Then you activate retimer in each simulation and let them solve but as you know multiple sims are solved in order, not all at once from what i could see until now unless there's some other way of doing it. I even tried to disable all sims after normal speed simulation finished, activate retimer in each then enable all sims and let them solve again...but it doesn't matter...they have an order. Tyflow solves them one by one. Please try it in the file i've sent you and see if there's a way around it.
  Reply
#9
Ah right, when you retime #1 it'll trigger a reset of #2.

So you can approach it multiple ways:

1) Set simulation reset to manual from editor right-click menu on all flows, then when you enable retimer on 1, it won't auto-reset 2, etc.

2) Sim all 3 items together in the same flow, then retime that single flow

3) Sim all 3 items in their own flows at regular speed, then export to tyCaches and retime the tyCaches
  Reply


Forum Jump: