It remains a bummer that it seems like no production game engine has shipped a solution for shadowing area lights, or if they have, nobody has written anything about how to do it
-
Show this thread
-
Replying to @antumbral
Somewhat related: I think it’s a crying shame that nobody has ever shipped irregular Z-buffers for anything. I cringe every time I see ugly shadow maps.
1 reply 0 retweets 0 likes -
Replying to @pcwalton
I suspect it's been shipped in some form in games and just not in a way that maps directly to it. I can see how it probably ends up being avoided due to the data structure being unfriendly, though...
1 reply 0 retweets 0 likes -
Replying to @antumbral @pcwalton
Hierarchical Z is an irregular z-buffer if you squint, and we've got those in hardware on many modern chips. Some engines do it in software too (I think both Frostbite and whatever Splinter Cell runs on do it)
1 reply 0 retweets 0 likes -
Replying to @antumbral
Hierarchical Z isn’t an irregular Z as used in the literature because it has fixed resolution. The whole point of irregular Z is that you get pixel-perfect shadows regardless of the resolution of your Z buffer.
2 replies 0 retweets 0 likes -
Replying to @pcwalton
a lot of the hierarchical z is tree-style with varying resolution, in ways that might be NDA'd but are relatively clear if you work with the PS4 sdk or see AMD's docs
1 reply 0 retweets 0 likes -
Replying to @antumbral
I don’t see how that meaningfully differs from traditional cascaded shadow maps, unless we’re talking about different things? My point is that hierarchical Z is inexact, while irregular Z is exact.
1 reply 0 retweets 0 likes -
Replying to @pcwalton
hi-z is exact if you take all the layers, and inexact if you don't. the inexactness is used for early culling and tests. if you have direct access to the layers you can do clever things with it
1 reply 0 retweets 0 likes -
Replying to @antumbral @pcwalton
it's definitely not the ideal implementation they describe and it's only screen-space, so it doesn't solve the same problem - but in practice it does give you per-pixel level accuracy without needing to store every pixel.
1 reply 0 retweets 0 likes -
Replying to @antumbral @pcwalton
the hierarchical z implementations i've interacted with are basically space partitioning where if the high level (coarse) data is 100% correct the high-frequency z is just dropped.
2 replies 0 retweets 0 likes
Yeah, we lean on the hierarchical Z a lot in WebRender actually because we aggressively Z-cull opaque objects and hi-Z is <3 for quick z-reject of large tiles. I want to start doing more aggressive things too; e.g. marking RGBA PNGs that don’t actually have any alpha as opaque
-
-
Replying to @pcwalton
analyzing rgba bitmaps for that got me huge wins on low end hardware in the old days. If you're doing that you can probably identify large transparent margins and kill those cheaply too.
1 reply 0 retweets 0 likes -
Replying to @antumbral @pcwalton
from looking around it seems like all the production hi-z algorithms are NDA'd, which makes sense if they're a competitive advantage. The hierarchical rasterization described here can be mapped to something approaching irregular Z though http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602?pgno=3 …
1 reply 0 retweets 0 likes - 3 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.