• 10
• 12
• 12
• 14
• 16

# Horizon:zero Dawn Cloud System

## Recommended Posts

Thx for the project.

Yeah the formular is just try and error.  The idea was to think of the base noise as a form of heat/cloud bubbles. Then apply some threshold(the coverage) to it. Rescale it to 0..1 range with a steep slope. Invert it and use that as a final coveragemask. Then simply some CSG to build the final cloud volume.

##### Share on other sites

Ryokeen

you said that you modify coverage accord to the height, the top get less coverage?

coverage = coverage * height?

use your formula, when base_cloud is 1.0, means it's inside the cloud.

base_cloud = base_cloud * high_freq_noise *(1.0-base_cloud) = 0.0?

##### Share on other sites

Whups, typo there

base_cloud = base_cloud - high_freq_noise*(1.0-base_cloud);


and

coverage = 1.0-coverage*height_fade; //from 1 where the fadeout starts to 0 where it ends


I invert the coverage because want remaining "vapor bubbles" as the cloud source

##### Share on other sites

Ryokeen, i send you a pm, please chek it.

thanks.

##### Share on other sites

Whups, typo there

base_cloud = base_cloud - high_freq_noise*(1.0-base_cloud);


and

coverage = 1.0-coverage*height_fade; //from 1 where the fadeout starts to 0 where it ends


I invert the coverage because want remaining "vapor bubbles" as the cloud source

height_fade is calculate from weather type?

##### Share on other sites
What is the performance you guys are getting out of your result?

Ray marching seems quite expensive still, is that right?

##### Share on other sites

What is the performance you guys are getting out of your result?

Ray marching seems quite expensive still, is that right?

Super expensive :)

In the Zero Dawn presentation, they mention that they only calculate 1/16th of the rays every frame, and temporally re-project the rest of them using results from previous frames.

That's equivalent to only rendering at 480x270 per frame for a 1080p output, and it still takes them a few milliseconds.

##### Share on other sites

What is the performance you guys are getting out of your result?

Ray marching seems quite expensive still, is that right?

Super expensive :)

In the Zero Dawn presentation, they mention that they only calculate 1/16th of the rays every frame, and temporally re-project the rest of them using results from previous frames.

That's equivalent to only rendering at 480x270 per frame for a 1080p output, and it still takes them a few milliseconds.

Optimizing for when you even start marching, with some sort of ultra simple proxy like signed distance fields/2d cloud coverage map/etc. should also help a lot. But temporal reprojection and supersampling are basically required.

##### Share on other sites

What is the performance you guys are getting out of your result?

Ray marching seems quite expensive still, is that right?

Super expensive :)

In the Zero Dawn presentation, they mention that they only calculate 1/16th of the rays every frame, and temporally re-project the rest of them using results from previous frames.

That's equivalent to only rendering at 480x270 per frame for a 1080p output, and it still takes them a few milliseconds.

Optimizing for when you even start marching, with some sort of ultra simple proxy like signed distance fields/2d cloud coverage map/etc. should also help a lot. But temporal reprojection and supersampling are basically required.

when coverage = 0 don't calculate light?

##### Share on other sites

Yep it is expensive, around 1.4-2.1ms on a gtx970 @1/16th FullHD resolution.

Optimisations so far, early out on high opacity, no expensive calclation on coverage  == 0 , and no full quality light-samples on opacity > 60%

and a carefully tweaked scale. Thought on a signed distance field aswell, but that eliminates the nice property of realtime coverage/shape changes