Universal Render Pipeline

Buto comparison in trees looking down
Buto comparison in trees looking up
Buto comparison in city
Buto comparison in city crossroads
Buto usage in demo scene
No items found.


Your game's environment is boring. Fix it with Buto. Lightning-fast, infinitely customizable volumetric lighting and fog. Set up in 60 seconds. Join 515+ game devs already experiencing the future of volumetrics.


License this Asset
Coming soon



Bring your game's environment to life with Buto, the ultimate volumetric fog and lighting asset for Unity URP.

Add realism to your outdoor scenes with misty forests or foggy mountains, create an eerie atmosphere in your horror game, or add depth and texture to your game's atmosphere with customizable volumetric noise.

With Buto, you can achieve your artistic vision and take your game's atmosphere to new heights. Experience the future of volumetrics and make your game stand out with Buto.

Latest Additions

  • Various performance optimizations with up to ~25% faster rendering.
  • The editor now offers quality presets.
  • Buto now supports spotlights.
  • We've introduced a new directional lighting setting. With directional lighting, you can now tint the fog based on the position of your main directional light in the scene.
  • We've improved the editor GUI. The connection between the Color Influence and the Individual and Ramp color overrides is now more obvious.

About Buto

Buto is not just a volumetric fog and lighting asset, it's a powerful tool that can elevate the atmosphere of your game to a whole new level.

For amateur developers, Buto offers a user-friendly interface that allows you to easily add volumetric fog and lighting to your game with just a few clicks. With the built-in customizable volumetric noise and color ramps, you can add texture and depth to your fog, making it look more realistic and believable. The fog density masks feature allows you to add or erase volumetric fog in specific areas, giving you even more control over the look and feel of your game.

For expert developers, Buto offers a wide range of advanced features that allow you to take your game's atmosphere to the next level. The physically based volumetric fog and lighting system uses algorithms described in leading technical papers and strategies from major AAA studios, providing a level of realism that is unmatched by other assets. The volumetric lighting and shadow feature ensures that objects in your scene realistically occlude lighting and cast shadows, grounding your fog in the scene. Additionally, Buto offers support for point lights and spotlights, giving you even more ways to illuminate your fog and create stunning visuals.

Buto can be used in a variety of use cases in your game, from adding realism to outdoor environments, such as a misty forest or a foggy mountain, to creating an eerie atmosphere in a horror game. The volumetric noise feature can be used to add texture to the particle distribution, making the fog look more natural. The atmospheric height fog feature makes the particle density exponentially decreases over height, resulting in realistic fog attenuation over altitude. The Long-Range Visual Consistency feature can be used to guarantee visual realism over long distances. The Stylized Fog Options feature allows you to achieve your artistic vision with color ramps, simple color adjustments, directional lighting controls, and light and shadow intensity sliders.

Buto is a must-have asset for any Unity developer looking to create immersive and believable environments in their game. With its advanced features and user-friendly interface, Buto is perfect for both amateur and expert developers. And with our 100% satisfaction guarantee, you can trust that Buto will meet your needs and exceed your expectations.


  1. Physically based: Our volumetric lighting and fog accurately renders atmospheric particles and light scattering using algorithms described in leading technical papers and strategies from major AAA studios.
  2. Volumetric Lighting and Shadow: Objects realistically occlude lighting by interacting with the fog, keeping your fog grounded in your scene.
  3. Fast: Optimized, high-performance rendering with intelligent depth-aware upscaling (~0.7ms on an Nvidia 1080 desktop equivalent).
  4. Volumetric Noise: Built-in customizable volumetric noise gives texture to the particle distribution. Choose from 5 configurable volumetric noise styles or import your own texture for the ultimate control.
  5. Atmospheric Height Fog: Particle density exponentially decreases over height, resulting in realistic fog attenuation over altitude.
  6. Long-Range Visual Consistency: Toggleable analytic height fog can be rendered behind local volumetric fog to guarantee visual realism over long distances.
  7. Stylized Fog Options: Achieve your artistic vision with color ramps, simple color adjustments, and light and shadow intensity sliders.
  8. Additional Lights: Illuminate the fog with volumetric point lighting.
  9. Fog Density Masks: Add or erase volumetric fog using Fog Density Masks
  10. Temporal Anti-Aliasing: Improved quality for high-density fog with optional Temporal Anti-Aliasing.
  11. Integrated with the Volume Component System: Seamlessly tie Volumetric Fog into your workflow with Unity's Volume Component system. Set Global Fog parameters and local Box and Sphere Volume parameters with seamless blending between Fog Volume settings.

Used By

Tested On

Vulkan, OpenGL, Direct3D 11, Direct3D 12


  1. Transparent materials are not fully supported. Objects using transparent materials are rendered after the fog pass and will not receive the effects of the fog. You can override this behavior using the included Buto.hlsl shader include (see Demo Resources for example usage).
  2. VR is not supported.
  3. Orthographic perspective is not supported.
  4. The fog does not receive shadows cast by volumetric point lights or spotlights.
  5. Designed for Unity 2021.3 LTS Universal Render Pipeline (URP).

100% Satisfaction Guaranteed

Please reach out to us directly at hello@occasoftware.com or on Twitter @occasoftware if you have any problems or questions. If you are not satisfied, we will refund you.



How do I set up Buto?

  1. Add Buto to your Universal Renderer Data
  2. Enable your Depth Texture in your Universal Render Pipeline Asset
  3. Add and enable Buto in a Global Volume in your scene

How do I import this asset to my project?

  • Purchase Buto from the Unity Asset Store
  • On your computer, open Unity.
  • At the top, click Window
  • Click Package Manager
  • At the top left, click the Packages: ____ dropdown.
  • Click My Assets
  • Look for Buto
  • Download, then import the asset
  • Open the Demo scene (~/OccaSoftware/DemoResources/Levels/...).

I don't see anything when I open the demo scene. What do I do?

  • At the top of the Unity editor, click Edit
  • Click Project Settings
  • Click Quality
  • Look for your Render Pipeline Asset. Open it.
  • In the Inspector, look for the Renderer in your Renderer List. Open it.
  • Click Add Renderer Feature.
  • Click Buto Volumetric Lighting and Fog

Is Buto compatible with Forward and Deferred Render Paths?

  • Yes. Buto is compatible with both Forward & Deferred Render Paths.

Do you recommend Buto for mobile?

  • No. Buto is a ray marched screen space volumetric effect. As such, you would be advised to use console or PC hardware.

Does Buto fog transparent materials?

  • No. Transparent materials will be rendered after Buto and will be unaffected by the fog.

Can you explain how Buto works?

  • Buto is a volumetric fog rendering solution. For each screen pixel, we raymarch to the scene depth of or the [.c]Raymarch Maximum Distance[.c], whichever is nearer. At each step, we sample a set of functions that describe the density of the fog. These functions include height falloff, 3d noise, density masks, intensity overrides, and distance falloff. Then, we sample the lighting based on direct lighting conditions, ambient lighting conditions, additional lights, color overrides, directional lighting, and we sample towards the main directional light if self-shadowing is enabled. We also sample the shadow map. The volumetric fog is composed of the integration of these raymarched steps.
  • At a high level, you will use the [.c]Fog Density[.c], [.c]Base Height[.c], and [.c]Attenuation Boundary Size[.c] to configure the overall shape and distribution of the fog.
  • After conducting the volumetric ray march, you have the option to toggle [.c]Distant Fog[.c], which conducts a unified long-range height-based fog based on the same lighting parameters as the nearby volumetric fog.

What is a volume noise source?

  • The [.c]volume noise source[.c] is used as an input to the 3D noise method during the fog density calculations.
  • We have included 5 types of procedural, customizable volume noise sources. These are Perlin, Perlin-Worley, Worley, Billow, and Curl noise sources. You can customize the [.c]Quality[.c] level, [.c]Frequency[.c], [.c]Octaves[.c], [.c]Lacunarity[.c], [.c]Gain[.c], [.c]Invert[.c], and [.c]Seed[.c] properties for each. These properties apply to the generated noise texture. You can separately control how Buto renders the noise texture by configuring the settings in the Volume Noise Rendering section.
  • You can also use a custom texture input or leave the volume noise source blank.

What is a Density Mask?

  • Buto enables you to use a box or a spherical density mask to modify the fog density in a given region. This density mask has two modes: Multiplicative and Exclusive.
  • Buto will render up to 8 fog density masks at one time. If you have more than 8 density masks in your scene, Buto will render the nearest 8 based on the distance to the camera.
  • Multiplicative: Fog density within the sphere mask will be multiplied by the factor.
  • Exclusive: Fog outside of the sphere mask will not be rendered.
  • You can add new Fog Density Masks from the context menu in your hierarchy. Here's how:
  • Navigate to your Hierarchy.
  • Right click, or click the + icon on the top left.
  • Open the Effects > foldout window.
  • Click Buto Fog Density Mask.
  • Customize the Buto Fog Density Mask.

Does Buto work with Additional Lights?

  • Yes. Note that we do not sample the shadow map of additional lights for performance reasons. A maximum of 8 additional lights will be rendered by the fog. If you have more than 8 additional lights in your scene, Buto will render the nearest 8 based on distance to the camera.
  • To set an Additional Light as Buto fog-enabled light, you need to add a Buto Light script to a game object with a Light component.
  • Buto can inherit the properties of the Light component, or you can override those properties to get the exact look you want.

Can I increase the 8 additional light limit for Buto?

Yes, you can manually increase the maximum light limit by editing a few of the files included with Buto. We will walk you through those steps here. Bear in mind that increasing the maximum light limit could cause increased performance requirements, so we recommend raising it to match your required number of lights rather than setting it to some very high number.

  1. Open ~/AssetResources/Scripts/Runtime/ButoCommon.cs.
  2. Look for the line [.c]internal static readonly int _MAXLIGHTCOUNT = 8[.c]
  3. Set the new maximum light count to the value you want.
  4. Open ~/AssetResources/Shaders/CustomFunctionHLSL/osFog.hlsl
  5. Look for the line [.c]#define MAX_LIGHT_COUNT 8[.c]. Update the number to the same value as the value you've set in [.c]ButoCommon.cs[.c]
  6. Save both files and validate that the increased light count is working.

Does Buto have a public API for scripted changes during runtime?

  • Yes. Buto is fully integrated to the Volume Component System, so all of the Volume Component properties are overridable via the standard Volume Component System API.
  • For an example, reference the included AnimateButoSetting.cs script.
  • In short, you need to access the Volume, then set the value of the desired parameter. You must ensure the parameter is overridden.

Can I exclude rendering the fog in an area but still see it outside it?

  • Yes. You can do this using the [.c]Fog Density Mask[.c] system. This system enables you to control fog density in a given area using a game object.
  • To set up an area where fog will be excluded, follow the below steps:
  1. Create a Fog Density Mask (see "What is a Density Mask?" above).
  2. Set the [.c]Blend Mode[.c] to [.c]Multiplicative[.c].
  3. Set the [.c]Density Multiplier[.c] to 0.
  4. Observe that fog will not be rendered in the radius described by the Density Mask.

Do you recommend Buto for 2D games?

No. Buto relies on perspective projection and the depth buffer for fog rendering. 2D games typically render using orthographic projection and typically do not have a depth buffer available for rendering, so Buto is mostly incompatible with 2D projects.

Can I use Buto and LSPP together?

Absolutely - Buto and LSPP can be used together or separately for different effects. LSPP is great at adding additional light scattering when the sun is in view. It can add really fast, really powerful light rays with minimal setup or configuration. Buto is powerful and flexible, is physically based, and supports volumetric noise and lighting. Combining them can give you a really cool, layered effect. Games like Elden Ring use these types of techniques together, with (their equivalent of) Buto used to add depth and texture to the scene and (their equivalent of) LSPP used to add sharp, powerful, dynamic god rays.

Can I render the fog at a lower resolution and then scale it up?

No. Buto currently renders at half resolution by default. Rendering below half resolution leads to increased challenges with depth-aware upscaling and lead to relatively increased performance costs. We're exploring options to offer reduced performance cost for Buto through the usage of the froxel fog rendering technique, which allows more flexibility in terms of render scaling. However, we have no plans to offer quarter-resolution or full-resolution render scaling options for the current ray-based implementation.

Upgrade path for Unity 2022.2 and later

In Unity 2022.2, Buto may look faint, have reflections, white dots, white blotches, black dots, black blobs, or black outlines.

To resolve this issue, you need to upgrade Buto's shader graphs to use the Full Screen material type. Unity introduced a new Full-Screen material type for Shader Graphs in Unity 2022.2. This simultaneously broke compatibility with the Unlit material type when used as part of a full-screen pass.

Buto was designed in 2021.3 with the Unlit material type, so you need to make a few small changes to switch to the full-screen material type for Buto to work correctly with Unity 2022.2 and later. We made a video guide and a text guide on how to upgrade.

Example of Buto showing reflections when the Materials have not been set up correctly in Unity 2022.2

Watch the video guide on how to upgrade Buto to Unity 2022.2, or follow these steps to make the necessary changes:

  1. Open Buto in Unity 2022.2 or later
  2. Navigate to Assets/OccaSoftware/AssetResources/Shaders/Resources
  3. Open the ButoTemporalAA.shadergraph file in Shader Graph
  4. In Shader Graph, open the Graph Inspector, then open the Graph Settings.
  5. Set the Material property from Unlit to Fullscreen.
  6. Save the .shadergraph file.
  7. Repeat steps 3 - 6 for each .shadergraph file in the ~/Resources directory.
  8. Validate that Buto is rendering correctly.

Learn more about the new full-screen material type here: Shader Graph Full Screen Master Node - Unity Platform - Rendering & Visual Effects | Product Roadmap (productboard.com)



February 21, 2023

  • We've fixed an issue that caused incorrect frame data when using Temporal Anti-Aliasing. To make sure the fix works properly, make sure to disable the Native RenderPass option in your project. Don't worry, we've got you covered and our support team is here to help if you have any questions.
  • We've also improved the quality of our fog to make it even more realistic and immersive. You'll notice the difference right away!
  • Performance has also been enhanced, so you can use our volumetric fog asset without worrying about any slowdowns or issues.
  • And finally, we've added a handy feature that automatically enables Animated Sample Positions when using TAA. If you haven't overridden Animated Sample Positions, Buto will take care of it for you, so you can focus on creating amazing content.


February 10, 2023

  • Fixed an issue where enabling Screen Space Shadows would result in inaccurate shadowing.


February 6, 2023

  • You can now add box density masks.
  • Density masks now appear as toggleable gizmos in the scene view, even when not selected.
  • The density mask blend falloff is now a density mask blend distance.
  • The density mask blend distance now represents the distance (in units) over which the mask effect will fade out.


January 18, 2023

  • You can now disable Buto for specific cameras in the scene. This can be useful for Overlay, UI, or Effects-related cameras. To disable Buto for a specific camera, simply add the [.c]DisableButoRendering[.c] component to that camera.
  • Fixed an issue with the new [.c]_ButoTexture[.c] that caused the Buto render pass to have incorrect alpha values.


January 17, 2023

  • Buto now always clears its temporary render targets before rendering.


January 11, 2023

  • Buto now writes to a fullscreen texture before writing to the screen. This enables custom texture sampling from the Buto Fog texture in custom shaders.
  • You can sample the Buto texture using the new Buto.hlsl include file, which has both Shadergraph-ready and Custom Shader-ready methods.
  • Two new Shaders (Transparent-ReceiveFullFog-xxx.Shadergraph) demonstrate usages in Shadergraph. Objects using the materials are present in the full scene.
  • Buto now automatically sets two scripting defines during the first compilation after the asset is imported to the project: [.c]OCCASOFTWARE[.c] and [.c]BUTO[.c].


December 7, 2022

  • Included missing demo scripts


December 6, 2022

  • Various performance optimizations with up to ~25% faster rendering.
  • The editor now offers quality presets.


November 29, 2022

  • Buto now supports spotlights.
  • We've introduced a new directional lighting setting. With directional lighting, you can now tint the fog based on the position of your main directional light in the scene.
  • We've improved the editor GUI. The connection between the Color Influence and the Individual and Ramp color overrides is now more obvious.


September 28, 2022

Bug Fixes

  • Spherical Harmonics now correctly uses the ambient light color of the scene when setting the fog world color.
  • Setting your directional light intensity to 0 will no longer cause the scene to turn black.
  • Buto will now use the same number of steps for every ray, regardless of the depth to opaque geometry. As a result, nearby opaque objects will now have higher quality results. The performance impact will also be more consistent frame-to-frame.

Updated Demo Scene

  • The demo scene now has both a large and small environment to test. These environments should help you to understand better how the fog settings impact your scene.


September 11, 2022

Bug Fixes

  • Changed the Scene Depth UV mode from Default to Raw. This fixes a sampling issue that causes aliasing when using an incorrectly upscaled version of the low-resolution depth texture in the final merge pass.


August 29, 2022

New Features

  • You can now control Fog Density Mask blend modes for each Fog Density Mask component in the scene, giving you much greater control over how and where fog will render.
  • Buto now includes a built-in Volumetric Noise generation system within the editor. This system is seamlessly integrated with Buto's inspector editor, so you can easily configure the look of your fog.
  • You can now configure Lit, Shadowed, and Emission fog colors which are combined additively with the pre-existing Custom Color Ramp system. This gives you greater control and easier configuration for minor fog color changes. Quality of Life Changes
  • The Volumetric Fog editor window has been simplified and grouped into more logical sections. When in Scene View, disabling the Fog Effects in the Scene View Options will also disable Buto.


June 27, 2022

Bug Fixes

  • Decals were incorrectly rendering twice when the Decal Render Pass Technique was set to DBuffer. Decals will now render correctly for both DBuffer and Screen Space Decal Techniques.


June 17, 2022

Bug Fixes

  • Incorrect UV coordinates were being passed to the Volumetric Fog shader, which resulted in incorrectly sampled fog. The correct UV coordinates will now be passed to avoid this issue.


June 13, 2022

Feature Update

  • Volumetric Fog density will linearly go to 0 as a ray approaches the Max Volumetric Distance when Analytic Fog is disabled.Bug Fixes
  • Fixed a visual bug occuring around object borders that resulted from jittering the depth UVs.
  • Fixed a code error causing the Buto Lights to be ignored during the light integration step.Demo
  • Changed the color of scene objects to red so that it is easier to see them among the fog, which is typically a mid-grey color.


June 10, 2022

  • Integrated with the Volume Component system
  • Added support for Temporal Anti Aliasing and corresponding controls to the Volume Component.
  • Added Fog Density Masks and corresponding controls to the Volume Component.
  • You can add a Fog Density mask from the Add Game Object menu from Game Object -> Effects -> Buto Fog Density Mask
  • Added Spherical Harmonics support
  • Introduced additional controls for performance, such as Maximum Self-Shadowing Octaves
  • Adjusted Analytic Fog equations
  • Adjusted some editor minimum / maximums.


New Assets

  • Added 24 more volumetric noise textures Improvements
  • Added Lacunarity and Gain parameters. These parameters give you better control over the final look of the volumetric noise.
  • Adjusted the fog sampling algorithm so that we sample through the fog volume more evenly, giving less noisy results for most use cases.Bug Fixes
  • Fixed an issue causing some material parameters to be reset when exiting and re-launching Unity.
  • Fixed an issue causing the fog to sample the Color Ramp map as if the fog were further away than it actually was. Color Ramp functionality will operate more consistently now.


New Assets

  • Added 5 more volumetric noise textures (2 higher resolution perlin noise textures, 3 worley noise textures.Improvements
  • Added a Horizon Shadowing option, which realistically causes fog to become shadowed when the main light falls below the planet's horizon line. Increases performance cost.
  • Removed the maximum limit on Volumetric Fog Distance.
  • Added an option to completely disable Analytic Fog, renamed Non Volumetric Fog to Analytic Fog, and removed the maximum limit on Analytic Fog Distance.
  • Added an option to enable Self-Shadowing Volumetrics. Self-Shadowing causes light to be attenuated as it moves through a volume of non-zero density, resulting in shadowing on the far side of the volume. Computationally expensive, especially when paired with Octaves.
  • Added an option (Octaves) to increase the quality of the volumetric noise by resampling the noise texture over progressively smaller domains. Computationally expensive.
  • Adjusted the Noise Intensity Min/Max slider to a Noise Intensity Mapping Slider. Previously, this slider basically only allowed you to increase the range of intensity values in the scene. Now, this slider allows you to clip values outside of the mapping to create more sharply defined noise.
  • Adjusted the calculation method applied to fog density when supplied to the Analytic Fog. Analytic Fog should now be more coherent with the Volumetric Fog under a wider variety of circumstances.Bug Fixes
  • Adjusted the calculation method used to to construct the final noise values out of the input noise textures. Final noise values will now correctly occupy a [0, 1] range, which improves quality of final rendering.
  • Adjusted the Wind Velocity calculations so that it operates consistently regardless of the Noise Tiling Domain setting. In other words, changing the Noise Tiling Domain will no longer also indirectly affect the apparent wind velocity.


Bug Fixes

  • Fixed an issue that could cause Buto to fail to re-create itself between scene loads.



  • Added tooltips to all editor controls and renamed some parameters for clarity.
  • Changed Height Falloff parameter [0, 2] to Attenuation Boundary Size [0, inf). Height Falloff parameter previously represented an abstract value attenuating the fog density over height. Attenuation Boundary - Size now represents a concrete value at which the fog will have been attenuated to 36% of its original value.
  • Created a separate assembly definition for the OccaSoftware.Buto.Demo namespace region. Reminder that you can safely remove the entire DemoResources folder once familiar with the asset.
  • Updated Readme to reflect the GameObject/Volume/Buto Fog Volume method of creating fog volumes in scene.

Bug Fixes

  • Fixed a rendering issue that could occur when using a single shadow cascade.


  • Fixed an issue causing Reflection Probes to render black when the Buto Fog Volume was in scene.


  • Upgraded to Unity 2021 LTS. Future updates will target Unity 2021 LTS until the next LTS release. Unity 2020 LTS is locked to version 1.3.2.
  • Improved Editors
  • You can now create a Buto Light from the GameObject/Light context menu.
  • You can now create a Buto Fog Volume from the GameObject/Volume context menu.


  • Fixed an issue causing Volumetric Point Light intensity to approach infinitely high values in some cases.


  • Fixed an issue that could occur on import due to Package Manager Dependencies


  • Added Volumetric Point Light support
  • Any Game Object can be designated as a Volumetric Point Light by adding the Buto Light component
  • The Buto Light component can inherit lighting parameters of a Light component on the same Game Object if one is present


  • Fixed an issue that could occur on some graphics platforms


  • Fixed an issue when transitioning to a new scene
  • Added custom editor GUI


  • Introduced Sample Count slider.
  • Introduced option to disable animation of raymarch offset over time
  • Introduced public API, GetFogMaterial and SetFogMaterial
  • Added a script demonstrating an example of using the SetFogMaterial method.
  • Added two more default Fog Materials
  • Removed all const constructors to ensure coherence with GLSL


  • Introduced Volumetric Noise Intensity sliders.
  • Removed Volumetric Noise falloff over distance
  • Fixed an issue that could occur when increasing the Base Height above 0.
  • Corrected an issue with Fog Emission Color sampling.


  • Fixed an issue that could occur if the Fog Render Feature is added to a Renderer without a Buto Fog Volume in the scene.


February 15, 2022

  • First release

More Assets

No items found.