UnityでのC#を使用したテクスチャのブレンド方法


  1. テクスチャのアルファブレンド: テクスチャのアルファチャンネルを使用してブレンドする方法です。アルファチャンネルの値に基づいて、2つのテクスチャをブレンドします。

    Texture2D texture1; // ブレンドするテクスチャ1
    Texture2D texture2; // ブレンドするテクスチャ2
    float blendFactor; // ブレンド係数
    Color[] pixels1 = texture1.GetPixels();
    Color[] pixels2 = texture2.GetPixels();
    Color[] blendedPixels = new Color[pixels1.Length];
    for (int i = 0; i < pixels1.Length; i++)
    {
       blendedPixels[i] = Color.Lerp(pixels1[i], pixels2[i], blendFactor);
    }
    Texture2D blendedTexture = new Texture2D(texture1.width, texture1.height);
    blendedTexture.SetPixels(blendedPixels);
    blendedTexture.Apply();
  2. テクスチャの乗算ブレンド: 2つのテクスチャの色を乗算してブレンドする方法です。

    Texture2D texture1; // ブレンドするテクスチャ1
    Texture2D texture2; // ブレンドするテクスチャ2
    Color[] pixels1 = texture1.GetPixels();
    Color[] pixels2 = texture2.GetPixels();
    Color[] blendedPixels = new Color[pixels1.Length];
    for (int i = 0; i < pixels1.Length; i++)
    {
       blendedPixels[i] = pixels1[i] * pixels2[i];
    }
    Texture2D blendedTexture = new Texture2D(texture1.width, texture1.height);
    blendedTexture.SetPixels(blendedPixels);
    blendedTexture.Apply();
  3. テクスチャの加算ブレンド: 2つのテクスチャの色を加算してブレンドする方法です。

    Texture2D texture1; // ブレンドするテクスチャ1
    Texture2D texture2; // ブレンドするテクスチャ2
    Color[] pixels1 = texture1.GetPixels();
    Color[] pixels2 = texture2.GetPixels();
    Color[] blendedPixels = new Color[pixels1.Length];
    for (int i = 0; i < pixels1.Length; i++)
    {
       blendedPixels[i] = pixels1[i] + pixels2[i];
    }
    Texture2D blendedTexture = new Texture2D(texture1.width, texture1.height);
    blendedTexture.SetPixels(blendedPixels);
    blendedTexture.Apply();

これらはいくつかの基本的な方法ですが、Unityではさまざまなブレンド方法があります。具体的な要件に応じて、さらなるカスタマイズや追加のブレンド方法を実装することも可能です。以上のコード例を参考にしながら、独自のブレンド方法を実装してみてください。