问题
After download everything from backend (textures, environment, 3D object) into the app, I created a new SCNScene programmatically, with all this stuff.
It works perfectly on all devices, but on iPhones XR, XS and XS Max the textures of those models, that need environment image appear black. As if "None" environment was set.
I can't post code nor images, it's not my project. I'd just like to know if anyone has experienced any problems of this kind, with iPhone XR, XS or XS Max and ARKit.
It's strange that it doesn't happen on other devices.
Thanks.
EDIT 1:
Here is the trace of the error, I'll try to post more info about the project soon.
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)
回答1:
This is an Apple bug, happens when the resolution of the environment image of the scene is too large. Resizing the environment image of the scene to 1000x500 solves the problem.
来源:https://stackoverflow.com/questions/54632453/why-iphones-xr-xs-and-xs-max-doesnt-apply-environment-image-to-scene-in-arkit