Hi there!
I’m making this thread for my volumetric sky plugin, OverCloud, which is a complete lighting and sky solution for Unity’s default rendering pipeline. Featuring volumetric clouds, fog and lighting, physically based time of day, multiple weather effects, a preset-based sky system and VR support.
It has been released and is available (along with demos) at http://overcloud.me/
Manual for the current version.
Media
Changelog
1.10
Fixed an issue where a shader conflict could arise if another asset provided a “Hidden/SeparableBlur” shader.
Added checks for Unity versions running the new XRDisplaySubsystem, which in turn fixes an error message that would appear on these versions.
Added a warning to the OverCloudCamera component if the far clip plane is set lower than the volumetric cloud plane radius, which hides the volumetric clouds in the game view.
Moved the Lightning script out of the example content folder, as it is included in the main OverCloud prefab and would lead to “Missing Script” warnings if the example content folder was removed.
The manual is now a link to a Google Drive document instead of a PDF.
1.09
Fixed an issue where the cloud shadows would always be pure white.
Added a global intensity multiplier for the cloud shadows under Lighting > Cloud Shadows.
1.08
Exposed the global wind time as a public variable (OverCloud.weather.WindTime). This can be used to randomize or sync the environment.
Added a warning for when a constellation of different settings results in OverCloud updating the environment lighting regularily, causing performance spikes.
1.07
Fog color is now based on the color of the atmosphere, making it more realistic and easier to configure. Because of this, the “Fog Direct Intensity” parameter (which previously controlled the amount of sunlight in fog) has been removed, and the “Fog Ambient Intensity” now instead controls how much the scattering mask will affect fog lighting, with a value of 0 meaning that the fog will appear completely black when in shadow.
Fixed a bug where the cloud albedo was not getting applied to the cloud LOD plane.
1.06
Re-enabled fog albedo (color) which was accidentally left out in a previous update.
Fixed a precision issue with the 2D fallback clouds which would result in black squares on the screen when the camera perfectly aligned with the cloud plane height.
1.05
Added two new parameters to the atmosphere rollout: Planet Scale and Height Scale. These can be used to adjust the apparent size of the atmosphere. Both are measured in Earth-like units (meaning a values of 1 = Earth-like appearance).
Fixed a bug where the downsampled depth buffer (used for cloud & volumetrics rendering) didn’t clear itself, which could result in false values over time which in turn prevented the clouds from being rendered (this was only a problem in built players).
1.04
Added a slider which can be used to control the atmosphere density. This should be used with care, as values other than 1 will break the physically based result.
Added a slider which can be used to control the far clip plane fade.
Added some static delegates to the main component which can be used to execute code right before or after certain events. These are: beforeCameraUpdate, afterCameraUpdate, beforeRender, afterRender, beforeShaderParametersUpdate, afterShaderParametersUpdate.
1.03
Added a flag to the OverCloudCamera component which allows toggling the rendering of the 2D fallback clouds, which normally are rendered in place of the volumetric clouds.
Split the mie scattering distance fade parameter into two: One which is used when the scattering mask is active, and one when it is not. This allows for more control in both scenarios.
Fixed an issue where some old code complained that the blue noise texture (which is no longer used) was not present.
1.02
Added two functions which can be used to tell if a world position is above or below the cloud volume (OverCloud.IsAboveClouds() and OverCloud.IsBelowClouds()). If the position is inside the volume, both functions will return false.
Added a function which computes the volumetric cloud visibility between two points (OverCloud.CloudVisibility). This works by sampling the cloud volume at select positions between the two points. Of note is that it is not a 100% accurate representation of the visual result, but for most cases it should be just fine.
Added a toggle to the main component which can be used to turn cloud shadows off entirely (Lighting > Cloud Shadows > Enabled). Additionally, rendering of the cloud shadows buffer is now skipped if the opacity/density is too low.
Added a toggle on the OverCloudCamera component which allows toggling the downsampling of 2D clouds. Previously, 2D clouds were always downsampled along with the volumetric ones, but this can result in some aliasing depending on your scene setup.
Moved the volumetric cloud alpha sliders to the main component (previously located on the material) under Volumetric Clouds > Shape (3D Noise).
Fixed an issue where the skybox would render as black in cameras which performed rendering during OnPreCull (such as reflection cameras).
Fixed an issue where the scattering mask world-space floor parameter wasn’t actually used when calculating the mask.
Fixed an issue where the volumetric fog drifted in the skybox when the camera moved very far from the origin.
Fixed an issue where the LOD plane for the volumetric clouds would have their alpha attenuated by scene depth against the skybox, making it invisible.
Fixed an issue caused by Unity 2019.1 where XRSettings.eyeTextureDesc fails to properly initialized HDR render targets (solved by forcing the color format to DefaultHDR is the camera rendering is HDR enabled).
Fixed an issue where OverCloud.timeOfDay was not marked as static as intended.
Fixed an issue where the “Add Preset” button at the bottom of the main component was broken. If you are using any custom floats and upgrade, this might break your prefab. To fix this, reimport the prefab fresh from the asset download.
Fixed an issue where OverCloud still rendered its own sky even if ‘Override Skybox Material’ was unchecked.
Updated some default values of the OverCloud prefab.
1.01
Fixed a bug where OverCloud failed to take into account other depth rendering modes of the camera (such as Depth+MotionVectors) and instead always forced depth only.
Separated cloud shadows intensity variable into two: Density and opacity. Density is applied before shadow refinement, opacity is applied after. This allows for more granular control over the cloud shadows appearance.
Went over the entire project and scrubbed warnings (both C# and shaders).