Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Fluvio - Fluid Dynamics for Unity

Discussion in 'Assets and Asset Store' started by lilymontoute, Jul 3, 2011.

  1. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Yea, the issue with Shuriken collisions seems to be something I don't have much control over. It seems like particle collisions in Unity are optimized (and leaky) even on "High" settings. Concave shapes and overlapping colliders end up being the trouble spots. There are ways to work around it - you can destroy particles that escape the object's area and create new ones - but that makes it difficult to keep a fluid stable and at rest.

    I'm still working on potential fixes, but they're in the concept stage right now.
     
  2. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I'll check soon but, have you got the marching cubes mesher and gpu acceleration implemented yet? I'm doing something for a friend and you already have an entire system at work, but those features are somewhat make or break things for what we are trying to do. If not already in, do you have a timescale?
     
  3. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Not in yet. Not comfortable giving a timescale just yet, but the work we have here is more out of the R&D phase. The latest internal build just restructured the solver to make it a lot easier to swap out, in fact.

    What sort of platform would you be looking at, as far as GPU acceleration goes? We've looked at the pros and cons of a few different options now, including both DX11 and OpenCL.
     
  4. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    The platforms question is a good one, the concept itself is simple as this stage, you have a cube with realistic water sloshing about (and sph was the only solution i found relevant to the job, at least until positional based fluids and set adopted at typically glacial rates) and, its a quick reaction test to avoid water being leaked. This simple idea is without any shadow of a doubt going to be expanded, graphics wise but also gameplay-wise as the numbers of discrete volumes and size of these may increase. I'm an artist and owned Fluvio for a hell of a long time (relatively) but could never find a satisfying use for it as the represented fluid fell well short of what I felt I required

    I offered to soup up my friends game, and when people say 'sure!' that means I tend to go all out, already pegged a directcompute based model even without having the material to actually construct that, simply because I know Unity gets along with it and I couldn't imagine a process fast enough to mesh these volumes based on the cpu, and further, calculate the solution at satisfying speeds to underline in impact intended. So yes the initial target would be DirectX11, even if just to get a specifically striking looking game aesthetic produced. I wasn't even aware OpenCL was usable with Unity3D - if you know i'm wrong I would, on a tangent to this post, very much appreciate material related to implementing OpenCL code

    There would be a lot of GPU things going on, it would initially be an impressive showcase of a few gpu technologies I own, all DirectCompute, so thats the environment I would have most expected a GPU solution to the process for.

    It will be great fun adding some impressive but well judged effects to his game for the most capable of GPUs and when it comes to meshing, there's probably going to have to be a line at which you have to change how the fluids are rendered dramatically, and my intention was to have the product more or less scale automatically, and as my friend did show keen-ness on an android build, it would definitely require a different technique and scaling down the simulation

    After reading what seemed like endless papers it seemed like a very good simulation and mesh could be produced using GPU techniques, dropping the GPU aceleration ran into rather ugly rough surfaces and I didn't go anywhere near mobiles. I saw a technique somewhere called sphsplaatting, which sounded lovely but I then couldn't find any of it to read anywhere, i've come to the conclusion that some plaforms maybe be able to run aspects of whats intended to be a very highly polished and honed GPU-centric version, again using Dx11, but cut down where it's necessary, like still have a visually aceptable smooth water surface and invevitably a less precise simulation

    Mobile phones might imply an entirely new approach to presentation, from the GPU based pbr modelled exercise (I need this selfishly as i'm getting very rusty with my modellingand its a good opportunity to catch up), to a much more abstract view possibly visualising particles as view aligned elipses shaded by screen depth, local height, local density and so on, whatever suits i suppose! - inteestingly some of the pbr based models and materials could be retained thanks to the efforts of skyshop and c

    That was a lot of talk about things maybe missing the point somewhat, but I was hoping for a fairly quick turnarund of features announced last year iirc and it's becoming a pity because I do want to use this for something and implementing my own sph system, or convincing my pal to write one seems like reinventing the wheel really! - And we did really want to get cracking on this

    I'm assuming without a pro license I wont have access to the relevant data for implementing my own (or friend's own) surfacing solution, and absolutely up S*** creek without a paddle when it comes to moving processing to the GPU (my pal writes voip stuff they put in satellites, he's a bit unclear on directcompute, and i am flotsam on the sea as soon as I try to comprehend all that stuff outside the bits that make sense to me as an artist

    Sorry for rant but would definitely like to hear back if you have any suggestions or answers or just 'you said something silly' responses, it's I suppose just getting a touch frustrating having to stall a bunch of things i'm working towards because promised features arent materialising as soon as one would hope

    That said, and it may be a fruitless request but a very thankfully heeded, if you have any sort of beta program or package that would allow me to test what you have, should it be in a state you found acceptable, i'd happily volunteer some of my time and can then iteratively update the game as improvements are made - this would tie me into fluvio, which is something I don't mind as i've been wanting a use for of it for ages, and maybe feedback might prove useful

    Cheers for reading anyways
     
  5. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Thanks for the insight! I agree that the speed of development hasn't been fast enough - internally we're working on scaling up the company (I'm the only developer right now so workload has been spread out a bit thin between all of our products) in order to devote more development resources to Fluvio.

    While the GPU stuff isn't ready just yet, the next update will include a fully multithreaded solver, fluid plugins, and API (the new solver is about a 10x performance boost from what we have currently).

    Also, I'm likely going to open up the solver pipeline a bit more, to allow replacement of the solver used for both Standard and Pro, without needing to touch the source.

    One of the biggest blockers with DX11 are fluid plugins. They would likely need to be rewritten as compute shaders along with the solver and renderer, or they will become the bottleneck (data would need to be transported back from the GPU every frame).
     
  6. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Without too much focus on the improvements to the solver, although that does sound great and I have to congratulate such performance improvements, particularly as we'd be expecting multithreaded multicore machines to be running what is to be intially something very flashy at first anyways, will you have an answer to the surfacing of the fluid in some form of a smoothed mesh or does it remain an open issue?

    Given the fact this is a product I already own it makes no sense to me to make something to do the same thing but with nowhere near the competence of fluvio, so soon i'll be looking at it's renderer (very soon) and looking for options. While i'm not too keen on how ive seen it rendered so far, and if surfacing comes short of what i'd hope for currently, perhaps I can think up something novel that might look quite nice in it's abstraction (I'll assume the current API gives me access to particle positions and such if needed)

    If you have any personal suggestions or insight into possibilities i'd love to hear them but perhaps i'll get shader forge open and if possible use that to play around with the shading of the particles until something i really like turns up. I'll have a go at any suggestions too, and as it's been so long since ive used it anways, maybe there's something already there that will do just fine

    Thanks for the response anyways and i look forwards to the updates!
     
  7. Assault

    Assault

    Joined:
    Aug 21, 2012
    Posts:
    60
    I have seen some examples where Fluvio 2 is used to create particle effects that works like steams of water and then that water is contained in some jar made of meshes and colliders. But what I need is a tank that fills and drains very quickly, and the pipe from where the water goes in and out of the tank is always below the surface. Is this possible with Fluvio 2?

    Also, are there any more examples available than the 2 that come with the plugin? In any case, very nice work!
     
  8. hkiehs

    hkiehs

    Joined:
    Mar 15, 2014
    Posts:
    1
    Hello Thinksquirrel,

    I had bought your Fluvio 2 professional edition and I would like to test and run your demo Fluvio 2 Paint Preview for learning purposes but your example project doesn't include it with such splash effects.

    Since I am fairly new to Unity, Is it possible for you to upload the example project so that I can play around with it?

    Thanks
     
  9. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Rendering a fluid mesh will come with GPU simulation (which I've decided will be DX11-based for now - hopefully Unity will expand their Compute Shader API to include OpenCL in the future). I have a working example with this already on the CPU, but generating a sufficient resolution fluid mesh has proven to be too slow for my liking and for any real-world use (even with multithreading) - so I haven't released it for now.

    You are correct about the API - you can get positions and velocities easily with it. The next update (with the multithreaded solver) will also include multithreaded plugins and a parallel API so you can do things like this (C#):

    Code (csharp):
    1.  
    2. fluid.ForEachParticle((ref FluidParticle p) =>
    3. {
    4.     p.position = DoStuffWithPosition(ref p);
    5.     p.velocity = someVelocityValue;
    6.     // etc.
    7. });
    8.  
    This method will automatically parallelize your code. I'm trying out the prospect of being able to do something like this with Compute Shaders to arbitrarily execute your own parallel code on the GPU when using a GPU solver (no idea if this is possible even, so no guarantees).

    As for Shader Forge, I do recommend trying it out and seeing what effects you can get. The current fluid shader is just a standard shader for the particle system and any particle shader made in Shader Forge will work - you may be able to get a more volumetric effect by tweaking values somewhat or procedurally calculating some normals.

    This would be possible, the area where the pipe is could just have an emitter + attractor, with each toggled off and on.

    As for examples, we currently have the 2D and 3D example only. We plan to have some more (likely in a separate package, to keep file sizes down).

    The paint example is one of our most requested ones - it wasn't converted to later 2.0 version. I can confirm that a version of it will be coming back soon.
     
    Last edited: Mar 15, 2014
  10. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I dont mind dx11 at all, yes OpenCL would be a boon but since i decided im not going to support relics and dx12 is coming with dx11 so slowly adopted which just makes think this conservative legacy support for older graphics apis just extenuates the continuing conservative support (Im referring to dx9 specifically i suppose). I somewhat hope i'll never have to look what i consider legacy solutions in the eye ever again and however that affects adoption of whatever i create I do not give a fig - im sick of conservative moneyhoarders hamstringing a very powerful media

    Well I cant bug you for dates but i hope your gpu work comes along quickly and satisfyingly as i'm very keen on the surfacing, but while that comes I can at least get some hopefully very pretty results with some shader fiddling and the api example was perfect, should get me where i want very quickly

    As an aside I cant really imagine a cpu surfacer being nearly fast enough with it having so much already on it including the simulation itself, i'll just look forwards to the GPU flavour for the win/mac/linux targets and in the project i'm using this i think I can have quite a lot of fun finding a way to represent the volume in a very pretty, abstract way for mobiles

    If you're at all interested i'll post screenies to show how i get along
     
  11. bfowle

    bfowle

    Joined:
    Oct 1, 2012
    Posts:
    23
    Hallelujah~ Unity 5.x will upgrade to PhysX 3.3. Should help Fluvio out a bit, yeah?
     
  12. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Definitely - the job system for multithreading also sounds pretty awesome.
     
  13. BES

    BES

    Joined:
    Feb 26, 2013
    Posts:
    212
    I have been working on planets... its seems Fluvio water looks the best for the planets (applied it to a sphere) ...the waves don't seem to work though... someone mentioned its because the waves are for a horizontal type surface instead of spherical ... how can I get the waves to work correctly? (I am not good at programming, but I can give it a shot if you provide some code and tell me where to put it or whatever)..
     
  14. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hey everyone,

    I have a very special announcement:

    Fluvio 3 is nearing public beta! Fluvio 3 is a major upgrade to Fluvio and has been in development for over a year. Much of the internal codebase has been rewritten. It offers massive improvements on performance, as well as some new features.

    Fluvio 2 Professional is currently on sale at 50% off. This will be the LAST time that it is on sale before Fluvio 3 releases, so get it now!

    Brand new fluid solver, built from the ground up
    • Fully parallelized and multithreaded
    • Brand new thread scheduler
    • Improved collision
    • No more per-particle rigidbodies! Particles are still interactive with other rigidbodies
    • Zero/minimal per-frame allocation
    • Over 10x performance gain - simulate thousands of particles at once
    • Parallel API and plugins
    • Minimal API changes, custom plugins and scripts will be very easy to upgrade
    More accurate simulation
    • Rewrote how pressure forces are calculated in the SPH solver
    • Added proper support for surface tension
    • Added a buoyancy coefficient for accurately simulating gasses and fluids approaching the density of the surrounding area
    • Added local space simulation
    Multi-fluid simulation
    • Fluids support parenting and can have sub-fluids
    • Grouped fluids share the same simulation space and particles fully interact with each other
    Other changes
    • New capsule emitter (replaces the stream emitter; functionality can be duplicated with the new ellipsoid emitter)
    • Many optimizations and bug fixes down to the micro level across all components
    • Two simulation modes (fast/accurate) for fluids
    • Workflow improvements
    The main focus of the 3.x cycle will be in the implementation of GPU-accelerated simulation. We're currently waiting for Unity's compute shader API to become a bit more widely available, but we have prototypes in place and our new solver is built with GPU fluid simulation in mind.

    We also have an unannounced Fluvio-related project coming through the pipeline - I hope to have more information about that for you guys soon!
     
    Last edited: Jan 22, 2015
    RagingJacob likes this.
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Will this new version also get a free pack ?

    Also will the non DX11 mode still be available ?
     
  16. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    The Free Edition will get an upgrade as well, although we haven't decided where the feature split will lie just yet.

    The new solver for 3.0 actually isn't DX11, just a significantly more optimized implementation. It will work on all platforms. We have a GPU-based solver in the works, but it won't be out with the initial Fluvio 3 release.
     
  17. Play_Edu

    Play_Edu

    Joined:
    Jun 10, 2012
    Posts:
    722
    great news.
     
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Very nice, thanks for the info
     
  19. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    648
    Hey,

    I'm at work so I can't read the entire 8 page thread, so I'm sorry if this has been discussed already. I'm looking for something to simulate liquid type spells in an RPG, ie: oil, water, etc. Would this make sense for something like that?

    Thanks in advance :).
     
  20. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hey DGordon,

    If you want your RPG effects to be interactive with the environment, Fluvio would work very well for that use case =)
     
    DGordon likes this.
  21. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    648
    Great ... will it require a lot of set up to integrate, or is it more along the lines of dragging prefabs?
     
  22. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Fluvio is similar to most Unity components, in that you just create objects and add them. I recommend checking out our Getting Started Guide.
     
  23. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    648
    Thanks for your help :).
     
  24. Image3d

    Image3d

    Joined:
    Jun 20, 2008
    Posts:
    155
    I need an wave white water example. Can you provide one. I was not able to set Fluvio to get the effect.
     
  25. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hey Image3d,

    We'd love to help - can you explain what type of effect you're looking for in more detail?
     
  26. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    I posted this a while back on Twitter, but here's an early screenshot of Fluvio 3 - there are about 10x as many particles in this shot than currently feasible with Fluvio 2:



    The biggest thing we're working on before beta release is a completely custom, multithreaded collision system, which will eliminate the biggest bottleneck right now (PhysX) entirely, and will introduce 2D support without rigidbody particles. Of course, this collision will still work out of the box with standard 2D/3D colliders.
     
  27. Image3d

    Image3d

    Joined:
    Jun 20, 2008
    Posts:
    155
    This is what I am trying to achieve . Use Fluvio to create the wave white water and the foam created from the splashing white water on the ocean surface. It must use only one emitter and be target to mobile plataform.
     
  28. Image3d

    Image3d

    Joined:
    Jun 20, 2008
    Posts:
    155
    Hi...for the white water ? Any direction ?
     
  29. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hey Image3d,

    Sorry for the delayed response - I'm currently at Unite so had been unable to get to this one.

    For something like ocean waves + foam you'll want to use a hybrid design, combining a mesh rendered method with Fluvio. The mesh method would be for the waves themselves, with Fluvio's dynamics simulating the foam and spray. It would be tricky to do both parts of ocean waves with Fluvio alone, especially on mobile as the fluid dynamics method used isn't suited to that. I recommend taking a look at the 3D example as a starting point - you'll need to scale down the amount of particles used on mobile (Fluid Platform Profiles work well for this), and tweak the emitter as well.

    Is there any particular reason you'll want to use one emitter? The performance cost per emitter is actually fairly small, since a single fluid can have multiple emitters. For something like ocean waves, it may help to have several emitters, and dynamically change their positions to the crests of different waves.
     
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Will Fluvio increase in price after 3 is out ? (the 50$ version)
     
  31. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    That hasn't been decided just yet, so unfortunately I can't say either way. If we decide on a pricing change for v3 we will announce it beforehand, though.
     
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Nice, thanks
     
  33. SeijiLee

    SeijiLee

    Joined:
    Sep 25, 2014
    Posts:
    1
    Hi. Do you guys have a demo for creating gas/smoke particle effect using Fluvio?
     
  34. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Currently we do not, however gasses can be easily created by adjusting the buoyancy coefficient (this will make particles less dense than the surrounding area).
     
  35. JVaughan

    JVaughan

    Joined:
    Feb 6, 2013
    Posts:
    23
    Hey Thinksquirrel,

    I have a pretty heavy weight dynamics based project and I was wondering what the street date is on Fluvio 3? Would it be possible to help beta test? If you have interest I can PM you about my current project and hopefully pick your brain a bit!
     
  36. pablopp83

    pablopp83

    Joined:
    Apr 5, 2014
    Posts:
    2
    hi, im trying to execute a simple code when a particle collide with an gameobject. I am using OnCollisionEnter, and it work fine, but i need some way to know the parent emitter of the particle, or his parent fluid. Is there any way to do that? i was trying to understand the OnFluidCollisionEnter event, but i dont know how to make it work. Is there any way to know to what fluid o emitter a particle belongs?
     
  37. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    We will have an open beta for Fluvio 3 very soon - feel free to send a PM though (or preferably an email to contact (at) thinksquirrel -dot- com), and we can probably work something out.

    Yep! You can find that info using:
    Code (csharp):
    1. myEmitter = myFluidParticle.emitter
    To get the fluid, use:
    Code (csharp):
    1. myFluid = myEmitter.fluid
    For more info, check out this documentation page. Do note that Fluvio 3 will be removing FluidParticle.emitter and introducing FluidParticle.fluid - the reason for this change is that particles will no longer "belong" to an emitter (maxParticles will be a property of the entire fluid). This is mainly for performance reasons as it removes a lot of overhead.
     
  38. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    A bit more info on Fluvio 3:

    Collisions are go! We decided to go with the ghost particle approach. Collision volumes are now represented with kinematic, high-density fluid particles - this prevents any leaking, creates proper density calculation for particles around boundaries, and can be optimized properly for 2D or 3D. This screenshot contains zero colliders and zero rigidbodies:

    Also note that play mode is disabled! We did a huge UI change for Fluvio 3. It's implemented as a set of Shuriken modules now (one component to look at in the editor). Fluids, just like Particle Systems, can run and be tweaked in edit mode, in realtime.

    Finally, I'm pretty happy with how the multithreaded solver is working - it's now completely lock free. Some final work is being done to reduce the solver to minimal wait time (and have threads doing other things while waiting for synchronization), and push fluid performance to as high of a level as possible.
     
  39. pablopp83

    pablopp83

    Joined:
    Apr 5, 2014
    Posts:
    2

    Thanks for your answer! i have my OnFluidCollisionEnter(Collision other) working, but i dont know how to access to a FluidParticle object, in order to access the information i need (the emitter of the particle). this is the script:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using ThinksquirrelSoftware.Fluvio.Plugins;
    4.  
    5. public class fluidcollisionevent : FluidCollisionPlugin
    6. {
    7.  
    8.     protected override void OnFluidCollisionEnter(Collision other)
    9.     {
    10.         Debug.Log(other.rigidbody.name);
    11.     }
    12.  
    13. }
    how can i know the emmiter of the particle that hits the gameobject with this?
    Thanks!
     
  40. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Ah, In this case you'll need to get the FluidRigidbodyParticles component using:

    Code (csharp):
    1.  
    2. var rigidbodyParticlesPlugin = fluid.GetPlugin<FluidRigidbodyParticles>();
    3.  
    and check its rigidbodies array for your rigidbody using:

    Code (csharp):
    1.  
    2. int id = rigidbodyParticlesPlugin.rigidbodies.IndexOf(other.rigidbody);
    3.  
    An alternative, possibly faster way, would be to parse the name (if I recall correctly their name should give an ID number). You'll want to cache some of these things where appropriate of course.

    These ID numbers correspond to the index in a GetParticles call, where you can get a particle struct.

    This part of the API was designed pretty poorly, in my honest opinion - we've completely removed rigidbody particles in Fluvio 3 (they're no longer needed for collision and interaction) and have redone the collision event API to be a lot more...sane. Sorry for the crazy workaround!
     
  41. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Another Fluvio 3 preview, this time of the new example scene "3", running in Unity 5:



    The example scene is currently at 2,500 fluid particles and 20,000 secondary particles. Compared to Fluvio 2's peak performance of around 600 particles and 2k or so secondary particles, I'd say it is a pretty big improvement. :)

    Much of the optimization was achieved from both multithreading and linearizing everything into a set of byte/float arrays (resulting in way fewer struct copies, which can be quite slow with Mono in particular). Heavy optimization was done for less cache thrashing, zero locks, and very few matrix multiplications. Runtime garbage allocation is also minimal (very near zero in fact).
     
    Last edited: Oct 6, 2014
    Play_Edu likes this.
  42. Play_Edu

    Play_Edu

    Joined:
    Jun 10, 2012
    Posts:
    722

    cool.
     
  43. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    630
    Do you think a hybrid approach like this

    Will be possible with fluvio 3?
     
    Play_Edu likes this.
  44. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Merry Christmas! Fluvio 2 Standard is 50% off today!
    http://u3d.as/2Gi

    Some development updates for Fluvio 3:
    • The fluid effect shader has been updated to use Unity 5's physically based rendering (currently specular workflow, but metallic workflow coming soon). The workflow for the fluid effect is also a lot easier - the configuration is on the material itself.
    • As part of the particle system/workflow improvements, fluid emitters have been removed, and all particle system emitters are now supported. Also, all particle system modules and curves are now supported. This results in a big performance gain as well - all of the emission, particle lifetime, and velocity integration steps are performed on the native side as a part of Shuriken, instead of within Fluvio. Sub-fluids allow you to still easily use multiple emitters for the same fluid.
    • Fluids now run on an independent, configurable timestep from FixedUpdate - no more adjusting time settings to work with fluids.
    • WebGL is now supported in Unity 5 (no multithreading in WebGL though, unfortunately). Big thanks to the IL2CPP team at Unity for their very hard work here.
    • Fluids can be set up as sub-emitters and controlled from a particle system (fluid trail effects on authored particles, for example)
    • Simplified the API somewhat - all modification of fluids are done through plugins, plugins are easier to make and take advantage of Fluvio's threaded job system, and custom inspectors for plugins are not required.
    • We'll be checking and ensuring compatibility with other particle system plugins like Particle Playground - more on that soon!
    The first Fluvio 3 public beta is imminent! It will be out very soon after the holidays.

    I've been looking into some of these hybrid approaches for 3.x, actually - it won't be in 3.0 though. Our priority at the moment is to get 3.0 working well and squash any bugs that come up during the beta.
     
    blueivy likes this.
  45. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    So cool !!!!, looks super impressive

    Buying the pack immediately :)

    One question, will Fluvio 3 Pro difference from standard still be only the code availability or will it include other features as well ?

    Also is there any way to see the shader and image effect of the water in action ? A demo or video to show the difference from the free edition.
     
    Last edited: Dec 26, 2014
  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    About the particle shaping, these are all round spheres, does Standard version create shader based splashes or the round shape is still preserved ? Or with image effect in screen space ?

    Same for the 3D water, do particles appear to create a connection with shaders or image effects, or is it like the standard particles ?

    Is there a pic to show the standard version shader application on this ?

    Thanks
     
    Last edited: Dec 26, 2014
  47. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hi nasos_303,

    I'll answer these questions in order:

    We haven't decided the feature split for Fluvio 3 just yet, but this will likely be the case.

    You'll want to check out the Fluid Effect component (it's marked as legacy in 2.x, but I've upgraded it significantly and removed the legacy tag for Fluvio 3).

    The Fluid Effect works for both 2D and 3D fluids. For 3D fluids, there are a few visual artifacts due to the method used (overlapping particles will blend together, even if far away). We've explored generating a full mesh and have a working prototype, but it's a bit too slow for production use at this time. We'll be looking into doing something here on the GPU (maybe for DX11-class hardware only).

    Sure!

    Here's a water-like material using the new shader:


    Here's water and lava mixing using Fluvio 3's sub-fluid system (turning the water into steam) - slightly different lighting here:


    Still a work in progress (the materials can be a bit better configured), but lighting is using Unity's BRDF and workflow (not the standard shader itself, but the input maps are the same. It's also fully compatible with reflection probes.
     
  48. Liens

    Liens

    Joined:
    Feb 2, 2012
    Posts:
    49
    Hi, I am very interested about the shader in the paint example video. How did you manage to get it to render objects in front of the fluid?

    Also I can't seem to find the 'paint example' scene anywhere in Fluvio.
     
  49. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    Hi Liens,

    The fluid effect is rendered off screen, then composited onto the screen using the depth buffer. You'll want to check that out as well to get the effects shown in the paint example.

    About the paint example itself: It was replaced in Fluvio 2.2. However, it's been highly requested - a paint fluid example using the new fluid effect will return in Fluvio 3. I'll have more on that soon (probably a bit later in the beta cycle).
     
  50. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    A short update as we inch ever closer to beta 1 release.
    • Completely rewrote the broad phase code, leading to another large performance jump
    • More work on the fluid effect, adding support for batching multiple renderers together
    • Introduced the concept of "kinematic fluids". A kinematic fluid is affected by external forces only (movement of a transform or particle system), and exerts force on other particles. This allows the creation of much better boundaries, without any leaky particles. Fluids can be switched from dynamic to kinematic at any time.
    • *Everything* can be edited live now, including smoothing distance, fluid properties, particle system properties, etc.
    • Attractors are now plugins, and updated along with other plugins.
    • Added a Fluid Mixer plugin (which will have source available for non-Pro customers) - this is a sample plugin that illustrates how to do simple mixing between fluids. In the example scene, water mixes with lava to become steam (a non-physical particle system) and cooled lava. Lava mixes with cooled lava (under pressure) and heats it back up. Cool lava (the dark patch in the lava below) does not react with water.
    Here's the "3" example scene, with the above changes (and some performance numbers)!



    The scene above has zero colliders and 6 fluids, with a total of 2400 particles. This particular scene has a bunch of plugins running, but we've significantly dropped the overhead on a base fluid simulation.

    A few issues to fix with live edit mode, and then beta 1 will be ready to ship :) A web player is coming soon as well.
     
    Last edited: Jan 9, 2015