What is the difference between "Alpha Blend" and "Alpha Hashed"?

I'm wondering how the difference between "Alpha Blend" and "Alpha Hashed" can be explained vividly.

  • Jonathan Lampel replied

    I don't know how they work under the hood, sorry. Happy to provide examples of where one is the better choice than the other, but I don't think that's quite what you're looking for. What I do know is that:

    Alpha Blend: 

    • Is great for simple effects
    • Can use colored transparency 
    • Has problems sorting 

    Alpha Hashed:

    • Is great when accuracy is preferred 
    • Transparent shaders are only greyscale
    • Will always sort correctly 
    • Is noisy if not given enough samples
  • Ingmar Franz(duerer) replied

    Thanky you @jlampel, this helps me deciding when to use what mode. Especially the difference in colored transparency is something I didn't know. 

    One question to your explanations: What does this "sorting" mean?

    I've taken a look once again into the Blender 2.90 manual here but these explanations are very technical and rather for programmers🤪:

    Blend Mode

    After calculating the color of a surface, the blend mode defines how it is added to the color buffer. Depending on this, the final color will be different.

    Note

    Alpha Blending is considered a “Transparent” blend mode and has implications regarding screen space effects.

    Opaque

    The previous color will be overwritten by the surface color. The alpha component is ignored. This is the fastest option.

    Alpha Clip

    The previous color will be overwritten by the surface color, but only if the alpha value is above the clip threshold.

    Alpha Hashed

    The previous color will be overwritten by the surface color, but only if the alpha value is above a random clip threshold. This statistical approach is noisy but is able to approximate alpha blending without any sorting problem. Increasing the sample count in the render settings will reduce the resulting noise.

    Alpha Blending

    Use alpha blending to overlay the surface color on top of the previous color.

    Sorting Problem

    When writing to the color buffer using transparent blend modes, the order in which the color blending happens is important as it can change the final output color. As of now Eevee does not support per-fragment (pixel) sorting or per-triangle sorting. Only per-object sorting is available and is automatically done on all transparent surfaces based on object origin.

    Note

    This per-object sorting has already a cost and having thousands of these objects in a scene will greatly degrade performance.

  • spikeyxxx replied

    Think of a Plane, intersecting a Cube:

    The Plane on the right has its Origin above the Origin of the Cube and the one on the right below.

    If you look at this more from above, the Origin of the Plane on the right comes 'before' the Cube's Origin, so it is drawn as if it is in front of the Cube:

    So Alpha Blend only takes the order of the Origins in account.

    1 love
  • Ingmar Franz(duerer) replied

    Thanks spikeyxxx.  Now, it's clear 😀.