This is the correct and assumed behavior for blendModes SpriteKit, mainly because they do not have a blend mode similar to the how-to principle, which ignores the same thing as itself.
When you reduce the opacity of several nodes that are still drawn sequentially, as they are, you get a cumulative result for any adjacent positions. That is why the brightest part is in the middle.
In my answer to your previous question, I avoided cumulative rendering by “smoothing” both axes of the cross into the texture, and then loading this texture as SpriteNode, a one-time rendering object that does not intersect because it is all one thing.
All that you want to avoid such a cumulative, consistent effect of rendering less than full opacity will require you to “smooth” it with all objects / lines / shapes with 100% opacity first, first, then apply the opacity changes to get alpha effects.
That's why I said in this first “answer” that this is not really a solution to your big problem, just a way to get the desired result.
Without such a function, it ignores the rendering mode, SpriteKit cannot perform blending without cumulative impact on everything that received less than full opacity.
source share