Obi Official Forum
A few questions - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Fluid (https://obi.virtualmethodstudio.com/forum/forum-3.html)
+--- Thread: A few questions (/thread-420.html)



A few questions - IanTc - 28-02-2018

Hello,

We are considering a specific game's project and are looking for a 2D fluid simulator in Unity – obviously Obi Fluid seems the best ready-made solution.
Before jumping into it however, I have a few questions, I'd be glad if you could answer them:

1) The Obi solver manual states that "2D mode is usually coupled with the use of 2D colliders". Just to make sure, are you here talking about Physics2D colliders (BoxCollider2D, CircleCollider2D, etc.) as well as 2D rigidbodies? Indeed, performance will matter a lot to us, therefore using Unity's native 2D physics engine seems necessary.

2) Is solving buoyancy computational heavy? More precisely, is having a dozen of 2D rigidbodies (each with a CircleCollider2D collider) affected by buoyancy in a moving fluid, adds a lot of stress on the CPU as compared to, for instance, having just the moving fluid with the same amount of particles and same static colliders (for the 'environment' – tank, etc – containing particles)?

3) I read that emitters are either Disk, Edge, or Sphere. I guess they can be rotated in any axis so they are 3D-space emitters. So, in 2D mode, are the fluid particles computed in 3D space, even if the physics simulation is solved in XY axes only? If so, do their relative Z positions affect anything?

4) Are some simulation processes done in parallel threads or is everything computed in the main thread?

Thanks for reading, answers will definitely help!


PS: I believe that a self-executable demo of Obi Fluid, with both 2D and 3D modes, displayed framerate, interactive particle emitters, and a few objects that can be thrown and moved in the fluid with the mouse, would definitely help people to know what to expect when purchasing your product. (I know it would for us.) Sonrisa


RE: A few questions - IanTc - 12-03-2018

Hello, no reply from anyone?

Are these difficult questions to answer? Or... Is it because I am not a customer yet?
I don't want to assume misdeed here, but is it also the reason my account has been deleted, even though I had validated it? (I had to recreate it and I could use the same same email address and username, meaning none of them were registered on the forum.)


RE: A few questions - josemendez - 12-03-2018

(12-03-2018, 02:45 PM)IanTc Wrote: Hello, no reply from anyone?

Are these difficult questions to answer? Or... Is it because I am not a customer yet?
I don't want to assume misdeed here, but is it also the reason my account has been deleted, even though I had validated it? (I had to recreate it and I could use the same same email address and username, meaning none of them were registered on the forum.)

Hi Ian,

I'm not aware that your account had been deleted, we've been having lots of issues with spammers recently and have set up some automatic scripts to deal with them. They might have incorrectly flagged your account, so please accept my apologies.

Regarding your questions:

1) Yes, when we talk about 2D mode we are referring to Physics2D colliders/rigidbodies. All non-fluid physics is handled by Unity, Obi interfaces with 2D and 3D rigidbodies via impulse exchange.

2) Buoyancy computation has zero cost. It emerges automatically due to the fact that fluid particles have a certain mass, as well as rigidbodies do. Depending on the fluid/collider density ratio, things float or sink. No extra work is done by the engine to make this happen.

3) In 2D space, only edge emitters are actually useful. You could use Sphere or Disk emitters (all emitters can be rotated in 3D space) but  particles emitted in different z coordinates have no effect in 2D. Only X and Y coordinates are used for simulation.

4) Obi is fully multithreaded using a job-stealing thread pool. Moreover, math intensive sections are written using SSE/AVX intrinsics. The main thread spawns tasks, then waits for the worker threads to finish their work. However keep in mind that this doesn't mean physics and rendering can happen concurrently, Unity's update cycle must still be respected: FixedUpdate()->Update()->Rendering.


RE: A few questions - IanTc - 14-03-2018

Hi José,

Thanks for these clear, and very satisfying, answers!

As soon as we are ready to start we will get Obi Fluid.


PS: hopefully my account won't be automatically deleted now Guiño