Bram Stout
banner
stoutnl.bsky.social
Bram Stout
@stoutnl.bsky.social
Working on animations (including Minecraft animations) for over 10 years. Doing things like story writing, CG cinematography, CG pipeline development, rigging, and consulting.

Creator of MiEx, a Minecraft world exporter.

https://bramstout.nl
Some operations require associated alpha in order to produce correct results and other operations require unassociated alpha in order to produce correct results.

A rule of thumb that I typically go by is; If it's light, use associated alpha. If it's an object's colour, use unassociated alpha
October 25, 2025 at 5:25 PM
I don't really do any game stuff, instead I do CG animation and VFX. And, when doing compositing for it, it is very normal to constantly switch between associated and unassociated alpha based on what operations we need to do. It's one of the first things you'd learn when learning compositing.
October 25, 2025 at 5:25 PM
And in that context, unassociated alpha does become logically inconsistent and inferior. But only because they compare the two as if they represent colour in similar ways, which they don't.

Associated alpha could be painted in a similar way, by placing it in a context that's natively unassociated.
October 25, 2025 at 5:25 PM
They just represent colour in fundamentally different ways.

Most of the times when I read texts where people compare associated and unassociated alpha, they look at them as if they represent colour in similar ways, often from the perspective of blending which is about light, thus associated alpha.
October 25, 2025 at 5:25 PM
I disagree. Opacity is very much a real thing and rooted in physics. For a given area, opacity is the percentage of that area covered by the "object". A better term would probably be "presence".

Associated and unassociated alpha are both equally valid and equally logically consistent.
October 25, 2025 at 5:25 PM
because associated alpha can represent additive blending naturally. But that is only true if the colour stays in associated alpha mode during all operations. The moment that it gets converted to unassociated alpha (either explicitly or implicitly by an operation), then that benefit goes away
October 25, 2025 at 7:03 AM
Most operations are "natively" a specific alpha mode. They can easily be rewritten for another alpha mode by having it implicitly convert the colours to their native alpha mode on input and back to the original alpha mode on output

Associated alpha does seem like an upgrade over unassociated alpha,
October 25, 2025 at 7:03 AM
diffuse colour maps that are unassociated alpha. But the issue here isn't with unassociated alpha, it's with providing an operation colours in a different alpha mode than that operation was designed for. Blurring and mipmap generation can easily be modified to properly support unassociated alpha.
October 25, 2025 at 7:03 AM
PBR surface materials deal with the colour of an object, so unassociated alpha would make more sense. But particle effect materials often deal with light, so associated alpha would make more sense.

Blurring and mipmap generation, by default, assume associated alpha, leading to issues with...
October 25, 2025 at 7:03 AM
so as long as you keep track of the alpha modes of colours and use the correct version of operations for those alpha modes, then it *should* all be fine no matter what alpha mode you go with.

Both modes do have their advantages and disadvantages outside of how they represent colour.
October 25, 2025 at 7:03 AM
Give an operation, that assumes associated alpha colours, unassociated alpha colours and it'll produce incorrect results. Same the other way around.

Colours can be converted between alpha modes and operations can be rewritten for different alpha modes,
October 25, 2025 at 7:03 AM
Unassociated alpha looks at RGB as the colour of an object and A as the opacity of that object.

So, whether a colour should be associated or unassociated alpha depends on what that colour is meant to represent.

The important part is that colours are in the right mode for the specific operation.
October 25, 2025 at 7:03 AM
The way that I look at it is that associated (premultiplied) alpha and unassociated (straight) alpha are both equally valid, but they both represent colour in fundamentally different ways.

Associated alpha looks at RGB as emitted light and A as occlusion of light behind it.
October 25, 2025 at 7:03 AM
Tried doing it with ParcelJS, but couldn't get it to work how I wanted it to, so rather than trying it again with other build systems, I just wrote my own basic one
October 10, 2025 at 6:37 AM
For background, I have a project folder with multiple "modules". Each module contains TypeScript and other files. I just want a build system to build each module as their own thing and then package them together into one folder to get served by a local HTTP server.
October 10, 2025 at 6:37 AM
Rewriting the UVs so that it's a value for each face-vertex and the index buffer is just 0,1,2,3,4,5,... fixes it. That does cause it to take up more memory, but at least it's opening up those scenes in a reasonable time.

Could something like that be happening for you?
September 2, 2025 at 4:22 AM
Turned out that when it's loading in meshes, if the UVs are indexed and so UV points are merged aggresively, causing the UV topoly to not match actual topoly, Maya decides it has to check the UVs with some algorithm that takes a very long time to run
September 2, 2025 at 4:22 AM
I've recently come across an issue with Maya where geo generated by an external program and imported in via USD, would cause Maya to take minutes to half an hour to open up any scene file with that geo in there. While it should've taken only a few seconds
September 2, 2025 at 4:22 AM
If the number of colors are limited (or it's black and white) then a GIF should work nicely. As long as all colors can fit inside of a 256 element color palette, it should compress losslessly. A zoomed in area scaled up via nearest neighbor helps as well. A second GIF of just specular component also
June 12, 2025 at 6:24 AM
Also, here's my page of cat pictures, because every hobby photographer needs one

bramstout.nl/en/photograp...
June 8, 2025 at 9:51 AM