I spent a lot of time researching order independent transparency stuff for Pathfinder and WebRender. There’s a lot of interesting research in that area…
-
-
For example, building up per-pixel linked lists and sorting them into Z-order apparently works reasonably well on many GPUs, which is really surprising to me.
2 replies 1 retweet 5 likes -
Replying to @pcwalton @tabatkins
I found some interesting proof of concept examples for the various OIT methods (e.g. depth peeling, weighted blending). This repo, for example: https://github.com/candycat1992/OIT_Lab … Dithered alphas also sound promising (and relatively VR friendly, I understand). =
1 reply 0 retweets 4 likes -
Dithered/stippled alpha is very common in deferred renderers these days. Unreal does that, for example, as does whatever renderer Nintendo used for Mario Odyssey. Unreal does a level of postprocessing to try to hide the stippling although that leads to some interesting artifacts.
1 reply 0 retweets 1 like -
I love the idea, and dig the aesthetic in games. I found a few promising shaders, e.g.: https://gist.github.com/clydeshaffer/e538c19175afa4419bfbbb9bbe1b7fd3 … My only hesitation is the look. I'm doing mockups of interfaces, and need traditional transparency aesthetic. Most dithering examples I've seen are too obviously grainy
1 reply 0 retweets 1 like -
For interfaces can you just depth sort beforehand? I guess I don’t know what kind of interfaces you’re thinking of :) There may be some smarter OIT thing you can do if you can “mostly” depth sort beforehand and fix up later.
1 reply 0 retweets 1 like -
Manual pre-defining depths per element won't scale, unfortunately. I'm a little obsessed with making the layout system as data driven as possible, so in theory I can, for example, spawn 20 windows from a JSON config file, with animations, alphas, etc, and have it all just work
1 reply 0 retweets 0 likes -
Replying to @joshcarpenter @pcwalton and
If nothing else
@pcwalton this has given me renewed appreciation for browser layout engines and the magic of CSS animation and transparency1 reply 0 retweets 3 likes -
FYI browsers do this by depth sorting on CPU, splitting polygons if necessary. I can point you to the WebRender code if you’re interested (it’s probably the cleanest implementation, though it’s still nasty)
2 replies 0 retweets 3 likes -
Also at least in CSS the depth values are pre determined via z-index or whatever.
1 reply 0 retweets 0 likes
Not when 3D transforms are involved.
-
-
Oh, good point. I never looked into how depth gets involved in 3D transforms and I just figured each one rendered on its own layer, ordered by z-index.
0 replies 0 retweets 0 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
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.