Making realistic, immersive games is never easy. Something always stands in the way of its success. And most of the time, this has something to do with weird graphics. Let’s say you have a really cool plot, some out-of-the-world game mechanics, and tons of innovative worldbuilding. Seems like a recipe for success, right? But it all can be spoiled if your visuals do not meet the bar you’re aiming for. The list of the problems that can occur in this area is obviously very long and tiresome. But if you were to name one, one of the hardest things to achieve while creating games is making realistic fluids. And that’s probably why you are here.
There are two ways to simulate fluids in game dev – to simulate the surface of the fluid or use a particle simulation approach. By using particles you can create cool beautiful effects, just like in the movies, but they are very heavy. That’s why game designers usually prefer to bake them into the scene. And it’s not a bad solution per se. But this method doesn’t allow any interactivity – it will only work the way it is baked.
But if you want to create cutting edge game-mechanics and make your fluids interactive, questions start to arise. How to create a realistic water simulation that parts when your character walks into a pond? How to create mud that deforms under the tires of a moving car? Should you create your own technology? Is it even possible to create affordable particle simulations of fluids in real time?
In short – yes. But creating such a solution is not an easy task. It requires a lot of time, money, and a specific knowledge of physics. There is also a huge risk to waste endless hours and resources on something that is not guaranteed to work. Believe us – you don’t want to have this headache when thousands of other problems are waiting to be solved. And why should you when we have already created the perfect solution? This solution is Zibra Liquids.
The very first thing that you need to understand – Zibra Liquids is a revolutionary plugin for real-time fluid physics simulation and rendering. It was born from the synergy of a physical solver that allows for a physically accurate fluid simulation and artificial intelligence-based technology for neural object representations.
Unlike most of Zibra’s counterparts, our plugin is GPU-based. The reason for this is very simple – video cards are more energy efficient and powerful than a CPU, especially for mobile phones.
The solvers’ physics is mostly based on the Moving Least Squares Material Point Method. If you are interested, you can read about it here, but to sum it up, it’s a numerical technique used to simulate the behavior of solids, liquids, gasses, and any other kind of continuum materials.
In the Material Point Method (MPM), all the information on the state of the calculation is stored in particles, and not the mesh points. There are no numerical errors from the mesh returning to its original position after each calculation cycle, and no remeshing algorithm is required.
This method is not exactly new and was created in the late 80’s, nevertheless, an improved version – Moving Least Squares Material Point Method – appeared only 4 years ago, in 2018.
It allowed for much faster particle simulations and a couple of various new phenomena, not previously supported by MPM, including material cutting, dynamic open boundaries, and two-way coupling with rigid bodies.
This, together with our custom rendering algorithm, allowed us to create a quick physical solver for fluid simulations.Now we are constantly working to improve its performance using algorithmic optimizations, shader optimizations and platform-specific code paths to achieve maximum efficiency on every device.
Thanks to that, our plugin simulates dozens of millions of particles on high-end hardware, millions of particles on laptops, and hundreds of thousands of particles on mobile devices, all in real-time.
Cool, isn’t it? We agree. But at this point you are probably wondering, where is the artificial intelligence? Fear not, it plays a very important role in our plugin. As you probably already know, to represent objects in a 3D game-designer usually uses something called Signed Distance Field (SDF).
Two years ago the ZibraAI team developed a way to encode the Signed Distance Field (SDF) of any 3D object into compact vectors, which then can be unpacked by a small neural network to restore the original SDF. It allowed developers to find a way to significantly simplify the interaction of particles and objects of complex shape.
Making complex objects interact with their surroundings is not an easy gig. For it to work properly, it is usually necessary to divide such shapes into simpler ones, and then configure the simulation of interaction with each of these objects separately.
This process takes a long time, not to mention the effort involved. In general, all the solutions on the market do not provide interactivity and they require powerful PCs. But using Zibra Liquids, fluid interaction is realized with any complex object as a whole and can be achieved in mere seconds. Liquid ‘understands’ the shape of the 3D object and can flow around it correctly.
The plugin provides realistic physics and visual quality effects at the CG level in real time and best-in-class performance. Needless to say, no one has done anything like it at the same level before.
All of this combined makes Zibra Liquids a superpowered solution for small to midsize simulations. It allows you to create exceptional visual solutions with anything that can be counted as a liquid. It’s not сurrently meant for creating oceans and seas – although our team has such plans. But by using Zibra Liquids, you can make realistic-looking, cinematic rivers, waterfalls, ponds – almost anything that comes to mind- and adjust their parameters in real-time.
Zibra Liquids currently has two versions with slightly different functionality. A free version, created for demonstrational purposes, supports a limited number of features and allows you to test our solution and make sure that it fits your projects.
There you can ‘play’ with different manipulators, adjusting physical and visual properties of your liquid. But we recommend buying the full version – only then will you be able to utilize the full power of our plugin.
What are the key perks? First of all, the full version of Zibra Liquids supports an unlimited number of liquid colliders. We have two types of them: analytical and voxel. Analytical methods allow you to add simple geometry like cubes, spheres, and bowls as liquid colliders. Voxel сolliders allow for creating a neural SDF representation for arbitrary geometry and using it as a collider for the liquid component.
It also has force fields. This feature can be used to apply a custom force onto the fluid volume, to create special effects which can not be reproduced with colliders. There are several types of force fields: radial, directional and swirl. They all have different purposes. The radial force field pushes or pulls liquid towards itself. Directional – pushes liquid in a specified direction. Swirl – creates a whirlpool force around the force field.
You can use them to create custom effects. For example, using a radial force field you can create radial gravity instead of the default vector one. Or you can make a fountain by putting a force field that pushes the liquid up in the body of water.
And – the coolest thing ever – apart from force fields, the full version also supports force interaction with rigid body components and allows you to fully use the fluids as a gameplay feature.
It uses the same core technology as voxel colliders – neural SDF representations. Understanding the shape of the object, we made it possible to set its weight. Thanks to that feature, liquid can apply a force to the object. For example, they can carry away light objects, such as bowling pins, and break into heavy objects like rocks.
This technology dramatically influences the game’s appearance, and is essential for creating realistic simulations of liquids that can affect objects in a scene.
But that’s not nearly everything. Zibra Liquids has many other features. Using them, you can easily adjust different physical fluid parameters like stiffness, viscosity, surface tension, etc. Thanks to that, you can transform your liquid and give it an attribute of whichever material you want. Blood? Lava? Mud? We’ve got you covered.
To make your life easier, Zibra Liquids also has a number of presets. They allow you to make the transition between physical and visual parameters of liquid, such as stiffness, boundary force, metalness, opacity, refraction, reflection, and many others in real time to achieve the desired result.
Among the available presets you can find: pool water, seawater, foam, liquid metal, white paint, and others. You should also be aware that they are easily adjustable. In case you don’t like something, you can always finetune the parameters to your liking.
It’s also possible to create your own presets to use in the future. More about the differences between the free and full versions can be found here.
Another thing you need to know about Zibra Liquids is that it is embedded directly into the game engine. This means that game developers no longer need to use expensive and complicated third-party software or struggle with creating similar solutions themselves.
The plugin is easily adaptable. You can already buy it on the Unity Asset Store. Soon it will also be available for the Unreal engine. Support for other platforms is also on the way.
Here is what you need to use Zibra Liquids on Unity:
- Editor platforms: PC (DX11, x86 and x64), macOS(Metal,x86 and arm64) For M1 Mac users, the M1 native version of Unity Editor is strongly recommended.
- Unity version: 2019.4 or later (use the latest feature update)
- Supported Render Pipelines: SRP, URP, HDRP
- URP: 7.5 or later
- HDRP: 7.x or later
It’s super easy to integrate – the whole process should not take more than 10 minutes. All that you need to do is click on the installation file, choose the option ‘open in Unity’, and follow the standard procedure. In a couple of minutes, you will be able to enjoy amazing features.
Our team constantly improves the product and seeks to make it as good as possible. It already runs on a wide range of devices. Build platforms:
- PC(DX11, x86 and x64)
- UWP(DX11, x86 and x64)
- macOS (Metal,x64 and arm64)
- iOS (iOS version 12 or later, iPhone 6s or newer)
It means that you can already create unparalleled small to midsize simulations for almost every device. Soon it will also be available on even more platforms – the work on adapting Zibra Liquids for Android, VR, and AR is already underway.
And while we are not designing huge amounts of water yet, our solution allows you to make what’s really important – to fully make liquid a part of your gameplay and breathe new life into your project.
Zibra Liquids is very user-friendly and has an intuitive design. It usually takes only a couple of minutes to become familiar with the interface, so you should not have any issues. But in case something is not immediately apparent, our team has already started releasing tutorials on how to work with emitters, voids, voxel colliders, and other features. Check them out on our YouTube.
You can also always ask for our advice via mail support@zibra.ai, or in our Discord community. Even if everything is working fine for you, it would be cool if you appeared on there just to chat and bounce some ideas off of us – we are always grateful for any feedback from you!
You should also be aware that we are planning to implement Zibra Liquids’ core technology for other products. It will allow you to create other cool visual effects – for example, realistic smoke, fire, etc. So stay tuned for updates.