Rain VFX · Hybrid SDF Occlusion System

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Keep Rain Where It Belongs

Keep rain out of covered spaces and prevent it from passing through complex scene geometry.


Rain VFX combines local GPU-driven 3D SDF occlusion, large-area Roof Masking and Depth Buffer Collision into one adaptable system. Add surface-sliding Splashes, water Ripples and Impact Mist, and customize the result using dedicated Editor tools — no custom collision scripts required for standard use.


⚡ HYBRID RAIN OCCLUSION & SURFACE INTERACTIONS

  • 3D SDF Rain Occlusion for Complex Geometry
  • Roof & Indoor Rain Occlusion
  • Glass & Transparent Surface Interactions
  • Surface-Sliding & Ricochet Splashes
  • Water Ripples & Impact Mist
  • Moving & Rotating SDF Sources
  • Custom SDF Geometry & Proxies
  • SDF Baking, Preview & Scene Management Tools
  • Weather & Water Occluder Proxy Tools
  • Camera Culling & Ground Optimization
  • Adjustable Rain Density & Particle Appearance
  • URP & HDRP Setup Assistants

For a quick product overview, check out the “At a Glance” image in the gallery.


📖 Full documentation is publicly available before purchase.

Explore the complete Rain VFX Documentation in PDF or Markdown format.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



🏠 OCCLUDE RAIN WITH COMPLEX 3D GEOMETRY

━━━━━━━━━━━━━━━━━━━━━━━━━━

Use three-dimensional SDF data to prevent rain from passing through prepared scene geometry, including roofs, ceilings, overhangs and complex architectural structures.


The local Aquarium SDF represents nearby geometry as a three-dimensional distance field. Unlike top-down height masking, this allows rain occlusion to account for spatial geometry and angled rainfall.


The Aquarium follows a configurable Transform, keeping detailed SDF processing near the active gameplay area.


Beyond the Aquarium, Roof Masking provides wider overhead occlusion, while Depth Buffer Collision adds screen-space collision against geometry represented in the camera depth buffer.


Together, these methods provide detailed local rain occlusion and broader environmental coverage without requiring a world-sized SDF.



🪟 MAKE RAIN INTERACT WITH GLASS & COMPLEX SURFACES

━━━━━━━━━━━━━━━━━━━━━━━━━━

Transparent surfaces, thin roofs and complex objects can participate in rain interaction through custom SDF geometry.


The visible mesh and its collision representation do not need to be identical. Hidden SDF proxies can provide reliable collision geometry while preserving the original object's appearance and materials.


Rain can be blocked by these prepared surfaces, while generated Splash particles can continue sliding along the SDF geometry instead of stopping immediately after impact.

Configurable Splash ricochet and collision behaviour provide additional control over how impact particles move and react.



💧 BRING SURFACE IMPACTS TO LIFE

━━━━━━━━━━━━━━━━━━━━━━━━━━

Enhance rain impacts with Splashes, water Ripples and Impact Mist.


Customize particle appearance, movement, lifetime, size, colour and spawn behaviour to match the visual style of your scene.


Splash particles support configurable movement, ricochet and surface interactions, while the local SDF provides additional surface-sliding behaviour.


A dedicated Water Mask identifies the water interaction height, allowing Ripples to appear on configured water surfaces and preventing Splashes from continuing their normal sliding behaviour beneath the detected water level.


Each secondary effect can be enabled and adjusted independently.



🧊 BUILD SDF OCCLUSION FROM YOUR OWN GEOMETRY

━━━━━━━━━━━━━━━━━━━━━━━━━━

Prepare SDF Sources directly from suitable scene meshes or create simplified SDF proxy geometry for objects that need a more reliable voxel representation.


The included SDF Source Marker and SDF Source Baker provide tools for preparing Sources, generating SDF textures and validating the result with Test Bake and Preview.


The authoring workflow supports five Source bake-resolution tiers, allowing different objects to use resolutions appropriate to their size and required detail.


Large structures can be divided into smaller Sources, while repeated objects can share pre-baked SDF textures.


Rigid SDF Sources can move and rotate at runtime, allowing their position and orientation to change without generating new Source textures.


Additional SDF Scene Overview and Source Cleaner tools help manage Sources and baked data across larger environments.



🌍 CONTROL COVERAGE AND GPU PROCESSING

━━━━━━━━━━━━━━━━━━━━━━━━━━

Rain VFX uses a hybrid architecture to concentrate detailed GPU processing where it is most useful.


The local Aquarium dynamically combines relevant pre-baked Sources into a runtime SDF Texture3D, while the surrounding area uses less expensive collision and masking techniques. The system provides several controls for balancing coverage and processing cost:

  • Aquarium Resolution & Voxel Size — adjust the balance between spatial precision, coverage and GPU cost.
  • Camera Culling — reduce unnecessary SDF processing outside the configured directional region.
  • Ground Culling — optionally skip SDF processing below suitable ground surfaces.
  • Rain Spawn Density — adjust particle density and reduce spawning outside the Aquarium's horizontal coverage.
  • Secondary VFX Controls — independently adjust Splash, Ripple and Mist spawning and selected simulation costs.

The Rain VFX can also follow a selected Transform, keeping the active rain volume near the player or gameplay area as it moves through larger environments.


Performance depends on Aquarium resolution, Source configuration, particle density and enabled effects. The documentation includes recommendations for balancing visual quality and GPU workload.



🛠️ CONFIGURE AND INTEGRATE IN THE EDITOR

━━━━━━━━━━━━━━━━━━━━━━━━━━

The included URP and HDRP Setup Assistants guide the initial configuration, check required project and scene settings, and provide automatic fixes where supported.


Dedicated Weather and Water Occluder Proxy Tools help prepare masking geometry without requiring original gameplay objects to be moved to technical rendering layers.


The provided SDF tools support the complete authoring workflow, from preparing collision geometry to inspecting baked results and managing Sources.


Rain appearance, spawn behaviour, gravity, optional directional Wind Force and secondary particle effects can be customized through the supplied VFX settings.


Standard setup, SDF authoring and visual customization are handled through the Editor.


No custom C# is required for standard use. Optional runtime registration methods are available for projects with custom streaming, pooling or scene-management workflows.



⚠️ KNOWN CONSTRAINTS & DESIGN TRADE-OFFS

━━━━━━━━━━━━━━━━━━━━━━━━

  • Full 3D SDF occlusion is local. Detailed SDF processing operates inside the configurable Aquarium. Outside it, Roof Masking and Depth Buffer Collision provide broader but less detailed coverage. Roof Masking can produce incorrect results beneath large overhangs when rain moves strongly sideways.
  • SDF Sources require Editor baking. Rigid Sources can move and rotate at runtime, but geometry or scale changes require rebaking. Runtime Source SDF generation is not provided.
  • Deforming geometry uses a static baked pose. Skinned meshes can be baked, but skeletal animation, blend shapes and runtime deformation do not automatically update the SDF.
  • Thin or complex geometry may need dedicated SDF proxies. Collision reliability depends on geometry, Source dimensions, voxel density and the resulting baked representation.
  • SDF Source tiers have finite capacities. Unique baked textures and runtime Source instances have separate limits. Increasing supported capacities can increase GPU memory usage.
  • One active Aquarium Controller is supported in the standard setup. Multiple independent simultaneous Aquarium volumes require custom integration.
  • Depth Buffer Collision depends on camera depth. Transparent materials and custom shaders without suitable depth information may require SDF geometry or another masking method.
  • Water Masking uses mesh or proxy surface height. Shader-driven waves, tessellation and GPU-only vertex deformation are not automatically reproduced.
  • Ground Culling requires suitable ground-height data. It is an optional optimization, not a collision system. Certain instanced Terrain configurations may require compatible rendering settings.
  • Extreme particle velocities can cause collision tunneling. Strong directional wind may also require manual adjustments to the rain spawn area to maintain coverage.
  • Elevated or orbit-camera configurations may require adjusted tracking Transforms or 360° Camera Culling.
  • Custom streaming and pooling workflows may require project-specific integration with the provided Source registration API.

Further details, configuration instructions, optimization guidance and recommended workflows are covered in the documentation.



💬 DOCUMENTATION & SUPPORT

━━━━━━━━━━━━━━━━━

For detailed setup instructions, SDF authoring, parameter references, optimization and troubleshooting, visit the Rain VFX Documentation.


The documentation is freely accessible before purchase in PDF and Markdown formats.


For questions or technical support:

Discord: Join the community

Email: care@skulmovski.studio