Изображение отображается как черный и красный цвета только в ARKit
Мы пытаемся создать SCNNode с SCNMaterial, у которого есть изображение (расширение.png) в ARSCNView с платформой ARKit. Проблема состоит в том, что при рендеринге изображения возникает проблема, что изображение отображается только в черном и красном цветах, оно не отображает изображение правильно. Проблема существует только в версии iOS 11.2. В бета-версиях iOS 11.0, 11.1 и 11.3 проблем нет.
Наш код ниже;
let materialMain_Front_Back = SCNMaterial()
let fromBackImage = createImage(color:mainNode_Color)
materialMain_Front_Back.diffuse.contents = UIImage(named: "nodeBackground")
let materialMain_Other = SCNMaterial()
materialMain_Other.diffuse.contents = createImage(color:mainNode_Color)
let boxGeometryMain = SCNBox(width: CGFloat(mainNode_Width), height: CGFloat(mainNode_Height), length: 0, chamferRadius: 0.0)
boxGeometryMain.firstMaterial?.diffuse.contents = UIColor.white
boxGeometryMain.materials = [materialMain_Front_Back, materialMain_Other, materialMain_Front_Back, materialMain_Other, materialMain_Other, materialMain_Other]
let nodeMain = SCNNode(geometry: boxGeometryMain)
nodeMain.position = SCNVector3(x: 0, y: 0, z: -1)
//... other codes
annotationNode.addChildNode(nodeMain)
У кого-нибудь есть идея?
2 ответа
Я решил это, просто используя изображения.jpg. Да, просто используя изображение JPG вместо PNG. Я также сообщил об этом в Apple, как ошибка. Они ответили, что это проблема в 11.2 только с изображениями в оттенках серого с прозрачностью. Они исправили это в 11.3.
Для меня проблема произошла только на устройстве, и продолжает происходить на iOS 11.4.
Решением для меня был не тип изображения. В моем случае у меня уже были текстуры JPG, однако цветовое пространство было серым.
Xcode показал это как:
Изменение его на RGB устранило проблему. После изменения Xcode показывает это:
Да, и чтобы перейти от оттенков серого к RGB с помощью Photoshop, достаточно просто открыть изображение и выбрать: Изображение-> Режим-> Цвет RGB, как показано здесь: