SCNS形状使用3D坐标

时间:2016-11-15 19:56:38

标签: ios objective-c swift macos scenekit

我想模仿将NSBezierPath传递给SCNShape的行为。但是我不想使用2D NSBezierPath,而是使用SCNVector3的数组,即3D中的点而不是2D。

最后,我希望得到this answer中填充抛物线的东西,但是用3D代替描述路径的2D坐标。

实现这一目标的最佳方法是什么?是否可以在不触及“真正的”OpenGL代码的情况下仅使用SceneKit。

2 个答案:

答案 0 :(得分:3)

不!这是简单的答案。

SCNShape非常严格2D。它只是在倾斜/挤压时变成3D,这不是灵活的3D变形或建模,只是具有圆角斜面的直线拉伸。

我们在3D建模应用中已经知道3D样条在SceneKit中不存在,并且在开始挤出它们以获得填充形状之前,任何创建它们的尝试都将成为一场噩梦。

3D建模应用程序可能不会为您提供动态能力,但确实可以让它更容易制作3D样条,然后从中进行建模。

如果您有想要表示的数据,然后自动导出等,有很多方法可以在3ds Max和Maya等3D应用程序中以编程方式创建形状。如果有帮助的话。

答案 1 :(得分:2)

一种方法是下拉到SCNGeometry,并提供自己的顶点,三角形/线条/条带和法线。 David Ronnqvist的文章和示例项目值得一看:

如果您正在构建的内容非常简单,您可以使用固定基元(SCNBox,SCNPyramid等)的组合来构建它。

另见Drawing a 3D arc and helix in SceneKit

您也可以考虑使用Blender或MeshLab等工具来预构建对象。