swift – Scenekit一些纹理有红色色调

swift – Scenekit一些纹理有红色色调,第1张

概述我有一个有很多物体的场景,它们都有不同的纹理.出于某种原因,2个物体具有红色色调,即使它们的纹理没有红色.您仍然可以在纹理中看到图案,它在红色上只有不同的阴影. (在模拟器上,2个物体有黑色和白色纹理,设备色调为红色)有没有人知道为什么会发生这种情况?其他对象工作正常. 对于材料属性,如金属度和粗糙度,SceneKit支持1通道(灰度)图像.为了节省内存,这些图像保持为灰度纹理,它们不会转换为每个 我有一个有很多物体的场景,它们都有不同的纹理.出于某种原因,2个物体具有红色色调,即使它们的纹理没有红色.您仍然可以在纹理中看到图案,它在红色上只有不同的阴影. (在模拟器上,2个物体有黑色和白色纹理,设备色调为红色)有没有人知道为什么会发生这种情况?其他对象工作正常. 对于材料属性,如金属度和粗糙度,SceneKit支持1通道(灰度)图像.为了节省内存,这些图像保持为灰度纹理,它们不会转换为每个通道中具有相同数据的RGB纹理.

当您将此类图像用于“彩色”材质属性(例如漫反射)时,SceneKit将要求样本的红色,绿色和蓝色组件,但绿色和蓝色将始终为0,图像将显示为红色.

一个不幸的解决方案是在图像编辑应用程序中重新设计纹理,以便将其保存为RBG而不是灰度.

您还可以尝试着色器修改器将灰度转换为RGB:

_surface.diffuse.rgb = _surface.diffuse.rrr;

编辑

从iOS 11开始,您可以在使用单通道纹理时使用textureComponents属性:

material.diffuse.textureComponents = .red
总结

以上是内存溢出为你收集整理的swift – Scenekit一些纹理有红色色调全部内容,希望文章能够帮你解决swift – Scenekit一些纹理有红色色调所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存