全画面曇りガラスのぼかし効果
原理
全画面曇りガラスのぼかし効果の原理は、RenderTexture を使用して現在の画面イメージをキャプチャし、次にぼかしアルゴリズムを使用して RenderTexture イメージをぼかし、最後に処理されたイメージを画面に表示することです。この方法では全画面のすりガラス効果を実現できますが、より高いパフォーマンスが必要です。
一部のオブジェクトのすりガラスぼかしの原理は、2 台のカメラを使用することです。1 台のカメラはぼかしが必要なオブジェクトのみをレンダリングし、もう 1 台のカメラは他のオブジェクトと背景をレンダリングします。次に、RenderTexture を使用して 2 番目のカメラでレンダリングされたイメージをキャプチャし、RenderTexture イメージをぼかし、最後に処理されたイメージをマテリアルとして 1 番目のカメラでレンダリングされたオブジェクトに貼り付けます。この方法では、一部のオブジェクトのすりガラス効果を実現できますが、より高いパフォーマンスが必要です。
完全なコード
// 中間レンダリング ターゲットとして RenderTexture を作成します
private RenderTexture rt;
// ぼかしが必要なオブジェクトを取得します
private GameObject targetObj;
// ぼかしが必要なカメラを取得します
private Camera BlurCamera;
void Start()
{ // Create RenderTexture、解像度は必要に応じて調整できますrt = new RenderTexture(Screen.width, Screen.height, 0); // ぼかしが必要なオブジェクトを取得しますtargetObj = GameObject.Find("TargetObject"); // Getぼかす必要があるカメラBlurCamera = GameObject.Find("BlurCamera ").GetComponent<Camera>(); // BlurCamera のレンダリング ターゲットとして RenderTexture を使用しますBlurCamera.targetTexture = rt; // レンダリングされた画像をマテリアルとして貼り付けますTargetObject のtargetObj.GetComponent<Renderer>().material.SetTexture ("_BlurTex", rt); }
void OnRenderImage(RenderTexture src, RenderTexture dest)
{ // RenderTexture 画像をぼかしますGraphics.Blit(src, rt, BlurMaterial); // 処理された画像を画面に表示Graphics.Blit(rt, dest); }
一部のオブジェクトは曇りガラスでぼやけていますが、本体はぼやけていません。
原理
一部のオブジェクトのすりガラスぼかしの原理は、2 台のカメラを使用することです。1 台のカメラはぼかしが必要なオブジェクトのみをレンダリングし、もう 1 台のカメラは他のオブジェクトと背景をレンダリングします。次に、RenderTexture を使用して 2 番目のカメラでレンダリングされたイメージをキャプチャし、RenderTexture イメージをぼかし、最後に処理されたイメージをマテリアルとして 1 番目のカメラでレンダリングされたオブジェクトに貼り付けます。この方法では、一部のオブジェクトのすりガラス効果を実現できますが、より高いパフォーマンスが必要です。
完全なコード
// 中間レンダリング ターゲットとして RenderTexture を作成します
private RenderTexture rt;
// ぼかしが必要なオブジェクトを取得します
private GameObject targetObj;
// ぼかしが必要なカメラを取得します
private Camera BlurCamera;
void Start()
{ // Create RenderTexture、解像度は必要に応じて調整できますrt = new RenderTexture(Screen.width, Screen.height, 0); // ぼかしが必要なオブジェクトを取得しますtargetObj = GameObject.Find("TargetObject"); // Getぼかす必要があるカメラBlurCamera = GameObject.Find("BlurCamera ").GetComponent<Camera>(); // BlurCamera のレンダリング ターゲットとして RenderTexture を使用しますBlurCamera.targetTexture = rt; // レンダリングされた画像をマテリアルとして貼り付けますTargetObject のtargetObj.GetComponent<Renderer>().material.SetTexture ("_BlurTex", rt); }
void OnRenderImage(RenderTexture src, RenderTexture dest)
{ // RenderTexture 画像をぼかしますGraphics.Blit(src, rt, BlurMaterial); // 処理された画像を画面に表示Graphics.Blit(rt, dest); }