unity 模型渐变消失_在不画贴图的基础之上用Unity shadergraph做出眼睛的渐变(没图解)...

首先我们需要准备一张纯白色的1k或者2k分辨率的贴图,两只分好uv的眼睛的mesh,一个2018至以上版本使用lwrp的unity项目。

废话(可跳过不看):

传统的眼睛贴图需要制作者拥有良好的美术功底与软件使用经验。一个模型需要渐变贴图的地方实在是太多了,比如动漫风格的眼白一般会需要灰色阴影与白色受光部分有明显的分界线,这时候会用到fixed gradient;为了表现出眼睛类宝石的质感,通常会用到有过渡的gradient,如线性、原始和贝塔样条。

回到正题,

一般来说,可以通过映射uv的方式来对眼睛上渐变色,但是眼睛的mesh所携带的uv信息似乎很小,gradient不管怎么调整映射也无法让渐变色带映射到眼睛的模型上(我用笨方法试了半天也没成功,色带还是太宽了,无法投射到模型上达到想要的渐变效果)

(这里我用笨方法连接的映射shader是:position(object)-rotate-sample gradient-Unilt master(color))

就算是有带uv的模型也无法把色带映射上去,因为这个渐变色的色带实在是太宽了,超出了我们uv所带的宽度。

这个时候,我想到了一种解决方法(其实摸索了老半天):

像贴uv贴图那样,用一张纯白色的2k图片通过sample texture 2d来映射在模型对应的uv坐标上,这样一来整张图片的范围也和uv的尺寸匹配了;并且因为这张贴图只携带返回值1的通道,就算是我用它与sample gradient相乘也还会得到我期望的结果。

通过multiply这一的手段,我强制地把超出uv尺寸的渐变色采样图限制到了所给模型一样的uv尺寸,色带以正常的比例出现在了模型上,需要的眼睛渐变色效果也就出来了。

至此可以得出一个结论,当我们需要的效果在映射给uv时出现了期望之外的效果,可以尝试把这个效果的输出与一张通篇为1的通道图相乘,以此强行限制uv的尺寸。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值