I've been looking through several different Order Independent Transparency algorithms. But very few of them seem to answer a few things.

I understand that the idea of OIT is to not worry so much about ordering. But does it still matter in some cases? And is there a way to preserve it if a certain ordering is desired?

For starters, does presorting impact OIT in any way? Such as speeding it up, or producing different visual results?

And is lighting still handled per pixel as normal when you submit your geometry to be rendered. Or does it happen defacto?

A few algorithms I have been looking at.

Intel's OIT solution. This also seems to be fairly popular with AMD as well. AMD's Powerpoint

Depth Peeling. Can't find a good link.

And then Depth Weighted blending. Which seems to produce muddy results with layers. Linky

I guess I should also ask how necessary, and how fast is this. My main issue isn't layer's of transparent objects with overlaps. Things like holograms and layers upon layers of glass are likely to be rare. But mostly with particles and their drawing order from different particle systems, and them interacting with other transparent objects correctly.

Currently... the engine treats a particle engine like one complete object, and renders them directly to the backbuffer on the transparency pass. Though because the particles are volumes... it causes some graphical errors. For example if there was a huge explosion that covers a massive chunk of land... there will be a random stack of smoke that renders on top of it.

And I don't want to break up all the particle instancing to batch them with the rest of the geometry... as it would likely massively raise the draw calls for every break.

I currently can't provide any pictures right now. The engine is undergoing a serious rewrite to get it more usable. So a good portion of the code is slashed out. I'm just trying to solve problems I have noticed in my first right up.

  • 2
    \$\begingroup\$ Which technique are you looking at? Without that (and maybe even with it, still) this is probably too broad here; you would be better off asking back at GDNet. \$\endgroup\$
    – user1430
    Jul 12, 2016 at 13:52
  • \$\begingroup\$ Many good questions. Please link at least two of the algorithms you have in mind. \$\endgroup\$
    – Andreas
    Jul 12, 2016 at 13:53
  • \$\begingroup\$ @Andreas added what you have requested. \$\endgroup\$ Jul 12, 2016 at 15:47
  • \$\begingroup\$ I know the fire vs. smoke problem well. Solved it by making the smoke in the initial keyframes more transparent, and moving the smoke source higher up. Thing is, a volume particle is already, inherently, an inexact thingy - it contains an artistic footprint. Q: Is your smoke particle less transparent in the middle, and why so? Doing precise maths on skewed data becomes shaky, will work on top of artistically composed data, not mathematically... if you get what i mean. Not discouraging OIT, just concluding that it all depends... as usual :-). Sorry for not commenting more constructively. \$\endgroup\$
    – Stormwind
    Jul 12, 2016 at 21:49
  • \$\begingroup\$ @Stormwind It's fine, as stated previously I'm not sure if I actually need OIT. :P But for things like more cartoony smoke. Where it comes in Opaq pretty quickly. \$\endgroup\$ Jul 13, 2016 at 1:07


You must log in to answer this question.

Browse other questions tagged .