[LayaAir3]把 RT 当做 UI 渲染,效果异常

渲染角色到 RT 上,角色身上挂有特效,然后把 RT 当做图片放到 UI 上显示,但效果和在 3D 场景上的效果不一致。
现在我把环境简化(工程见附件),运行游戏能重现出问题(要运行游戏),如下图所示,不知道能不能给出解决方案?
Snipaste_2024-04-08_14-16-21.png

 
补充
- 第一个版本(附件 TestProj.zip),使用 Recovery 兄弟的建议,脚本设置 RT 伽马纠正为 2.2 后,表现正常了
- 第二个版本(附件 TestProjV2.zip),使用了正式的贴图,但通过脚本设置 RT 伽马纠正为 2.2,表现同样是有问题的

 
已邀请:

shiyang

赞同来自:

看着像是颜色空间的问题

1703474560用户

赞同来自:

有官方同学帮忙看看?似乎是引擎的问题

Recovery

赞同来自:

((rt as any)._texture).gammaCorrection = 2.2;
这样主动修复下颜色空间计算异常试试

Recovery

赞同来自:

对楼主的demo2进行了修改,rt渲染图像增加了实色背景,ui上增加了不规则图案
问题描述:透明渲染材质在RT中输出在UI上出现穿透现象
 
1.不需要运行游戏,直接在场景预览下操作
2.拖动ui背景,可发现ui背景会出现在rt输出的图像中,出现了“穿透”现象
3.颜色变化是穿透现象导致的颜色叠加异常

1703474560用户

赞同来自:

问题已解决
 错误原因:
1,渲染场景时用的是线性,得到线性预乘 RT
2,渲染 UI 时 RT 时会转伽玛,但线性预乘 RT 直转伽玛不正确
 
解决方案:
修改 UI Shader,把线性预乘 RT 的 alpha 剥离,再转伽玛,再合并 alpha,得到正确的伽马预乘 RT
 

要回复问题请先

商务合作
商务合作