2014-03-18 50 views
1

我正在尝试将光线追踪程序放在一起,并且单个光线中每个像素的宽度/阴影将在该线的长度上发生变化。 SpriteKit有在屏幕上绘制单个像素的方法吗?或者我应该这样做使用UIImage?有没有办法在SpriteKit中绘制像素?

回答

5

SpriteKit不是像素绘图API。这更多的是“在屏幕上移动图片”API。不过,有些情况下,自定义绘图是有意义的,而SpriteKit(iOS 8和OS X 10.10以上版本)有几个设施。

  1. 如果你想创建自定义的艺术应用到精灵,与艺术是大多是静态的(即,不需要频繁的SpriteKit动画场景重绘),只需使用你选择的绘图API - 核心图形,OpenGL,emacs,无论 - 创建一个图像。然后,您可以将该图像粘贴到一个SKTexture对象中,以应用于场景中的精灵。

  2. 要直接在纹理内部嵌入位,请使用SKMutableTexture。这并不能真正提供绘图功能 - 您只需使用原始图像数据。 (虽然您可以在上面绘制绘图工具 - 例如,通过从数据创建CG图像上下文并使用CG结果重写数据 - 这会减慢你太多速度以跟上动画帧速率。)

  3. 如果您需要高帧率,每像素的绘图,最好的办法就是完全在GPU上完成。为此,请使用SKShader

0

如果您的应用程序正在重新绘制每一帧,那么您可以使用屏幕外缓冲区来动态更新像素,即SKMutableTexture。我不确定它会有多慢。

相关问题