Time of Day - Dynamic Sky Dome

Exactly.

perfect!

Alright, today the 1.3 update got approved to the Asset Store. The focus lies on mobile performance and compatibility improvements as outlined earlier in this thread, but I also achieved some pretty major improvements in visual quality, especially concerning the sunrise and sunset. The terrain demo scene got reworked and I updated the screenshots, just make sure to refresh the page to clear the old ones from your cache.

Version 1.3 Changelog:

  • Greatly improved performance on mobile devices
  • Greatly improved sunset and sunrise visual quality
  • Added a parameter to control how strongly the sun color affects the sky color
  • Added realistic sun and moon lens flare effects
  • Added two additional cloud noise textures
  • Improved handling of latitude and longitude
  • Made the sky dome render correctly independent of its rotation

I’ve configured this for my latest game and it provides an excellent day/night cycle (and animated clouds) with minimal performance impact. Additionally, the developer support is great - I had some issues initially but they were unrelated to Time Of Day (they were lightmapping issues). However, the developer pointed me to a possible solution, which turned out to be correct.

My only suggestion for improvement would be to provide a better star field texture for the night sky (as there’s a slot there for it at Sky Dome > Sky > Star Texture). The existing texture is very dark.

Also, the distribution folder should be renamed from ā€œAssetStoreDataā€ to something more meaningful (like ā€œTimeOfDayā€). :slight_smile:

Overall, a fantastic asset - a simple and straightforward way to implement a realistic day/night cycle into a game.

This is amazing.

I’m impressed because of the effort you went to get this running smoothly on mobile. It runs brilliantly on my mobile devices, only docking a few FPS where UniStorm Mobile was absolutely destroying the poor things and completely unusable.

A few things to make this even better:

  • I’m writing a flight simulator and the clipping plane had to be massive. When I scaled the Sky Dome to 3000+ it seemed to break a little. It still worked, but the sun was different and the definition between the horizon seemed lost. I couldn’t use it like that, especially when it looked brilliantly with a small scale. What I did instead was use the sky camera script, keep the scale small, and modify the shader.

  • The stars need to be more noticeable! Might be able to fix this myself with the stars texture, I’m not sure.

  • The night color is too dark. The sky doesn’t get black at night, especially with the moon. I’d like the option to set the nighttime base color to something more artistic, like dark blue/purple. It’d be magical.

  • Storm / rain options.

Thanks, you lifted my flight sim to new heights (ha ha) with this asset.

I agree, the stars need to be brighter and the night sky is way too black - the moonlight looks fantastic on the landscape, but the night sky should be brighter.

Storm/rain options - well, that would make this asset absolutely perfect.

First of all, thanks for the kind words and the amazing reviews you guys left in the Asset Store!

Yeah I’m not entirely satisfied with the night visuals myself. That’s why I recently added the option to render atmospheric haze at night (this will be in the next update) and I’m also going to see what I can do to improve the star texture. Thanks for your feedback on this, it helps focusing on those areas that are in need of improvement the most.

I’ll look into it.

This really shouldn’t happen. I actually also forgot to add ā€œFog { Mode Off }ā€ to the shaders (I must have lost this line somewhere in my optimization workflow) so this can also lead to issues with increasing sky dome scales. Rest assured that these issues will be fixed in the next release.

I have mixed feelings about this as I want to keep the focus of the package on the important things. However, an optional rain and/or snow particle effect and maybe a weather type manager might be within these boundaries.

Quick question: What are your thoughts on the pricing of the package? Given that it’s both mobile and desktop within one purchase I’m tossing around the idea to increase the price a little as soon as the foundation is complete and I don’t receive any more bug reports. Comparable packages (with, in most cases, a greatly reduced quality in code, visuals and performance) tend to cost more than Time of Day, even though they only work for either mobile or desktop.

Kudos for keeping the system straightforward and focused. I think what you have is pretty good.
I think the price is a good price.

Is it practical (or even feasible) to release different systems separately that work with Time of Day? Like…a rain system that works with it? A snow system? More advanced clouds? I don’t know how difficult that would be…because each would affect lighting and such.

I changed the stars texture to include a background with some color. It’s not perfect, but it’s a big improvement. Excellent that you included that option.

The main reason I suggested that is that weather includes clouds and fog. Something that this already does. Weather also adds a ton of atmosphere to a game and since you made this run so well on mobiles, I have to encourage you to try it. That said, keeping the scope small allows you to have laser precision on what matters. I do think those features go and hand, however.

Well, at $50, I felt a took a little gamble on it. It was the comments in the asset store and the forum that ultimately swayed me to give it a shot. The asset store can be hit or miss sometimes. Now I know that this was well worth the price, and I hope I can convince others it is too.

Compared to the others I’ve tried. It has better performance and visuals. The code is cleaner. It feels like witchcraft that it can run on my mobile and look as nice as it does. If you add a weather system, even as sort of a paid module, I’d consider purchasing that too. I think that’s the only thing competing systems have that this doesn’t. If you added a ā€œrain cloudā€ option or ā€œdense fogā€ option, I’m sure most developers could add the rest (the particles) without any trouble.

Hope that helps!

The work on 1.4 is coming to completion, the changes I made so far are the following:

Version 1.4 Changelog:

  • Added ā€œFog { Mode Off }ā€ to the shaders to properly ignore fog
  • Added the parameter ā€œNight Cloud Colorā€ to render clouds at night
  • Added the parameter ā€œNight Haze Colorā€ to render some haze at night
  • Added the parameter ā€œNight Colorā€ to add some color to the night sky
  • Renamed the parameter ā€œHazeā€ to ā€œHazinessā€
  • Renamed the parameter ā€œSky Toneā€ to ā€œBrightnessā€
  • Renamed the properties ā€œDayā€ and ā€œNightā€ to ā€œIsDayā€ and ā€œIsNightā€
  • Restructured all sky parameters into groups
  • Improved the sun lens flare texture
  • Improved the stars texture
  • Fixed a rendering artifact at the horizon for low haziness values
  • Made the scattering calculation in gamma space look identical to linear space

I still want to test it a little and will submit the update for review on Monday.

1.4 is out!

Fantastic update - many thanks! I’ve re-enabled my fog, and the night sky haze now looks just about perfect. Love the new star texture too - a great update!

This looks very useful for a current project – but I need an accurate night sky, with a coordinate grid so I can place game objects up in the sky precisely. Looking at the Package Contents on the asset store, it looks like the star texture is simply a tiling texture that repeats across the dome. Is it possible to place an all-sky image and position it for accuracy?

If I understand correctly you have a texture that contains your complete night sky and you want it to fill the entire sky dome? For something like that it looks like what you actually want is a cube map, which is not supported by the package at the moment. However, you might be able to work around it by rendering your night sky with the built-in Unity skybox camera option and only using the scattering, clouds, sun and moon from the package.

I’d have to add transparency support (meaning everything that’s filled with my night sky texture at the moment is transparent afterwards). It’s no big change and I can implement it if you are interested, but first you should verify that the built-in skybox camera option would work for you. If you render your night sky manually this approach should also work, you could just use your current night rendering technique and add the rest of my package (with transparency at night) for everything else.

Thanks for the fast reply, and yes, I have an all-sky image. I do already have it as a cubemap/skybox, but it would need to rotate in synch with the rest of the Time-of-Day cycle – and it would need to fade out for dawn to dusk. Would I need to program that separately or would Time of Day handle that already? And if I switched to a sphere instead of Unity’s built-in skybox system (since I also need to plot things on the sky using celestial coordinates), would that work better or worse with Time of Day?

How you implement it really shouldn’t matter if I just add transparency support to Time of Day. You can imagine the rendering queue for your scenario like this:

  1. Your stars texture is being rendered, filling the complete screen
  2. Time of Day renders the atmosphere with one modification: the stars texture is replaced with something completely transparent, meaning that your previously rendered night sky is visible everywhere the stars texture is visisble at the moment

What do you mean with rotating your night sky? Also, would it be possible to send me the sky box so that I can implement the changes and make some screenshots for you to verify?

Your system seems great :).
Unnfortunately i can’t buy your system because i have one haha.
Keep up the good work ^w^

I mean integrating my skysphere with the day / night cycle, so they rotate in synch, and so my skysphere fades away at dawn and fades in at dusk.

I don’t have my skysphere set up yet, but I’ll likely use this: http://home.arcor-online.de/axel.mellinger/images/mwpan_polar2_s.jpg, mapped onto two hemispheres.

Dawn and dusk will of course be handled by the package as it will just overlay your sky dome at day and when the scattering fades out your sky dome will slowly become more and more visible. If you want to rotate your sky dome (e.g. with the date) you’ll have to do this on your own, but getting the required information from Time of Day should be easy enough.

I implemented a version of the sky shader that fades out at night instead of switching to a night texture and I’ll include it in the next release. It can be used in combination with the built-in skybox functonality of Unity or with any other sky dome you might have.

On an unrelated note, the image you posted appears to be copyrighted, I hope you are aware of that.

He could buy a license here: http://home.arcor-online.de/axel.mellinger/licenses.html