Jump to content
  • Advertisement
ChenA

Horizon:zero Dawn Cloud System

This topic is 402 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

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 this post


Link to post
Share on other sites
Advertisement

Ryokeen

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

coverage = coverage * height?

 

and about the detail noise

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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!