Skip to content

Instantly share code, notes, and snippets.

@KenneyNL
Last active December 14, 2021 22:58
Show Gist options
  • Save KenneyNL/d431d45f0fd669601f03aad968a02c5d to your computer and use it in GitHub Desktop.
Save KenneyNL/d431d45f0fd669601f03aad968a02c5d to your computer and use it in GitHub Desktop.
Texture2D[] layers;
Texture2D compiledTexture = new Texture2D(layers[0].width, layers[0].height);
foreach(Texture2D layer in layers){
Color[] baseColors = compiledTexture.GetPixels();
Color[] layerColors = layer.GetPixels();
for(int p = 0; p < baseColors.Length; p++){
Color resultColor = baseColors[p];
resultColor.r = baseColors[p].r * (1.0f - layerColors[p].a) + layerColors[p].r * layerColors[p].a;
resultColor.g = baseColors[p].g * (1.0f - layerColors[p].a) + layerColors[p].g * layerColors[p].a;
resultColor.b = baseColors[p].b * (1.0f - layerColors[p].a) + layerColors[p].b * layerColors[p].a;
baseColors[p] = resultColor;
}
compiledTexture.SetPixels(baseColors);
compiledTexture.Apply();
}
@xzbobzx
Copy link

xzbobzx commented Aug 14, 2018

This is amazing & exactly what I've been looking for!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment