Unreal | 我发现了官方“bug”
UE4虚幻引擎技术Thepoly 14524 0
实名

通过了实名认证的内容创造者

发布于 2022-3-25 16:51:41

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

x
本帖最后由 Thepoly 于 2022-3-25 21:26 编辑

             640.jpg
174551k9r66ex7z719e99h.jpg
Hello . 大家好
分享一下subsurface color
我是木偶心没




最近做布料有遇到关于subsurface color的问题,这里顺手分享一下,方便大家参阅,避免大家在查找资料以及手动测试中花费太多的时间。

在布料中添加SSS(次表面散射)效果的时候,我们一般会将shading mode选择subsurface,这样子材质就会开放subsurface color和opacity的输入,我们只需要把透光颜色连接到subsurface color,然后给opacity一个透光的强度值,或者输入一个厚度贴图thickness。具体实现请参考官方文档:

https://docs.unrealengine.com/en-US/RenderingAndGraphics/Materials/HowTo/Subsurface_Scattering/index.html

但是在我经过翻来覆去翻天覆地的测试以后发现,官方文档还是有“bug”。根据官网解释,将一张mask连入opacity,随便给一个非黑色的subsurface color,白色的地方就不会产生SSS效果,如下:



然而,动手试过的人都知道其实并不完全如图所示,因为其实就算opacity的输入值为1(表示这些区域不接受次表面散射),但是只要材质球选择的模式是subsurface,默认整个球都会有次表面散射效果,只是强度不同。如下图,讲道理白色mask部分就应该是黑的,但是实际上还是有效果产生。(可能是官方文档引擎版本太旧)


那么如何让中间白色部分变成没有次表面散射效果呢,这就需要再将我们的mask反向(因为需要中间部分是黑色的)乘到subsurface color的输入里面。



可以看到中间mask没有不是subsurface的蓝色,而是basecolor的黄色,也就是没有了次表面散射效果。 这个在我们做那种布料里面有其他材质(比如木头)的时候会比较用的上。或者做那种会透光的叶子的时候,用来区分树干和树叶。

所以综上,如果你的物件中有一部分不需要次表面散射效果,就需要把mask同时混到opacity和subsurface color里面。

   

喜欢Thepoly的可以通过三种方式与我们建立联系。分别是公众号、微信群以及QQ群。公众号是我们最为官方的窗口,更多内容都必须关注公众号后才能获取。另外现已开通网站:www.thepoly.cn更多精彩请关注我们。
         

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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