找回密码
 立即注册
查看: 410|回复: 0

使用后处理Alpha通道丢失的问题

[复制链接]
发表于 2021-11-18 19:27 | 显示全部楼层 |阅读模式
1)使用后处理Alpha通道丢失的问题

2)ParticleSystem的Trail Material为空时运行会自动创建一个默认材质

3)C#使用中文进行枚举时, 是否会产生性能相关的问题

4)C#脚本存在未引用的命名空间,打包报错提示命名空间不存在UnityEditor

这是第275篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com

UWA QQ群2:793972859(原群已满员)
Rendering

Q:我们项目有一个模型相机投射到RT上,然后放在RawImage上,现在这个相机需要开启后处理Post Processing。只针对角色添加的Tone Mapping和Bloom效果,问题是开启后,RawImage背景变黑了,把UI背景图遮住了,应该是需要让持有RT的RawImage做混合,网上看了一堆混合的公式,都无法完成混合,背景混合对了,模型混合就不对,整个模型被混合的发黑。请问有相关的解决方案吗?

应该是开启Post Processing后模型相机的SolidColor的Alpha值就无效了。把相机的背景色也加到了RenderTexture里。

A1:解决方法:UberPost: //return half4(color, 1.0); return half4(color, SAMPLE_TEXTURE2D_X(_SourceTex, sampler_LinearClamp, uv).a);

感谢题主ZJS@UWA问答社区提供了回答

A2:我在非URP项目试了一下,也存在上述的SolidColor的透明通道会无效的问题。从下图FrameDebugger中,可以看到:Copystd.shader的输入是一张Alpha不全为1的图(除了模型处的a为1,其它背景处a都为0),但是输出图的Alpha全部为1,通过查询源码,确定不是Shader的问题,而是输出的targetRT(_TargetPool0)的格式(B10G11R11)决定了它不包含Alpha信息,所以输出图永远不会有透明通道的信息。

我的解决方法很简单,就是用自己写的Shader。效果如下,其中红棕色是UIImage背景,胶囊体是目标模型。总结一点就是,一个后处理Shader只要在确保原有功能的基础上仍能保持原图的Alpha信息不变,理论上就是可以的。

感谢孟@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/6189ef43d8413e18eb09b3b5
Rendering

Q:Particle的Trail Material为空时运行会自动创建一个默认材质,请问有什么方法解决?

A1:可以排查下有没有类似操作,有Material的get操作就会变成实例化的材质球。

感谢小ben@UWA问答社区提供了回答

A2:在2020.3.16版本没有发现这个问题,不知道用的是什么Unity版本?在2020.3.16版本不勾选Trails模块,就不会有Trail Material。


感谢范世青@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/618b8a48d8413e18eb0bef92
Scripting

Q:项目使用C#语言开发,战斗模块使用了大量的中文枚举,不知道是否会产生什么风险问题,查阅了部分资料也没有结果。

A1:雨松之前提过一个方案加属性来实现可以编辑器上显示中文,代码中仍然用英文,网上能搜到。

感谢Knight-132872@UWA问答社区提供了回答

A2:可参考:《Unity3D研究院之多语言用中文做KEY(七十五)》

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/618a6ca6d8413e18eb0a75d2
Scripting

Q:【打包】C#脚本存在未引用的命名空间,打包报错了提示命名空间不存在UnityEditor。引用到Editor命名空间的脚本(即使未使用),也未放到Editor文件夹下时,会引发打包报错问题。

A1:UnityEditor这个库只能在Editor下运行,是打包不出去的。我看你也没有引用到,直接删除即可。

感谢萧小俊@UWA问答社区提供了回答

A2:如果是Editor上专用的建议放到Editor文件夹里,如果运行时也需要可以加UNITY_EDITOR宏来隔绝。

感谢Knight-132872@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/618c82e5d8413e18eb0d29e2

20211115

更多精彩问题等你回答~

Unity增量打包AssetBundle没变化的资源也会被重新打包

在模型有UV2的情况下开启Generate Lightmap UVs

如何实现AAB包的增量更新

封面图来源于:Awesome Unity Shader

关于炫酷的Unity3D Shader。

https://lab.uwa4d.com/lab/5b563be1d7f10a201fd8beeb
<hr>
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com

官方技术博客:blog.uwa4d.com

官方问答社区:answer.uwa4d.com

UWA学堂:edu.uwa4d.com

官方技术QQ群:793972859(原群已满员)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 00:35 , Processed in 0.092024 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表