问题标签 [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 投票
1 回答
52 浏览

ios - SCNAction 导致场景工具包渲染器崩溃

我在 AR 环境中设置了一个由多个棋盘组成的游戏。

我需要在某个时候让一些棋盘闪烁。

我正在使用在场景的渲染器循环中执行的 SCNAction 来执行此操作,如下所述。

TargetNode 是一个由数百个子节点组成的节点(棋盘之一,所有单元格都作为单个节点,棋子也作为单个节点,都是 TargetNode 的子节点)。Blink 是在别处定义的标志。

几秒钟或几分钟后,我得到一个错误:

com.apple.scenekit.scnview-renderer (16): EXC_BAD_ACCESS (code=1, address=0x68)

在阅读了有关此问题的一些文献后,我开始明白必须在渲染器线程中进行节点修改,这里就是这种情况。至少它是从渲染器线程调用的。

我猜 SCNAction 的构建方式并不能真正确保它按预期执行。

有没有办法以不同的方式执行此操作或确保此 SCNAction 的执行(最好)?

谢谢

0 投票
1 回答
28 浏览

arkit - 将节点放在相机前面并旋转

当用户双击场景视图时,我想显示一个指针。为此,我想使用 SCNTorus 因为在某个角度它是一个圆。

我已经从 hitTest 获得了一个向量,我将其用作节点的位置

添加节点时,如何将其转换为始终显示为圆形。

对于沿 X 轴旋转的垂直设备位置.pi/2效果很好,但是当设备在空间中移动时它会中断,所以我不能硬编码角度

我相信我需要以sceneView.pointOfView某种方式应用转换。但我卡在这里。

这是完整的代码

0 投票
0 回答
27 浏览

swift5 - iOS SCNScene 如何使材质均匀照明而没有阴影?

无论渲染 SCNScene 的物理设备的环境光环境如何,我都需要用均匀的光线渲染 ARSCNFaceGeometry 对象。在我的测试中,苹果似乎仍然为面部几何模型加入了某种环境光(基于我所在的物理房间)。

如何指定我的 SCNScene 或我的 SCNMaterial 必须以最大级别均匀照明并且永远不会出现任何阴影?

换句话说,如果我的材质 (r,g,b) (255, 0, 0) 上有一个红色像素,我希望它始终处于该值,无论角度或环境光如何。目前,场景似乎正在修改颜色。

0 投票
0 回答
169 浏览

swift - 如何在 SwiftUI 中清除 SceneView 3D 对象的背景

有谁知道如何清除 SceneView 3D 对象的背景?我正在尝试使用 UIColor.clear,但它使它变成白色。[ 这应该很清楚,但它是白色的]

0 投票
0 回答
49 浏览

ios - 3D 对象在场景视图中不显示为“Y 轴向上”

我有一个扩展名为“.usdz”的 3D 对象资产文件。

如果此 3D 对象资产文件存储在应用程序的资源中,则场景将加载为“Y 轴向上”,如 Xcode 和 Reality Composer 应用程序中所示。

如果从 iPhone/iPad 设备(使用 UIDocumentPickerController)导入相同的文件,场景会在 Z 轴上旋转 90 度。

在我的研究中,我遇到了以下链接:

Xcode 8 中的“始终使用 Y-Up 轴”去哪儿了?

场景套件。哪条路向上?

我的理解是,从设备导入文件时,“Y - 轴向上”选项不起作用。

另外,我尝试了以下方式来加载资产:

但这也行不通。

解决此问题的任何帮助都会有很大帮助。提前致谢!

0 投票
1 回答
36 浏览

swift - 如何扩展 SCNScene?

我使用以下代码在 AR 中显示 USDZ 模型:

但是模型太大了。我该如何扩展它?

0 投票
0 回答
45 浏览

swift - arkit showPhysicsShapes 大于节点

我正在使用 arkit 并试图让两个节点发生碰撞,但碰撞似乎发生得太早了。当我做

ballsSceneView.debugOptions = .showPhysicsShapes

我看到物理形状比实际节点大。附上一张照片

在此处输入图像描述

如何更改物理形状以便与节点大小相同?

0 投票
0 回答
118 浏览

ios - ARKit 项目:在展开可选值时意外发现 nil

当我在 Xcode 上创建 ArKit 项目时,样板项目将无法运行并返回找不到 ship.scn 资产的错误。

SceneKit 项目的样板代码:

错误:致命错误:在展开可选值时意外发现 nil:文件

线程 1:致命错误:在展开可选值时意外发现 nil 显示在以下行:let scene = SCNScene(named: "art.scnassets/ship.scn")!

在更新 Xcode(当前版本是 13.0,Mac OS Big Sur 版本 11.6)之前,这对我有用。

想知道为什么会发生这种情况,以及如何解决这个问题?