Another Sky Texture

Note that this is just a very hacky proof-of-concept implementation that I put together in a few hours, not something you’d want to actually use yet :slight_smile:

Before you look into things like performance, figuring out the right parameters and denoising approaches, there are still many improvements to be made on the algorithmic side:

  • Building a transmission-based CDF during the direct light ray-marching for better distance sampling
  • Sampling Rayleigh and Mie phase functions and combining it with MIS
  • Implementing ground albedo (diffuse reflections when paths hit the ground)
  • Figuring out where the remaining noise comes from
  • probably many more

I’ll look into this stuff when I have the time, but currently I have very little time and way too many open Blender/Cycles coding projects :confused:


Its nice to see that the development of a new sky is going on.
In you screenshot we can see, that on the right side is useing a sky texture right?.
I am curios,do you want to calc/simulate rayleigh and mie scattering only to improve the sky texture?
Nothing wrong with it,i wonder because these are volumetric optical effects you dont get with a skytexture like a HDRI we talked about earlyer.
It should be a volumetric atmospheric shader node,without light source.For the light you would at the sunlight in Blender “outside” from the atmosphere,and the shader does the scattering,to get the “real” scattering through a volume and the depth look from it.

Both left and right columns on the screenshot are using a precomputed 512*128 pixels resolution texture. You can already use a Volume Scatter node for the purpose you are mentioning, just keep in mind that it would be based on RGB and not on actual wavelengths. Here we are simulating an actual spectrum as it has a high influence on the final color of the sky, and also calculating a small image texture is faster than doing the calculations per pixel while rendering.

Sure,you can build a more or less complex node group.However a amospheric scatter node with setting where you can adjust the exponential mist height,and a C code of a Rayleigh scatter and its phase direction would be nice and fast.

Yes,anyway improvements are allways welcome


nice to see that this is finally starting. So far it’s very difficult to judge the difference in effects.

This should allow for the kind of effect where distant features appear more blue, right? So while the current noise levels won’t make this very meaningful yet anyway, perhaps you could get a mountain range model in there instead of or alongside a simple plane and cube? Could even just import the topography of an actual real life mountain range.

Should it? mmm that’s a volumetric behaviour, an afaik here we’re “just” talking of a 2d texture.

The new sky texture being implemented by @nacioss does NOT introduce this feature. What you’re talking about would require atmospheric scattering to occur in a volume dispersed through out the entire 3D scene. The current implementation of the new sky texture seems to generate a 2D texture of the sky for use as lighting. As such it lacks the scattering in 3D space that is required to create the effect you’re describing

The intention of this new sky texture is instead to make a sky texture that is more accurate than the Nishita model recently implemented into Cycles by taking into account the light scattering in the atmosphere multiple times. This gives the sky a different colour and intensity in some situations as can be seen in the screen shots in this post:


Fair enough. Still very cool. And if it’s gonna work seamlessly with Spectral Rendering (which is currently on the backburner but hopefully will start up again once Cycles X is in a more complete state), all the better!

1 Like