I started playing a game from 1999. It does have an option to disable dithering.

Meanwhile, modern hames offer no such luxury.

@LukeAlmighty Real talk, can someone explain to me why the hell did dithering reappear in modern AAA games? We used to have real transparency and fading effects. Why?!

@alyx
I spent hours listening to this guy and other videos on the topic, and I still cannot say I have even surface level of understanding.

youtube.com/watch?v=KEtb0punTH

But from what I understand, it's shadows. Old hames used to have a binary and sharp shadow, that was done using a method called shadow projection. This was fast, readable but extremely limited.

Modern games on the other hand try to get shadows as dynamic and varied as possible. And the fastest way to get the overlaping shadows or transparencies is dithering. BUT: The devs don't even see it, since they got used to using several layers of effects, that blur the entire image, making individual pixels insignificant in their opinion. TAA is the most famous of these.

So, yes. We used to have solutions, but the game engines are now developed with the assumption, that the game will be blured afterwards, and watched from 2m away on a 4k tv anyway.

@LukeAlmighty @alyx True transparency, using alpha, is trivial to implement, but for high fidelity games it's a serious issue.

Besides what you already mentioned, transparent objects have to be rendered AFTER everything else has been rendered behind them.
On top of that, to prevent two transparent objects from covering each other, they must be drawn back to front, as opposed to the front rendering most engines use these days.

Front rendering is a powerful optimization that reduces over draw.
Say you drew a thing, and there's something behind it.
GPU doesn't care, it won't bother with an object if it's already being obscured, there's nothing left to draw.

With dithering, none of these issues exist, because it's still a solid object as far as the GPU is concerned.

Attached is correct and incorrect transparency overlapping.

@coded_artist @LukeAlmighty
So basically, instead of doing hard coding work to make the engine do things properly, they just take the lazy route. Cause essentially what I'm getting here is that getting things to be transparent correctly, while keeping something like front rendering optimizations, is more complicated to do. So why bother with the hassle, if it can be half-assessed?

Again, what perplexes me is that this can't possibly be some hidden, esoteric knowledge. We had transparent things before. If coding from scratch is too hard, why not just borrow code from older titles or older engines?! Just reuse what you knew how to do from a decade ago.

Follow

@alyx @coded_artist @LukeAlmighty it's not that it is too hard for the devs, it's that it is too hard for the gpu with the increase in fidelity and post processing. If you go back to the ps4 era games were still implementing full transparency and were having struggles with it.
I don't really care about that though. Dithering looks HORRIBLE and I would rather have the option to turn it off while lowering some other settings. It's actually the primary reason why I never played Bayonetta 3. It looks completely hideous in that game and it is really distracting. It really sucks for taking screenshots too.

@beardalaxy @coded_artist @LukeAlmighty
The way I see it, the "muh graphical fidelity makes it too hard" is a cheap cope out. Games were pushing GPUs to their limits decades ago too. Nothing changed in that respect. But that didn't stop devs from doing things right.

And ultimately you can't claim that you're working for increased graphical fidelity when you put in dithering in your games, that distracts the player, and looks far worse in the game than if you were to reduce model complexity and texture sizes a bit. It's a self contradicting statement.

Sign in to participate in the conversation
Game Liberty Mastodon

Mainly gaming/nerd instance for people who value free speech. Everyone is welcome.