微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Swift 环境中切片类型为 2DArray 的 MTLTexture

如何解决在 Swift 环境中切片类型为 2DArray 的 MTLTexture

考虑具有一定数量切片的 2DArray 类型的 MTLTexture。要计算此纹理特定切片的直方图,如何仅将单个纹理切片的引用传递给 MPSImageHistogram 着色器?

一般来说,如何在 swift 环境中对纹理进行切片? Texture.makeTextureview() 不是首选方式,因为它创建新的纹理会消耗更多内存和时间。

解决方法

makeTextureView 不会创建新纹理,即使它返回 MTLTexture。它创建了一个纹理视图。让我解释一下。

您可以将纹理视为标题和一个或多个数据块。 Header 告诉 API 和 GPU 如何解释数据块。标题非常小,斑点可能很大。

现在,把纹理视图想象成一个新的标题,但它引用另一个纹理的 blob 并且没有自己的 blob,这意味着它不会复制你正在“查看”的纹理 blob。这是一种重新解释现有纹理数据的廉价方法。例如,当您只需要纹理数组的一个切片或立方体贴图的一个面时,或者您希望将 sRGB 纹理视为线性或反之亦然时,您将使用纹理视图。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。