Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 3.37 KB

File metadata and controls

52 lines (36 loc) · 3.37 KB

持有存储了一系列渲染命令的List

使用

  • 添加命令到该命令缓冲区:调用实例方法如BeginSample等,添加对应的指令到该CommanderBuffer实例的渲染命令List中(不是立即执行)
    • 设置全局变量:如SetGlobalVectorArray等,效果等同于Shader.SetGlobalVectorArray
    • RenderTexture:GetTemporaryRT、Blit等
  • 执行该缓冲区的所有命令

执行时机

申请临时RenderTexture

CommandBuffer commandBuffer;
// 定义用于描述RenderTexture的RenderTextureDescriptor

// 从cameraData中取得相机渲染目标的参数
RenderTextureDescriptor cameraDescriptor = renderingData.cameraData.cameraTargetDescriptor;
// 自定义
RenderTextureDescriptor renderTextureDescriptor = new RenderTextureDescriptor();

// 申请临时RenderTexture

// 定义RenderTexture句柄
int renderTextureID = Shader.PropertyToID("RTPropertyName");
commandBuffer.GetTemporaryRT(renderTextureID, cameraDescriptor);

Blit

commandBuffer.Blit(source, destination, material)

  • 会设置_MainTex作为Copy的Source,不需要使用commandBuffer.SetGlobalTexture和Shader.PropertyToID来手动设置参数

  • material是可选的,如果没有则默认使用BlitCopy这个内置的shader(使用_MainTex) 而如果使用了material,则是_SourceTex而不是_MainTex

参考:Unity - Scripting API: Rendering.CommandBuffer.Blit (unity3d.com)

参考