问题标签 [scenekit-modelio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

ios - 在 SceneKit/modelIO 中测量 3D-Obj 文件上两点之间的距离并显示它们

我对 IOS 开发和 Swift 完全陌生。目前我正在开发一个 IOS 应用程序,该应用程序涉及使用 iPad 的 LiDAR 传感器扫描房间,稍后当我加载 3D Obj 文件并触摸两个任意点时,应显示两点之间的长度。类似于 3D 扫描仪应用程序、画布应用程序的东西。

到目前为止,我能够将网格数据导出到 Obj 文件中并将其保存到设备中。我已经尝试了一段时间,但我认为在这一点上有点卡住,因为我不知道如何进一步进行测量部分。

最终结果应该是这样的。

带有距离标签的导出 obj 文件

寻找任何指导/建议。

0 投票
0 回答
45 浏览

ios - 具有 USDZ 和模型 I/O 的多个场景

如果使用 Reality Composer 创建一个由两个简单场景组成的 USDZ,它们之间有一个基本的过渡(点击或场景开始或其他),模型 I/O 似乎无法识别第二个场景。如果您查看 USDZ 的 MDLAsset 层次结构,则会省略第二个场景(AR Quick Look 工作正常,正如您所期望的那样)。我相信这可能是由于场景定义中使用了“over”prim 说明符。当您检查 ascii USDA 文件时,第一个场景定义如下:

第二个场景带有“over”说明符

我在 Pixar USD 文档中注意到,以“over”开头的 prims 被跳过:https ://graphics.pixar.com/usd/docs/USD-Frequently-Asked-Questions.html#USDFrequentlyAskedQuestions-What'sthedifferencebetweenan% 22over%22anda%22typelessdef%22?

“这种区别实际上在 Usd 核心中用于定义,例如,默认阶段遍历行为,因为 UsdPrim::GetChildren() 仅迭代 prim 的已定义子项(无论它们是否在阶段的当前视图中拥有类型),跳过刚刚结束的 prims。”

有谁知道我该如何解决这个问题?有没有办法让模型 I/O 不忽略这个场景,或者我可以更改 USDA 以便 MDLAsset 拥有该场景,我尝试在 USDA 中将“over”更改为“def”,但创建的 USDZ 没有不能在 AR Quick Look 中工作(它需要)。

任何帮助、想法或指示将不胜感激。

0 投票
0 回答
43 浏览

ios - SceneKit 中体素/八叉树的可视化

我想在 iOS 中渲染体素/八叉树对象(基本上不同大小的立方体);到目前为止,我一直在寻找 SceneKit 来执行可视化。目标是在场景中渲染 10 到 15k 体素,例如为机器人应用程序渲染 Octomap(例如:https ://www.youtube.com/watch?v=yKNzTg25RM8 )。

在 SceneKit 框架中,我们使用 SCCNNode 渲染这些立方体对象,其中包含 SCNBox 几何图形。如果我们使用大量几何对象,性能会显着下降,因此我们不确定是否使用了最好的方法,我们还为此目的发现了 MDLVoxelArray,但尚未使用它。我无法找到正确的文档或参考资料将其包含在 SceneKit 中。MDLVoxelArray 能否成为正确可视化体素的解决方案?

0 投票
1 回答
71 浏览

swift - 从 SceneKit 中的 SCNGeometry 中提取人脸信息

我想从 SCNNode 几何中提取面信息,就像我们可以从几何源中提取顶点信息一样。关于如何实现的任何想法?

0 投票
0 回答
27 浏览

swift - 将多个材料文件应用到 MDL 网格

有没有办法可以将多个 png 材质文件应用于 MDLMesh?我已成功应用单个 png 文件,但我需要应用多个文件。

0 投票
0 回答
16 浏览

swift - 从模型 I/O 获取 SCNGeometry

我正在尝试将网格导入 SCNGeometry。我确实想从 CPU 单独操作顶点。因此,我想根据以下帖子进行操作:https ://developer.apple.com/forums/thread/91618 。到目前为止,我已经将它导入模型 I/O 框架并创建了一个 MTLBuffer。

SCNGeometry 需要索引元素才能正确显示网格。我从哪里得到这些?我尝试使用模型 I/O 中的子网格:

但这会引发错误 [SceneKit] Error: C3DMeshElementSetPrimitives invalid index buffer size并显示以下几何图形:The Teapot。似乎顶点没有正确连接。

如何获得正确的索引数据?谢谢!

0 投票
0 回答
23 浏览

swift - 显示文档目录中的 PLY 文件时,SceneKit SCNView 渲染器“EXC_BAD_ACCESS”

我正在构建一个应用程序,该应用程序在启用激光雷达的设备中捕获点云并将其保存为文档目录中的 PLY 文件。

但是,当我尝试使用以下代码显示保存的模型时:

该应用程序崩溃并显示以下错误日志:

错误日志

我试图用一些打印语句调试代码,显然它运行没有错误,但在sceneview-renderer