【发布时间】:2020-03-07 02:13:28
【问题描述】:
我刚刚创建了一个 Metal 模板并稍微修改了代码。我用 Minecraft 16x16 青金石矿石纹理切换了默认颜色图,但由于某种原因,它们在低分辨率时会变得模糊。我正在尝试实现像素化的 Minecraft 外观,因此想知道如何禁用这种模糊/过滤。
有没有办法加载/呈现资产而不会出现这种模糊?这是我的加载资产功能:
class func loadTexture(device: MTLDevice, textureName: String) throws -> MTLTexture {
/// Load texture data with optimal parameters for sampling
return try MTKTextureLoader(device: device).newTexture(name: textureName, scaleFactor: 1.0, bundle: nil, options: [
MTKTextureLoader.Option.textureUsage: NSNumber(value: MTLTextureUsage.shaderRead.rawValue),
MTKTextureLoader.Option.textureStorageMode: NSNumber(value: MTLStorageMode.`private`.rawValue)
])
}
这是我得到的模糊立方体的屏幕截图:
【问题讨论】:
-
你需要做这样的事情 - stackoverflow.com/questions/40811454/…
-
在纹理样本调用中(在着色器中),您需要将放大滤镜设置为“最近”,而不是“线性”。