使用 3D 坐标的 SCNShape
SCNShape using 3D coordinates
我想模仿将 NSBezierPath
传递给 SCNShape
的行为。但是我不想使用 2D NSBezierPath,而是想使用 SCNVector3
的数组,即 3D 中的点而不是 2D 中的点。
最后,我想要类似 中填充的抛物线的东西,但使用 3D 而不是 2D 坐标来描述路径。
完成此任务的最佳方法是什么?是否可以仅使用 SceneKit 而不触及 "real" OpenGL 代码。
一种方法是进入 SCNGeometry,并提供您自己的顶点、triangles/lines/strips 和法线。 David Ronnqvist 的文章和示例项目值得一看:
如果您要构建的内容足够简单,您也许可以使用固定原语(SCNBox、SCNPyramid 等)的组合来构建它。
另见 。
您也可以考虑使用 Blender 或 MeshLab 等工具来预构建对象。
No! 是对此的简单回答。
SCNShape 严格来说是二维的。它只有在 bevelled/extruded 时才变成 3D,这不是灵活的 3D 变形或建模,只是带有圆角斜面的直线拉伸。
我们在 3D 建模应用程序中熟知的 3D 样条曲线在 SceneKit 中并不存在,在您开始挤压它们以获得填充形状之前,任何创建它们的尝试都将是一场噩梦。
3D 建模应用程序可能不会为您提供动态能力,但可以使制作 3D 样条曲线然后从中建模变得容易 1000 倍。
如果您有要表示的数据,可以通过编程方式在 3ds Max 和 Maya 等 3D 应用程序中创建形状,然后自动导出等。如果有帮助的话。
我想模仿将 NSBezierPath
传递给 SCNShape
的行为。但是我不想使用 2D NSBezierPath,而是想使用 SCNVector3
的数组,即 3D 中的点而不是 2D 中的点。
最后,我想要类似
完成此任务的最佳方法是什么?是否可以仅使用 SceneKit 而不触及 "real" OpenGL 代码。
一种方法是进入 SCNGeometry,并提供您自己的顶点、triangles/lines/strips 和法线。 David Ronnqvist 的文章和示例项目值得一看:
如果您要构建的内容足够简单,您也许可以使用固定原语(SCNBox、SCNPyramid 等)的组合来构建它。
另见
您也可以考虑使用 Blender 或 MeshLab 等工具来预构建对象。
No! 是对此的简单回答。
SCNShape 严格来说是二维的。它只有在 bevelled/extruded 时才变成 3D,这不是灵活的 3D 变形或建模,只是带有圆角斜面的直线拉伸。
我们在 3D 建模应用程序中熟知的 3D 样条曲线在 SceneKit 中并不存在,在您开始挤压它们以获得填充形状之前,任何创建它们的尝试都将是一场噩梦。
3D 建模应用程序可能不会为您提供动态能力,但可以使制作 3D 样条曲线然后从中建模变得容易 1000 倍。
如果您有要表示的数据,可以通过编程方式在 3ds Max 和 Maya 等 3D 应用程序中创建形状,然后自动导出等。如果有帮助的话。