Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Varius question's on obiFluid
#1
Hello everyone i've bought obifluid last week so i'm totaly noob about using it.
i've some problems:

1) i've created a bottle made of glass that shatter in pieces when collide whit other elements, on collision the emitter speed is set to 3.1f from 0 and create a little pool of fluid the problem is that the pool is to small and "bidimensional" i need a larger pool of liquid, any suggestion on liquid settings? (look at screen 1 for results)

2)I need to create a wine looking liquid, is it possible? what setting i should use?

3)I have realy big performance issues, all the computer's in my company run core i7 cpu's and one in particular run a 7th gen i7 and a gtx 1080 but frame rate is terrible whit more than 1000 particles.

thank you in advance and best regards.
Claudio

Screen whit stats (1fps)

Confundido

Dx diag


Attached Files
.txt   DxDiag.txt (Size: 29.71 KB / Downloads: 3)
Reply
#2
(29-09-2017, 03:46 PM)Claudio80 Wrote: Hello everyone i've bought obifluid last week so i'm totaly noob about using it.
i've some problems:

1) i've created a bottle made of glass that shatter in pieces when collide whit other elements, on collision the emitter speed is set to 3.1f from 0 and create a little pool of fluid the problem is that the pool is to small and "bidimensional" i need a larger pool of liquid, any suggestion on liquid settings? (look at screen 1 for results)

2)I need to create a wine looking liquid, is it possible? what setting i should use?

3)I have realy big performance issues, all the computer's in my company run core i7 cpu's and one in particular run a 7th gen i7 and a gtx 1080 but frame rate is terrible whit more than 1000 particles.

thank you in advance and best regards.
Claudio





Screen whit stats (1fps)

Confundido





Dx diag

Hi Claudio,

- Regarding performance, take a look at your profiler. You can also make use of the ObiProfiler component to get a detailed in-game per-thread work distribution graph. 

- Stay away from MeshColliders unless absolutely necessary, as they're a lot slower than primitive colliders (not just with respect to Obi, but in general).

- Make sure you're not entering a "death spiral" type of situation in your physics loop. If your profiler shows your physics are being updated more than once or twice a frame, you should lower Unity's max timestep. See: https://www.youtube.com/watch?v=sUVqa-72-Ms

- Physics are done 100% in the CPU, so your GPU specs don't really matter. Only the rendering (which is simple enough to be handled by virtually any modern GPU) is done in the GPU.

- Regarding your "bidimensional" fluid, make sure your ObiSolver is not set to 2D mode.

Also take a look at the FluidMill sample scene. It features a fluid material that is quite close to wine.

cheers!
Reply
#3
Hi again,
thanks to your advices i've achived my goal,
puoring a liquid from a bottle to a glass or on the floor in a VR situation and everything works fine, i only have one single problem:
when the liquid touch the glass (or your bucket copied from your test scene) i have an heavy fps dropdown, from 30 fps to 2, if the liquid touch the floor but avoid the bucket or the glass there is no problem.
I've watched your video on deathspiral but nothing as changed.
Can you help me?
Reply
#4
(03-10-2017, 08:52 AM)Claudio80 Wrote: Hi again,
thanks to your advices i've achived my goal,
puoring a liquid from a bottle to a glass or on the floor in a VR situation and everything works fine, i only have one single problem:
when the liquid touch the glass (or your bucket copied from your test scene) i have an heavy fps dropdown, from 30 fps to 2, if the liquid touch the floor but avoid the bucket or the glass there is no problem.
I've watched your video on deathspiral but nothing as changed.
Can you help me?

Hi Claudio,

Another user reported a similar issue not long ago:
http://obi.virtualmethodstudio.com/forum...hp?tid=145

MeshColliders are generally pretty performance heavy. Each triangle in them has about the same cost on collision as a single primitive collider, so for practical uses (specially when you are performance limited) it is best to approximate colliders using primitives, or use really low-poly MeshColliders.

The bucket sample scene is intended to show off Obi's capabilities, but it is tuned for high-end CPUs. You are better off using simpler colliders most of the time.

Note that in an upcoming version, Obi will add support for Distance Fields. These are a special kind of collision primitive that performs collision tests against arbitrary shapes much faster than MeshColliders, with only some limitations applied.

cheers,
Reply
#5
Hi again,
here i'm whit another silly question Gran sonrisa,
is there any way to retrive the ammount of active particles by script?

thanks a lot Lengua
Reply
#6
(05-10-2017, 12:46 PM)Claudio80 Wrote: Hi again,
here i'm whit another silly question  Gran sonrisa,
is there any way to retrive the ammount of active particles by script?

thanks a lot Lengua

emitter.ActiveParticles for the amount of emitted particles,
emitter.NumParticles for the total amount of particles in the emitter.

Sonrisa
Reply
#7
Thanks for the help, i'm realy near to the end.
BUT i have noticed a strange beavhior, i include a video.

is there any way to avaid that?

video link: https://drive.google.com/file/d/0B09sn0g...sp=sharing
Reply
#8
(06-10-2017, 04:32 PM)Claudio80 Wrote: Thanks for the help, i'm realy near to the end.
BUT i have noticed a strange beavhior, i include a video.

is there any way to avaid that?

video link: https://drive.google.com/file/d/0B09sn0g...sp=sharing

There's no "automagic" way to avoid that. Indeciso

By dragging the container so fast you're basically teleporting it from one frame to the next. There's no way the particles (or anything inside the container for that matter, including rigidbodies) can predict where you're teleporting it next. 

This issue is known as tunneling and is an extremely common problem in video games. It is usually dealt with by limiting the speed at which the user can move things (objects, characters, the bottle in this case, etc). This gives the collision detection engine a chance to detect collisions that would otherwise be impossible to predict.

Ever wondered why there's a terminal velocity in games? (a maximum speed at which you can fall off a ledge), well, this is why. If programmers didn't impose a maximum velocity, the character would go trough the floor upon landing ....and it still happens sometimes, though. Guiño
Reply