【问题标题】:How do I create a own coordinate system for a SKScene?如何为 SKScene 创建自己的坐标系?
【发布时间】:2015-01-31 02:07:45
【问题描述】:

我的目标是采用现有的 SKScene 并根据多项式函数对其进行拉伸,就像将所有内容向中心或远离中心拉伸一样。拉伸后的表格将不断呈现并呈现给用户。它可能是一个新的场景/图像/视图或任何必要的。随着时间的推移,该模型将简单地以欧几里德形式执行其功能。

我的项目内容只是 Xcode 上的 iOS SpriteKit 入门项目。

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

  • 我试图制作一个片段着色器来进行实际的拉伸,但是我不知道如何获取现有的颜色和位置信息来根据转换绘制新的颜色。

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

【问题讨论】:

  • 你能改变场景的大小或比例吗
  • @Okapi No. 这些是特定的线性变换函数。我需要使用自定义函数。

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


【解决方案1】:

您可以使用 SceneKit:

  • SCNScene 创建SCNView
  • 使用SCNPlane 几何创建SCNNode(或创建自定义SCNGeometry
  • 创建 SCNMaterial 并将您的 SKScene 附加到已创建材料的 diffuse.contents 属性
  • 将材质附加到几何体
  • 将节点附加到场景

那么你有多种选择:

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

这样您就可以将SKScene 作为 3D 对象(平面或其他东西)上的纹理,并且可以完全控制顶点和片段着色器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多