Swift3 图像仅在ARKit中显示为黑色和红色

Swift3 图像仅在ARKit中显示为黑色和红色,swift3,arkit,scnnode,ios11.2,scnmaterial,Swift3,Arkit,Scnnode,Ios11.2,Scnmaterial,我们正在尝试使用ARKit框架的ARSCNView中具有图像(.png扩展名)的SCNMaterial创建SCNNode。 问题是图像渲染存在一个问题,即图像仅显示为黑色和红色,它无法正确渲染图像。 这个问题只存在于iOS 11.2版本中。iOS 11.0、11.1和11.3测试版没有问题。 我们的代码如下; 有人有想法吗?我只用.jpg图像就解决了这个问题。是的,只是使用jpg图像而不是png。 我还向苹果报告了这是一个bug。他们的回答是,在11.2版本中,这是一个问题,仅适用于具有

我们正在尝试使用ARKit框架的ARSCNView中具有图像(.png扩展名)的SCNMaterial创建SCNNode。 问题是图像渲染存在一个问题,即图像仅显示为黑色和红色,它无法正确渲染图像。 这个问题只存在于iOS 11.2版本中。iOS 11.0、11.1和11.3测试版没有问题。

我们的代码如下;


有人有想法吗?

我只用.jpg图像就解决了这个问题。是的,只是使用jpg图像而不是png。
我还向苹果报告了这是一个bug。他们的回答是,在11.2版本中,这是一个问题,仅适用于具有透明度的灰度图像。他们在11.3中修复了它。

我只使用.jpg图像解决了它。是的,只是使用jpg图像而不是png。
我还向苹果报告了这是一个bug。他们的回答是,在11.2版本中,这是一个问题,仅适用于具有透明度的灰度图像。他们在11.3中解决了这个问题。

对我来说,这个问题只发生在设备上,并且在iOS 11.4上继续发生

我的解决方案不是图像类型。在我的例子中,我已经有了JPG纹理,但是颜色空间是灰度的

Xcode显示如下:

将其更改为RGB修复了该问题。更改后,Xcode显示以下内容:

哦,要使用Photoshop从灰度转换为RGB,只需打开图像,然后选择:图像->模式->RGB颜色,如下所示:


对我来说,这个问题只发生在设备上,并且在iOS 11.4上继续发生

我的解决方案不是图像类型。在我的例子中,我已经有了JPG纹理,但是颜色空间是灰度的

Xcode显示如下:

将其更改为RGB修复了该问题。更改后,Xcode显示以下内容:

哦,要使用Photoshop从灰度转换为RGB,只需打开图像,然后选择:图像->模式->RGB颜色,如下所示:

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)