我需要帮助在 UIKit 应用程序中绘制一个二十面体 3D 对象

I need help to draw an icosahedron 3D object in an UIKit app

虽然我对 iOS 中的大多数框架都很有经验,但在 3D 建模方面我一无所知。我什至使用过 SpriteKit,但从未使用过 SceneKit 之类的东西。

现在一位客户想要一个包含 3D 对象的非常雄心勃勃的菜单,准确地说是 'icosahedron'。我希望它看起来像这样:

所以我只想画线,把后面的'see-through'线灰掉。最终我希望用户能够在 3D 中自由旋转对象。

我已经找到这个问题并附带了一个示例项目,但这只是绘制了一个简单的立方体:Stroke Width with a SceneKit line primitive type

我不知道如何处理更复杂的形状。

任何正确方向的帮助将不胜感激!我什至不需要使用 SceneKit,但这对我来说似乎是最好的方法。欢迎任何其他建议。

要构建一个二十面体,您可以使用 SCNSphere 并将其 geodesic 属性 设置为 YES

使用着色器修改器绘制线框(如 Stroke Width with a SceneKit line primitive type 中所述)是个好主意。

但在你的情况下,线条并不总是简单的或虚线的——这取决于二十面体的方向。要解决这个问题,您可以依靠 gl_FrontFacing 来确定边是属于正面三角形还是背面三角形。