访问Metal中的Mipmap级别



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

非常感谢您的帮助。

您可以查看我的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)

如果您的应用程序在行中崩溃

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

请注意代码

   self.metalLayer.framebufferOnly = YES; 

您应该设置为以下

self.metalLayer.framebufferOnly = NO; 

祝你好运!

相关内容

  • 没有找到相关文章

最新更新