Back to search

What are the technical limitations on the cloud volumes introducing noise when viewed from a near-horizontal angle?

TL;DRCloud noise at near-horizontal angles comes from sampling along very long rays and randomizing samples, and a promising low-resolution pre-pass should improve it, with improvements coming but no release talk.

Ali BrownDirector of Graphics Engineering

So the cloud technology is something our engine director has been pioneering for some time. So I want to be careful not to speak on his behalf. Many of the other things we've talked about have been my remit, but this is definitely his baby. But I do know a bit of how it's implemented, so I can speak a little bit on it. So the clouds are built from many different stages that go into that process. I can't remember, say five or six different stages, and each of them has been R&D'd in multiple different alternative solutions. And we're constantly finding new and improved ways to replace each section. And the noise in particular, at the horizontal angle mentioned, is because of the way that clouds work in our engine, and most others: you have an imaginary ray that flies through into the distance, and you take samples along that ray. So say I take 50 samples between here and the horizon, and I do some calculations to decide how much cloud cover there is at each of these points. Then I add them all up and I eventually come up with the final contribution of clouds. But if you imagine you're looking from orbit straight down, or from the ground straight up, the amount of cloud cover you see versus looking horizontally is hugely different. You can look through 100 kilometers of clouds versus one kilometer if you look straight up. So when you're running, say, 50 samples over 100 kilometers, there is a huge amount of error. And that would show as a stepping, blocky artifact. So that you don't see blockiness and stepping, we randomize where we sample along that ray, so it turns into noise. So we have to get into R&D solutions that will vastly improve that. There's already many mechanisms to try and minimize that. But one thing that's showing very good promise is we do an initial render, basically, of the clouds at low resolution. I think it's quarter or eighth resolution. Try and identify where the cloud is, where the noisy parts are, where most of the detail is. And then when it comes to doing the main tracing of the clouds, we put all the rays and the samples where we need them. So we adapt to say, oh, this part of the scene has a fringe here, a silver lining on the cloud. That looks really nice, but it's noisy, so we'll fire many more samples there. And this next part of the screen will be big and foggy. Nothing's happening. No point spending all of our GPU on that. So we cut back at that point. So it optimizes it at the same time as improving the quality in different areas of the screen. That is looking promising, like I say. But because it's the engine team managing that, we won't be talking about releases and stuff, but there are definite improvements coming on that side of things. And it's going to continue to be added on for some time.

Star Citizen Live›Graphics Engineering Q&A·
Published on this date.4 Feb 2022
EpisodeArt & graphics