Search Unity

[RELEASED] UniStorm 4.0 - AAA Procedural Volumetric Clouds, Weather, Sky, Cloud Shadows, & More!

Discussion in 'Assets and Asset Store' started by BHS, Jan 27, 2012.

  1. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    I've tested your settings and can't seem to recreate your issue. Can you please message me a video of the issue?
     
  2. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Hey, where is Xbox one and PS4 platform?
     
  3. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    95
  4. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    According to those platform's specs, UniStorm should work on both. However, I have not tested them myself.
     
  5. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    That's very strange and not normal. If you could answer these questions, it will help me better understand what's happening and how to recreate the problem so I can find a solution. Feel free to send them via a Private Message (aka Conversation) if needed.

    What platform are you using?
    What OS are you using?
    What are your specs?
    Have you tried a lower quality cloud setting and have you tried using the 2D cloud option?
    Have you tested the included demo scenes to see if these are working correctly and this problem is present?
    What other assets do you have in your scene? Maybe UniStorm is conflicting with another asset.
     
  6. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    When built, in the platform type, which should I apply?
     
  7. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    95
    @BHS:

    - Desktop
    - Windows 10
    - Specs:
    CPU: Intel(R) Core(TM) i7-7820HK CPU @ 2.90GHz 8 cores
    RAM: 49101 MB
    GPU: NVIDIA GeForce GTX 1070
    - Yes, tried all of them
    - That seems to work fine
    - Is it a problem that I am using multiple scenes in my setup? (UniStorm is in a scene and the rest of the world in another)
     
  8. Super_apple

    Super_apple

    Joined:
    Mar 14, 2011
    Posts:
    30
    Hi,I want to use this plugins in VR ,but I got very low FPS ,It's up tp 40 FPS. fps.jpg

    My Computer :

    cpu:i7-4770@3.40GHz
    内存:12.0GB
    显卡:GTX980
     
  9. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Which what should you apply? I'm not sure I understand your question.
     
  10. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    You have vr mobile and desktop and I son't see Xbox one and ps4
     
  11. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    I want to build on Xbox
     
  12. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    If the included demo scenes are working correctly, then it is definitely something related to your scene.

    If you are using different scenes, that is most likely the problem. UniStorm is dependent on having its Skybox Material applied in the Environment Settings. If you have multiple scenes, it is most likely not properly being applied or its losing the reference with the new scene. Check your scene that's having issues to see if the UniStorm Skybox material is in the Skybox Material slot within the Environment Lighting tab.
     
  13. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Is this screenshot in VR? There are some optimizations I'm working on that will address this. I'm working on getting it released as soon as possible.
     
  14. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    The preset settings are simply the optimal settings for that platform. Since I haven't tested Xbox One or PS4 myself, I didn't include these presets. The VR setting balances performance and quality though so it should work for the Xbox One and PS4 platforms.
     
  15. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    95
    @BHS: That seems fine: upload_2019-8-21_6-46-44.png

    Now the "circles" take around 3/4 seconds to disappear, is that more normal? I'd love not to see them at all :p
     
  16. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    The circles you see is the Temporal Reprojection initializing. This feature helps the clouds be much more efficient and is common in volumetric clouds, but it shouldn’t take more than 1 or 2 seconds and it should be pretty subtle. Is this happening with the included demo scenes or only with your custom scene?
     
  17. combatsheep

    combatsheep

    Joined:
    Jan 30, 2015
    Posts:
    94
    Hi, BHS.

    It think, the fog color does not change to stormy when weather is thunder storm profile.

    UniStorm_fog_bug.jpg

    The mountain is set by normal fog color.

    Can I fix it by code editing?
     
  18. ZhavShaw

    ZhavShaw

    Joined:
    Aug 12, 2013
    Posts:
    133
    Is there an implementation guide or example on how to implement this on a headless server, getting only the minimum of UniStorm (calculating just what weather and when)?
     
  19. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    The fog color will change to stormy fog if your Weather Type is set to a Precipitation Weather Type. Some of the weather types, such as Mostly Cloudy Thunderstorm, don't use the stormy fog, but setting it to Precipitation Weather Type will allow it to be stormy. I've tested all of the thunder weather types using the newest version and they are all working correctly.
     
    combatsheep likes this.
  20. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    If you are interested, I have a network example that uses UNET to sync most needed UniStorm variables I can send you, but you could alter it to just sync the weather and forecast.

    Here's the variables you would need, but a list of everything can be found here: https://docs.google.com/document/d/...mWX9rubGw8qjkZ4b4/edit#heading=h.wdi1uoeswdyw
    Code (CSharp):
    1. //The hour the weather will change to the next generated weather type
    2. UniStorm.UniStormSystem.Instance.HourToChangeWeather
    3.  
    4. //The next generated weather type
    5. UniStorm.UniStormSystem.Instance.NextWeatherType
    6.  
    7. //The current weather type
    8. UniStorm.UniStormSystem.Instance.CurrentWeatherType
    9.  
     
  21. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Good day!

    What is that black thing? Unistorm.jpg
     
  22. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    That is most likely the Screen Space Cloud Shadows. Sometimes it can have issues with custom transparent shaders. I'm working on resolving this. Disabling cloud shadows should resolve this for now.
     
  23. ciathyza

    ciathyza

    Joined:
    Aug 16, 2015
    Posts:
    98
    Hi,

    how do setup UniStorm properly for use with Lux Water? What extra steps are necessary to make the water look as expected when using UniWeather? In particular, what I noticed is that the underwater doesn't look right. Any instructions to get this working together would be very helpful.
     
  24. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Hey there,

    I haven't tested Lux Water yet, but everything should work properly. I have Lux Water so I'll tested it out and find out what isn't looking right.
     
  25. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    So I was able to look into setting up Lux Water with UniStorm and there's a few things that need to be done in order for everything to work correctly.

    1) Disable UniStorm's Cloud Shadows

    2) Assign UniStorm's Sun as the Sun Source in the Environmental Lighting. If this is not done, and a different light source is applied, Lux Water will continue to use it, even if it's disabled.

    LuxWaterSupport.png

    3) Assign UniStorm's Sun to the Sun slot of LuxWater_UnderWaterRendering script.

    LuxWaterSupport2.png

    I hope this helps!
     
    combatsheep likes this.
  26. ciathyza

    ciathyza

    Joined:
    Aug 16, 2015
    Posts:
    98
    Thanks for taking the time to help with this BHS! I followed your steps but it still didn't work for me. Underwater fog is still missing, even after setting the UniStorm Sun in both mentioned places. Could anything else be necessary to get it working?
     
    Last edited: Aug 31, 2019
  27. combatsheep

    combatsheep

    Joined:
    Jan 30, 2015
    Posts:
    94
    Thanks, BHS!
    Now, I understand the working rule of stormy fog.

    A little better when I changed the fog color from blue to brown.


    I'm looking forward to new version of UniStorm4.;)
     
  28. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    What type of water are you using? This was done using the included ocean demo.

    There may be Lux Water image effects and scripts you need to apply to the camera you are using in order for everything to work correctly. This guide was done assuming everything on the camera that was needed by Lux Water was applied.
     
  29. ciathyza

    ciathyza

    Joined:
    Aug 16, 2015
    Posts:
    98
    I've just did a test with the Lux Water (latest version) "10 LuxWater Water Volume Deep Water Demo" ...

    Without UniStorm the water looks like this
    http://files.ciathyza.com/wl/?id=3CeTaQNeRjSncPXBmExihgIwLEBrTz3J

    Then I added a UniWeather (Desktop), assigned UniStorm Sun to the scene lighting and the camera light source property, disabled cloud shadows and the water looks like this:
    http://files.ciathyza.com/wl/?id=TFYKUfc3Jos28rR0KTYr1kNRyHUVHAD2

    Please compare. The 'volumness' of the water body seems to have disappeared.
     
  30. nu51313932

    nu51313932

    Joined:
    Oct 28, 2016
    Posts:
    22
    Can someone help me? pleaseeeeeeeeee

    How to fix when I have 2 cameras.
    the 1st cam - Front camera set to depth only and tag as Untag
    the 2nd camera - Back camera set to normal and tag as MainCamera

    I choose the back camera as player camera in UniStrom Setting

    When I run the game the Front camera render the cloud too. It shouldn't render it.

    I need to use 2 camera because my Front camera need to set low Field of View (30) so the UniStrom sky is too near in the Front camera.
     
    Last edited: Sep 2, 2019
  31. Ishizuke

    Ishizuke

    Joined:
    Jan 27, 2015
    Posts:
    37
    We have very far camera clip plane (10-20 km) and have something like z-buffers artefacts in the center of the screen. How can we fix it? In the image default skybox is rendered on top of the clouds int the center.

    PS. Current temporary solution is to modify hemisphere generation code:

    private static void CreateProceduralHemisphereWithUVs() {
    ...
    const float mul = 0.95f;

    vertices[lon + lat * (nbLong + 1) + 1] =
    new Vector3(mul * sin1 * cos2, mul * cos1, mul * sin1 * sin2);
    ...
    }

    UnistormZBufferProblem.jpg
     
    Last edited: Sep 3, 2019
    D3m0n and combatsheep like this.
  32. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Strange, below is how mine looks with UniStorm. Yours looks like there's still another light source that's being used as Lux's light source. I used the ocean demo when I created that guide so maybe they're a little different. I'll have time tomorrow to look further into this.
    UniStorm_Lux.png
     
  33. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Hey there,

    Please follow these instructions to render UniStorm with 2 cameras.

    1) Have 2 cameras, one for UniStorm and one for rendering your scene. Both cameras must have the exact same movement as each other. Name each camera to make things easier such as "Scene Camera" and "UniStorm Camera".

    2) Create a UniStorm layer and assign this layer to both the UniStorm Volumetric Clouds and UniStorm Stars objects. Make sure you check "Yes, change children" when prompted with changing the layers. Search for the UniStorm Moon Object in the Project Tab and set its layer to UniStorm as it is created through code from this object.

    3) Select your UniStorm camera and set its Tag to your UniStorm Camera Tag. Set its Clear Flags to Skybox, its Depth to 0, and its Culling Mask to only the UniStorm layer (This is important).

    4) Select your Scene camera and set its Tag to anything other than the UniStorm Camera Tag. Set its Clear Flags to Depth Only, its Depth to 1, and its Culling Mask to everything other than the UniStorm layer (This is also important or you will render UniStorm twice)

    That should be it. However, because you are using 2 different Field of Views, I'm not sure if there will be an offset with UniStorm's sky and your scene camera.
     
  34. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Thanks for the temporary solution. I have a proper fix coming with an update soon. The proper fix can be done by making the following modifications to the renderClouds and UniStorm Stars shaders, if you're interested. It should work with any Far or Near Clipping Plane.

    Update the float4(0, 0, 0, 1) from this:
    Code (CSharp):
    1. float4x4 mvNoTranslation =
    2.                     float4x4(
    3.                         float4(UNITY_MATRIX_V[0].xyz, 0.0f),
    4.                         float4(UNITY_MATRIX_V[1].xyz, 0.0f),
    5.                         float4(UNITY_MATRIX_V[2].xyz, 0.0f),
    6.                         float4(0, 0, 0, 1)
    7.                         );
    To float4(0, 0, 0, 1.1)
    Code (CSharp):
    1. float4x4 mvNoTranslation =
    2.                     float4x4(
    3.                         float4(UNITY_MATRIX_V[0].xyz, 0.0f),
    4.                         float4(UNITY_MATRIX_V[1].xyz, 0.0f),
    5.                         float4(UNITY_MATRIX_V[2].xyz, 0.0f),
    6.                         float4(0, 0, 0, 1.1)
    7.                         );
     
  35. Ishizuke

    Ishizuke

    Joined:
    Jan 27, 2015
    Posts:
    37
    Thank you, it works.
     
  36. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    You're welcome. Good to hear that it worked for you.
     
  37. Ishizuke

    Ishizuke

    Joined:
    Jan 27, 2015
    Posts:
    37
    1. The visible moon position is wrong comparing to light direction. We have some image effects which depend on global directional light, and they are applyed not to the visible moon, but to empty space in the sky. It can be illustrated by adding simple lens flare to "Unistorm Moon" light, see image below.

    2. Also, this lens flares are constantly blinking, it's not possible to use them neigher for sun, nor for moon. The image below was captured by pausing editor and step-by-step execution. Sun and moon looks not bad without lens flares, but still, it would be a good to have the ability to use them. Is it possible to fix it?

    3. Is it possible to detect when light source is obscured by clouds and reduce light intensity?

    WrondMoonPosition.jpg
     
  38. Ishizuke

    Ishizuke

    Joined:
    Jan 27, 2015
    Posts:
    37
    About cloud performance. For my copmuter anything but low quality works too slow. Probably higher settings was supposed to be used only with high end graphic cards, but still there is a question. Is it possible to improve performance by, for example, reducing clouds recalculation, to make them mostly static?
     
  39. RodneyGD

    RodneyGD

    Joined:
    Jun 3, 2019
    Posts:
    5
    Hello there, I got a Question, does Unistorm add to the Skybox or overwrite it? Our project has woodlands at the bottom of the skybox to mimic an endless world. Does Unistorm have a similar setting or is possible to create something like this with Unistorm?
     
  40. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    1) The moon's position is calculated using the generated Moon Transform object. This position is then used by the light shafts image effect and is accurate. If you need the actual moon light object to be used instead, I can provide you the modifications needed to do so via a PM (Conversation).

    2) This could be related to the moon light object not being positioned as this is done using the Moon Transform as explained above. Adjusting the Moon Light object's position would most likely fix this.

    3) I don't think there is any efficient way to accomplish this, but let me look into this to see if I can find something.
     
  41. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Yes, the less softness and strength a Cloud Profile has the more performant the clouds will be. Using the Stylized Cloud Profile should give you better performance, if you aren't already using it. The clouds need to be continuously updated for lighting calculations. Each quality setting automatically reduces the amount of calculations depending on the quality level. There are also other settings you can tweak such as disabling cloud shadows, lowering shadow quality, and disabling light shafts on both the sun and moon.
     
  42. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Yes, as long as the shader is a Skybox shader that will work with Unity's Skybox Material (located in the Environment Lighting tab) UniStorm will rendering the clouds on top of it.

    UniStorm does apply its default skybox material on start using the UniStorm Skybox material located in UniStorm Weather System>Resource folder. Doing the following should allow you to use your own custom skbox material.

    1) Rename the default UniStorm Skybox material to something else.

    2) Add your custom skybox material to the UniStorm Weather System>Resource folder.

    3) Rename your custom skybox material to UniStorm Skybox and UniStorm should use it instead of the default one.
     
  43. RodneyGD

    RodneyGD

    Joined:
    Jun 3, 2019
    Posts:
    5
    That's great! Thank you for the quick answer.
     
  44. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    You're welcome.

    There is one instance of m_SkyBoxMaterial.SetColor("_SkyTint", SkyColor.Evaluate(m_TimeFloat)); (located in the UniStormSystem script) that you will need to update to the color control variable name of your custom skybox shader. This what controls the color of the skybox for each time of day.
     
  45. ncho

    ncho

    Joined:
    Feb 1, 2014
    Posts:
    89
    I just bought Unistorm but seem to be missing some tabs? In UniStorm System I only get 3 tabs up till "Weather". "Celestial" and "Settings" are missing no matter how much I drag out the pane etc.

    Using 2019.1.
     
  46. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Hey there. Can you please post a screenshot of your issue? If you are using 4k, this may be related to the scaling issue. This can be fixed by following this guide (I'll be including this fix with an update soon): https://forum.unity.com/threads/rel...oud-shadows-more.121021/page-107#post-4854179
     
  47. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Hey, how can I increase rain particles and fog effect? It doesn’t look like it rains at all. Can you add dripping effect for rain like Enviro or maybe better? About other particles like lighting bugs, blowing leaves, blowing pollens, and fog. I think they should have their own separated feature since I want to use them at specific time, especially fog.
     
    Last edited: Sep 12, 2019
  48. BHS

    BHS

    Joined:
    Dec 21, 2009
    Posts:
    4,118
    Hey there. Every weather has a Weather Type object. These objects allow you to customize everything related to that weather such as the particle effect, particle intensity, fog amount, sounds, conditions, light intensities, and more. For more information on Weather Types, see the documentation here: https://docs.google.com/document/d/...mWX9rubGw8qjkZ4b4/edit#heading=h.ol0c5nizkir6

    As for generating weather during different times of day, here's an example system that sets the weather according to the time of day.

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UniStorm;
    5.  
    6. public class UniStormTimeOfDayWeather : MonoBehaviour {
    7.  
    8.     public WeatherType MorningWeatherType;
    9.     public WeatherType DayWeatherType;
    10.     public WeatherType EveningWeatherType;
    11.     public WeatherType NightWeatherType;
    12.  
    13.     void Start ()
    14.     {
    15.         //Create an hourly event to check and update UniStorm's time of day weather.
    16.         //Note: Events should be assigned at runtime and should not be used while in Update.
    17.         UniStormSystem.Instance.OnHourChangeEvent.AddListener(() => CalculateTimeOfDayWeather());
    18.     }
    19.  
    20.     void CalculateTimeOfDayWeather ()
    21.     {
    22.         //Get the current time of day, if it's equal to morning, change the weather to the Morning Weather Type
    23.         if (UniStormSystem.Instance.CurrentTimeOfDay == UniStormSystem.CurrentTimeOfDayEnum.Morning)
    24.         {
    25.             if (UniStormSystem.Instance.CurrentWeatherType != MorningWeatherType)
    26.             {
    27.                 UniStormManager.Instance.ChangeWeatherWithTransition(MorningWeatherType);
    28.             }
    29.         }
    30.         else if (UniStormSystem.Instance.CurrentTimeOfDay == UniStormSystem.CurrentTimeOfDayEnum.Day)
    31.         {
    32.             if (UniStormSystem.Instance.CurrentWeatherType != DayWeatherType)
    33.             {
    34.                 UniStormManager.Instance.ChangeWeatherWithTransition(DayWeatherType);
    35.             }
    36.         }
    37.         else if (UniStormSystem.Instance.CurrentTimeOfDay == UniStormSystem.CurrentTimeOfDayEnum.Evening)
    38.         {
    39.             if (UniStormSystem.Instance.CurrentWeatherType != EveningWeatherType)
    40.             {
    41.                 UniStormManager.Instance.ChangeWeatherWithTransition(EveningWeatherType);
    42.             }
    43.         }
    44.         else if (UniStormSystem.Instance.CurrentTimeOfDay == UniStormSystem.CurrentTimeOfDayEnum.Night)
    45.         {
    46.             if (UniStormSystem.Instance.CurrentWeatherType != NightWeatherType)
    47.             {
    48.                 UniStormManager.Instance.ChangeWeatherWithTransition(NightWeatherType);
    49.             }
    50.         }
    51.     }
    52. }
    53.  
     

    Attached Files:

  49. Ishizuke

    Ishizuke

    Joined:
    Jan 27, 2015
    Posts:
    37
    May be it can be implemented different way - not detect when light is obscured by clouds, but generate clouds so they either obscure, or not obscure the light source.

    For example, when it's mostly clear, the small amount of clouds are generated far from the sun. When it's mostly cloudy, the clouds are generated over the sun, directional light is turned off and only ambient light left.
     
  50. artician

    artician

    Joined:
    Nov 27, 2009
    Posts:
    335
    Hello,

    I am getting a strange rendering error when I drop the UniStormSystem prefab into my scene.
    Running Unity v2019.2.3, LWRP 6.9.1, Win7, Dx11, Geforce980.
    The volumetric clouds are very sketchy, the entire sky is shaking during runtime, and the atmosphere renders black. I attached a screenshot.

    If I run the demo scene it works perfectly.

    What did I miss during setup?
     

    Attached Files:

unityunity