Smart Water Basic
Product News
- 10-August-2011: version 1.69
Description
Smart Water has been designed from the ground up to be as much flexible as possible. With Smart Water you can easily add convincing professional looking water to your project in a matter of minutes, without having to edit any scripts. The Editor is fun to use and you can experiment in game until you find the right setting, and save you result as a prefab for later use. Smart Water is the water every Unity developer is waiting for, and it works without the need to use the expensive PRO features.
Smart Basic is the basic expansion for the upcoming plug-ins for PRO & Mobiles version. Low price upgrade will be offered to the owner of a Smart Basic water. Smart Water basic will be necessary to run PRO, Mobile and other water I will release, so it makes no difference buying Smart Water basic and upgrading later.
Features
- Drag and Drop water material that can be applied on any mesh (animated or not)
- Underwater with rays of god (even on non plane shapes)
- Total control of the refraction, reflection, caustics, transparency, colors, etc… thru a top-notch real-time editor.
- save your new waters in a prefab, you can drag and drop in any project.
- Easy insert in your project (check the tutorial)
- Simple to use even for non programmer.
- Can be used for any kind of water, Ocean and very large water surface.
- Can mix several type of water, that can interpenetrate and can have totally different look.
Medias
Tutorials
Introduction Tutorial
How to make a ball of water and manage several type of water collisions.
How to integrate Smart Water to the Unity Island Demo.
This tutorial needs to be updated, new features have been added to Smart Water. However it shows you how to save and integrate your Smart Water into your project.
Help

Smart Water Basic & Mobile
User Manual
Introduction
What is Smart Water? The idea is to use some unconventionnal typical gaming tricks to get the most attractive water that also will be cheap on CPU/GPU, and will work on any platforms, including Open GL ES 1 and the first generation of iPhone/iPod and Android v1.
Because Smart Water is designed from the ground up to be very efficient , it is also possible to make it compatible with all these platforms without having to make a different build. You can select the water you want at run time and make an universal build for iPhone that will support all devices.
If you select change one water, your changes are reflected in all target platform at a time.
Now it is not because Smart Water is light on CPU and GPU that it will not use all the Hi-End Shader 3 features. Smart Water PRO will be based on the same fundations but will aim to be the best and most usable middleware water available.
History:
Simulation of Water always been a very interesting case study for me and I started working on that problem with Blitz 3D in 2004. Without using any shader and only with Directx 7, I was able to fake a lot of hi-end water features.

I was able to get refraction, sun highlight, caustics, transparency without shaders, just by adding textures with DirectX7.

This picture made with Blitz 3D in 2004 is interesting, because it shows most of the tricks of Smart Water published in 2011, and it is looking quite similar with the Tropical1 water preset for example.
After doing these research gave up on the water, because it was unusable in a real game (too slow at this time) while following the work done by Leadwerks, and some others on water.
One day I read a thread in the Unity Forum where someone was looking for an Ocean Shader and it sounded like a task for me. Toretank did a very interesting demo and I decided to plug some of my tricks on this demo and I released my version of this Ocean Shader plus this video: http://youtu.be/s8eWPtF_2vA
After the success of this video and this shader I released the source code and let other people using it I hoping that something amazing will come up from that. 2 years after, I checked the thread and nothing with the WOW factor expected was released, some underwater and some interesting features still under development but nothing like what I had imagined.
I decided to update the Ocean shader to the V3 of Unity the result can be downloaded here : http://www.unity3dx.com/index.php/products-free/
Lot of people contacted me after I release this version of the Ocean and most of them complaining that it is not working on Indie or iPhone. I decided that there was a strong need of a better water for Unity that would work for everybody and decided to take the time necessary to put all the experience and tricks I found with years in this expansion.
Quick start:
You want to integrate Smart Water into your project really fast? Ok just follow these simple steps.
1- Load your project.
2- Delete your camera (you can add your camera script later and replace the basic Mouselook script with yours.)
3- Import Smart Water prefab into your project
4- drag and drop one Smart Water prefab presets from the PRESET directory (Tropical1 for example)
5- drag and drop the Camera prefab from the PREFABS directory.
Now you are good to go!
If you want to adapt your camera to Smart Water, you just have to import one Camera Prefab and copy the ‘Plane’, the ‘Projector’ and the SmartWaterUnderwater.js script on the GameObject that has a CharacterController attached. Smart Water needs the CharacterController to work.
Then you need to document the empty spot in the Script, the camera, Skybox materail, Projector, Plane, the underwater speed (resistance of the water) and most importantly: the collider that will trigger the underwater switch.
That’s it
Compatibility:
Smart Water Basic is compatible with all MAC/PC/WEB devices supporting Open GL 2 (Shader 2) architecture.
Smart Water Mobile supports all mobile devices from iPhone 2G to iPad2, Android 1 and 2, iPod all generations. There are specific shaders for each platform, make sure you use the right one.
Achitecture:
Smart Water uses 2 main components:
-
the Smart Water Editor.
This component refresh the shader with the correct textures animations, colors, and some mathematics made on the CPU. This editor needs you to run Unity so that it can work, because it is updating the shader in realtime and this cannot be done in editor mode.
-
the camera script. This script is used to manage the collisions and the underwater.
Useful directories:
Prefabs: this is where you can find the Camera prefab that you need to use for the underwater.
Scene Exemples: where you can find the example scenes.
Material Internal: this is where the water material used are store. If something is wrong with the water, make sure that your materials are set with the correct shader.
Textures/Displacement: you can use these textures to change the bump texture and have a different looking water.
Terrain: you will find a lot of terrain seamless textures here.
Smart Water Editor
The Smart Water Editor is the place where you can customize the water. We are going to review in details the options.
1- Setup

Scene Camera: this is the main camera of the scene. Must be the SmartWater Camera prefab though, even if you can replace the MouseLook script with an FPS script or anything else, the camera comes with a plane attached for the faked rays of god Fx plus the Underwater Script that manages the collisions and the underwater.
Directional Sun: this must be your sun in your scene. Note that it MUST BE a directional light, not a spot. Also you need to move your light and adjust it so that it is aligned with the sun reflections on the water. Once done you can move the sun and the reflections will follow it.
Current shader: this is automatically assigned. If not there is a problem.
Current Material: this is automatically assigned. If not there is a problem.
Current GameObject: this is automatically assigned at run time. If no t there is a problem.
3rd party: Smart Water will detect 3rd party components and adapt itself to them.
Size of the plane X: the default is 1000, but if you need a very small plan, you might change these values, this will resize the textures accordinally so that your small water does not have stretched textures.
Size of the plane Y: idem
Fixed Water Plane (y=0?): if checked, the water will be forced to be at y=0 and will slightly move to simulate waves on the border. Use that only for ocean, sea, big lakes and any large water planes.
Material Independent: this button must be off if you want SmartWater to manage the materials for you (default value), however if you want to use several Water materials in the same scene, you must check this box so that you will have to set the materials by yourself ( Drag and drop in the Current Material slot). If you do not do it, you will get errors unassigned objects from Unity.
2-Presets

Very easy panel. When you want to save your water (because if you stop the game your real time settings will be lost), enter a prefab name and press the save button. Your newly saved prefab will be located in Smart Water/Presets/ directory.
3- Textures

Bump Texture (or displacement texture?): this is the main texture that is animated procedurally in the shader and is doing the wave animation effect. You have a lot of different displacement and bump textures to test in the TEXTURES/DISPLACEMENT directory, just drag and drop one and see the result. It changes dramatically the look of the water.
Reflection texture: because indies cannot use render to texture, I use a basic skybox in a cube map to get a fake reflection effect. You can change this cube map with the current skybox you will use in your level and it will look great!
Refraction texture: does affect the color of the water a little bit. I will probably rework this in the future or remove it.
Fresnel texture: you should not change that. You can use a different fresnel gradient if you know what you are doing and get some interesting result.
Caustic Size: this will change the size of the cautics as said in the name. Caustics are a 32 pre-made animation loop. This parameter will affec t the underwater animations as well.
4- Parameters panel

Main Water Color: this is the color that affects the main textures color. Changing this color will change the whole water color.
Specular Color: this will change the color of the refraction only.
Caustic Color: this affects the caustic color only.
Sun Color: this changes the color of the sun.
Transparency: this is the transparency. 0= invisible, 1=opaque.
Refraction Power: use this slider to add more or less Refraction on the water.
Sun Power: make the Sun more or less contrasted.
Sun Wide Halo: make the Sun reflection wide or narrow.
Caustic Power: add more caustics: 0= no caustics.
Water Speed X: move the water X pixels per frame (-1,1)
Water Speed Y: move the water Y pixels per frame (-1,1)
By using these 2 parameters you can change the water direction (for a river for example)
Note about Smart Water for Mobile devices.

Smart Water Mobile is working the same as Smart Water Basic. It uses all data and settings from the basic edition and translate them into the closest match for Mobile.
Smart Water Mobile has 2 shaders, one in one pass and one in 2 pass.
The number of pass affect the speed of the shader, that’s why it is advised if you need the maximum speed to use the one pass one.
However the shader in one pass lack of control on the cautics power.
All Smart Water Basic prefabs should work with the Mobile version, you just have to create the water you want and switch by using the drop -down menu in the setup Tab!
Smart Water Basic supports underwater, caustics, transparency, size of caustics, diffuse color, specular color, emissive color and you can save the setting as a prefab.
Advanced Technical Aspect.
If you want to understand and modify Smart Water, you need to read this section.
Smart Water does not touch to any shader in the editor or in game, but it only touch at the materials. These materials are stored in the Materials Private directory in Smart Water Basic folder.

Each material corresponds to a shader. If you want to customize Smart Water, the only think you need to do is to modify these materials. For example you could change the underwater shader by creating your own one and change the material SmartWater Underwater with it. If you respect the same entry points naming convention (_MainTex, _BumpMap…) then the editor will still work the same with your shader.
Actually there are 8 pre-made materials.
SmartWater2G: this is the main 1 pass Smart Water material for mobile.
SmartWater2G2Pass: is the main 2 pass Smart Water material for mobile.
SmartWaterObject1, SmartWaterObject2: are here for demonstration purpose in the examples where there is more than one Water material on screen.
SmartWaterPlane: this is the basic smart water for the Indie version.
SmartWaterUnder2G: this is the underwater for the mobile platforms.
SmartWaterUnderSkybox: this is the skybox that will be used when underwater. You can for example create a nice reef skybox and use it here.
SmartWaterUnderwater: is the underwater version of SmartWater Plane, the basic version of the underwater for SmartWater Basic.
What’s the future of Smart Water?
I will improve Smart Water to have PRO only features like real reflections and full screen shaders underwater Fx. I will also add more examples and presets. I will release plugins, for iPhone, Waterfall etc…
How to use several Smart Water in the same project.
First you have to set the “Material Independent” flag in the Setup menu. This flag will disable the automatic management of the materials from the editor so that you can set the material you want for the shaders.
Now you need to have 2 different shapes and attach a smartwater script to them, always check the Material Independent flag.
You need to have 2 fresh new materials, that you will set with the SmartWater shader you want (Indie, Pro, mobile…)
Now you can tweak your water independently for each shape.
How to change the style of the water?
Now if you want to make a river, glass of water, or whatever, I provide a lot of displacement maps, ready for you to use. In the future I might do a drop down menu for that, but right now you can just drag and drop one of these displacement map on the Bump Texture slot and the water look will change completely. The Underwater will be affected too!

Buy!
Your Cart
Your cart is emptyVisit The Shop
Recent Posts
- Magma Planet released and updates for the photorealistic shaders.
- Magma Planets
- Massive Updates!
- Asset Store and Updates
- News : Ultimate Rock Bundle v2 released




















Hi,
I noticed when I change the parameters, eg. Main Water Color, the color is not updated until I play the scene. Is it able to get real time editing updates?
No. Unity won’t allow the Editor to run because Smart Water is patching the shader in realtime. As you can see in the editor the SmartWaterBrain is running all the time, but try to comment the IsPlaying test. It does an error. Apparently when you modify a shader material in realtime (texture rotation etc…) Unity complain about leaking materials…
The way to use Smart Water is to tweak it in game, and when you have the right water, save the result as a prefab.
After you just have to replace your water with your prefab.
Does this have settings sufficient to create a semi-realistic Niagara-style water fall? i.e. to appear to be flowing rapidly in a particular direction, and to have those whitish “crests” toward the end of the fall?
Yes I think so. Take the IcedWater preset and use the SpeedX and SpeedY in the parameters section to make the water flow in the right direction. You might have to add some particle on the top of the water and it will look terrific. If you do it, give me a link to a picture and I will publish it in a gallery I am making!
Hi,
Want to report. with 1.1, it doesn’t work on ipad. It got a SmartShader Up unsupported error, and the water is black.
Just to add, I deployed on opengl es 2. I have not received 1.2 and the other updates pack I have sent to your email.
To update you need to go to http://www.unity3dx.com/updates/ and enter your Transaction ID (top right of your Paypal email receipt) and your email. You will receive a link to the latest update just after.
Yes it does not as for 1.2. Smart Water basic is for Pro and Indie only. However people asked me if the shader is compatible iPad/iPhone and I answered yes. I am working on the iPad/iPhone version that will be and upgrade to the Basic version. (same like Unity basic/pro). You can try to adapt the shader to iPad/iPhone, if you need it quick. There is nothing technically that stops the shader itself to run. Just some code adaptation. I will try to release the iPad/iPhone version asap. The Pro features will be and upgrade as well, as this version of the shader does not uses any PRO features (yet)
Yes, Unity does not allow changing textures on the fly on shaders in editor mode. You need to run to see the water. Then you change the water and save it as a prefab. Then you just need to replace your actual prefab with the new one as explained in the last tutorial. Once you know how to do it, it takes less than one min to change the shader. I will investigate if I can run the water in Editor mode, but so fast I get an error message by Unity saying that I cannot change the shaders material in Editor mode or it will generate materials leaks.
The update page is not working. All my purchases id are not found.
I have removed the Transaction ID. Apparently Paypal send a different transaction ID for the buyer and the seller. Now you will be asked only your email. I hope it will work now
Thanks for your patience.
Hi
I am not a programer, and i didn’t understand how i can take a camera first person with the camera. With the touch that i want ?
Need a tutorial please.
Je ne suis pas programeur et je n’ai pas compris comment je peux faire ma propre camera fps ou une camera 3ieme personne avec la camera smartwater avec mes propres touches ?
Hi Laurent, please open a ticket. I will attach to the ticket a new FPS prefab that is working for Smart Water right from the box. It will solve your issue. This new prefab with some fixes will be released in v1.4.
Can you share what to change for ios deployment please?
iOS will be an upgrade. I cannot share it. It is not so simple. I am working on it.
very Good!!! one question … smart water is able at android for Unity3d ?
Probably but I will do the iPhone 2, iPhone 4, PRO versions first. I currently do not have a license for Android. I am not sure there is a market there (yet).
I’m confused about Basic, Pro, and Mobile. I don’t need Mobile, but it seems like Mobile = Pro in that it includes the additional shader options for Pro. Is that true…or how do I get Pro? And what features does Pro have that Indie doesn’t?
Basic is the one to have first. After you have basic you can add plugins. Mobile is a plugin. It adds to Basic the shaders, code and editor to have a full compatibility with all range of mobile phones, you can buy it later, if you need to do a version of your project on Mobile, you will not have to change your project a bit (for the water at least). PRO is not released yet. It will be like Mobile, a plugin that need to be added on the top of Basic. Actually most of the assets are in Basic. PRO will not be revolutionary, I want this water to stay compatible with a large range of PC/MAC. Also it has to be realistic and be included in a game, Smart Water is not a technical demo by itself, it is a Water that aim to be used in games, that means use as less CPU/GPU as possible and have a wide compatibility, same as Unity.
Can this be used for a river (conform to terrain/object’s shape of “riverbed”) and how would the best way to make “splash” when entering your water…
designer more than coder…so, please in terms as such…
Thanks!
This water is like a procedural material that can be affected to any shape. Make a river shape and assign the Water to the river, use the X/Y parameters to make the water moving in the direction you want and you are set. There is even a preset with a ‘river looking’ water.
as for the splashes, particles is the only way I thing if you want to use low CPU.
Do you have a ocean water product that will show the wake behind a ship?
I don’t have a specific product for that, but it is easy to do with particles and trails. If you have a budget for that I can custom make it for a reasonable price. (open a ticket in our Support area for that)
Hey will this work without sacrifice of FPS on Nvidia Tegra 2 devices?
thanks.
Yes it is very fast on Tegra 2. The only problem is the Open GL 2 shader with iPhone 4/iPad1 and older devices. Because these devices have a very low shader system. But the new generation (iPad 2 and iPhone 4S) does not have this problem. For old devices and slow video cards, there are the Open GL 1 shaders. They can be set on the fly, so it is easy to make an option screen where the customer can select the quality of the water to match the speed of his computer (or detect this automatically with the provided auto detection script)
I was wondering if there was any eta on the Smart Water Pro add-on that was talked about roughly 7 months ago. I noticed you have a sneak peak video up as of Oct 5th, have have not heard or seen of anything since.
I have been working on several projects, but I am now working on SM Pro and it should be ready soon after 3.5 is released by the Unity team. Actually I have around 10 updates and new products that are waiting to be released for 3.5. I cannot upload to the Asset Store right now, because all the projects I work on, are made with the B7. I hope they release soon. Smart Water basic and mobile will have new functions and new demo products, the Island demo will be downloadable separately and some extra packs like a shoreline creator and a new intermediate shader for mobile will be released too.
Hello,
I recently purchased your Smart Water program and have not been able to get it to do anything similar to what you show in the videos that advertise it. I have tried to follow your instructions and tutorials to the letter, but still nothing. On top of that the video tutorials that came with the project are no longer listed on YouTube. I have also copied and pasted some instructions from the .pdf enclosed with your program and highlighted assets that are referenced but do not exist by those names in the assets that came with Smart Water.
Basically I am trying to implement the use of Smart Water in a project I have already been working on for quite some time. I need to use the third person controller I have developed and incorporate any and all assets to make the Smart Water work smoothly with my project.
Your help in this matter is greatly appreciated. I look forward to your prompt response.”
Thank you very much,
-Rich
Please open a ticket as I cannot manage these kind of questions right on our page.
When you open the ticket, please provide me a screenshot of your smart water Setup page and one screenshot of what you see.
A common mistake is to set the emulation on MBXLITE which support only OpenGL1 and try to display OpenGL2 quality shaders, which of course will not work.
Ultimately you can dropbox me your project or your level and I will fix it: my dropbox is “nicolas at choukroun dot com”
I did it many time, it will take me 10 min to have the exact same quality you see in the videos and you can see what I did and learn from that.
Best