FluXY simulates 2D fluids that look 3D, using your GPU. Can be used to simulate fire, smoke, paint, water, trails, and a variety of VFX.
FluXY is a GPU, grid-based, 2.5D fluid simulator. It's lightweight, fast, robust, and easy to use. You can use it for simulating fluid effects in realtime, as well as generating flipbook textures.
Includes shaders for:
Opaque fluid surface (URP/HDRP, 2019.4 and up)
Transparent fluid surface (URP, 2019.4 and up)
Volumetrics, new in 1.3 (URP/HDRP, 2021.2 and up)
You can use the included shaders on your project right out of the box, or as inspiration for your own simulation-driven shaders.
Expand 2D fluids into the 3D realm.
FluXY fluids live in containers. A container can either be a custom mesh or a flat rectangular area. Containers can face the camera, and objects in the scene can splat density and velocity data onto containers. All 3D data coming from the outside world such as forces, velocities, is projected to 2D. This gives the impression of a full 3D simulation, but orders of magnitude cheaper.
(NEW in 1.4) Record simulations to flipbook textures
Select any container and record a flipbook animation from it! These are cheap to play anywhere in your scene, and will look smooth even if they have few frames thanks to motion-vector based interpolation.
Turbulence, pressure, buoyancy, surface tension, external forces...
Take full control of the simulation: make swirly fluid by increasing turbulence, make it expand by reducing pressure, rise to the sky by increasing buoyancy, use adhesion and surface tension to make dripping paint, let it be affected by wind...
Inertial effects
Fluids can inherit the movement of their container. Put a torch in a character's hand, and the flames will be affected by running, jumping, waving and any other movement. You have full control over how much acceleration/velocity is transferred to the fluid.
Simulate fire, smoke, ink, water, paint, and other VFX.
Make your players traverse oily water, unleash magic spells, add smoke to destructible/crumbling objects, and more.
Dynamic Level of Detail (LOD)
Integrated with Unity's LOD components, distant simulations are performed at lower-resolution. Transition between levels of detail is smooth as butter.
Fast separable pressure solver
Calculating pressure usually is the most expensive part of fluid simulation, as the same basic math operation has to be repeated many times per frame. FluXY offers you a fast, separable pressure solver that achieves results comparable to traditional methods in a fraction of time. And, you can still choose to use the traditional way if you wish.
Waves
When using the traditonal pressure solver, pressure values can double up as a cheap wave simulation.
100% GPU
The entirety of the fluid simulation happens in your GPU, using fragment and vertex shaders.
Parallel simulation of multiple fluid containers.
Simulating one fluid container is fast, but simulating up to 16 at the same time is even faster. FluXY uses automatic dynamic atlasing to put multiple simulations into the same texture, for maximum performance.
Full source code included. Fast support and regular updates.
If you want to modify FluXY, add custom features to it, or just take a look under the hood, you'll be happy to know that every script and shader is included and easily editable. If you need assistance or have a question, drop us a line and we'll do our best to help.
What do I need to know to be able to use FluXY?
For basic use cases, very little experience is needed. Some basic Unity skills and understanding 3D concepts such as world/local space, raycasts, velocities/accelerations... will get you far. No C# scripting needed.
As you get into more elaborate effects, some shader knowledge is useful. FluXY outputs fluid density and velocity values as textures, you can use these as input in your own shaders to create some seriously cool stuff.
Things FluXY isn't / doesn't do:
Not a full 3D fluid simulator, no volumetric effects. Simulation takes place on a 2D plane.
No free-surface fluid simulation (can't simulate pouring fluids on containers, for instance).
Not a fluid renderer. A basic unlit shader compatible with all SRPs is included (used in most store videos/images), and sample shaders for fluid surfaces and volumetrics, however you must use your own shaders for anything fancy. Fluid simulation outputs two textures (density and velocity) that you can easily use in your own shaders/materials to match your game's look.
Can't simulate large water bodies like oceans, rivers, etc.
Does not support two-way rigidbody coupling. Rigidbodies can either drive the fluid flow, or be driven by it, but not both at once.
Limitations for custom meshes
FluXY performs simulation in texture space, so meshes must be UV unwrapped with this in mind: uvs must be non-overlapping, and texture seams minimized since fluid cannot flow across seams.
FluXY 可使用 GPU 模拟出 3D 效果的 2D 流体。可用于模拟火、烟、油漆、水、轨迹和各种视觉特效。
FluXY 是一款基于 GPU、网格的 2.5D 流体模拟器。它轻便、快速、强大且易于使用。你可以用它来实时模拟流体效果,也可以生成翻书纹理。
包括以下着色器
不透明流体表面(URP/HDRP,2019.4 及以上版本)
透明流体表面(URP,2019.4 及更高版本)
体积,1.3 版新增(URP/HDRP,2021.2 及更高版本)
您可以在项目中直接使用附带的着色器,也可以将其作为您自己的模拟驱动着色器的灵感来源。
将 2D 流体扩展到 3D 领域。
FluXY 流体存在于容器中。容器可以是自定义网格,也可以是平面矩形区域。容器可以面向摄像头,场景中的物体可以将密度和速度数据溅射到容器上。所有来自外部世界的三维数据(如力和速度)都会被投射到二维环境中。这给人一种全三维模拟的感觉,但成本要低得多。
(1.4 中的新功能)将模拟记录到翻页纹理中
选择任何容器并从中录制翻页动画!由于采用了基于运动矢量的插值技术,这些动画即使帧数很少,也会看起来非常流畅。
湍流、压力、浮力、表面张力、外力......
完全控制模拟:通过增加湍流使流体形成漩涡,通过减少压力使流体膨胀、
|