将设备更新到 iOS 11 后 3D 模型颜色更改
Posted
技术标签:
【中文标题】将设备更新到 iOS 11 后 3D 模型颜色更改【英文标题】:After updating device to iOS 11 3D model color changed 【发布时间】:2018-09-20 06:41:50 【问题描述】:我正在使用场景工具包处理应用程序。在 ios 10 之前一切都运行良好。
我可以看到正确的 3D 模型,但是在我将设备更新到 iOS 11 后,模型的颜色发生了变化。
-(void)applyColor:(SCNNode*)node
NSArray *materials = node.geometry.materials;
for (SCNMaterial *material in materials)
material.diffuse.contents = [UIColor purpalColor];
iOS 9 和 iOS 10:
iOS 11:
【问题讨论】:
请您展示一些代码来说明您是如何生成这些图像的。 @Fogmeister 我在原始问题中添加了代码。我没有从中创建任何图像,但它是一个 3D 模型,我正在应用我的自定义颜色。 这与代码无关。这是由于 iOS 11 中颜色处理方式不同的结果。您需要@mnuages 或类似了解 SceneKit 和 iOS 的人来帮助解决此问题。 @Confused 感谢分享信息 @Confused 我仍然无法弄清楚如何解决这个问题。还有其他地方需要检查吗? 【参考方案1】:只是一个想法,尝试使用非自定义颜色,看看是否能让您重回正轨。可能是 iOS 10 Wide Color 的夹紧问题?尝试搜索此帖子:iOS 10 Wide Color: Do I need to be concerned?。它特别提到了 UIKit,但我没有看到任何特定于 scenekit 的内容,但只是一个想法。
【讨论】:
仅供参考,cmets中应该提到“想法”! ;)【参考方案2】:According to Apple,meterial.diffuse.contents
默认颜色为白色。
默认情况下,diffuse 属性的内容对象是白色的。
没有看到您的代码,我很想知道这一行,因为这似乎是一个明显的错字:
[UIColor purpalColor];
据推测,它会构建,所以我认为它是一个有效的名称。
您是否能够验证上述颜色是否提供了所需的值?因为 iOS 似乎在期待某些东西,但没有得到它,并在此处发回默认颜色。
【讨论】:
它在我看来不是很白,在第二张图片中,更像是一种非常明亮的粉红色。 @Confused 我确实用颜色选择器检查过它,虽然它不是纯白色,但值往往与白色紧密对齐。我看到的最常见的值是 253,248,255。浅粉色 IMO 的 G&B 值远远超出范围(毕竟颜色是主观的)。 我想在我的问题中添加的一件事是 purpalColor 是扩展。实际 RGB 颜色为 (191,170,213),但在 Scenekit 3D 模型中仍显示更亮。而对于 iOS 11,它更亮了,并且发生了变化。我需要在我的代码中添加任何内容吗?以上是关于将设备更新到 iOS 11 后 3D 模型颜色更改的主要内容,如果未能解决你的问题,请参考以下文章
将设备更新到 iOS 11.2 会中断对 Xcode 9.1 的支持