如何为SKScene创建自己的坐标系?

时间:2015-01-31 02:07:46

标签: ios swift sprite-kit coordinate-systems skscene

我的目标是使用现有的SKScene并根据多项式函数对其进行拉伸,例如将所有东西拉向或远离中心。拉伸的形式将被连续呈现并呈现给用户。它可能是一个新的场景/图像/视图或任何必要的。该模型将以欧几里德的形式简单地执行其功能。

我的项目内容仅仅是Xcode上的iOS SpriteKit初学者项目。

  • 我知道SKScene中的功能: convertPointToView(),和 convertPointFromView() 但是,我不明白这些对视图有多大用处,因为场景只有方面填充,适合和调整大小设置。

  • 我尝试制作一个片段着色器来进行实际拉伸,但是,我无法弄清楚如何获取现有的颜色和位置信息以根据变换绘制新颜色。

  • 我正在使用SpriteKit,我只知道如何使用SKShader从着色器中访问片段。我不知道如何从这个上下文访问顶点着色器。否则,我会尝试使用顶点着色器。

1 个答案:

答案 0 :(得分:0)

你可以使用SceneKit:

  • 使用SCNView
  • 创建SCNScene
  • 使用SCNNode几何图形创建SCNPlane(或创建自定义SCNGeometry
  • 创建SCNMaterialSKScene附加到已创建素材的diffuse.contents属性
  • 将材质附加到几何体
  • 将节点附加到场景

然后您有多种选择:

  • 使用SCNShadable - 为几何体或材质附加着色器修改器,或使用自定义SCNProgram
  • SCNView上使用SCNTechnique

通过这种方式,您可以将SKScene作为纹理放置在3D对象(平面或其他东西)上,并完全控制顶点和片段着色器。