Unity の RenderTexture は、画像に透明なチャネルを持たせる方法を示しています

ここでは 2 つのカメラを用意し、1 つは ui インターフェイスを表示するために使用し、もう 1 つは rt を使用する必要があるカメラを表示するために使用します
ここに画像の説明を挿入
。 mask to ui:
ここに画像の説明を挿入
次に、modelCamera で cullingMask ポイントを自分で定義したレイヤーに設定し、ここで Model レイヤーを使用します。Clear Flags を Solid Color ソリッド カラー モードに設定し、a の値を 0 に設定します。
  ここで深度のみモードが使用されない理由を説明してください。
  このモードでは、前のフレームの深度情報のみがクリアされます。現在のフレームから前のフレームまでの不透明なオブジェクトをカバーします。その結果、RT に必要なオブジェクトにモーションがある場合、RT に表示される一連のモーション トラジェクトリが複数存在します。

次に、作成した rt をカメラに掛けます:
ここに画像の説明を挿入
透明チャネルを実現するために、rt の色の型を透明チャネルで浮動小数点型に設定しようとした後: (透明チャネルで
ここに画像の説明を挿入
int などの型を使用すると背景の透明度を達成できない理由については、特に明確ではありません)
rt に接続するために ui で rawimage を作成します:
ここに画像の説明を挿入コードで透過チャネルを使用して rt を texture2D に変換する必要がある場合は、ARGB32 または RGBAFloat を使用する必要があります。

		m_screenTure = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false);
        RenderTexture.active = rt;
        m_screenTure.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);

おすすめ

転載: blog.csdn.net/weixin_47819574/article/details/127886783
おすすめ