source | ソーステクスチャ (コピー元のテクスチャ) |
dest | コピー先の RenderTexture オブジェクト。null の場合、直接画面に転送する |
mat | 使用するマテリアル。たとえば、マテリアルのシェーダーはいくつかのエフェクトを後処理できます。 |
pass | -1 (デフォルト) の場合、マテリアルのすべてのパスを描画します。そうでなければ、指定されたパスだけを描画します。 |
元のテクスチャをシェーダーでレンダリングするテクスチャへコピーします。
これは主に image effects を実装するために使用されます。
Blit sets dest
as the render target, sets source
_MainTex
property on the
material, and draws a full-screen quad.
Note that if you want to use depth or stencil buffer that is part of the source
(Render)texture,
you'll have to do equivalent of Blit functionality manually - i.e. Graphics.SetRenderTarget
with destination color buffer and source depth buffer, setup orthographic projection (GL.LoadOrtho),
setup material pass (Material.SetPass) and draw a quad (GL.Begin).
Note that in Linear color space, it is important to have the correct sRGB<->Linear color conversion
state set. Depending on what was rendered previously, the current state might not be the one you expect.
You should consider setting GL.sRGBWrite as you need it before doing Blit or any other
manual rendering.
See Also: Graphics.BlitMultiTap, image effects.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Texture aTexture; public RenderTexture rTex; void Start() { if (!aTexture || !rTex) Debug.LogError("A texture or a render texture are missing, assign them."); } void Update() { Graphics.Blit(aTexture, rTex); } }