A black hole that actually eats. Procedural accretion disk, photon ring, screen-space lensing and GPU matter capture that reacts to your scene. All in HLSL and compute. URPURP onlyBlack Hole Complex — a black hole that actually eats.One self-contained prefab, five interlocking parts: a procedural accretion disk, an event horizon with a photon ring, screen-space gravitational lensing, a procedural star surface, and a GPU matter-capture system that reacts to whatever you place near it.Living matter captureDrop a GravityBody component on anything — a star, a wreck, an asteroid, a ship in motion. The instant it crosses the capture radius, matter tears off it and spirals inward: descending over a configurable number of turns, flattening onto the disk plane, dissolving into the accretion flow.Pull the body out of range and the stream drains itself and releases. Move it while it's feeding and the stream trails behind, because every particle keeps the trajectory it was born on instead of snapping onto the new one — the tail fans out exactly the way debris should. Feed the hole from three directions at once and you get three streams, each carrying its own HDR palette.Nothing to author. No timeline to sequence. No keyframes. It responds to your scene.Runs entirely on the GPUEach stream pushes thousands of particles through a compute shader and renders with Graphics.DrawProcedural — no GameObjects, no CPU particle updates, no per-frame allocations. Emission density scales with proximity: a distant body trickles, a close one floods. Buffers are allocated per stream and released automatically when a body leaves.Tune it live, without pressing PlayThe disk mesh generator, the stream simulation and every shader run in the Scene view in edit mode. Drag the star around, reshape the spiral, adjust the doppler asymmetry - it answers immediately.ScopeA stylized, art-directable, cheap effect that holds up in a cinematic and still runs alongside your game. It is not a physically accurate ray-marched Kerr renderer and doesn't try to be.Also useful a level hazard, a boss-scale weapon, a cinematic set piece, or a distant background feature, portal or warp jump effectMatter captureReactive capture — drop a GravityBody on any object and it starts feeding the hole on its own, and releases when it leavesUnlimited concurrent streams, each with its own four-color HDR palettePer-particle trajectory memory — moving sources leave a trailing fan, not a rubber-banding curveProximity-driven emission densityConfigurable spiral — radius, turn count and distribution, flat-run fraction, spin direction, width falloffDisk, horizon and starProcedural accretion disk mesh from editable profile curves, rebuilt liveDoppler asymmetry, seamless polar flow, dual-layer scrolling noiseScreen-space gravitational lensing with ring falloff and a depth guardPhoton ring via symmetric fresnel, tuned for bloomProcedural 3D fBm star surface — no textures, no UV seamsEverything elseFull edit-mode preview — mesh, simulation and shaders all live in the Scene view100% hand-written HLSL, compute and C# — full source, no Shader Graph, no VFX Graph, no dependenciesSRP Batcher compatible, instancing-readyFree-fly camera and demo scene includedTechnical detailsNumber of VFXs: 1 complete black hole prefab, assembled from 5 effectlayers that can also be used separately.Layers: accretion disk / event horizon core / screen-space gravitationallensing / matter capture streams / procedural star surfaceCustom shaders: 5 + 1 compute- BlackHoleCore unlit opaque, queue 4000- AccretionDisk unlit additive, queue 3100- ScreenDistortion opaque-texture sampling, queue 2900- StreamParticles procedural vertex shader reading a StructuredBuffer, additive, queue 3200- SunCore unlit opaque, fully procedural- StreamSim.compute GPU particle simulation kernelAll SRP Batcher compatible, single UnityPerMaterial CBUFFER, instancing enabled.Render queue order is deliberate and documented in the README.Particles: GPU-simulated, up to 65,536 per stream, 4,000 by default.Rendered via Graphics.DrawProcedural — no GameObjects, no CPU updates,no per-frame allocations.Meshes: generated at runtime — accretion disk surface of revolution fromeditable profile curves, plus a billboard quad for the lensing pass.Textures: 2- TX_BH_Disk 1024 x 1024- TXC_BlueBurpleNebula cubemap, 512 per face.No flipbooks, no atlases, no normal maps. Star surface, disk mesh and allparticle motion are generated procedurally at runtime.





