• Advertisement
Sign in to follow this  

Real-time day-night cycles in Assassins Creed

This topic is 1451 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi Guys,

     I'm an animator, and I'm trying to wrap my head around real-time day-night cycles, and how they are executed in games such as Assassin's Creed.  Obviously the day-night cycle changes aren't rendered, animated frames (which is how I do things).  So how is it done?  Some sort of scripting?

 

Thanks!

Share this post


Link to post
Share on other sites
Advertisement

The more complex ones are definitely scripted. There are many ways to approach this.

 

Usually, the simplest thing to do is have two skyspheres, one with a night sky texture and the other with a day sky texture. To switch between day and night, you adjust the transparency of the spheres to fade from one to the other. The spheres need to rotate slowly, depending on what time it is, so the sky appears to move. I can imagine this still being achieved using only one animated object, but most of the time the rotation and fading is scripted rather than animated.

 

This can be combined with a light source positioned at the sun, which also needs to have its colours and brightness adjusted according to what time it is. For example, the sun would be mostly white with a tint of yellow during most of the day, and be bright orange/red during sunset and sun rise. The moon probably also uses a light source, which would be a deep blue colour during most of the night, and transition into white during "moonset" and "moonrise".

 

Some games combine fog to help with the transition.

Edited by TheComet

Share this post


Link to post
Share on other sites

There are a ton of ways render sky and transitions. But basically boil down to different procedural generation techniques vs blending baked skies.

 

Though blending two skydomes works, like TheComet said; most implementations procedural generate the sky (Google "atmospheric scattering").

 

Since you come from an art background, I'm just going to say it's a lot of math stuff behind it, having a cool blue sky with a sun in it.

Perhaps of interest to you is that the game will usually have a set of key settings for each time of day (i.e. sun power, sun colour, and optionally different mie & rayleigh scattering parameters although that is cheating/artistic-license since technically those two params should remain unchanged regardless of time of day) and blend (interpolate) the parameters based on the current in-game time.

 

Atmospheric scattering doesn't cover clouds, so clouds are rendered separately: could be as a extra layer(s) of noise textures, using baked skyboxes, using oriented sprites, or using volumetric techniques.

Often clouds are rendered with a special shader to do some math to be coloured by the sun while still looking real.

 

In simple words, it's really technical stuff; but there is no one unique way. I was just reading yesterday slides from CryTek (starting page 108) where they were telling they tried 3 different cloud rendering techniques until they were happy (and they didn't end entirely happy).

 

Cheers

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement