问题标签 [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.
ios - 在 SceneKit/modelIO 中测量 3D-Obj 文件上两点之间的距离并显示它们
我对 IOS 开发和 Swift 完全陌生。目前我正在开发一个 IOS 应用程序,该应用程序涉及使用 iPad 的 LiDAR 传感器扫描房间,稍后当我加载 3D Obj 文件并触摸两个任意点时,应显示两点之间的长度。类似于 3D 扫描仪应用程序、画布应用程序的东西。
到目前为止,我能够将网格数据导出到 Obj 文件中并将其保存到设备中。我已经尝试了一段时间,但我认为在这一点上有点卡住,因为我不知道如何进一步进行测量部分。
最终结果应该是这样的。
寻找任何指导/建议。
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 中工作(它需要)。
任何帮助、想法或指示将不胜感激。
ios - SceneKit 中体素/八叉树的可视化
我想在 iOS 中渲染体素/八叉树对象(基本上不同大小的立方体);到目前为止,我一直在寻找 SceneKit 来执行可视化。目标是在场景中渲染 10 到 15k 体素,例如为机器人应用程序渲染 Octomap(例如:https ://www.youtube.com/watch?v=yKNzTg25RM8 )。
在 SceneKit 框架中,我们使用 SCCNNode 渲染这些立方体对象,其中包含 SCNBox 几何图形。如果我们使用大量几何对象,性能会显着下降,因此我们不确定是否使用了最好的方法,我们还为此目的发现了 MDLVoxelArray,但尚未使用它。我无法找到正确的文档或参考资料将其包含在 SceneKit 中。MDLVoxelArray 能否成为正确可视化体素的解决方案?
swift - 从 SceneKit 中的 SCNGeometry 中提取人脸信息
我想从 SCNNode 几何中提取面信息,就像我们可以从几何源中提取顶点信息一样。关于如何实现的任何想法?
swift - 将多个材料文件应用到 MDL 网格
有没有办法可以将多个 png 材质文件应用于 MDLMesh?我已成功应用单个 png 文件,但我需要应用多个文件。
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。似乎顶点没有正确连接。
如何获得正确的索引数据?谢谢!