版本: Unity 6 (6000.0)
语言英语
  • C#

GraphicsBuffer

UnityEngine 中的类

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议的更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

GPU 图形数据缓冲区,用于处理几何体或计算着色器数据。

ComputeShader 程序通常需要从内存缓冲区读取或写入任意数据,并且某些渲染算法需要比 Mesh 类提供的更低级别的访问或控制几何体数据。您可以将 GraphicsBuffer 用于这些情况。您可以从 C# 脚本创建缓冲区,然后使用 C# 脚本或计算着色器程序填充数据。

图形缓冲区类似于 C# 中的数组,因为它具有相同大小 (stride) 的多个元素 (count)。在创建 GraphicsBuffer 时,您必须提供预期的缓冲区使用情况 (target);例如,您必须传递 GraphicsBuffer.Target.Index 以使缓冲区可用作几何体索引缓冲区。

完成对缓冲区的操作后,您必须手动释放 GPU 内存。您可以使用 C# dispose 模式或通过调用 Release 来执行此操作。

其他资源:Graphics.RenderPrimitivesIndexedGraphics.RenderPrimitivesIndexedIndirectGraphics.CopyBufferComputeShaderShader.SetGlobalBufferMaterial.SetBuffer

属性

bufferHandle此 GraphicsBuffer 的内部句柄。仅在缓冲区被释放之前有效。(只读)
count缓冲区中元素的数量(只读)。
name图形缓冲区的调试标签(仅限设置器)。
stride缓冲区中一个元素的大小。对于索引缓冲区,这必须是 2 或 4 字节(只读)。
target目标,指定此 GraphicsBuffer 的预期目标(只读)。
usageFlags指定此 GraphicsBuffer 如何使用或更新的标志(只读)。

构造函数

GraphicsBuffer创建图形缓冲区。

公共方法

GetData将缓冲区中的数据值读取到数组中。该数组只能使用可blit类型。
GetNativeBufferPtr检索指向缓冲区的本机(底层图形 API)指针。
IsValid如果此图形缓冲区有效,则返回 true,否则返回 false。
LockBufferForWrite开始对缓冲区进行写入操作
Release释放 Graphics Buffer。
SetCounterValue设置追加/使用缓冲区的计数器值。
SetData使用数组中的值设置缓冲区。
UnlockBufferAfterWrite结束对缓冲区的写入操作

静态方法

CopyCount将 GraphicsBuffer 的计数器值复制到另一个缓冲区。