SKShapeNodes的抗锯齿模糊能否修复?

10
我在一款游戏中尝试使用SKShapeNodes,但发现开启抗锯齿会导致SKShapeNodes模糊不清。
没有开启抗锯齿:

没有开启抗锯齿的图片

开启抗锯齿:

开启抗锯齿的图片

有没有一种方法可以在SpriteKit中使用SKShapeNodes来减少线条的阶梯状,同时又避免像上面第二张图那样使线条变得模糊不清?
2个回答

5

不对——这就是在形状节点上使用“抗锯齿”(antialiasing)的效果。你可能期望看到更像多重采样(multisampling)的效果,但SpriteKit并没有这样做。为了获得你想要的平滑非模糊的线条效果,你需要将形状绘制成图像,然后在SKNode中显示该图像。另外,你可以考虑在API上提交改进请求


0
这不是一个优美的解决方案,但它确实可行:创建一个更大的SKShapeNode并将其缩小。

正常:

let shape = SKShapeNode(circleOfRadius: 10)

按比例缩放:

let scaleFactor: CGFloat = 2
let shape = SKShapeNode(circleOfRadius: 10 * scaleFactor)
shape.xScale = 1 / scaleFactor
shape.yScale = 1 / scaleFactor

这样可以使呈现效果看起来不那么模糊,但要注意,当将SKNodes添加为子节点时可能会导致令人沮丧的问题,因为它们可能会被递归缩放,并最终比您预期的要小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接