Unity Shader(三)玉石效果

第二节课是讲评第一节课的作业,第一部分,讲一下怎么做出这种玉石效果~重点在于如何点出两个高光点,难点在于:① 点出高光;② 对高光的位置进行偏移。

59e5a79e6f4e4a548f5b92c8f4041250.png

                目录

1. 光线的偏移

2. 高光的绘制

3. 同时显现两个高光

4. 混合原有材质

5. 添加菲尼尔效果

参考:庄懂的技术美术入门课-02


1. 光线的偏移

   偏移效果可以用原本的光向量(Add)上另一个向量的方法实现,这里的另一个向量用的是Properties中的Vector4节点(Properties中的节点是后续可以出现在材质面板上自行修改调整的),对结果进行归一化(Normalize),然后和之前一样 与物体表面法向量进行点乘。

        到这里为止,效果是和原本的兰伯特一模一样的,区别就在于可以在材质面板上通过修改我们刚刚添加的vector4数值,能够任意做出光线的位置偏移变化。

43a7b303bb7e4254bc35689d3533251e.png134dd9bf1bfd43ee95b86aeda01adb98.png

f6ca70b3398b4e5db1bfabd486c0972f.png

2. 高光的绘制

        高光的绘制仅需要添加一个if判断,举例,我要让黑白关系中>0.8的部分全部取1(白),≤0.8的部分全部取0(黑),这样就可以得到一个两级分化的效果。“0.8”是一个可以自定义的数值,这里用到了Slider,同样可以在材质面板中通过滑块来修改数值。

        if 节点一共有5个输入参数,分别为:用来比较的A值、B值 [A为明暗关系,B为我们滑块设置的比较值],以及比较后的三种结果值(> = <)[A>B取1,A=B 和 A<B 的情况都取0]。

        这样就得到了一个只有黑色和白色的球体,通过修改silder数值就能控制高光的大小,结合上一步的Vector4数值就能控制高光的位置。

662dcafc3d3448a9ad71b007ca61dee7.png

f0426934c35a450695ef98ca37c0d9d0.png

c6e406cd4ca7408db31754fac22932f0.png

        放个大图看清晰点,后面会越来越不清晰(捂脸        

f0d89e1d82fa4ac4ac78ca84754fb121.png

3. 同时显现两个高光

        为了出现两个高光点,就需要再执行一次偏移的操作。这里我原本是想着既然本质上两次都应该是光线的偏移,就将两次偏移操作都作用在光向量那一侧,但是最终会发现无法使用。所以我最终还是跟老师一样将第二个偏移操作作用在了物体法向量那一侧,做出来的实际效果和将光偏移是一样的。

        做出了两点的偏移后,如何让两个高光同时出现呢?这里用到了Max,就能同时保留住两个高光。

4. 混合原有材质

        这一步就是在点出高光的效果上,能够叠加上原有的材质图的颜色。先复刻一遍兰伯特,这里的材质做出一个 亮部深暗部浅 的图效果会更好,我的图暗部没做好但是也能凑合着用!

        将材质色和高光叠加的操作用到了lerp(线性插值)的节点,它从美术效果上就是“遮罩”,从数学上解释的话可以先看到lerp有三个输入值:A、B、T,作用是在T从0到1的变化中,数值会从A开始变得越来越靠近B,当T=0时 输出值为A,T=1时 输出值为B,T为0.5时,那就是在A和B的中点。
        而此时,我们让A为渐变色,B为一个Color(高光色),T为前面处理的两极分化的黑白球,此时为黑色的地方(T=0)就会取渐变色(A),高光的地方(T=1)就会取高光色(B),所以就形成了两个颜色叠加的效果啦。

8f92cf0327a642d3a75a98a06797999c.png

5. 添加菲尼尔效果

        为了能够让效果更加精致,可以添加一个菲尼尔(Fresnel)节点,它能够在物体外圈产生一圈光环,常常用于一些光滑表面的材质。菲尼尔的效果是指,当我们的视线与该物体越齐平(入射角越大)时,光的反射效果越强,导致边缘会发亮。可以想象我们站在水中往下看时是可以看到自己的脚的,此时反射效果就比较弱,而如果我们看到一个和我们视平线一样高的水面,就基本只剩下反射的效果了,看不到水里的东西。而看球体时,无论从什么位置去看,在最外圈 我们眼睛看过去一定能找到和球面相切的点,所以无论怎么变换角度最外圈都会发光。
        fresnel的Exp输入值越小,光圈的范围越大,与一个颜色值相乘能够修改光圈的颜色,之后用
Blend节点将该结果和上一部分得到的结果值混合,可以修改下拉框的选项得到不同的混合效果~


关键词

偏移用向量Add,设两极用if,保留两个高光用Max,高光叠加渐变色用Lerp插值,外圈反光用菲尼尔,颜色混合用Blend

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值