HAZE is a flexible and artist-friendly volumetric fog and lighting system for URP, designed to help you enhance the visuals of your project, while balancing visual quality and performance.HAZE was born from my own need for a volumetric fog and lighting pipeline that's easy to use and to art-direct. Now I'm bringing this tool for all of you to use and make beautiful atmospheric scenes.LinksDocumentation | Bluesky | DiscordAboutHAZE is a froxel-based volumetric fog and lighting solution for URP, made using Unity's RenderGraph API. Its main purpose is to enhance the visuals of your scenes by providing subtle volumetric effects that are easy to control and art-direct.FeaturesLightweight froxel-based implementationGlobal fog controlsLocal fog volumes for more granular controlIntegration with Unity’s volume system forGlobal fog visualsOverriding renderer feature settingsIntegrated screen-space multiple scattering effect (SSMS) to blur the scene in the distance based on the density of the volumetric fogSupport for main light shadowsSupport for secondary lights and shadows (currently only in Forward+/Deferred+ pipelines)Light cookie supportSupport for height-based cutoffSupport for both perspective and orthographic camera projectionSupports illumination contribution from adaptive probe volumes (APV)Supports VR (though some additional testing might be required due to lack of equipment)NEW FeaturesPer-light contribution control using the alpha value of the secondary light's colorAdditional lights can optionally boost the fog's density, allowing for light beams without the need for extra fogSubtractive density mode for volumes allows to carve out fog from specific areasPer-volume gradient color for more artistic control over a volume's ambient colorExposed controls for IGN and temporal accumulationProject requirementsHAZE is made for Unity 6+ versionsHAZE is currently only supported in the Universal Render Pipeline (URP)HAZE is based on the Unity RenderGraph API, so it currently doesn’t support compatibility mode.Known restrictionsHAZE uses temporal reprojection in order to reduce noise and artifacts from lower-resolution buffers and perform better. Because of the way the history buffer is set up for temporal reprojection, HAZE doesn’t currently support multiple cameras.Because of the way secondary light data is stored by Unity, HAZE only supports punctual light contribution to the fog in the Forward+ and Deferred+ pipelines. This can be updated if there’s enough request for it, but it might come at a performance overhead.At this moment, all fog (global and local) share the same 3D noise texture which is assigned via HAZE’s renderer feature. Support for per-volume noise can also be added if there’s enough demand for that.What HAZE is NOT forWhile HAZE is a volumetric fog solution, the froxel-based approach doesn't allow for too much shape detail or detail frequency without a heavy performance hit. That being said, HAZE is not suitable to simulate denser effects like heavy smoke or clouds.Active supportHAZE was made to suit my needs, but these will most likely be different than yours. I'd love to hear from you what sort of features you'd want in HAZE and find ways to support you and your project! So don't hesitate to reach out to me with any thoughts/ideas on Discord or Bluesky via the links above ✨Scenes shown in the screenshots were made for promotional reasons and are not included in the package.Key technical featuresGPU-based froxel-based volumetric fog powered by compute shaders (froxel = frustum-aligned voxels)Global fog controls via a custom Unity volume componentLocal fog density volumes for more control on specific areas of the sceneIntegrated screen-space multiple scattering (SSMS) effect that appliesa a bloom effect on the scene based on the density of the volumetric fogSupport for main light contribution and shadows providing an easy setup for sun raysSupport for secondary lights and shadows (currently only for Forward+/Deferred+)Light cookie supportOptional tricubic sampling for reduced aliasing artifacts with low-resolution buffersRenderer feature settings overrides via a custom Unity volume component to allow for per-area settings




