【问题标题】:SpriteKit + iOS8. Does SpriteKit support "baking" rendered results?SpriteKit + iOS8。 SpriteKit 是否支持“烘焙”渲染结果?
【发布时间】:2024-01-09 18:39:01
【问题描述】:

我正在 SpriteKit 中实现一个绘画程序,我对 SprikeKit 实现的简单性印象深刻。 非常确实很酷!

每个画笔笔触都以SKSpriteNode 的形式实现,并附有SKShader。一切都如我所愿。

问题:目前我正在稳步增长SKScene 图表,因为添加了笔触。这不是一个可扩展的解决方案,因为资源消耗迅速增加,帧速率变慢。所以,我想在画笔描边后“烘焙”SKScene 图。

我尝试在我的SKScene 实例上设置myScene.shouldRasterize = YES,但它似乎没有效果。如何在 SpriteKit 中“烘焙”渲染结果?我必须自己滚动吗?

谢谢,
道格

【问题讨论】:

    标签: sprite-kit ios8


    【解决方案1】:

    我唯一能想到的就是在你的SKView 上调用textureFromNode,传入你想要“烘焙”的SKNode。然后获取该纹理,将其应用于SKSpriteNode,然后将您刚刚“烘焙”到纹理中的SKNode(s) 移除。

    【讨论】:

    • 是的。这就是我倾向于的方法。干杯,迈克。
    【解决方案2】:

    想添加评论,但声誉不允许。只是想补充一点,您可以使用SKEffectNode 栅格化一组精灵。只需将任何精灵添加到此节点,然后使用相同的shouldRasterize 属性。您甚至可以对其应用 CoreImage 滤镜,例如高斯模糊。

    明显的缺点是创建光栅化节点时的性能。

    【讨论】:

    • 谢谢威廉。我选择了 textureFromNode,结果正是我想要的。 SpriteKit 非常高效。对于我曾经使用 OpenGL/GLSL 的大多数 2D,我可以使用 SpriteKit/GLSL。