[Eevee / 2.8] Jittered Shadow Soft/AA
I think it would be very useful if there were a higher quality option for rendering soft shadows in Eevee.
I propose a togglable "jittered soft shadow mode" for Eevee that works by jittering the position of light sources for every sample. This probably wouldn't be much slower than the existing solution, but it would theoretically be much more accurate and have fewer artifacts. It would essentially be doing a shadow map equivalent of subpixel jitter AA.
In addition to improving the quality of penumbra shadowing, it would also eliminate jagged pixelation at hard shadow edges.
19 Comments
Or give a raytraced option for shadows. Video copilot's Element 3d can do that in real time.
@harry.kurakula: This is a proposal for soft shadows, for which path tracing is a very inefficient approach in comparison to the method I describe.
Also, I believe Element 3D's "ray traced" option takes a GPGPU approach which can be very slow and hog a lot of video memory, which is already in high demand for other things like textures and geometry data in Eevee. Implementing something similar would essentially be reinventing what Cycles already does, and with the addition of the new Draw Manager in 2.8, you can actually USE Cycles in conjunction with Eevee anyway.
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@quargzon: Draw manager?? First time hearing this. Was it implemented already or still in development
@harry.kurakula: It's a new feature planned for 2.8 that is designed to allow some exciting composition possibilities, including the ability to easily composite the output of multiple rendering engines.
As far as I know, the Draw Manager is currently only implemented under the hood and can't be accessed by the user yet.
Take a look at this .
@harry.kurakula: @harry.kurakula: It's a new feature planned for 2.8 that is designed to allow some exciting composition possibilities, including the ability to easily composite the output of multiple rendering engines.
As far as I know, the Draw Manager is currently only implemented under the hood and can't be accessed by the user yet.
Take a look at this .
@harry.kurakula: @harry.kurakula: It's a new feature planned for 2.8 that is designed to allow some exciting composition possibilities, including the ability to easily composite the output of multiple rendering engines.
As far as I know, the Draw Manager is currently only implemented under the hood and can't be accessed by the user yet.
Take a look at this .
@quargzon: Oh. Now I see why there are so many duplicate posts. It told me there was an "internal server error", but apparently it worked every time. What a mess... :P
@quargzon: yeah.. thank you
Sure it sounds very good, but is this something proven to work?
@David Kozma: Sure, you can find lots of examples by googling "jittered soft shadows". The concept is actually simpler and more grounded in the real phenomena that produce soft shadows than the current implementation in Eevee.
Imagine a square area light. It produces soft shadows because the light isn't emanating from a single point, but all points on the surface of that square. The idea is to simulate this "light coming from all points" by picking random/jittered points across the surface and casting hard/unfiltered shadows from each location.
Eventually, with enough samples, you'll have a good distribution of samples across the light's surface, so it'll be as if the entire area light is casting shadows instead of just an infinitesimal point.
This is actually very similar to how raytraced soft shadows are calculated, but it would be MUCH faster in Eevee because GPU-accelerated shadow maps are blazingly fast in comparison to path tracing.