图像仅在 ARKit 中显示为黑色和红色
Image is shown as black and red colors only in ARKit
我们正在尝试使用 SCNMaterial 创建一个 SCNNode,它在带有 ARKit 框架的 ARSCNView 中有一个图像(.png 扩展名)。
问题是图像渲染有一个问题,图像只显示为黑色和红色,它没有正确渲染图像。
该问题仅存在于 iOS 11.2 版本中。 iOS 11.0、11.1 和 11.3 beta 版本没有问题。
我们的代码如下;
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)
有人知道吗?
我只使用 .jpg 图像解决了它。是的,只是使用 jpg 图像而不是 png。
我还将此作为错误报告给 Apple。他们回答说,这是 11.2 中的一个问题,仅适用于具有透明度的灰度图像。他们在 11.3 中修复了它。
对我来说,问题只发生在设备上,并且在 iOS 11.4 上继续发生。
我的解决方案不是图像类型。在我的例子中,我已经有了 JPG 纹理,但是颜色 space 是灰度。
Xcode 显示为:
将其更改为 RGB 解决了问题。更改后,Xcode 显示为:
哦,要使用 Photoshop 从灰度更改为 RGB,就像打开图像一样简单,然后选择:图像->模式->RGB 颜色,如下所示:
我们正在尝试使用 SCNMaterial 创建一个 SCNNode,它在带有 ARKit 框架的 ARSCNView 中有一个图像(.png 扩展名)。
问题是图像渲染有一个问题,图像只显示为黑色和红色,它没有正确渲染图像。
该问题仅存在于 iOS 11.2 版本中。 iOS 11.0、11.1 和 11.3 beta 版本没有问题。
我们的代码如下;
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)
有人知道吗?
我只使用 .jpg 图像解决了它。是的,只是使用 jpg 图像而不是 png。 我还将此作为错误报告给 Apple。他们回答说,这是 11.2 中的一个问题,仅适用于具有透明度的灰度图像。他们在 11.3 中修复了它。
对我来说,问题只发生在设备上,并且在 iOS 11.4 上继续发生。
我的解决方案不是图像类型。在我的例子中,我已经有了 JPG 纹理,但是颜色 space 是灰度。
Xcode 显示为:
将其更改为 RGB 解决了问题。更改后,Xcode 显示为:
哦,要使用 Photoshop 从灰度更改为 RGB,就像打开图像一样简单,然后选择:图像->模式->RGB 颜色,如下所示: