Blit
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
Read time 26 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine.Rendering
- Assembly: UnityEngine.CoreModule
Blit(Texture, RenderTargetIdentifier)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(Texture source, RenderTargetIdentifier dest)
Parameters
Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(Texture, RenderTargetIdentifier, Vector2, Vector2)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(Texture source, RenderTargetIdentifier dest, Vector2 scale, Vector2 offset)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The scale to apply.
The offset to apply.
Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(Texture, RenderTargetIdentifier, Material)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(Texture source, RenderTargetIdentifier dest, Material mat)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The material to use. If you don't provide , Unity uses a default material.
matRemarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(Texture, RenderTargetIdentifier, Material, int)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(Texture source, RenderTargetIdentifier dest, Material mat, int pass)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The material to use. If you don't provide , Unity uses a default material.
matIf the value is , Unity draws all the passes in . Otherwise, Unity draws only the pass you set to. The default value is .
-1matpass-1Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest)
Parameters
Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, Vector2, Vector2)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, Vector2 scale, Vector2 offset)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The scale to apply.
The offset to apply.
Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, Material)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, Material mat)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The material to use. If you don't provide , Unity uses a default material.
matRemarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, Material, int)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, Material mat, int pass)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The material to use. If you don't provide , Unity uses a default material.
matIf the value is , Unity draws all the passes in . Otherwise, Unity draws only the pass you set to. The default value is .
-1matpass-1Remarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, int, int)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, int sourceDepthSlice, int destDepthSlice)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The element in the source texture to copy from, for example the texture in a texture array. You can't use to specify a face in a Cubemap.
sourceDepthSliceThe element in the destination texture to copy from, for example the texture in a texture array. You can't use to specify a face in a Cubemap.
destDepthSliceRemarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, Vector2, Vector2, int, int)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, Vector2 scale, Vector2 offset, int sourceDepthSlice, int destDepthSlice)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The scale to apply.
The offset to apply.
The element in the source texture to copy from, for example the texture in a texture array. You can't use to specify a face in a Cubemap.
sourceDepthSliceThe element in the destination texture to copy from, for example the texture in a texture array. You can't use to specify a face in a Cubemap.
destDepthSliceRemarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.
Blit(RenderTargetIdentifier, RenderTargetIdentifier, Material, int, int)
Adds a command to use a shader to copy the pixel data from a texture into a render texture.
public void Blit(RenderTargetIdentifier source, RenderTargetIdentifier dest, Material mat, int pass, int destDepthSlice)
Parameters
The source texture or RenderTargetIdentifier.
The destination RenderTargetIdentifier.
The material to use. If you don't provide , Unity uses a default material.
matIf the value is , Unity draws all the passes in . Otherwise, Unity draws only the pass you set to. The default value is .
-1matpass-1The element in the destination texture to copy from, for example the texture in a texture array. You can't use to specify a face in a Cubemap.
destDepthSliceRemarks
This method adds a command to copy pixel data from a texture on the GPU to a render texture on the GPU. This is one of the fastest ways to copy a texture.
When you use , Unity does the following:
Graphics.Blit- Sets the active render texture to the texture.
dest - Passes to the
sourcematerial as thematproperty._MainTex - Uses the material's shader to draw a full-screen surface from the texture to the
sourcetexture.dest
If you provide a material that doesn't have a property, doesn't use .
mat_MainTexBlitsourceYou can use to create post-processing effects, by setting to a material with a custom shader.
Graphics.BlitmatBlitBlitAvoid setting and to the same render texture, as this may cause undefined behaviour. Use Custom Render Textures with double buffering instead, or use two render textures and alternate between them to implement double buffering manually.
sourcedestIn linear color space, set GL.sRGBWrite before using , to make sure the sRGB-to-linear color conversion is what you expect.
BlitTo blit to the screen in the Built-in Render Pipeline, follow these steps:
- Set to
dest. Unity now usesnullas the destination texture.Camera.main.targetTexture - Set the Camera.targetTexture property of Camera.main to .
null
To blit to the screen in the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), you must call Graphics.Blit or CommandBuffer.Blit inside a method that you call from the RenderPipelineManager.endContextRendering callback.
If you want to use a depth or stencil buffer that is part of the source (Render)texture, or blit to a subregion of a texture, you have to manually write an equivalent of the Graphics.Blit function - 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).
Often the previous content of the Blit does not need to be preserved. In this case, it is recommended to activate the render target explicitly with the appropriate load and store actions using CommandBuffer.SetRenderTarget. The Blit dest should then be set to BuiltinRenderTextureType.CurrentActive.
destdestAdditional Resources: Graphics.BlitMultiTap, Post-processing effects.