Expanse is a state of the art volumetrics tool for HDRP that gives you the power to author beautiful skies, clouds, and fog banks. In as little as 15 minutes, you can create compelling and interactive atmospheres—earthly, mythical, and stylized.
The rendering and authoring strategies that Expanse uses are based on the most recent production-focused papers coming out of conferences like SIGGRAPH and EGSR. Every component of Expanse is physically-based, allowing for unprecendented realism and consistency across different lighting conditions.
Expanse is a fully dynamic system that can be adjusted in realtime, with no precomputed lookups that slow down the authoring process. Things like cloud coverage, fog density, and time of day can easily be animated with keyframes or scripted to create different weather scenarios. All the changes you make are visible in the editor, so you can tweak your sky without ever having to enter play mode.
Expanse is also performance-optimized for realtime applications. You can pick and choose between a number of quality/performance tradeoffs to optimize your sky to hit your frame time requirements. For reference, on a last-gen 2080 Ti, Expanse can render an entire sky with volumetric atmosphere, clouds, and fog in under 0.7ms.
While not necessarily VR-first, Expanse does support single pass instanced VR. Support is still experimental in nature, but will gradually transition to being labeled “production ready” as more users test it. Expanse only supports the VR platforms that HDRP supports.
Technical details
Feature List (Inexhuastive, but covers most important things)
- Physically-based atmospheric scattering. This includes Rayleigh, Mie, and isotropic scattering, capable of modeling everything from the blue color of the sky on Earth to the yellow sulfuric clouds of Venus.
- Custom Atmosphere Builder with up to 8 atmosphere layers. You author skies in Expanse via the atmosphere layer system, which gives you enormous flexibility for crafting a multitude of physically-based skies—Earth-like and alien.
- Physically-based, path-traced volumetric fog and aerial perspective. This and the atmosphere system are one and the same, meaning that your fog, sky, and ambient environment lighting will always automatically be consistent.
- Procedural physically-based volumetric clouds. Expanse offers advanced procedural authoring tools that allow you to build massive, emotional cloudscapes.
- Procedural physically-based 2D clouds. Expanse’s volumetric clouds are performant, but 2D clouds are an even faster alternative that still look great for wispy cirrus clouds.
- Procedural star fields and nebulae. Expanse’s procedural night sky can host dense, twinkling star fields with swirling nebulae, or it can puncture the firmament above your city with a few bright points of light.
- Support for up to eight celestial bodies. These are more than just cardboard cutouts pasted in the sky: they fully illuminate the clouds and atmosphere, and can even cast cloud shadows. They can be suns, rocky moons, gas giants, etc.
- Time of day with moon phases. Expanse has a time of day system that will, given a time in UTC and a latitude/longitude coordinate, correctly place the sun and moon. This can ease the workflow for authoring a procedural day/night cycle.
- Single pass instanced VR Support. All of Expanse’s features can be used in single pass instanced VR, though support is still experimental.
- Gameplay query interface. You can asynchronously query the state of Expanse’s clouds in realtime for virtually no performance cost. This means that all your game AI and VFX systems can be responsive to changes in cloud density and visibility.
- Option to use preauthored textures wherever procedurally-generated textures are used. It’s understood that sometimes you may want to create a very specific look for your clouds, nebula, or starfield. You can always sub in hand-authored textures created in Substance Painter or Photoshop in place of Expanse’s procedural systems.
- Source code included. Since I’m an independent developer, I understand that I may not be able to handle all bug fix requests. To safeguard against the case where you find an issue and I’m unavailable to help, Expanse comes with all source code uncompiled, commented, and fully editable. However, to protect against pirating (which, by the way, is actually illegal under the Unity Asset Store EULA), you will need to provide your order confirmation number to receive any kind of support.
Unity Versions
- HDRP version 2020.3.7f1 (LTS) or higher. In theory it should work with 2019.4+ but it’s untested.
Disclaimers
- Only “experimental” support for Mac OSX. Expanse used to not work on Mac, but, due to some changes in v1.2.2, it now “sort of works”. In theory it should work fine, but I run into editor freezes and general performance problems when using my 2020 MacBook Pro. Because this is the case, I can’t officially declare support for OSX. However, it does work with Vulkan on Ubuntu, and with DX11/12 on Windows.
- Only works with HDRP. Expanse is an HDRP-only solution. Support for other render pipelines will likely never come.
- No support on Nintendo Switch. This is a sad side effect of using HDRP. Although in theory the Switch supports all the features necessary to run Expanse, the HDRP doesn’t support the Switch. If and when it does, Expanse should work just fine.
- VR only fully works in single pass instanced mode. As of version 1.5.7, Expanse now works with single pass instanced VR. It still sort of works in multi pass mode, but temporal accumulation features may be buggy. All testing is conducted on an Oculus Quest 2 in Oculus Link mode.
- Cloud fly-through can be computationally expensive—but much less so than it used to be! Expanse uses a technique called reprojection to render extremely realistic clouds in realtime. It can cause some artifacts when used inside clouds; however, continual adjustments are being made to the algorithm that make flythrough much more viable.
- Transparency support requires use of a custom lit shader or shadergraph material. In theory, Expanse’s fog could be just as well integrated as Unity’s own volumetric fog. However, HDRP doesn’t provide a clean way to composite custom fog over transparent objects. As such, Expanse has to resort to less ideal ways to deal with transparent objects, and requires you to use a custom copy of the HDRP Lit shader. Please see the documentation for details on how to set this up: https://bguesman.github.io/docsify-test/#/integrations/transparency.
- It’s challenging to create multiple planets in a small solar system: a la Outer Wilds. You cannot easily create multiple atmospheres in a single scene, because Expanse is backed by the Sky and Fog Volume system. Only one sky can be visible at a time.
- All testing is conducted using a RTX 2080Ti and GTC 1050 on Windows 10. I’m an independent developer so my testing resources are limited to my own computer.
Original_Link: https://assetstore.unity.com/packages/tools/particles-effects/expanse-volumetric-skies-clouds-and-atmospheres-in-hdrp-192456