Я не могу понять, как применять MIP-карты для текстуры SKTexture. Я использую XCode 8.2.1 со Swift.
Вот мой метод:
override func sceneDidLoad() {
logo = childNode(withName: "logo") as! SKSpriteNode
let texture: SKTexture! = SKTexture.init(imageNamed: "logo")
texture.usesMipmaps = true
logo.texture = texture
}
Я использую образец изображения png размером 512 * 512 (оба горшка) Полноразмерный, он выглядит так:
Затем я хочу уменьшить его размер до 128 * 128 пикселей.
А вот результат с включенным mipmapping:
И, например, вывод без mipmapping (только линейная фильтрация по умолчанию)
Они оба выглядят одинаково. Так что я думаю, что MIP-карты неприменимы. Помогите, пожалуйста, я уже 3 дня пытаюсь решить эту проблему.
UPD: как мне сказал Confused, я все сделал в коде. Создав текстуру с включенным MIP-картированием, назначьте ее SKSpriteNode, а затем выполните масштабирование методом или действием масштабирования.
let texture = SKTexture.init(imageNamed: "logo")
texture.usesMipmaps = true
logo = SKSpriteNode.init(texture: texture)
logo.position = CGPoint(x: 0, y: 0)
self.addChild(logo)
//logo.scale(to: CGSize(width: 128, height: 128))
let scaleAction = SKAction.scale(to: CGSize(width: 128, height: 128), duration: 1)
logo.run(scaleAction)