Search Unity

[RELEASED] Enviro - Sky and Weather (Dynamic Sky and Weather System)

Discussion in 'Assets and Asset Store' started by Vondox, Apr 11, 2015.

  1. NAiLz

    NAiLz

    Joined:
    Apr 17, 2013
    Posts:
    88

    Ok sorry I figured it out:


    Code (CSharp):
    1. if (EnviroSky.instance.Weather.currentActiveWeatherPreset.Name == "Light Rain")
    2.         {
    3.             rainCameraControllerScript.Play ();
    4.         }
     
    Vondox likes this.
  2. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Sorry, currently not supported. But the next big update of mobile version will work in same project.
     
  3. Artline

    Artline

    Joined:
    Feb 21, 2017
    Posts:
    9
    Hello Vondox. The plugin is amazing but I am having problems with a thing. I want to make a timelapse effect and I need to animate the day and night duration parameter progressively from slow to fast and slow again. I tried to animated with the animation window but it didn´t worked. Maybe I am doing it wrong. I preffer do it without custom scripts. Is there any way to make this without scripting. In case of this is not possible. It´s possible make it with scripts?

    Sorry for my English :p

    Thanks.
     
  4. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello,

    if you just want to increase the time progression for a few ingame hours, for example when your player is sleeping, I would do it in your script by setting the day and night length to lower values and back to normal when you wake up.

    Here a quick script I created that will do that:
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class EnviroTimelapse : MonoBehaviour {
    6.  
    7.     public float timelapseLength = 8f;
    8.     public float normalSpeed = 5f;
    9.     public float fastSpeed = 0.5f;
    10.  
    11.     private bool timelapse;
    12.     private double startTime;
    13.     private double endTime;
    14.  
    15.     void Update ()
    16.     {
    17.        
    18.         if(Input.GetKeyDown(KeyCode.Space) && !timelapse)
    19.         {
    20.             StartTimelapse();
    21.             timelapse = true;
    22.         }
    23.  
    24.         if(timelapse)
    25.         {
    26.             // Check time to stop timelapse
    27.             if(EnviroSky.instance.currentTimeInHours >= endTime)
    28.             {
    29.                 EndTimelapse();
    30.                 timelapse = false;
    31.             }
    32.         }
    33.     }
    34.  
    35.  
    36.     public void StartTimelapse()
    37.     {
    38.         //Start Timelapse
    39.         EnviroSky.instance.GameTime.DayLengthInMinutes = fastSpeed;
    40.         EnviroSky.instance.GameTime.NightLengthInMinutes = fastSpeed;
    41.         startTime = EnviroSky.instance.currentTimeInHours;
    42.         //Set endTime
    43.         endTime = startTime + timelapseLength;
    44.     }
    45.  
    46.     public void EndTimelapse()
    47.     {
    48.         //End Timelapse
    49.         EnviroSky.instance.GameTime.DayLengthInMinutes = normalSpeed;
    50.         EnviroSky.instance.GameTime.NightLengthInMinutes = normalSpeed;
    51.     }
    52. }
    53.  
    If you need more control about time progression you could use the timeline feature with free world manager api from Adam Goodrich:

     
  5. cansub

    cansub

    Joined:
    May 30, 2017
    Posts:
    15
    I've been going through the whole Gaia, Aquas, Enviro tutorial using the Mixed Reality Headset and UWP. I got to the integration of Enviro and ran the scene and found that the clouds were not working correctly. They seemed to be billboard or something. Is this a know issue? I am using Unity 2017.2.1f1.
     
  6. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello, please check your private messages. I have send you a package with a possible hotfix for Mixed Reality VR for UWP builds.
     
  7. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    Is there a way to get from Enviro what time sunrise/set will be at for the current day?
     
  8. Paratope

    Paratope

    Joined:
    Jun 27, 2017
    Posts:
    20
    Vondox, do you have any experience with Vegetation Studio bugs caused by Enviro? This post describes a light artifact the user experienced due to Enviro and were able to fix it here by excluding the vegetation layers from Enviro's lightning. I tried following their instructions, but was unable to fix the issue. Please let me know if there is any advice you can offer on the matter.
     
  9. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Sorry, currently not implemented. But it is on my list for future features. Maybe in next update. :)
     
    Poxican likes this.
  10. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Do you have any other light sources active there? Lennart told me that it is instanced indirect vegetation that has problems with multiple lights and projectors in unity - forward rendering. That's a Unity limitation right now and not VS specific. They are fixing this in 2018 beta right now.
     
  11. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    788
    Hi, does anyone have experience adding a script to the Enviro Events to turn street lights on and off.

    I have been trying to work this out for 3 days now with no luck: I am adding this script to Runtime Only field in ON Night Action section:

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class LightsNight : MonoBehaviour
    6. {
    7.     private GameObject Spotlight;
    8.     private GameObject[] StreetLights;
    9.  
    10.     void Start()
    11.     {
    12.         StreetLights = GameObject.FindGameObjectsWithTag("StreetLightsTag");
    13.  
    14.         foreach (GameObject Spotlight in StreetLights)
    15.         {
    16.             // Set Spotlight game object <Light> to active
    17.  
    18.             Spotlight.GetComponent<Light>().enabled = true;
    19.         }
    20.     }
    21. }
    But I am not sure if the code is right to search for all instances and change the active state of Light.

    Even less sure what to place in the Monoscript.name field.

    I am not a developer and don't know C# well enough to create my own scripts. Any help appreciated, thanks.
     
  12. Poxican

    Poxican

    Joined:
    Oct 17, 2012
    Posts:
    37
    I came to the thread to ask a similar question! I also need a sort of timelapse functionality that eases into and out of an increased time speed.

    I'm using Playmaker to control everything, so I've built an FSM that increments and sets the time according to a speed I can specify. In this way I can ease that speed in and out. However, in order for this to work I have to set the Progress Time to None, meaning I always need to manually control the time. This seems fine to me, but can you foresee any issue with that?
     
  13. Pryzmeister

    Pryzmeister

    Joined:
    Jan 21, 2015
    Posts:
    26
    Hi, i seem to have a problem with the VR Prefab causing the following error. The clouds and weather also do not work and i assume its related. The non VR version works fine.

    Have tried Unity versions Unity 2017.3.1f1 (64-bit) and Unity 2018.1.0b10 (64-bit)

    NullReferenceException: Object reference not set to an instance of an object
    EnviroSky.UpdateWeather () (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSky.cs:2483)
    EnviroSky.Update () (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSky.cs:1491)
     
    DanielStringer likes this.
  14. RoCk3T_L

    RoCk3T_L

    Joined:
    Jan 12, 2018
    Posts:
    2
    I have the same problem, would mind to send that to me as well?
     
  15. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    You need to create two public functions in your script that you can call to switch lights on and off. Try this script:

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class LightsNight: MonoBehaviour {
    6.  
    7.     private GameObject[] StreetLights;
    8.     private List <Light> Lights = new List<Light>();
    9.  
    10.     void Start()
    11.     {
    12.         StreetLights = GameObject.FindGameObjectsWithTag("StreetLightsTag");
    13.  
    14.         foreach (GameObject Spotlight in StreetLights)
    15.         {
    16.             // Add all Spotlights to a list.
    17.             Lights.Add(Spotlight.GetComponent<Light>());
    18.         }
    19.  
    20.         //Activate or deactivate lights on start
    21.         if(EnviroSky.instance.isNight)
    22.         {
    23.             SwitchOn();
    24.         }
    25.         else
    26.         {
    27.             SwitchOff();
    28.         }
    29.     }
    30.  
    31.     //Activate Lights
    32.     public void SwitchOn()
    33.     {
    34.         for (int i = 0; i < Lights.Count; i++)
    35.         {
    36.             Lights[i].enabled = true;
    37.         }
    38.     }
    39.  
    40.     //Deactivate Lights
    41.     public void SwitchOff()
    42.     {
    43.         for (int i = 0; i < Lights.Count; i++)
    44.         {
    45.             Lights[i].enabled = false;
    46.         }
    47.     }
    48. }
    Add this to one of your gameobjects in scene and assign the SwitchOn and SwitchOff function in EnviroEvents component like this:

    upload_2018-4-23_16-13-41.png
     
    twobob and Hawk0077 like this.
  16. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    That should work well. :)
     
  17. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Can you please have a look in EnviroZone component (The one on EnviroSky prefab). Is there a WeatherPreset entry without a linked weather preset profile?
    I have fixed that on my side already. So it should not throw error and stop working anymore. Will be included in next update.
     
  18. LucianBlack

    LucianBlack

    Joined:
    Sep 28, 2017
    Posts:
    48
    @Vondox Is it possible to link the current weather/temperature to a player (like Invector) to create effects? For example, cold weather areas would have the player cold which could have impacts on health regeneration etc?
     
  19. Poxican

    Poxican

    Joined:
    Oct 17, 2012
    Posts:
    37
    I implemented something yesterday, it wasn't easy but it mostly works. I have some inaccuracy, due to having to calculate the passing of time etc. Access to a general 'Time Multiplier' value (and a Playmaker action to go with it ;) ) in an update would be fantastic, I'd love to replace my shonky system with something more streamlined!
     
    Vondox likes this.
  20. Freznosis

    Freznosis

    Joined:
    Jul 16, 2014
    Posts:
    298
    Was testing out Enviro with the new Unity 2018 beta and getting this error on start. It's very weird though because if I manually enable EnviroSkyRendering then everything works just fine. I'm not sure why it's trying to create an absurdly huge texture.



    Code (CSharp):
    1. Texture3D has out of range width / height / depth (189x-1074855747x0, max allowed 2048)
    2. UnityEngine.Texture3D:.ctor(Int32, Int32, Int32, TextureFormat, Boolean)
    3. EnviroSkyRendering:LoadNoise3dTexture() (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSkyRendering.cs:952)
    4. EnviroSkyRendering:Awake() (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSkyRendering.cs:213)
    Code (CSharp):
    1. UnityException: Failed to create texture because of invalid parameters.
    2. UnityEngine.Texture3D.Internal_Create (UnityEngine.Texture3D mono, System.Int32 w, System.Int32 h, System.Int32 d, UnityEngine.TextureFormat format, System.Boolean mipmap) (at C:/buildslave/unity/build/Runtime/Export/Texture.bindings.cs:120)
    3. UnityEngine.Texture3D..ctor (System.Int32 width, System.Int32 height, System.Int32 depth, UnityEngine.TextureFormat format, System.Boolean mipmap) (at C:/buildslave/unity/build/Runtime/Export/Texture.cs:417)
    4. EnviroSkyRendering.LoadNoise3dTexture () (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSkyRendering.cs:952)
    5. EnviroSkyRendering.Awake () (at Assets/Enviro - Dynamic Enviroment/Scripts/EnviroSkyRendering.cs:213)
     
  21. mbussidk

    mbussidk

    Joined:
    May 9, 2017
    Posts:
    67
    Hi Vondox, do you have a tentative timeline for this update of the mobile edition?
     
  22. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    788
    Thanks and apologies for delay in responding. I will check that out over the next day or so. I a little tied up at present but will post back when I have tested your solution. Many thanks again.
     
  23. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    788
    Thanks @Vondox that worked a treat. Better than any stress tablets or therapy. Much appreciated, all the best.

    Oh I just need to make the lights correspond with the actual light/darkness of the scene. It seems it is dark for a couple of minutes before the lights kick in and then same in the mornings when the lights go out. (il need top recheck that one) But thanks again. much appreciated.
     
    Vondox likes this.
  24. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello, enviro currently does not simulate temeratures. But that one is on the list for 2.1. ;)
    For now you could use the currentWetness/currentSnowStrength values to link current weather with your effects.

    EnviroSky.instance.Weather.curWetness
    EnviroSky.instance.Weather.curSnowStrength
     
  25. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    You could use the night and day length settings as 'Time Multiplier' too, like I used them in the script I posted a few days ago. But a global multiplier is a great idea. Will add this in next update. :)
     
  26. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Oh, that one looks really strange! What beta version you tested. I tested 2018.1.0b13 a few weeks ago and haven't seen this isssue.
     
  27. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello, I want to start beta testing next week. Please message me next week, if you are interested in participating! :)
     
    mmaclaurin likes this.
  28. Freznosis

    Freznosis

    Joined:
    Jul 16, 2014
    Posts:
    298
    Yeah I was also using 2018.1.0b13. I imported Enviro 3 times as sometimes Unity has a weird import package glitch but to no avail. I'm not sure what would be causing this as it is an empty project.
     
  29. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Just tested again: Unity 2018.1.0b13 with enviro 2.0.3 from store in a fresh project. Imports fine on first try without any errors and working as expected.

    Hm maybe try to reimport the NoiseVolume file again. Maybe that one got corrupted and that's why the code tries to create a 3D texture with this absurdly scale. But not sure, haven't seen this before. :D
     
  30. SimumakDevs

    SimumakDevs

    Joined:
    Feb 13, 2018
    Posts:
    11
    Hi @Vondox , is it possible to have multi display support for flares? It´s a bit weird to have the flares cutted in the second screen.

    Cheers dude!

    2018-04-26_10h34_21.png
     
  31. Poxican

    Poxican

    Joined:
    Oct 17, 2012
    Posts:
    37
    Oh brilliant, thanks! Great support man, keep up the good work, it's hugely appreciated!!
     
  32. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello, sorry that is not possible with the lightshafts effect. The effect only works if the sun is in screen. You can try to us the directional volumetric lighting for similar effect. That one works even when sun is not in screen, but will look a bit different.
     
  33. mmaclaurin

    mmaclaurin

    Joined:
    Dec 18, 2016
    Posts:
    244
    I'm having good results using "desktop" enviro on iPhone, as long as I turn all the volume settings off. Would you expect this version to be higher performance? What are the tradeoffs compared to desktop?
     
  34. rapidrunner

    rapidrunner

    Joined:
    Jun 11, 2008
    Posts:
    944
    Hi, got your assets and it is really nice, since it simplify a lot the whole day/night cycle and weather system.

    Although I am stuck with few issues:

    1) how do you set different zones on a terrain, so when a player goes from a flat area to mountains, I can get a different weather there? I can position triggers on the ground so when the player cross them, the weather changes, but I am not sure if there is a way to create different independent zones, instead than change the global settings to change the weather.

    2) How do you change "Seasons", changing textures? I am planning to have different textures for the terrain, so in spring the colors are more vivid, in fall it goes more on a brown tone and in winter it will be covered in snow. I see that Enviro has seasons but I am not sure how do you connect that parameter to changes done in the environment. Snow and snow storm does not change textures on the ground so I assume it has to be done manually.

    3) How do you apply the rain effects when the player is like inside a vehicle? I would like to see the rain falling on the vehicle and windshield, although I can't see parameters to change how the drops are falling down.

    4) Any suggestion about improving performances? Not sure which parameters affect more or less the framerate; so I thought it is faster to just ask.

    Thanks and keep up the good work!
     
  35. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Yea, general better performance. Support for gles2/3, lightweight cloud system and mobile improved particle systems. Same inspector, workflow and support to have both enviro packages in one project.
     
  36. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Hello,

    1.) You want to setup multiple EnviroZones in your map. Create a new gameobject and add the WeatherZone component. (Components -> Enviro -> WeatherZone). Now assign a few weather presets and change the scale in "zone scale" field and move that zone to your mountain. That should be all.

    2.) That depends on your terrain shader. If you use the standard unity terrain you could use the EnviroTerrainSeason component located in Scripts -> Utility folder. If you use CTS for example you could use the Enviro -> CTS Integration component and use the seasons color feature from CTS. What terrain shader do you use?

    3.) That one is a bit tricky to do right. If you drive your car in first person you maybe could use this asset for example: https://www.assetstore.unity3d.com/en/#!/content/96536. Now when you enter your car you can disable the particle emission form enviro using this line: EnviroSky.instance.currentInteriorWeatherEffectMod = 0f; to stop rain emitting from enviro and activate the asset effect by checking the EnviroSky.instance.Weather.curWetness float.

    But you maybe also could setup dynamic particle collisions in enviro rain particle systems. Maybe remove or tweak the splash effect too. That should stop raining in your car. Now you need a special window shader for your windshield with rain effect that you can synchronize with EnviroSky.instance.Weather.curWetness again. But I haven't tried both ideas yet, maybe someone else here already accomplished that?!

    4.) The most demanding features are voluemtric clouds and volumetric lighting. You really should add a graphics menu to your game later to let your players choose sky quality based on their gpu. On slower cards use flat clouds only as they are way faster to render. For modern cards you can use the different volume clouds quality presets to have better visuals or performance. (Enviro Inspector -> Edit Profile -> Clouds category -> Quality)

    I hope I could help you! :)
     
    rapidrunner likes this.
  37. mmaclaurin

    mmaclaurin

    Joined:
    Dec 18, 2016
    Posts:
    244
    Great! Definitely interested in the beta. I'm a weekend warrior but have a pretty good system built on aquas, enviro, and microsplat (and a*!!)) and will likely find a few bugs for you.
     
    Vondox likes this.
  38. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hi there, just bought your asset, played with it for a few and already love it.
    To be honest I bought it for one main reason: the integration "out of the box" with Megasplat
    My goal is to have the wetness (and later I'll work on the puddles). Having PBR materials set and already painted a few "wetness 1" on rocks around rivers and ocean, I know this works.
    But I simply tried to set the weather to rain/heavy rain/storm during play mode and the wetness doesn't move at all
    I've added the integration component to one of my game object (an empty with some of my game management settings)
    So maybe it's not fully out of the box or (and I'm sure it is that) I did something wrong or didn't set something properly

    Bonus question: I've set the integration with Aquas and was wondering if there is a simple way (not only on water but in general on the ground) to have rain collision with the ground and ocean?

    Edit: after some research I think I have a bug here. So I have a heavy rain with maximum wetness set to 1
    I go in play mode and set the weather to this rain mode: nothing get wet
    Then I go to the Megasplat material panel (screenshot attached) and I see the Wetness around 0.2 and that is the weird part: each time I click in the panel (not on any setting, just like the scroll bar or inside the panel) the value of wetness rise. BUT: the effect doesn't appear in the game. If I do click on the global wetness slider (kind of to force) then it appears.

    I'll make a quick video, it's probably not clear

    Edit2:


    So in this video I start with clear sky and Wetness is almost at 0. I then set the heavy rain weather and go back to my megasplat material which is around 0.3 but no wetness appears on the texture. Then you see me moving my mouse within the megasplat material as I'm clicking nowhere specifically and that moves the wetness up. But still no effect on the texture. Then I click on the slider and try to force it up and that finally effect the texture.

    So here I am, with my little bug
     

    Attached Files:

    Last edited: Apr 28, 2018
    Vondox likes this.
  39. rapidrunner

    rapidrunner

    Joined:
    Jun 11, 2008
    Posts:
    944

    Thanks a bunch!

    1) I see, so you can create different zones. I use Enviro with Gaia, so I did not apply the components and scripts in the scene; everything goes in from the Gaia panel. I will look into the manual integration so I can create different zones, as you described.

    2) As terrain I use Gaia, with the standard Unity terrain. I will check the script you did mention; do you know if there are any video tutorials that show that workflow?

    3) So there is no easy way to get the rain effect to "adapt" to the fact that the main player is in an enclosed space. I had the feeling that the rain and snow effects were kinda like a floating cloud on top of the main camera; so there was somehow a way to control the range of the affected area, instead than disable it altogether. The idea was to keep the effect on the outside, so I get rain effect and terrain get affected by it; while adding some effects on the windshield, which is not really simulating the actual rain. It is indeed more complex than what I thought initially.

    4) I am planning to add some controls to change parameters; now that I know that these are the most expensive and demanding parts of the Enviro effects, I will try to strike a deal between quality and performances.

    Thanks again for your reply!
     
  40. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Hello Necka_,

    I think the problem might be related to the material sync. In Microsplat for example I use
    MicroSplatTerrain.SyncAll();
    after updating the value to see the changes on the terrain.

    I am not sure if Megasplat is handling that different but maybe you need to call a Sync or Update method after changing the values like this.

    I think the creator of Megasplat/Microsplat might be able to help you better with this. You could join his Discord (https://discord.gg/uhEqTt) and state your problem there. We could also discuss your problem more in depth there. :)

    Regards,
    Wurlox
     
    Vondox likes this.
  41. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hey Wurlox, thank you for your reply

    I have no idea about the Sync issue and how to solve it. But I posted the problem on the discord now
     
    Vondox likes this.
  42. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    Thanks for your report! Yea the integration component was missing the sync function call. Looks like that one has changed since I created the component.

    Here is the updated component. Working well on my side now. Sorry for the inconvenience!
     

    Attached Files:

    Last edited: Apr 28, 2018
  43. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Thanks for the updated script, it works now but the behaviour is strange for the timing:

    When I'm in clear sky it's all good, wetness at 0 puddles are invisible.
    If I turn heavy rain, then in a second my puddles are completely visible and the wetness rise at a normal speed I would say
    When I turn off the rain (clear sky) the wetness disappear quite fast (probably too fast) but the puddles on the contrary stays way too long (or that what it seems as the terrain wetness is almost at 0 while the puddle are super visible)

    I didn't find in the weather configuration a timing setting or like a transition; Am I missing something?
     
  44. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    You can change the transition speed in weather category in enviro edit profile settings. I also updated the component and fixed rain ripples and added a new value to better control the puddles. Please re-download. :) That's all I could do for now. I wanted to improve the weather system in 2.1, so we have more control over rain intensity, wetness and puddles and so on later.
     
  45. Vondox

    Vondox

    Joined:
    Jun 3, 2013
    Posts:
    2,422
    I don't think so, but I will modify the component to work with Microsplat after weekend and upload it here.
     
    SimumakDevs likes this.
  46. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    @Vondox let me know if you need any modules to test your work and I'll either voucher you or add you to the GitHub if you prefer..
     
    SimumakDevs and Vondox like this.
  47. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    This would be great. I would definitely like to have Enviro be able to control the snow and water of Microsplat! I honestly thought that was already implemented as I remember seeing mention of it being in an upcoming patch a month or two ago. Either way, I will just be happy whenever it is, as I have not really got to that point in my game yet, lol.

    Secondly, I have been working on my client/server code and asset separation and came to the realization that really the only major component in my game scene on the server side is Enviro (which I have not even got around to trying to set up the syncing yet). What is the minimum needed for Enviro to be able to handle controlling and syncing clients weather?

    I had just started to consider trying to see if I can lose Unity all together on the server side and go with a console application as the actual server which would greatly increase my compatibility with other things such as the database I am using and things of that nature. Is it possible to run what Enviro needs for syncing in a console setting outside of Unity? If not, I will just keep things as they are and just keep stripping things down as server controlled weather is going to be playing a big part in my game.

    Thanks!
     
  48. SeekingFaith

    SeekingFaith

    Joined:
    Apr 22, 2018
    Posts:
    6
    Hi, I'm having a problem with cloud shadows.
    So, basically what happens is I have a scene that loads before the scene that has enviro. If I have cloud shadows turned on and commence building the project I get this error:

    Releasing render texture that is set to be RenderTexture.active!
    UnityEditor.HostView:OnGUI()

    and the build fails. If I turn cloud shadows off, it builds just fine.
    Any way to fix this?

    I'm currently using Unity 5.6.5 and latest Enviro.

    Thanks
     
  49. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hi, thanks for the updated integration, it works quite nicely now. Will tweak here and there but it's really nice now

    I asked on Megasplat discord but just to rise my chances here: the integration works with Terrain, actually I also have meshes with a megasplat shader on them (basically rocks, cliffs, stones) and having the terrain wet and those completely dry is sad of course.
    In the integration script I can only add a Terrain manager. Is there any way to deal with those painted objects (which again use the Megasplat shader thus has the global wetness setting available too) ?

    thanks a lot

    Edit: I've tried to be clever for once (it's not happening a lot recently...) and found an alternative solution. I just don't know if performance wise it's clever or not.

    I've added a second Enviro Mega Splat integration script and also added a second Terrain Manager which has a material set for all my environment objects (which I painted as rocks or whatever else)

    Image 114.jpg

    For this quick test, it works and all my rocks (which have the proper material) are getting wetness with my terrain

    So if it's a good solution I'll take it; as an improvement I would say (I can't code - using bolt mostly) that having the choice in the integration script to add X Terrain managers would be super cool. Like a box asking how many? I would write "2" and then I would add my two terrain managers objects.

    Don't know if it's possible but that's an idea
     
    Last edited: Apr 29, 2018
  50. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    This may work but it's definetely not the right way to do this. What you instead wanna do is update the wetness shader variable from all your materials that use it.

    You could just make an array of all your materials that should be updated and iterate over them. But I also think this does not make it easy to handle.

    What I did: I used the global shader variables provided by MicroSplat (I think MegaSplat has them as well?) to update all materials that use that shader. Its as simple as
    Shader.SetGlobalFloat("_Global_PuddleParams", calculatedPuddleStrength);


    The Enviro integration is looking for a terrain and then gets the terrain material template. So the changes are made directly on the material. If you do it like above you can just control all materials via the shader. Hope that makes sense...

    For further help you can check discord. I already replied there.

    Greetings,
    Wurlox
     
    Vondox likes this.