0
このコードは、ゼロでないアルファチャンネルを持つテクスチャを作成します。XNA。テクスチャ2D。 SetData。間違ったアルファチャンネル
Texture2D result = new Texture2D(Program.MainThread.GraphicsDevice, (Int32)texture_size, (Int32)texture_size);
Color[ ] colorData = new Color[result.Width * result.Height];
for (UInt32 x = 0; x < result.Width; x++) {
for (UInt32 y = 0; y < result.Height; y++) {
UInt32 index = (UInt32)(x * result.Width + y);
colorData[index] = new Color(1f, 0f, 0f, 0f);
}
}
result.SetData(colorData);
色がやや透明になります。しかし、およそ0.5fの値になります。なぜこうなった?
P.S. Color.Transparentが正常に動作しますが、私はプログラム的に計算するアルファチャンネルを持って、例えば:
colorData[index] = new Color(1f, 0f, 0f, 1f - temp);