加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

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

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

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

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

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

编辑

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

material.diffuse.textureComponents = .red

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读