기본 콘텐츠로 건너뛰기

[Unity] Rendering.CommandBuffer

    목차

Camera.AddCommandBuffer

Declaration

/// <summary>
/// <para>Add a command buffer to be executed at a specified place.</para>
/// </summary>
/// <param name="evt">When to execute the command buffer during rendering.</param>
/// <param name="buffer">The buffer to execute.</param>
public void AddCommandBuffer(Rendering.CameraEvent evt, Rendering.CommandBuffer buffer);

같은 카메라 이벤트에 여러개의 CommandBuffer 설정가능. 또는 동일한 버퍼를 여러 번 추가가능

CommandBuffer.Blit

Declaration


public void Blit(Texture source, Rendering.RenderTargetIdentifier dest);

public void Blit(Texture source, Rendering.RenderTargetIdentifier dest, Material mat);

public void Blit(Texture source, Rendering.RenderTargetIdentifier dest, Material mat, int pass);

public void Blit(Texture source, Rendering.RenderTargetIdentifier dest, Vector2 scale, Vector2 offset);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, Material mat);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, Material mat, int pass);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, Vector2 scale, Vector2 offset);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, int sourceDepthSlice, int destDepthSlice);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, Vector2 scale, Vector2 offset, int sourceDepthSlice, int destDepthSlice);

public void Blit(Rendering.RenderTargetIdentifier source, Rendering.RenderTargetIdentifier dest, Material mat, int pass, int destDepthSlice);

“Graphics.Blit” 함수 사용시 Unity의 동작

  1. “dest” 부분에 선언된 texture를 활성화된 render texture로 설정 (RenderTexture.active)
    • 즉, “Blit” 함수는 "RenderTexture.active"를 변경한다. render texture를 다른 곳에도 사용한다면, 미리 백업해둘 것
  2. “source” 부분에 선언된 texture를 “mat” 부분에 선언된 material의 “_MainTex” 프로퍼티로 통과
    • 단, material에 “_MainTex” 프로퍼티가 없는 경우, “Bilt” 함수는 "source"에 선언된 값을 사용하지 않는다.
  3. material의 shader코드를 이용하여 “source” 텍스쳐를 “dest” 텍스쳐에 드로잉

참고

Unity Documentation

Rendering.CommandBuffer.Blit

댓글