Swift version: 5.6
All SpriteKit nodes have a blendMode
property that describes how they should be drawn to the screen. The default value is .alpha
, which means the sprite should be drawn so that its alpha transparency is respected – any parts that are translucent get blended with the existing background color at that point, and any fully transparent parts are not drawn at all.
Alpha drawing is obviously a sensible default, because it allows us to render sprites with irregular shapes and holes. However, if you know for a fact that your sprite is completely rectangular and has no holes then using .alpha
is wasteful – SpriteKit is forced to do alpha blending even though it isn’t required. This is particularly common with background images: if they are designed to fill the full screen, there’s no need to make them drawing using .alpha
.
To fix this – and make such drawing significantly faster – change the blend mode of opaque sprites to be .replace
, which ignores any alpha in the texture:
background.blendMode = .replace
SPONSORED From March 20th to 26th, you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 7.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.