【问题标题】:MTKView currentRenderPassDescriptor clear colorMTKView currentRenderPassDescriptor 清除颜色
【发布时间】:2019-12-13 02:17:43
【问题描述】:

我正在使用

在 MTKView 中绘图
  override func draw(_ rect: CGRect) {
      var pixelBuffer: CVPixelBuffer?

      syncQueue.sync {
         pixelBuffer = internalPixelBuffer
      }

      guard let drawable = currentDrawable,
         let currentRenderPassDescriptor = currentRenderPassDescriptor,
         let previewPixelBuffer = pixelBuffer else {
            return
      }
      ...

   }

如果可以设置此渲染通道描述符的 loadAction 和清除颜色,我不会这样做。默认透明颜色是否设置为黑色?

【问题讨论】:

    标签: ios metal metalkit metal-performance-shaders mtkview


    【解决方案1】:

    如果您愿意,您可以修改渲染通道描述符。或者,您根本不必使用它。您可以从头开始设置自己的描述符。

    描述符最初设置为匹配MTKView 的属性。因此,描述符的清晰颜色来自视图的clearColor 属性。该属性默认为黑色,因此在某种意义上,是的,描述符的默认透明颜色为黑色。

    【讨论】:

    • 我遇到了默认描述符的问题。有时,有一个小故障,我看到前一帧的一半在下一个绘制周期中仍然是 dram。 renderpassdescriptor 可能是原因吗?
    【解决方案2】:

    是的,你可以这样检查:

    let clearColor = currentRenderPassDescriptor.colorAttachments[0].clearColor
    print(clearColor)
    

    【讨论】:

      猜你喜欢
      • 2019-12-18
      • 1970-01-01
      • 2020-04-17
      • 2019-12-24
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多