SpriteKit + iOS8。 SpriteKit 是不是支持“烘焙”渲染结果?

Posted

技术标签:

【中文标题】SpriteKit + iOS8。 SpriteKit 是不是支持“烘焙”渲染结果?【英文标题】:SpriteKit + iOS8. Does SpriteKit support "baking" rendered results?SpriteKit + iOS8。 SpriteKit 是否支持“烘焙”渲染结果? 【发布时间】:2014-08-18 14:50:02 【问题描述】:

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

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

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

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

谢谢, 道格

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

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

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

【讨论】:

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

以上是关于SpriteKit + iOS8。 SpriteKit 是不是支持“烘焙”渲染结果?的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit 自动恢复和自动暂停 iOS8

在 ios8 中使用 appdelegate 暂停 spritekit 游戏

Physics Body 边缘 IOS8,Sprite Kit

SpriteKit 磁场/电场不产生结果

在 SpriteKit 中处理不同的 iOS 设备分辨率

子类化使用 SpriteKit .sks 场景文件创建的 SKNode