[Open Source] Volumetric Clouds for URP

Happy new year! I recently ported the HDRP volumetric clouds to URP (link to the repo).

Sample Scene:

Local Clouds:

Some of the cloud settings (such as wind) are still WIP, but I’d like to share it with you first.

22 Likes

I’m currently working on 2023.3 support as it goes into beta. (ex. Render Graph)

The new [STP upscaling]( Unity 6 beta (2023.3) - Feature Highlights #:~:text=lot%20of%20instancing.-,Spatial%2DTemporal%20Post%2DProcessing,-(%20STP%20)%0AOptimize) looks fantastic but I don’t know why the camera jitters a lot even at 0.99 render scale.

1 Like

this is looking good :slight_smile:

1 Like

Hi, I added wind settings and fixed some issues that I found.

You can now control wind in the volume override.
9578530--1355995--WindSettings.jpg

Other improvements

9578530--1356001--NoiseIssue.jpg

  • Fix the upscale mode enum (the previous does nothing)
  • Reduce performance cost (move some computations to the CPU)
  • Adjust local clouds mode (match the clouds behavior in the latest HDRP)
  • Adjust sample scene to further improve performance
  • Allow increasing the light intensity for clouds through dimmers

This helps balancing the lighting between clouds and objects in URP
9578530--1356004--LightDimmers.jpg

  • Reduce ghosting caused by denoising

Note:
The old density multiplier should be adjusted by the formula “new = sqrt(0.5 * old)” to maintain previous clouds appearance.

XR platforms is now supported, though the cloud settings for mobile XR may need to be extremely low.

I also improved the clouds blending with opaque objects. (match the clouds behavior in the latest HDRP)

Increasing camera far plane is no longer needed to render distant local clouds. (like in the latest HDRP) The maximum clouds distance depends on the primary steps in clouds override.

Holy smokes, err clouds, this is outstanding!!

1 Like

Hi wwWwwwW1,
I encountered an issue with the clouds narrowing into bands after a time while wind is engaged. Any idea why that happens?

Hi, this is caused by the extreme value of the accumulated wind vector, and I’ll fix this later.
9614597--1364480--WindVector.jpg

9614597--1364483--Clouds.jpg

1 Like

Ok, thanks. I thought it may have something to with that- it was running for quite a while. Appreciate your reply.

1 Like

Thank you for reporting this issue. It should be fixed now.

It’s interesting that this happens in HDRP as well, since the clouds rendering is ported from it, but no one mentioned this in the feedback thread . Maybe the use case (wind speed ⇔ total waiting time) of yours is so rare that no one noticed this before.
9616496--1364897--HDRPClouds_HighWindSpeed.jpg

Yeah, edge case for sure. I only noticed b/c I let it run for 10-15 min and came back and noticed the change.
Thanks again for taking a look, I’ll let you know if I find anything else.

1 Like

Hi,
Just ran a test making something of a time-lapse scene and ramped the global speed way up to 6700. I noticed that the clouds still seem to have an error after about a minute, causing them to behave unpredictably and ultimately doing an odd banding thing like in image above. Just thought I’d let you know- otherwise everything else is running well.

Unfortunately I cannot reproduce it. Could you post a screenshot of the clouds render pass in the Frame Debugger window?
9649748--1372805--Clouds_FrameDebugger.jpg

Hey @wwWwwwW1
It looks like really great asset. Thx for sharing.
I got question, how to resolve dithering effect, which make it all the time updating pixels, making it a bit constant blinking effect. Mostly visible on the edges of clouds. In this case right hand side.
Is there any dithering parameter option?
I was trying to mess with settings of Global Volume, but couldn’t achieve anything reasonable.

If they wouldn’t flickering all the time, that would be great.

Hi, this is caused by random sampling + temporal reprojection. You can increase the Num Primary Steps to make it less obvious, but at the cost of performance.

I will improve the temporal reprojection (also used in my other repos) at some point in the future.

1 Like

How do you import this as an package correctly? I tried importing it with a git hub link like I usually do but it doesn’t work

Hi, the repo is not currently designed to be a custom package. As features get more complex, I might implement this in the future.

To use it, you need to add the repo’s “Assets/VolumetricClouds” folder into your existing project.

I made a fork that converts it to a package, although it doesn’t include the sample scene. https://github.com/Torgo13/UnityVolumetricCloudsURP

You can see the changes here: https://github.com/jiaozi158/UnityVolumetricCloudsURP/compare/main...Torgo13:UnityVolumetricCloudsURP:main

@RyanJacques262003 I wouldn’t recommend using this fork directly since it has some other modifications, but you can use it as an example for your own fork.

There’s a warning any time the cloud material is modified since assets in packages are not meant to be changed, but it shouldn’t cause an issue. This can be fixed by placing a copy of the material in your Assets folder and assigning it to the clouds renderer feature.

2 Likes

Hey, I spent some time updating the repo.

I haven’t run a build test yet, so please feel free to let me know if you find any issues.

What’s new:

6 Likes

Amazing, was just thinking about this project yesterday – the results you’ve achieved are incredible. This adds a massive visual boost to my project without affecting the performance nearly as bad as some of the other cloud solutions on the asset store.

2 Likes