

Shadow complex map exclamation point update#
YaPh1l has my thanks for maintaining decompiled Lua from update 66 to 152. Further Lua decompiles for the next few updates were provided by gir489 and 90e as well as 420munk. Especially as I will be trying to support multiple cascades as well.Most of the data was obtained by using the Lua hook created by Harfatus in combination with the decrypted and decompiled Lua of update 27.1, made available by v00d00. Regarding log filtering Natasha Tatarchuk has written down a nice derivation (which is more accurate then what I originally came up with for all practical cases) and you can find it in this presentation, along with a lot of very good material about pre-filterable shadow maps representations and other topics: I'm hoping to allow artists to choose the render target precision on a per-light basic, so hopefully we can use 16 bits when possible and 32 when really neessary. Thanks, but I've already got the linear depth and log filtering working so I'll probably stick with that approach.
Shadow complex map exclamation point full#
If I were you I'd start with full single precision exponential depth and linear filtering (easier to get up and running.) and then you can move to more sophisticated implementations knowing that you have a golden output to compare to. Half precision linear depth and log filtering might be enough to avoid issues with the max representable floating point value but you might also get artifacts due to insufficient accuracy. But it doesn't seem to be the case from looking at his code. Perhaps my two questions are related, and you only have to perform a log space convolution if you wrote exponential values into the shadow map, or something like that. Is the log space convolution really necessary? Does it address real mathematical issues, or just precision/range issues? But if I replace the log space convolution with a normal convolution I still get an acceptable result ( discussed here but went off track).

My second question is why do we have to perform the blur convolution in log space (especially given that I am writing linear depth)? Marco Salvi's example appears to go into log space, perform the convolution, and then come out of log space. I think my current approach is correct, but can anyone confirm?

Which implies to me that maybe I should be rendering something else ( perhaps exp(linearDepth) ). Render the exponential shadow map as seen from the light. However, during his 'Exponential Shadow Maps Rendering Breakdown' he states: I have a working implementation of Exponential Shadow Maps, but there are a couple of aspects which I don't fully understand and would like clarified.įirstly, I am currently writing linear depth (though multiplied by a depth scale factor) into the shadow map, which also appears to be what Marco Salvi does in his sample code.
