Never working pyro collisions still an issue ???

   11682   12   3
User Avatar
Member
67 posts
Joined: Nov. 2017
Offline
Can anyone explain to me why collisions with PYRO absolutely never work and no one is addressing that? Like evrybody is complaining about this and youtube is full of videos about the issue,Google is full of people asking why is it not working. Only this forum has like 1000 threads with same question so HOW is this still a thing ?? I found ton of videos online with people claiming it doesn't work but how come no one has solved this yet. I am faking it all in post but it would be great to have it work in any of the 3 or 4 pyro solvers. I had some cars falling off the bridge in a shot recently and they were suppose to disturb the cloud of smoke when they are falling which I of course did in post because Houdini couldn't solve it because it's a pyro collision and those don't work yet in Houdini but how else to do it. Idk, I tried turning collider geo in VDB but VDBs can't have velocity so I thought ok I will use Convert node to make it a standard volume but that didn't do it either. Like is there a special plugin or a feature or anything? I am willing to give it a try once again but I just don't see this working. Maybe in Houdini 19. Did you guys ever try to do a pyro collision? If you did you know exactly what I am talking about, how did you solve it (except by masking in post)?.
Is there a way to throw stuff through a smoke sim in houdini and get it disturbed ? And how? And yes we all know it's possible for smoke to hit the wall but that's easy it;s just a box, what if you have a complex object moving through it? Is there a solution for these complex collisions in 18.5 yet? SideFX can we please have WORKING COLLISIONS in Houdini 19? That would be really useful so I don'y have to spend 3 hours in Nuke to fake all the collisions.
Thanks
Edited by Nikodim Fomich - Sept. 6, 2021 19:05:47
User Avatar
Member
8770 posts
Joined: July 2007
Offline
you may be happy to hear, that no, this is not an issue in general and never has been as far as I know
Pyro collisions definitely take velocity of the collider into account in both of the common methods you can source them

1. when using Static Object in DOPs (or Collision Source mode if using Pyro Solver SOP), by default pyro samples velocity automatically from geo's v attribute and uses volumetric representation for actual collision
so as long as you have correct v on your geo and reasonable sdf representation of the collider (vdb or not) it should work predictably

2. when sourcing directly into collision and collisionvel using Volume Source DOP (or SDF+Volume Velocity mode in Pyro Solver SOP) you just make sure you are feeding it both correct sdf volume and velocity volume (VDB or not)
and yes contrary to your claim that you can't have velocity vdb you may be also happy to hear that of course you can and always could, just make sure you have correct v on your geo and then VDB From Polygons allows you to create vdb volume from any attribute

attached simple example using sparse pyro in SOPs with both methods, but even building this in DOPs and with older pyro solvers would use the same types of sources
there are also other ways to source collisions, like you can also use Static Object with just transforming objects and therefore use static sdf and rigid velocity, but exhausting all options is beyond the point

Attachments:
pyro_collision_velocity.hip (871.4 KB)
pyro_collision_velocityA.gif (852.8 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
874 posts
Joined: Oct. 2008
Offline
I've always found them tricky. They work but rarely out-of-the-box. One thing I find annoying is that the default volumesource is looking for incoming velocity volumes to be called v, whereas usually it is vel, or sometimes collisionvel. And then it's easy to miss setting it to vector, or not enlarge fields correctly, etc. Sometimes collisions are too thin, or don't exist inbetween frames, etc. There's like a hundred little gotchas.

Sometimes with fast moving stuff all you need to do is add vel from the object, forget about correct collisions. Just disturb it a little.
Edited by Soothsayer - Sept. 7, 2021 05:42:31
--
Jobless
User Avatar
Member
732 posts
Joined: Dec. 2006
Offline
Also, as per the docs here: https://www.sidefx.com/docs/houdini/pyro/background.html#collisions [www.sidefx.com]

The IOP Iterations parameter on the Advanced ▸ Collisions tab of the pyro solver controls the number of times this process is iterated. By default, this is only done once However, if your colliders are fast or you notice smoke tunneling through them, consider increasing the number of IOP Iterations.
Sean Lewkiw
CG Supervisor
Machine FX - Cinesite MTL
User Avatar
Member
246 posts
Joined: March 2013
Offline
The volume source as collision, when made from the vdb from polygons is my preferred method.

Object > pointvel sop > vdb from poly: make the sdf name collision, and create a new field called
collisionvel that uses the point v you calculated earlier.

The main advantage of piping in your collision through this, is that you can keyframe the vel multiplier
at any point during the sim. To exaggerate or play down the influence of the collider.


L
I'm not lying, I'm writing fiction with my mouth.
User Avatar
Member
5 posts
Joined: Feb. 2016
Offline
This thread was extremely helpful for me.

I was adding a collider that consisted of a non-uniform ground plane. The poly ground was extruded and used as a volume. Collisions 'kind of' worked, but there was a lot of pyro still passing through the plane.

My good friend Fez suggested I 'thicken' the ground plane extrusion so it was wider than the distance travelled by the pyro on each time-step. This solved my issues.

Hot tip to the OP: If you create a forum thread and receive a tonne of useful responses (as you did here), then reply to the thread to a; thank them b; let others know it helped you.

Those responses required not only their expertise, but also their time, and they offered it to you for nothing. Saying thanks is the least you can do.
Edited by clintond - Oct. 30, 2021 05:51:40
User Avatar
Member
8770 posts
Joined: July 2007
Offline
clintond
I was adding a collider that consisted of a non-uniform ground plane.
if possible (depending on shape) you can convert your nonuniform ground into heightfield
and then use Terrain DOP with Use Heightfield checked to source it into the sim

Heightfields are very efficient as colliders for many sim types, and you should be able to avoid messing with thickness that way
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
67 posts
Joined: Nov. 2017
Offline
@tamte Thanks man. That sounds like what I was looking for but I did try to take an object that contained velocity and turned it into VDB and it didn't work for some reason. Does velocity stay on VDB after it's turned from object with velocity into SDF version of the same object? Thank you for explaining it.

@Soothsayer Oh I know. Many things in Houdini would not work straight out of the box but I never used collisionvel usually "v" or 'vel". What is collision vel for? Thank you


@tinyhawkus Thank you for sharing that. Can you please further explain what did you mean by creating new field called collisionvel?
I would like you mentioned take an object, make sure it's "water-tight" geo, add Point Velocity SOP, turned it into VDB from Polygons (SDF) and try to use that as a Volume Collision Source in the solver. I know it's v on SOP level and vel in DOPS. Not sure where collisionvel comes in.

Thank you everybody.
User Avatar
Member
1 posts
Joined: July 2015
Offline
clintond
My good friend Fez suggested I 'thicken' the ground plane extrusion so it was wider than the distance travelled by the pyro on each time-step. This solved my issues.

This is some great advice for thin collision objects. like a piece of paper I am working with.
User Avatar
Member
1 posts
Joined: Oct. 2018
Offline
Hello there, great topic indeed. I´d like to ask if there a reasonable explanation why I got a wrong behavior using Pyro source wind, on other hand if I use attr V as initial vel it working properly.



Thx for this amazing topic.
Edited by CaueR - Jan. 26, 2023 09:59:36

Attachments:
Wind_NotOk.jpg (46.0 KB)
Attr_Ok.jpg (57.5 KB)

User Avatar
Member
4 posts
Joined: June 2008
Online
Hi,
studying Tamte`s file helped me.
my problem was:
The name of the vdbfrompolygons-> Distance VDB (default is surface)
did not match the the name of the pyrosolver-> Collision->Collision SDF (default is collision).
If the name attribute does not match, it still works on creation, but not after working with it.

Just set both name fields to collision ...
THX and Cheers
User Avatar
Member
5 posts
Joined: March 2022
Offline
bumba
Hi,
studying Tamte`s file helped me.
my problem was:
The name of the vdbfrompolygons-> Distance VDB (default is surface)
did not match the the name of the pyrosolver-> Collision->Collision SDF (default is collision).
If the name attribute does not match, it still works on creation, but not after working with it.

Just set both name fields to collision ...
THX and Cheers
I am using H19.5.640 and the only options I can find in the PyroSolver is "SDF + Volume Velocity" and "Collision Geometry", I assume you are refering to "SDF + Volume Velocity" as the option to choose?
Edited by TheLEDStudio - Dec. 7, 2023 04:39:32

Attachments:
Screenshot 2023-12-07 093654.jpg (69.4 KB)

User Avatar
Member
5 posts
Joined: March 2024
Offline
Thanks for the helpful insight with the Collision/Pyro method, Tomas.
~joel
  • Quick Links