访问Metal中的Mipmap级别

时间:2015-03-18 06:11:59

标签: ios graphics metal

我是Metal的编程新手,我想知道如何访问纹理的特定mipmap级别。我可以使用BlitEncoder来完成mipmapping,但我不太确定如何访问特定的miplevels供我使用。

非常感谢帮助。

2 个答案:

答案 0 :(得分:1)

您可以查看我的https://github.com/haawa799/MipMaper了解详情。

但简短的回答是 - 你用它来从 MTLTexture 获取原始字节:

var region = MTLRegionMake2D(0, 0, mipmapedWidth, mipmapedHeight)
var pointer = malloc(UInt(rowBytes * mipmapedHeight))
texture.getBytes(pointer, bytesPerRow: rowBytes, fromRegion: region, mipmapLevel: mipLevel)

答案 1 :(得分:1)

如果你的应用程序崩溃了

texture.getBytes(pointer, bytesPerRow: rowBytes, fromRegion: region, mipmapLevel: mipLevel)

请注意代码

   self.metalLayer.framebufferOnly = YES; 

您应该设置如下

self.metalLayer.framebufferOnly = NO; 
祝你好运!