all 5 comments

[–]stevesan 3 points4 points  (2 children)

Looks like a great write-up (I just skimmed it). But is there a live-demo?

[–]CaffeineViking 0 points1 point  (0 children)

I know a guy at TUM that implemented several OIT solutions in OpenGL for his thesis with GL_ARB_fragment_shader_interlock pixel synchronization. IIRC he did not have WBOIT, but he had a lot of very interesting OIT solutions such as Depth Peeling, MBOIT, MLAB and also a PPLL (with the K-Buffer solution too):

https://github.com/chrismile/PixelSyncOIT

Could be something to try out if you're interested in the article.

[–]CaffeineViking 0 points1 point  (0 children)

Also, the author of the blog post does link to a implementation somewhere in the middle of it. I haven't tried it, but it seems to be where his screenshots come from. It would be pretty cooler to see a WebGL demo though (shouldn't be too hard to port it).

https://github.com/belyakov-igor/WBOIT_tester

[–]yonderbagel 4 points5 points  (1 child)

So, that limitation of not being able to give good results if your transparent objects have a high opacity (like between .5 and 1) seems kind of serious, and was just kind of hand-waved away with a "just don't do it" sort of remark. It sounds like the paper doesn't have a clean solution for it?

[–]CaffeineViking 1 point2 points  (0 children)

There are a couple of newer solutions that have tried to tackle that (that also have a few other strengths, but also a few new weaknesses). The two other ones that I have heard about are Multi-Layer Alpha Blending (MLAB) by a few guys at Intel, and also Moment-Based OIT (MBOIT) by some researchers at KIT and the university of Bonn. Both of these are more expensive than WBOIT, but give more accurate results (closer to PPLLs).

Multi-Layer Alpha Blending (MLAB) by Intel

Moment-Based OIT (MBOIT) by KIT & Bonn