Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Fluid tunnels through Obi Collider with Compute (GPU) backend, not with Burst (CPU)
#1
In my simple scene of maybe 10 static box colliders with each an associated Obi Collider the fluid correctly reacts to those static colliders, in CPU and GPU backend mode. It also reacts correctly to the one non-static gravity-influences box collider + Obi Collider.

But when switching to Compute (GPU), the non-static object is ignored completely by the fluid. The flow speed isn't really high, maybe 4 m/s and the emitter of 0.4 m^2 is set to speed 1.5 only.

A 2nd missed collision is happening at only one of the static colliders, which isn't obviously different than the others. At least that I could fix by increasing the Obi Collider thickness and is an acceptable workaround for that one.

Only when setting thickness to 2.79 or larger on the non-static collider, it reacts correctly, but that's far too wide as the non-static object is only 1x1x2 m large. Also when adding a completely new simple Cube with RigidBody + Box Collider + Obi Collider, that new object is completely ignored by the fluid.


I suspect some dependency on the surrounding box the non-static object is located inside. Maybe Obi Solver tries to optimized too much, but how to prevent that?

Unity 6.5, Obi Fluid 7.1.1
Currently 100000 fluid particles at 2 res, but same problem with res 0.4 and only 2000.
Reply
#2
When pausing play mode I see 0 contacts in GPU mode and about 2 contacts / simplex in CPU mode (screenshots attached).


Attached Files Thumbnail(s)
       
Reply
#3
(08-08-2026, 05:19 AM)isenberg Wrote: When pausing play mode I see 0 contacts in GPU mode and about 2 contacts / simplex in CPU mode (screenshots attached).

Hi,

This is because im the Compute backend, contacts aren't read back to the CPU unless you explicitly ask for it by subscribing to the solver's OnCollision method, as it has a non-negligible performance impact - so normally, the CPU will report 0 contacts since they're taking place in the GPU. The Burst backend works in the CPU, so there's no need to read back contact information.

(08-08-2026, 05:19 AM)isenberg Wrote: But when switching to Compute (GPU), the non-static object is ignored completely by the fluid. The flow speed isn't really high, maybe 4 m/s and the emitter of 0.4 m^2 is set to speed 1.5 only.

A 2nd missed collision is happening at only one of the static colliders, which isn't obviously different than the others. At least that I could fix by increasing the Obi Collider thickness and is an acceptable workaround for that one.

Only when setting thickness to 2.79 or larger on the non-static collider, it reacts correctly, but that's far too wide as the non-static object is only 1x1x2 m large. Also when adding a completely new simple Cube with RigidBody + Box Collider + Obi Collider, that new object is completely ignored by the fluid.

Would it be possible for you to send a project that reproduces this issue to support(at)virtualmethodstudio.com so we can take a closer look and diagnose the issue?

thanks!
Reply
#4
(10-08-2026, 01:13 PM)josemendez Wrote: Would it be possible for you to send a project that reproduces this issue 
Yes, I'm working this week first on re-creating the problem in a simplified scene, also to exclude that my copy and paste from some public examples introduced some weird hidden setting.  I'll let you know as soon I have something to share.
Reply