材质节点2

一、将UV坐标系变成笛卡尔直角坐标系

通常用一个ConstantBiasScale就能做到。
  • 上面的先减去0.5,再乘以2
  • 跟下面的先乘以2,再减去1的结果是一模一样的。
二、圆形遮罩

这里有个坑啊,上图中说的Power2是不准确的,只有在基数为正的情况下才可以进行幂运算,也就是黑色负数部分是不参与运算的。所以这里圆形遮罩不能用Power2来搞,而应该使用Multiply来乘,负负得正嘛,左右图案是轴对称,是一模一样的。

SphereMask也可以快速制作圆形遮罩。

三、线性遮罩


四、旋转图片
用 Custom Rotator 就好了,想旋转多少度就旋转多少度。

【1】旋转90度

两个作用是一样的。
  • Append的对立面接着TexCoord,Mask节点输出的是 单个Float。随着节点,可以变 float 2、3、4,只不过(RGBA)四个通道的值都是一样的。
  • BreakOutFloat2 材质函数 无非是把它们整合了起来,省得打或复制很多次的Component Mask。



    【2】旋转180度



    【3】顺时针逆时针匀速旋转。框选集合节点,搜索Customized UVs,把0更改为1或2或...

    五、植被Landscape Coords,做地形材质LayerBlend,A口为地形基础色,法线向上。如果想在Landscape Mode刷材质的时候植被同时也附着上,而不是在Foliage Mode单个种植被,就需要下面两个节点了。(灵活性,你可以在你已经指定的区域内随意更换植株,不像Foliage那么定死了,要删除还得全部勾选Foliage Type再Erase)

    六、后处理



    七、UI播放视频

    八、常用函数算法
    Ceil
    Floor
    Frac
    Truncate
    SphereMask
    Lerp
    Sin、Arctan
    Dot、Cross

    Distance
    Normalize
    ....


  • Ceil(1.4)=2,Ceil(-1.4)=-1.0,向上取整
  • Floor(1.4)=1,Floor(-1.4)=-2.0,向下取整,跟Ceil是双胞胎。
  • Frac(1.4)=0.4,Frac(-1.4)=0.6,取小数,正数抹掉整数,负数抹整、绝对值、用1减。
  • Truncate(1.4)=1,Truncate(-1.4)=1,取整数
  • SphereMask ,球形Mask,跟那个Ambient Sound声音组件 圈内、圈外、过渡区三部分一样。做圆也方便。









九、做多边形


image.png
十、做特效(WorldPositionOffset,动态变换模型顶点位置。)
  • 全息旋转
  • 模型转换
  • .....

空间相关节点:官方文档

【1】Actor Position,相当于模型的World Transform.Location,蓝图获取是GetActorLocation,材质获取就是Actor Position。

Object Position(跟Actor Position一样)、Orientation、Bounds为模型在xyz各轴上的坐标旋转大小,单位cm。

而体积云用到的ObjectLocalBounds,常赋给立方体模型,就是为了限定空间,不让云的效果出界。拿虚幻的立方体模型举例,它长宽高都是100cm,枢轴点在模型体心嘛。

  • Local Bounds Minimum——最小范围 -50cm
  • Local Bounds Max——最大范围 50cm
  • Local Bounds Size——模型尺寸100cm

Camera Position,一样,当前窗口相机的位置信息,如果再拖拽一个相机CtrlShiftP Pilot的话,就是当前这个相机的位置坐标。【2】Absolute World Position,好似RayMarching,如果当前屏幕为4K ,共有3840*2160的像素块,那么就从当前视口(相机位置)往这 8294400 个小方格打射线,来返回当前二维屏幕像素块对应的模型在三维世界当中的坐标。Local Position,就是相对于模型自身的坐标了,如果球体模型的枢轴点在球心,那么获取球体自身表面的各个位置就需要用到它了。(好比 Local:自身部位相对于个人的位置->World:个人在世界中的位置。)常用Transform Position节点来变换位置。



【3】Vertex Normal,模型每个顶点的法线坐标。常用来做Scale变换效果。模型消失、闪现效果。如球变大变小。



蓝图还得Construction Script写,这个就相当于材质版本的Construction Scirpt,让模型运动、旋转、缩放等。

作者:X Tesla
链接:https://www.zhihu.com/question/382810691/answer/1543325159
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【4】材质模型自旋转。(蓝图构造脚本没有Find Look At Rotation,Tick又必须开启游戏后才能预览)所以我们就直接写在材质里面了。AlignMeshToTheCamera:C2、C3(1,0,0) (0,-1,0) (像御剑一样,水平相机)C1、C2、C3(1,0,0) (0,0,-1) (0,1,0) (面片草树,垂直相机)


atan2:(面片草树,垂直相机)(参见官方Stylized Rendering文档)

十一、If提取图片颜色变色(If)

用If节点来检测图片颜色,来更换指定颜色。

如果要单独平分黑白二色的话,可以用Round,在UV坐标系下(左上00,右下11)进行四舍五入,即自动把上面If节点的B值设成0.5,A>0.5升为1白色,A<0.5降为0黑色。

十二、做矩形仿SD的Shape节点。Vector Length,新手入门第三人称动画蓝图中也有,不过这个是在笛卡尔二维坐标系上计算点到原点的矢量长度,也就是根号下Vector2(x,y)的平方。如BreakFloat出来的是2,那么VectorLength出来的是
  • SmoothStep 做矩形。
  • Opacity给上1-x,让中间区域透明。
  • 打勾TwoSided双面材质。
    这样的话,也可以用材质做一个中空的立方体了。

    十三、材质属性如果材质特别复杂,可以使用这种分节点的方式,免去没有用的通道,让代码看起来更加整齐,不那么冗乱。
    分解材质属性
  • Break(Get所有的)
  • Get(Get自定义的)
    制作材质属性
  • Make(Make所有的)
  • Set(Set自定义的)
    混合材质属性
  • Blend(跟Lerp一样)

你可能感兴趣的:(材质节点2)