返回介绍

Graphics.DrawProceduralIndirect 间接绘制程序

发布于 2019-12-18 15:37:44 字数 2590 浏览 1091 评论 0 收藏 0

JavaScript => public static function DrawProceduralIndirect(topology: MeshTopology, bufferWithArgs: ComputeBuffer, argsOffset: int = 0): void;
C# => public static void DrawProceduralIndirect(MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset = 0);

Parameters 参数

topologyTopology of the procedural geometry.
bufferWithArgsBuffer with draw arguments.
argsOffsetOffset where in the buffer the draw arguments are.

Description 描述

Draws a fully procedural geometry on the GPU.

在GPU中绘制程序上的几何结构。

DrawProceduralIndirect does a draw call on the GPU, without any vertex or index buffers. The amount of geometry to draw is read from a ComputeBuffer. Typical use case is generating arbitrary amount of data from a ComputeShader and then rendering that, without requiring a readback to the CPU.

DrawProceduralIndirect 是GPU中的绘制回调,没有任何顶点或者索引缓存区。从计算机缓存区读取大量几何体去绘制。典型使用案例是从计算机着色器生成任意数量的数据并渲染它们,不需要回读到CPU中。

This is only useful on DirectX 11 or OpenGL Core level hardware where shaders can read arbitrary data from ComputeBuffer buffers.

该功能仅用于DirectX 11或者OpenGL核心级别硬件,着色器可以从计算机缓存区读取任意缓存数据。

Buffer with arguments, bufferWithArgs, has to have four integer numbers at given argsOffset offset: vertex count per instance, instance count, start vertex location, start instance location. This very much maps to Direct3D11 DrawInstancedIndirect / OpenGL ES 3.1 glDrawArraysIndirect function (on OpenGL ES 3.1 the last argument is reserved and therefore not used).

缓存区的参数bufferWithArgs,在给定偏移量argsOffset 中有四个整数数字:每个实例的顶点数量,实例数量,开始顶点位置,开始实例位置。这很大程度将映射到 Direct3D11 DrawInstancedIndirect / OpenGL ES 3.1 glDrawArraysIndirect 功能 (在 OpenGL ES 3.1 的最后一个参数是保留,因此不使用)。

Note that this call executes immediately, similar to Graphics.DrawMeshNow. It uses currently set render target, transformation matrices and currently set shader pass.

注意该调用立即执行,近似于Graphics.DrawMeshNow。它使用当前设置渲染目标,转换矩阵和当前设置着色器路径。

There's also a similar functionality in CommandBuffers, see CommandBuffer.DrawProcedural.

还有一个在CommandBuffers中类似的功能,请参考CommandBuffer.DrawProcedural。

graphics

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文