You are correct but why would you have a shadow casting light if there is no object inside light's volume? The only problem I see here is that unity will turn the shadows off if the light is too far from the camera. But I can easily detect that and disable shadows for that particular volume. Anyway, here is what I do. Shadow casting lights - I use LightEvent.AfterShadowMap to get light's shadow map and render light's volume. It takes some reverse-engineering to replicate all the built-in lighting parameters but it can be done. Lights without shadows - I use CameraEvent.BeforeLighting to render volumes for all lights that don't cast shadows (including shadow casting lights too far from camera). I should cull them here based on visibility to save a few draw calls but I don't really care. I let the rasterizer clip them. It is a pretty standard rendering setup otherwise (with all the drawbacks). Render to smaller light buffer, ray marching with dithering, blur, bilateral upscale. Animated 3D texture for volumetric noise and mie scattering. Everything else respects built-in unity lights. I don't support directional lights. I did all of it just for fun. I have zero interest in using it in a game. And since I didn't need directional light for my demo I didn't bother. With that being said, I will need to trace cascade shadows for my next hobby project. I also love to hack and reverse-engineer stuff So I will look into it and tell you what I find. Also, great job with your new lighting. Unity can be pretty slow sometimes. We actually have zero built-in shader policy at work for performance reasons.