Smart Water Basic

Products | 35 comments
IMPORTANT: this product has been updated to version 2 and now has its own website.
Check http://www.smartwater3d.com for more info.

The most flexible and easy to use water. Your only limit is your imagination. Can be applied on any surface animated or not, underwater is working even on non plane surface! Works on any device that supports OpenGL ES 1.1 up to shader 3… Smart Water for all Mobile Phone can be found here.

Product News

8-June-2012: new video tutorial available
You can see the video in the Tutorial section. This video shows exactly how to import and adapt Smart Water to your project.
10-August-2011: version 1.69
Maintenance release, fixes some issues with Unity 3.4 and some broken demo scenes.
23-June-2011: version 1.68
added new caustic animation loop
added new main water animation loop
added 4 new prefabs using the new graphics
added 6 new example scene using the new graphics
changed the way the auto-config is working, now using #pragma so that there is no more errors and need to edit the code when you change platform.
changed the way the underwater plane and spotlight are managed. Now in all the scene they can be disabled, SmartWater will enable them at will.
added new feature to stretch the water textures according to your water plane size. You can now use the X/Y parameter to adjust the size.

6-June-2011: version 1.64
added support to Smart Water Mobile OpenGL ES 2.0 (new item in drop down menu for Open GL ES 2.0) fixed bugs about water plane initialization fixed bug when using several water on the screen and the underwater for each too much fixes and bugs fixes to list.

31-May-2011: version 1.6
Important improvement and support for the 1st extension of Smart Water: for Mobile (OpenGLES 1.1)
new code for the editor and the brain now support several underwater for example
all the shader patching is replaced with materials
drop down menu to select the Smart Water platform
new button in the Setup to disable the automatic material management. Useful when you need several Water materials in the same sceme (see the manual)
updated user manual, now available online in a flash viewer.
the island demo has been removed because it was doing a lot of errors with the Mobile version. It will be available in download separately in the free section of http://unity3dx.com.

18-May-2011: version 1.5
Changes made to support the upcoming extensions to Smart Water.
Smart Water now is working in the editor, no more need to play in order to see the change of the parameters.
Bug fixes

03-May-2011: Version 1.43
Fixed the FPSCamera prefab that was broken in the last version
Added the foam, that was missing.
Small fixes in the scenes and water prefabs.

01-May-2011: Version 1.41
This version includes the Island demo modified to support Smart Water…

28-Apr-2011: Version 1.4
new FPC/FPS camera prefab, so that you can drag and drop and have an FPS shooter type of gameplay.

26-Apr-2011: Version 1.2
new presets. (DarkCity0, Darkcity1, Darkcity2, River2, IcedWater2)
texture cleanup, removed unused textures.
24-Apr-2011: Version 1.1
bug fix in the shaders (fog set to exp2 instead of linear)
new presets (IcedWater, Tropical2, River1)
22-Apr-2011: Version 1.0: Initial release.

Description

slide Smart Water Basic

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

Smart Water is ready. It is Indie and Pro compatible. All the videos and pictures are working the same for Indie/Free version of Unity. Smart Water is delivered with several water presets (Tropical, Darkcity, Ocean etc…) Features:
  1. Drag and Drop water material that can be applied on any mesh (animated or not)
  2. Underwater with rays of god (even on non plane shapes)
  3. Total control of the refraction, reflection, caustics, transparency, colors, etc… thru a top-notch real-time editor.
  4. save your new waters in a prefab, you can drag and drop in any project.
  5. Easy insert in your project (check the tutorial)
  6. Simple to use even for non programmer.
  7. Can be used for any kind of water, Ocean and very large water surface.
  8. Can mix several type of water, that can interpenetrate and can have totally different look.

Medias

underwater01 300x273 Smart Water Basicisland01 300x180 Smart Water Basic\
island02 300x180 Smart Water Basiclake11 300x185 Smart Water Basic
2waters 300x273 Smart Water Basicdarkcity 300x185 Smart Water Basic
panel01 300x257 Smart Water Basicpanel03 300x297 Smart Water Basic
panel02 300x152 Smart Water Basicpanel04 255x300 Smart Water Basic
panel05 300x133 Smart Water Basic

Tutorials


How to adapt Smart Water to The Island demo in 10 minutes.

Introduction Tutorial






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

Manual%20Smartwater htm m28867c84 Smart Water Basic

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.

Manual%20Smartwater htm m6acf6472 Smart Water Basic














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

Manual%20Smartwater htm m68d67420 Smart Water Basic













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

Manual%20Smartwater htm 47a80028 Smart Water Basic










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

Manual%20Smartwater htm 358a1173 Smart Water Basic













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

Manual%20Smartwater htm 2c415191 Smart Water Basic












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

Manual%20Smartwater htm m4e7800a0 Smart Water Basic
















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.

Manual%20Smartwater htm 47a80028 Smart Water Basic

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.

Manual%20Smartwater htm m666f89ab Smart Water Basic










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!

Manual%20Smartwater htm 6452e7a Smart Water Basic
                           

















 

Buy!


IMPORTANT: this product has been updated to version 2 and now has its own website.
Check http://www.smartwater3d.com for more info.
 

Related posts:

Users Comments

 

35 comments

  1. Robin says:

    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?

  2. admin says:

    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.

  3. Brady says:

    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?

  4. admin says:

    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!

  5. Robin says:

    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.

  6. Robin says:

    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.

  7. admin says:

    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.

  8. admin says:

    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)

  9. admin says:

    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.

  10. Robin says:

    The update page is not working. All my purchases id are not found.

  11. admin says:

    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.

  12. Laurent says:

    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 ?

  13. admin says:

    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.

  14. Robin says:

    Can you share what to change for ios deployment please?

  15. admin says:

    iOS will be an upgrade. I cannot share it. It is not so simple. I am working on it.

  16. jeon says:

    very Good!!! one question … smart water is able at android for Unity3d ?

  17. admin says:

    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).

  18. gecko64 says:

    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?

  19. admin says:

    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.

  20. george says:

    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!

  21. admin says:

    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.

  22. Dan says:

    Do you have a ocean water product that will show the wake behind a ship?

  23. admin says:

    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)

  24. Neeraj Kumar says:

    Hey will this work without sacrifice of FPS on Nvidia Tegra 2 devices?

    thanks.

  25. admin says:

    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)

  26. Mike says:

    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.

  27. admin says:

    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.

  28. Richard says:

    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

  29. admin says:

    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

  30. limsangmuk says:

    I recently purchased your Smart Water program because i need functions these are bouyancy toolkit and wave controller. i couldn’t find these, but i saw images at Asset Store from unity3d, where are these??

  31. admin says:

    “bouyancy toolkit and wave controller” are 2 different products. You purchase Smart Water. I have not made bouyancy toolkit and wave controller, so you need to purchase these toolkits to their authors, I cannot help since I am not involved in the making of these. Smart Water is compatible with bouyancy toolkit, I have tested it.

  32. limsangmuk says:

    thank you for your answer .And i have a question. it is Free Ocean is compatible with bouyancy toolkit??

  33. admin says:

    Yes I got it to work with Free Ocean.

  34. [...] : new Tutorial demo News | No comments I am finally working on updating and improving Smart Water. First step is a tutorial video about how to integrate Smart Water into your [...]

  35. Zee says:

    Yeeaaahhhh
    Thank You very much !


Leave a comment