Multiplied channels by alpha when less than Vector4

This commit is contained in:
mm00
2025-04-01 19:49:21 +02:00
parent 7c484a9af3
commit 8173327c79

View File

@@ -28,16 +28,16 @@ public static class ImageUtil {
for (int x = 0; x < width; x++) {
switch (result) {
case float[,] f:
f[x, y] = span[x].R / max;
f[x, y] = span[x].R / max * (span[x].A / max);
break;
case Vector2[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max);
f[x, y] = new Vector2(span[x].R / max, span[x].G / max) * new Vector2(span[x].A / max);
break;
case Vector3[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max, span[x].B / max);
f[x, y] = new Vector3(span[x].R / max, span[x].G / max, span[x].B / max) * new Vector3(span[x].A / max);
break;
case Vector4[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max, span[x].B / max, span[x].A / max);
f[x, y] = new Vector4(span[x].R / max, span[x].G / max, span[x].B / max, span[x].A / max);
break;
}
}
@@ -88,16 +88,16 @@ public static class ImageUtil {
for (int x = 0; x < width; x++) {
switch (result) {
case float[,] f:
f[x, y] = span[x].R / max;
f[x, y] = span[x].R / max * (span[x].A / max);
break;
case Vector2[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max);
f[x, y] = new Vector2(span[x].R / max, span[x].G / max) * new Vector2(span[x].A / max);
break;
case Vector3[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max, span[x].B / max);
f[x, y] = new Vector3(span[x].R / max, span[x].G / max, span[x].B / max) * new Vector3(span[x].A / max);
break;
case Vector4[,] f:
f[x, y] = new(span[x].R / max, span[x].G / max, span[x].B / max, span[x].A / max);
f[x, y] = new Vector4(span[x].R / max, span[x].G / max, span[x].B / max, span[x].A / max);
break;
}
}