首页 > 解决方案 > 为什么 iPhone XR、XS 和 XS Max 没有将环境图像应用到 ARKit 中的场景?

问题描述

从后端(纹理、环境、3D 对象)下载所有内容到应用程序后,我以编程方式创建了一个新的 SCNScene,其中包含所有这些内容。

它在所有设备上都能完美运行,但在 iPhone XR、XS 和 XS Max 上,那些需要环境图像的模型的纹理显示为黑色。好像设置了“无”环境。

我不能发布代码或图片,这不是我的项目。我只是想知道是否有人在使用 iPhone XR、XS 或 XS Max 和 ARKit 时遇到过此类问题。

奇怪的是它不会发生在其他设备上。

谢谢。

编辑1:

这是错误的痕迹,我会尽快发布有关该项目的更多信息。

2019-02-13 11:21:33.573842+0100 BugAR[508:29509] [DYMTLInitPlatform] platform initialization successful
2019-02-13 11:21:33.769664+0100 BugAR[508:29469] Metal GPU Frame Capture Enabled
2019-02-13 11:21:33.769884+0100 BugAR[508:29469] Metal API Validation Enabled
2019-02-13 11:21:33.974845+0100 BugAR[508:29469] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2019-02-13 11:21:33.975620+0100 BugAR[508:29469] [MC] Reading from public effective user settings.
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 508, TID: 29535, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libobjc.A.dylib                     0x000000021ddff534 <redacted> + 56
5   CoreMotion                          0x0000000224688040 CoreMotion + 307264
6   CoreMotion                          0x0000000224688574 CoreMotion + 308596
7   CoreMotion                          0x0000000224688484 CoreMotion + 308356
8   CoreMotion                          0x00000002246b9c64 CoreMotion + 511076
9   CoreMotion                          0x00000002246b9cc4 CoreMotion + 511172
10  CoreFoundation                      0x000000021eb98354 <redacted> + 28
11  CoreFoundation                      0x000000021eb97c38 <redacted> + 276
12  CoreFoundation                      0x000000021eb92f14 <redacted> + 2324
13  CoreFoundation                      0x000000021eb922e8 CFRunLoopRunSpecific + 452
14  CoreFoundation                      0x000000021eb9304c CFRunLoopRun + 84
15  CoreMotion                          0x00000002246b95fc CoreMotion + 509436
16  libsystem_pthread.dylib             0x000000021e80c974 <redacted> + 132
17  libsystem_pthread.dylib             0x000000021e80c8d0 _pthread_start + 52
18  libsystem_pthread.dylib             0x000000021e814ddc thread_start + 4
2019-02-13 11:21:34.312731+0100 BugAR[508:29535] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: 508, TID: 29535, Thread name: com.apple.CoreMotion.MotionThread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0
Backtrace:
4   libobjc.A.dylib                     0x000000021ddff534 <redacted> + 56
5   CoreMotion                          0x0000000224688040 CoreMotion + 307264
6   CoreMotion                          0x0000000224688574 CoreMotion + 308596
7   CoreMotion                          0x0000000224688484 CoreMotion + 308356
8   CoreMotion                          0x00000002246b9c64 CoreMotion + 511076
9   CoreMotion                          0x00000002246b9cc4 CoreMotion + 511172
10  CoreFoundation                      0x000000021eb98354 <redacted> + 28
11  CoreFoundation                      0x000000021eb97c38 <redacted> + 276
12  CoreFoundation                      0x000000021eb92f14 <redacted> + 2324
13  CoreFoundation                      0x000000021eb922e8 CFRunLoopRunSpecific + 452
14  CoreFoundation                      0x000000021eb9304c CFRunLoopRun + 84
15  CoreMotion                          0x00000002246b95fc CoreMotion + 509436
16  libsystem_pthread.dylib             0x000000021e80c974 <redacted> + 132
17  libsystem_pthread.dylib             0x000000021e80c8d0 _pthread_start + 52
18  libsystem_pthread.dylib             0x000000021e814ddc thread_start + 4
2019-02-13 11:21:42.015414+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Caused GPU Hang Error (IOAF code 3)
2019-02-13 11:21:42.015509+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Caused GPU Hang Error (IOAF code 3)
2019-02-13 11:21:42.015940+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.016002+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.016152+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.016185+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.018755+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.018795+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.019140+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
2019-02-13 11:21:42.019166+0100 BugAR[508:29514] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)

标签: iosswiftiphonescenekitarkit

解决方案


这是一个 Apple 错误,当场景的环境图像的分辨率过大时会发生。将场景的环境图像调整为 1000x500 即可解决问题。


推荐阅读