gpt4 book ai didi

ios - 由于纹理使用问题,Apple的延迟渲染示例无法在Metal 2上运行

转载 作者:行者123 更新时间:2023-12-01 19:47:11 25 4
gpt4 key购买 nike

我目前正在尝试找出如何以并行友好的方式执行以下过程。它可以归结为以下步骤:

  • 绘制一个三角形到一个小的纹理
  • 在框架上绘制小纹理,以允许线性采样来“模糊”三角形。

  • 如果可以,那么我应该可以渲染场景。问题是纹理不能同时具有读取和写入访问权限。我不确定是否一直都是这种情况,还是只是在Metal中。

    因此,我转向Apple的 deferred rendering example,因为他知道延迟渲染的工作原理是通过写入多个纹理并一起读取这些相同的纹理,以在可绘制的屏幕上生成最终图像。但是,如果运行它,我会遇到与当前渲染代码 colorAttachment[0] does not have usage that specifies _相同的错误。

    我假设这是由于Metal或iOS的更改引起的。

    值得注意的是,如果将其附加到XCode,它会立即崩溃,但是如果从主屏幕打开,它可以在冻结之前自行运行几秒钟。

    如何对读写访问使用纹理?为什么示例代码不起作用?

    最佳答案

    该示例代码无法正常工作,因为Apple选择在不更新示例的情况下进行重大更改。它发生了。

    这是您可以运行示例的最小更改集:

    AAPLRenderer.mm行204上,添加:

    shadowTextureDesc.usage = MTLTextureUsageRenderTarget | MTLTextureUsageShaderRead;

    AAPLView.mm行130上,添加:
    desc.usage = MTLTextureUsageRenderTarget;

    在153和178行上重复上述操作。

    对于您的用例,您想在屏幕外渲染目标上使用 MTLTextureUsageRenderTarget | MTLTextureUsageShaderRead。这样一来,您就可以对其进行渲染,并在随后的过程中对其进行采样。

    关于ios - 由于纹理使用问题,Apple的延迟渲染示例无法在Metal 2上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984886/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com