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



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

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

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

您可以将纹理视为标头和一个或多个数据块。头告诉API和GPU如何解释数据的斑点。页眉很小,斑点也可以很大。

现在,把纹理视图想象成一个新的标头,但它引用了另一个纹理的斑点,并且没有自己的斑点,这意味着它不会复制你所处的纹理的斑点;观看";进入这是一种重新解释现有纹理数据的廉价方法。例如,当您只需要纹理阵列的一个切片或立方体贴图的一个面时,或者如果您想将sRGB纹理视为线性纹理或反之亦然,则可以使用纹理视图。

最新更新