【问题标题】:How can I pass per primitive data in Metal?如何在 Metal 中传递每个原始数据?
【发布时间】:2021-03-13 22:54:36
【问题描述】:

在 Metal 中,您可以通过将数据添加到顶点数据并修改顶点描述符以包含它来传递每个顶点的数据。但是,如何按基元而不是按顶点传递数据?因此,如果我这样做CommandEncoder.drawIndexedPrimitives(type: .triangle, indexCount: 6, indexType: .uint16, indexBuffer: indices, indexBufferOffset: 0),渲染的每个图元都将具有特定于该图元的数据,即。 e.三个连续的顶点会一样吗?我实际上想要做的是我正在尝试渲染一个包含多个纹理的场景,但只使用一个绘制调用。我将纹理数组传递给片段着色器,它基于纹理 ID 进行采样。这些纹理 ID 应该是每个基元。这可能吗?

【问题讨论】:

    标签: textures metal


    【解决方案1】:

    制作一个单独的缓冲区,将其传递给 GPU,并通过 vertex_id/3 对其进行索引

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 2012-08-17
      • 1970-01-01
      • 2011-05-18
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多