Jump to content

Sky / clouds / scattering improvements


photo

Recommended Posts

We are to rework the sky in UNIGINE 2.1-2.2, please share your feature requests (with priorities mentioned) and references here.

We cannot guarantee that it will be implemented exactly the way you propose, but we will consider your feedback in details for sure.

Link to comment

Two recent presentations regarding cloud rendering can be found here. Especially the control of cloud appearance via some secondary textures seams to be a good approach for providing easy and diverse artistic control.

From my point of view current UNIGINE light scattering implementation provides nice results, even though its not so easy to tune the physical parameters for desired look. Nevertheless Valley demo shows very convincing sky results as a result of excellent artistic parameter tuning

A major improvement would be to have more than one volumetric cloud layer e.g. flight simulators normally require at least 2-4 layers at different altitudes as stated in another recent post)

Probably the best approach would be availability of a separate ObjectCloudLayer object type. Zero, one or more instances then could be added to the ObjectSky instance as child objects depending on application requirements. In best case all ObjectCloudLayer instances would cast shadows.

Current cloud simulation code using multi-channel density texture for different small-scale cloud styles including transition also seems quite resonable. Nevertheless it would be great to have another mask texture for variation of the cloud density variations on a larger scale e.g. to simulate multiple cloud fields with limited regional coverage and irregular borders.

Each ObjectCloudLayer should have a finite box extend. Cloud movement could be easily controlled via simple node translation.

Very large cloud systems with regional variations (e.g. based on real-world cloud weather data) then could be easily simulated by a grid of ObjectCloudLayer nodes, which could be dynamically paged in and out via regular UNIGINE WorldLayer node streaming.

For multi-channel IG's cloud rendering and animation of all ObjectCloudLayer instances should be deterministic and synchronized on all rendering channels. It should be possible to start, stop pause, resume cloud animations.

Cloud state textures should be save-/restorable to allow identical cloud setups between different training runs or in joint air-land simulations were it is extremely important to have exactly the same visibility conditions.

Visibility determination via some ObjectCloudLayer.getIntersection(start, end/direction, density limit) ray-casting is also very important to assess visibility between simulation objects e.g. for AI.

There are 2 well-known commercial cloud rendering toolkits (sundog and simul-trueSky) with a big footprint in games and simulation application, therefore maybe also a good reference.

Link to comment
  • 2 weeks later...

Making a compilation of what you have already done, I would be nice to have a HighLevel System to control the environment (daylight cycle, ocean and weather).

A Earth based model customized with some parameters:

  • A longitude and latitude origin. This affects sun position and how much time daylight is present.
  • In the parts based on tracks (cloudiness, rain, wind, ocean) the possibility to specify other ones based on default ones.
  • Api funtions to control environment conditions and appearance:
    • get/set origin (longitude, latitude)
    • get/set day seconds (0 - 86400)
    • get/set rain (0.0 - 1.0)
    • get/set cloudiness (0.0 - 1.0)
    • get/set wind (0.0 - 1.0)
    • get/set snow(0.0 - 1.0)
    • get/set fog(0.0 - 1.0)
    • get/set ocean waves(0.0 - 1.0)
    • setTimeTrack(path)
    • setRainTrack(path)
    • setCloudinessTrack(path)
    • setWindTrack(path)
    • setSnowTrack(path)
    • setFogTrack(path)
    • setOceanTrack(path)
We have already implemented something similar. We have a editor node called "ENVIRONMENT" where all the elements referenced by tracks are its children. In each project we can specify another environment node (apart of default one) and the tracks to modify them. So we can adapt the environment to the funcionality, the performance and the appearance that application requires, but the code remains the same.
I think a system like this could benefit all the simulation projects because of it will reduce production cost, development time and it's completely reusable.
Link to comment

 

Making a compilation of what you have already done, I would be nice to have a HighLevel System to control the environment (daylight cycle, ocean and weather).

  •  

 

Agreed, we are currently using weather system from various Unigine demos, so having some tunable core all-in one system not dependent on tracker would be logical next step, because almost any user would have usage for it.

Link to comment

Agreed, we are currently using weather system from various Unigine demos, so having some tunable core all-in one system not dependent on tracker would be logical next step, because almost any user would have usage for it.

 

This is what we are doing as well. And yes, it would be nice to contorl the environment without the need of the trackers.

 

Kind regards,

Renato

Link to comment

Right now we have almost completed solution for scattering, which:

  • Doesn't requires Tracker for day-night cycle: it is controlled only by the Sun position
  • Easy to tune (way less esoteric parameters)
  • Features environmental lighting

Looking forward delivering this in 2.1 version. Multiple cloud layers are possible now with multiple ObjectCloud instances, but their quality/performance improvements are for 2.2.

Link to comment

Hey Denis,

 

That sound like a huge improvement, which is more that useful for everyone I guess.

 

We always need sky/sun/exterior lighting and it is quite a pain to always adjust the sky toward different scenes.

Hope that the adjustments work out well and it that the solution will be useable for a lot of situations.

 

Look forward to that.

Link to comment
  • 3 weeks later...

This looks  really really impressive! Is this already controlled from the C++ API?

 

For now it is not, sorry. We still expect some changes in regards of clouds so we'll deliver C++ API for both in 2.3.

Link to comment
  • 3 months later...

If i look at current demos (port angeles), weather system is less and less working. Stars are not visible, troubles with distant moon BB, wind does not work (probably because of leaf/stem material merge into mesh base, btw thanks for this), rain is behaving wierd (far less visible than in older versions). All parameters need to be tuned to new renderer and some serious cleaning is needed. Do you know, when some sky/cloud/day/nigh/ocean/wind compilation will be done? I would rather wait for core system, than trying to tune current solution.

Link to comment
  • 2 weeks later...

demostenes

 

Current issues are all known and they mostly project / content related and we just had no time to fix them properly before the release. We will try to fix all these issues in the next Portangeles update. Regarding the global weather system - it is currently not in the development plan, I'm afraid. We need to update clouds / sky first :)

 

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
  • 2 months later...

For now it is not, sorry. We still expect some changes in regards of clouds so we'll deliver C++ API for both in 2.3.

 

We have noticed that clouds have been removed from the roadmap plan for 2.3 - Are the cloud improvements postponed/cancelled?

Link to comment
  • 4 months later...
  • 3 weeks later...

Hi Guys,

 

We recently started to implement cloud layers movement algorithm, but have a little confusion about the wind velocity vector fields across the different layers. Is there any useful guides / specs that you can recommend us to look at? How does the wind velocity texture should look like?

 

Any help will be appreciated :)

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

We recently started to implement cloud layers movement algorithm, but have a little confusion about the wind velocity vector fields across the different layers. Is there any useful guides / specs that you can recommend us to look at? How does the wind velocity texture should look like?

 

A good site to go to to understand how winds work in the atmosphere is windyty.com.

 

You can look at the winds at various altitudes.

 

I don't know how the vector fields will work in your new system but the appearance of clouds in the real world is dependent on lots of factors.  If the air is stable the vector fields should be pretty uniform.  If there is a lot of convection then there should be quite a bit of noise.  As you go higher the air is generally moving faster but more uniformly, unless there is a lot of convection in which case there can be turbulent air all the way up to the tropopause.

 

Jim

Link to comment
  • 1 month later...
×
×
  • Create New...