ue4模型为啥这么亮_UE4 单材质球双面不同材质显示小技巧

aa84acdbffe31ea3d181714e0af3785c.png

最近遇到一个比较有意思的需求,需要在一个模型的正反面分别显示不同的材质纹理,但是只有一个材质槽,并且没有提供材质ID。

起初的思考是根据模型表面法线来做,这个对于静态模型而且不会动的Object还可以,自定义一个法线朝向然后跟VertexNormalWS做Dot计算,然后返回值给一个if判断,Dot值为正代表反面,为负代表正面,简单测试一下跟我想的一样

知乎视频​www.zhihu.com

f43abb28a01fd9963c84102353cad51d.png

但是尝试之后发现对模型样式局限性太大,规则物体还好,不规则物体法线完全没有规律可循

刚好这段时间在研究UE4制作三渲二的效果,通过Shader研究从制作模型外轮廓的方法用到了TwoSideSign这个节点。之前一些树木的叶片也用过这么个节点,看了看官方文档好像就是让一个模型正反面的法线都是正的(菜鸟TA非美术出身,说的不对还请大佬纠正)。

然后就用TwoSideSign来判断模型的法线相对朝向来决定正反面,其实也很简单

fa29e84707f8be169503befebb2575fb.png

乘以-1是三渲二的做法,目的貌似为了把模型正反面反转,然后用来剔除模型正面,这里其实也可以不给,后面连接一个ConstantBiasScale是为了把取值范围从-1 ~ 1重新映射为0~1 防止Alpha出现-1的取值导致最终效果出错,因为给美术测试会发现不给ConstantBiasScale会出现很奇怪的效果,给了这个节点就解决了。

然后Maya随便做了个模型做测试,功能很简单,算是一个小技巧吧。

6d2b0bb2f0243d96e65ad739e157cedf.png

N旧没更新了~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值