Graphics Command Buffers
how Cameras use the Forward or Deferred pipeline to render a Scene in Unity
Camera.AddCommandBuffer
public void AddCommandBuffer(Rendering.CameraEvent evt, Rendering.CommandBuffer buffer);
参数 | 解释 |
---|---|
CameraEvent evt | 相机事件(其实就是上图的渲染管线中的蓝色节点) |
buffer | The buffer to Execute |
描述
Add a command buffer to be executed at a specified place.
在指定的地方添加命令buffer 用于实现自己额外的渲染.
CommandBuffer.GetTemporaryRT
API
public void GetTemporaryRT(int nameID, int width, int height, int depthBuffer, FilterMode filter, RenderTextureFormat format, RenderTextureReadWrite readWrite, int antiAliasing, bool enableRandomWrite);
public void GetTemporaryRT(int nameID, RenderTextureDescriptor desc, FilterMode filter);
参数
参数名 | 解释 |
---|---|
width | Width in pixels, or -1 for “camera pixel width” |
描述
Add a “get a temporary render texture” command.
This creates a temporary render texture with given parameters, and sets it up as a global shader property with nameID. Use Shader.PropertyToID to create the integer name.
创建给定参数的临时纹理空间.
且这里纹理空间是全局Shader共享的属性?
通过NameID可以访问.
PropertyToID 是整型的.
CommandBuffer.Blit
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);
参数
参数名 | 解释 |
---|---|
source | 源纹理 |
dest | 目标 |
mat | 使用的材质 |
pass | 要使用的Shader Pass(默认为-1,代表所有) |
scale | 应用于源纹理的缩放因子 |
offset | 应用于源纹理的偏移 |
sourceDepthSlice | The texture array source slice to perform the blit from |
destDepthSlice | The texture array destination slice to perform the blit to |
描述
添加“blit到渲染纹理”命令。
it is mostly for copying from one (render)texture into another, potentially using a custom shader.
使用一个shader将一个纹理拷贝到一个纹理.
Note that Blit changes the currently active render target. After Blit executes, dest becomes the active render target.
dset 编程激活的纹理目标