前言

本篇使用UE5的材质系统实现运动的扭曲效果,并解决他的重复性

纹理变换

  • 总结思路

    为uv坐标添加time节点

  • 实现

    如下图所示,Texcoord指定uv起始坐标,提供一个float2变量和Time节点相乘(这样对Time有控制权),将相乘结果与uv坐标相加,最后传给采样器

    image

扭曲效果

  • 原理

    由于噪声的值是固定随机的,将噪声函数应用到纹理中使得纹理的各通道呈现随机性,使用噪声纹理可以做到偏移uv坐标,这样

    即可实现扭曲效果

  • 思路

    噪声纹理提供uv坐标,将该uv坐标用于纹理的采样

  • 实现

    • image

      image

    • 控制扰动强度

      • 解决:可以看到采样生成的纹理过于扭曲,这是因为纹理贴图中提供的噪声值过大,此时乘以一个value即可削弱强度

      image

    • 让扭曲效果动起来:扭曲效果+纹理变换

      • 解决:如图所示,先对噪声纹理进行纹理变换,再将得到的uv值传入采样器
        image

      image

    • 让变换的扭曲效果更加真实

      • 问题:从上图可以看出,这些变换只是一味的重复(平铺模式是固定的),很容易就被看穿(因为计算机中的随机都是伪随机)

      • 解决:分两次采样噪声函数,将两个采样的uv值求和传给最终的采样器
        image

        image

reference

Distortion Shader - UE4 Materials 101 - Episode 4 - YouTube

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/chenglixue/p/17388582.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!