问题标签 [scnscene]

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 投票
0 回答
989 浏览

ios - SceneKit:如何放置 3D 对象以适应 SCNView 边界?

我是3D 对象SceneKit的新手。我一直在做一些研究,但我没有找到我的问题的答案。

我需要在一个水平方向显示几个 3D 对象,UICollectionView每个单元格中一个。我希望它们对齐并且大小相同,所以我希望它们适合父视图,也就是SCNView.

描绘场景的图像:

3D 对象,每个都在 SCNView 中,大小相同

我希望 3D 对象的边界在视觉上与 SCNView 的边界匹配。我希望 3D 对象“适合”视图,有点像UIViewContentMode.scaleAspectFit.


到目前为止,这是我的代码:

0 投票
3 回答
7727 浏览

ios - 将 .jpg 和 .mtl 文件应用于 SceneKit 中的 .obj 文件

设计师已经交付了三个文件:

  • 图片。jpg
  • 某物。mtl
  • 任何。对象

我可以像这样成功地将 .obj 文件加载到我的场景中:

我正在努力将 .jpg 和 .mtl 文件应用于 .obj 文件。我尝试使用以下代码应用图像,但不喜欢:

0 投票
1 回答
808 浏览

xcode - 3D 模型 scn 文件在 AR 套件中不旋转或缩放

我使用 ARKit 模板开始了一个新的 Xcode 项目,并简单地将“ship.scn”替换为我的“test.scn”文件名资产。该物体宽约 16.5 毫米,高约 4.8 毫米。这艘船当然工作得很好,但是我的测试对象在我周围移动时不会旋转,或者当我靠近或远离它时会缩放,但它确实会在一个位置跟踪。

我比较了船和测试属性面板,我找不到它们有什么不同,除了船有纹理而我的测试文本没有。scn 对象有什么固有的特殊性,除了它们的大小之外,它们还能让它们在 ARKit 中正常运行吗?我已经阅读了有关锚定的文档,但如果它已经是 scn 对象,我似乎不必在代码中执行此操作。

如果有人想测试我在 ARKit 模板中使用的文件以查看它的行为,该文件在这里:https ://ufile.io/ey49t

0 投票
2 回答
2364 浏览

ios - SceneKit - 在另一个 SCNNode 上添加 SCNNode

我试图将球体放在盒子的顶部,但位置很奇怪:球半藏在盒子里。我试图改变盒子和球体枢轴,但没有帮助。这是代码:

结果: 在此处输入图像描述

我做错了什么?如何将球放在盒子的顶部?

更新:如果我添加立方体而不是球,它看起来就像我想要的那样

0 投票
1 回答
902 浏览

ios - [Swift]nil 加载运行时下载的 scn 文件时

我正在做一个项目,通过扫描 qrCode 将模型加载到 ARKit 驱动的应用程序中。我将 qrCode 工作和 .scn 文件下载到 .tmp 文件中。然而,当我试图通过 SCNScene(url:) 捕捉场景时,所有返回的都是零。

我想知道是不是因为我太早地复制了文件——在它完成下载之前,因为应用程序在我扫描 qrCode 后立即冻结。

任何建议,将不胜感激。:D

2017-11-18 添加下载代码

模板:http ://www.jianshu.com/p/6ca4864b3600

0 投票
2 回答
132 浏览

swift - 每秒获取 Swift4 SCNScene 30 个快照,并在 UIImageView 的外部屏幕上平滑绘制

我有一个小问题,也许是错误的方法。我用 SCNView 创建了一个 ipad 应用程序(swift4),它工作得很好,所有的变换、灯光、手势......但我想在外部屏幕上显示这个场景,通过空中播放连接,而不仅仅是复制我在上面看到的平板电脑。SCNView 与另一个 ui 元素在 UIView 中,我不想在外部屏幕上显示。如何让它在两个屏幕上平滑转换?我试图克隆场景节点,但它没有用(可能是错误的代码),另一种解决方案是创建新的 SCNView 并加载新场景,但是我不知道如何检测手势以获得与 on 相同的转换ipad 的主显示屏,我认为它需要更多的 gpu 计算。最后一个解决方案是对视图进行快照并在外部屏幕上仅显示图像,但同样,我不这样做 不知道如何聆听手势或相机移动并使其流畅。你有几分钟时间给我写一个解决方案的例子吗?以正确的方式,SCNView 上的听众还是不同的方法?我将非常感谢你!

0 投票
0 回答
786 浏览

ios - ARKit:使虚拟 3D 对象指向相机

我正在尝试构建一个基于 ARKit 的应用程序,以将 3D 虚拟对象放置到检测到的平面上。我在 GitHub 上找到了一个有用的项目放置虚拟对象

这正是我正在寻找的工作。但是,当任何虚拟对象被放置在相机前面时,它可能会或可能不会面对相机。有时 3D 对象看向相机的相反方向

我尝试将 SCNconstraints 添加到虚拟对象节点并调整 3D 模型的旋转和方向以在放置时查看相机。似乎没有任何工作。

下面的代码在将对象放置在场景中时起作用。但是,当相机来回移动时,对象会旋转。我想在放置对象后禁用它

如果有人可以解决这个问题,那将是一个很大的帮助!

0 投票
2 回答
904 浏览

swift - 如何将 3D 模型添加到场景中以使它们具有特定的 XYZ 位置?

我曾经写过一个函数,我在场景中添加了几何圆锥。它看起来像这样:

其中nodes是一个存储SCNNodes的数组。一切正常。如果我移动了,锥体将具有它们原来的确切位置,这是一个真正的“现实”。

但是,我购买了一个漂亮的僵尸 3D 模型,并尝试将锥体更改为模型。我找到了某种解决方案并尝试自己实施。这就是我想出的:

不幸的是,即使它在特定位置创建僵尸,如果我移动,僵尸也会跟着我“移动”。它们与移动的相机相关,这对我来说是不受欢迎的。谁能帮我吗?我希望它们像锥体一样。提前谢谢

0 投票
2 回答
4676 浏览

ios - ARkit - 从 SCNScene 中的 Web 服务器 URL 加载 .scn 文件

我正在为我的应用程序使用 ARKit,并尝试从我的网络服务器(URL)动态加载 .scn 文件

这是我的代码的一部分

日志:

.scn 使用上述(新位置)文件路径下载文件.. 但是当我尝试使用这个下载的文件时SCNScene

总是场景值是nil。错误

线程 4:致命错误:在展开可选值时意外发现 nil

如何解决这个问题。谢谢

0 投票
1 回答
3282 浏览

ios - ARKit - 如何从服务器 URL 加载 .scn 和纹理文件

我尝试从 ARKit 应用程序中的服务器 URL 动态加载 .scn 和纹理文件。我已经通过这种 方式实现了从 web url 加载 .scn 文件。但是运行后我没有在设备上看到任何纹理。我收到以下错误消息。

如何解决这个问题。谢谢

@ Xartec 我已经尝试过您提到的方式,但没有得到任何回应。我该如何解决?