February 19, 2023

Unity API CommandBuffer 学习

Unity API CommandBuffer 学习

简介

根据官方文档的描述,CommandBuffer 就是一个渲染命令缓冲区,而我们可以使用CommandBuffer 的相关API,自定义渲染时的一些事情.

如何使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//创建一个CommandBuffer
CommandBuffer commandBuffer = new CommandBuffer() { name = "CameraCmdBuffer" };
//为摄像机添加CommandBuffer
cam.AddCommandBuffer(CameraEvent.BeforeDepthTexture, commandBuffer);

using UnityEngine;
using UnityEngine.Rendering;

[ExecuteInEditMode]
public class TestCommandBuffer : MonoBehaviour
{
public Shader shader;
private void OnEnable()
{
CommandBuffer buf = new CommandBuffer();
//设置自己的渲染。
buf.DrawRenderer(GetComponent<Renderer>(), new Material(shader));
//不透明物体渲染完后执行
Camera.main.AddCommandBuffer(CameraEvent.AfterForwardOpaque, buf);
}
}

未完待续

关于本文

本文作者 Master Gong Sheng, 许可由 CC BY-NC 4.0.