我無法弄清楚如何爲SKTexture紋理應用mipmap。我在Swift中使用XCode 8.2.1。SpriteKit SKTexture mipmap不起作用
這裏是我的方法:
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貼圖(僅默認線性過濾)
他們都看起來是一樣的。所以我認爲mipmap不適用。請幫助我,我花了3天試圖解決這個問題。
UPD: 由於Confused告訴我,我在代碼中完成了所有工作。使用mipmaping創建紋理後,將其分配給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)
你說得對。他們完全一樣。我將它們放入Photoshop中,並進行了差異混合。沒有mipmapping的那個在你的屏幕截圖中應該是它的左邊的一個像素,但是一旦這個更正了,它們是相同的。 – Confused