Simulating accurate atmosphere over about 5-10km distance

I’m trying to simulate atmospheric light on a largish scale and recently discovered that the density for volume nodes doesn’t go sufficiently low to match real atmospheric fog. I made a right-click select proposal to fix it https://blender.community/c/rightclickselect/m2fbbc/.

Question is, what are some stopgaps for this? Keeping in mind this should be on a human-scale, not, say a planetary scale.

Edit: Suggestions and limitations so far:

  • A mist pass and sun beams node: Does obscure, but doesn’t interact with light.
  • Scaling the entire scene down to increase relative density: Only goes so far before there are strange precision error artefacts.
  • Physical Starlight and Atmosphere addon: This is very good, but doesn’t support globes.

This addon is made for it:

1 Like

They really got carried away with the text there, didn’t they? Full on life story.

It’s not bad, worth considering. Though it is a shame that it introduces its own limitations. For example it doesn’t seem like you can do a globe.

I don’t know of any other addon like this but with the options cycle node editor has, it should at least be fakeable.

here some atmosphere shader

if you want go crazy,the new volume object is maybe for you

1 Like

In the node editor density is the only way to lower the density or ‘faintness’ of a volume node, such as volume scatter. There can’t be anything between a volume node and the volume material output, so you can’t use a mix shader with transparency, or even maths. The density value of a volume node literally does not go sufficiently low, the minimum seems to be 0.000019 whether it is set on the node itself or some other node before it.

Density of volume objects is relative to the actual scene. What that means is it doesn’t matter if you increase the size of a volume object, the density stays the same. So the minimum density is absolute. If you scale a human down, for example, the density relative to that human does go down. However, that only goes so far before that creates visual artefacts when viewing that character close-up, even if the clip start and end are very close to each other, which has to do with precision errors. That gain, from scaling down, doesn’t actually fix the problem before it creates other problems.

Thanks for the feedback link, I made a comment, just waiting for it to be approved.

what effect do you want to to archive? maybe a screenshot and or a exactly describtion could help us to help you.

if the problem is the scale,have you applyed the scale after scale your models? that is a common problem,that beginners who scale they objects,dont apply the actual scale (CTRL+a).thats bad for arrays, uvs, volumes and many other situations.

you can set your units to meter or milimeter or whatver you need.then be consistent in your shader densitys and object proportions ect then no problem should accur .

I think I’ve already described it well, but I’ll try again:

In reality when you look at an object far away the atmosphere scatters and absorbs light, such that the object becomes obscurred and harder to make out. The atmosphere is very thin, so the effect won’t be apparent unless the object is very far away.

Currently, an object, say 5km away through a volume object in Blender, will be much harder to see than it would be in reality because the volume density value literally does not go sufficiently low.

I am asking for workaround suggestions to that limitation. The workarounds don’t need to be perfect, we are just suggesting and discussing possibilities.

So far we have:

  • Mist passes and sun beams node. These do obscure, but they don’t interact with light.
  • Physical Starlight and Atmosphere. This is very good, but doesn’t support globes.
  • Scaling down everything in the scene to increase the density relatively. This does not gain much precision before visual artefacts start to become visible.

i understand.in real you could have foggy weather and you can see objects only a few meters in front of you.and a very clear day where you can see many km wide,and everything in between.

you could try to exclude or reduce the density at the view height in the volumescatter, if nothing else helps.especialy the mie scatter that is the foggy layer in the lower atmosphere.
.the rayleigh scatter (blue sky up to 80km+height) should in theory scatter always the same amount.

but you are right,the volume scatter does no physical rayleigh scatter.because in real the airmolecules are invisible/to small to be visible to the VIS wavelengths.but there a so many overlaying of them that the scatter occurs.
but that is not how cycles volume scatter works.

edit,you can fake the rayleigh scatter with a clear HDRI backround,and use only the volumescatter for the mist/foggy layer
or use the sky texture with sunlight istead of the HDRI and the volumescatter for mist foggy layer.the advantage is,that you have no mie scatter at the blue color with both methods (only lights).and you can control lights and the mist seperatly.

the disadvantage is you cant get this planetary outside render look with that methods.

and dont forget to increase the viewport/camera clipping to not cutoff the distance.

It is not possible to reduce the density of that node below 0.000019, the next lower value is 0, there is nothing between. 0.000019 is higher than the density of the atmosphere. This entire thread revolves around that very limitation.

Your points on different types of scattering are interesting, though I haven’t begun to play with that yet.

someone is working on a new better sky texture

btw 1/0.000019=52631.579 meter before its get a optical density of 1 thats 52,6 km

i guess you setup something wrong
5000m x 0.000019= optical density of 0.095

what values have your scatter color ? absorption?

I’m replying out of politeness here, but all of your posts so far have been off-topic. If you still don’t understand the subject of the thread, there is no need to respond.

This thread has nothing to do with sky textures.

This has nothing to do with the fact that the minimum density of a volume scatter node is higher than the density of the atmosphere of Earth, even at sea level. I have explained this at least 3 times now.

Even if it was relevant, I’m not convinced the maths checks out, because the density of a volume scatter node does not have a unit of measurement associated with it.

Again, colour has nothing to do with this at all.

since i have made a atmosphere shader for planets my self,which renderings from you can find in my first post,i assumed i know a little bit about it.
you have posted no blend file or a setting we can have a look to help you.

the new sky texture has some good rayleigh scatter and mie scatter in it.

the density values and the colors from the absorption and the scatter are multiplyers,as you maybe know.

however i think we a crosstalk here so good luck with your project.