Volumetric per lamp
Not some long time ago, I was confronted to a situation where I wanted volumetric light in a very specific place in my set (god rays through a windows). Usually, when you want volumetric directly in your scene, you have two choices :
- You make an object to surround your scene and put a volume shader on it
- You generate the volume directly in the background, which can be slow
With both solution I get my desired god rays but the rest of the scene is way darker and appears to be covered by some kind of veil which I dont want.
Of course I could just fake it by using geometrie that match the light/shadow shape but it can be inacurate, tedious or just not working at all if the shadows are too complex (notice the artifacts on the floor along the spot light shape).
This kind of result was possible in the old Blender Internal by enabling the "Halo" setting in the spot shape panel and did not require extra geometrie to work.
I propose to bring back this option but modernized and for all lamp types . This could be display as an extra volume intput in the light output node, the user would just have to connect a volume shader node to it.
As for Eevee, which dont support lamps node driven, it could be display as a simple checkbox with all the needed parameters in a new "Volume" panel.
It would allow the user to control the amount of volumetric per light without affecting the power/strength of it, and the volume would be directly driven by the shape of the lamp itself.
This offer finer control over lighting, without affecting the rest of the scene with unwanted volumetric where its not needed.
The idea here is not to get rid of other ways (listed at the beginning) of doing such effects as they are still great for plenty of things, but simply adding another tool to the collection !
Thanks for reading ! c:
4 Comments
100 % Agree, that would make working with ''god rays'' a lot easier !!
I guess the reason why this feature is gone from Cycles is mainly because Blender Internal Renderer was a scanline renderer, it's easy to just brighten some pixels there. But Cycles is a ray tracer, it literally simulates light rays bouncing everywhere and being influenced by whatever surface or volume it gets through.
That's why adding a volume object on your entire scene will darken your entire scene, because the lighting you made for a scene without volume is being shattered in the volume. Your lighting is not adapted to your scene anymore, so either you should re-adapt it or you should use some tricks, like using a volume only where it's needed. Or even both. It will save some render time anyway.
That being said, I kind of like the idea of having volumes from light objects.
With a lamp spot, I can understand how that would work since it has a defined volume (well, as long as you have a maximum distance).
But other lamps ? Where would the volume be? In the entire scene, there's already world shader for that.
I know this feature from Redshift actually so I dont think the fact that its a raytracer change anything. So maybe that the "tricks" used for thats could be this instead of playing with geometrie or something else that could be unintuitive.
Also, maybe that the description wasnt clear enough, I should have demonstrate it a bit more clearly sorry :p
Here is some render Ive made with Redshift for demonstration purpose :
With area light
With point light
With spot light
Of course, doing that on a sun lamp would act the same as an environment volume.
* @Shimoon * To be clear too, I'm absolutely not objecting the feature nor pretending it's impossible, I just share a thought on why it was in Blender internal but not in Cycles. I'd love to have it. And I also guess it shouldn't be hard to implement on Eevee, at least the same way it was done on Blender Internal.
Actually, it's very interesting to bring RedShift as an example. Because as far as I know, Redshift presents himself as a biased ray tracer while Cycles is said unbiased ( or should I say " more biased " and " less biased " ?). Which basically means that RedShift is designed to make more shortcuts to get to his destination compared to Cycles.
So it would be interesting to know how he does its volumetric lights. Are they actual volume shaders like regular volume shaded objects or are they different, how are their boundaries, etc.