【问题标题】:Kernel Functions in MetalMetal中的核函数
【发布时间】:2019-01-14 03:58:05
【问题描述】:

我是金属新手。在哪些情况下,我们在着色器中使用内核语句。使用它而不是普通的顶点和片段着色器有什么优势

kernel void shadowShader

【问题讨论】:

  • 计算着色器可用于非图形任务。例如,它可以运行部分游戏物理或 AI。

标签: ios swift metal metalkit


【解决方案1】:

计算或内核着色器是通用计算管道。它通常用于图像处理任务。当您使用 Google 搜索时,通常会出现这种情况。但是内核程序可以用来对你提供的数据做任何事情。计算管道与渲染管道是分开的。您可以看到它是一种 GPU 并行计算方式。计算管道可以在您提供的MTLBuffer 或纹理中写回设备内存。您可以在渲染管道中使用该输出。

【讨论】:

    【解决方案2】:

    为输出图像中的每个像素调用一次片段着色器。内核着色器会被调用多次,例如,一个内核着色器可以处理多个像素——或者根本不处理像素。它只是更灵活,并且对于某些问题可能具有更高的性能(因为计算线程可以使用线程组内存一起工作)。

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多