import ImageIO
import MetalKit
let loader: MTKTextureLoader
let srcImage: CGImage
let ktxData = NSMutableData()
let dest = CGImageDestinationCreateWithData(ktxData, "org.khronos.ktx" as CFString, 1, nil)!
CGImageDestinationAddImage(dest, srcImage, 0, ["kCGImagePropertyASTCBlockSize": 0x88] as CFDictionary)
CGImageDestinationFinalize(dest)
try loader.newTexture(data: ktxData as Data, options: [])
Run Code Online (Sandbox Code Playgroud)
显示的kCGImagePropertyASTCBlockSize
选项为您提供 8x8 块大小(即每像素 2 位);唯一允许的其他大小是 4x4(每像素 8 位),这是默认值。
为了获得最佳性能,请添加kCGImageDestinationLossyCompressionQuality: 0.0
到CGImageDestinationAddImageFromSource
.
其他可能的标志是kCGImagePropertyASTCUseLZFSE
, kCGImagePropertyASTCPreTwiddle
, kCGImagePropertyASTCFlipVertically
and kCGImagePropertyASTCWeightChannelsEqually
(all bools)。
归档时间: |
|
查看次数: |
1221 次 |
最近记录: |