当前位置: 首页 > news >正文

UE4 材质学习笔记06(布料着色器/体积冰着色器)

一.布料着色器

要编写一个着色器首先是看一些参考图片,我们需要找出一些布料特有的特征,下面是一个棉织物,可以看到布料边缘的纤维可以捕捉光线使得边缘看起来更亮

下面是缎子和丝绸的图片,与棉织物有几乎相反的效果,表面面对相机或者光源的时候比边缘更亮。所以我们要模仿两种现象,一种是边缘比中间亮,另一种是直视表面比边缘亮

这个技术在一次SIGGRAPH会议上被提出。下面是要用到的公式,这也是我们今天要模拟的东西。

通过着色器模仿布料的外观,但是并不能模拟布料的物理性质。

首先需要一个菲涅尔项,菲涅尔项是用来计算观察向量和表面法线之间的点积,虽然有现成的节点可以给我们使用,但是我们还是选择自己去实现它,因为我们想对它进行更多的自定义。

首先找到Camera Vector和Pixel NormalWS节点,进行点积之后连接到BaseColor,可以看到中间是亮的,然后到边缘逐渐变暗

然后我们可以用1-x节点,就会变成中间是黑的,到边缘逐渐变亮,这样我就可以让边缘变亮或者是中间变亮。

 但是还需要添加一个power节点来调整效果的应用程度。这样颜色衰减就快很多了。通过指数就可以调整颜色衰减的快慢了,同时可以在加一个乘法节点用来调整亮度。

然后我们只需要复制上面的节点,但是不要1-x节点,就可以得到中间亮边缘暗的效果,然后把这二者相加,这样边缘和中间都亮了,但是这样做的好处是可以通过四个参数创建各种不同的布料效果。可以制作缎子,丝绸,牛仔布等等。

例如下面是分别模仿棉织物和丝绸的效果,只需要修改下面的四个参数

二.体积冰着色器

当我们的相机向量移动时,表面下的纹理也随之移动,所以看起来就像是有某种体积

也就是像下面的这种效果,我们要做的就是得到紫色的向量,也就是透射向量,然后可以把它加紧UV坐标里,并且让UV在相机向量移动时,于表面下滑动

连接接待你以后看起来就像是,我在透过一块立方体玻璃往后看,但是现在看起来纹理离我的表面太远了,并且发生的偏移明显太强了

解决办法就是增加节点用来控制深度以及偏移量,下图中的100就是将控制我想要使用的深度,然后取分辨率的倒数控制偏移量

现在看起来纹理就在表面之下,旋转物体时,噪波纹理会在立方体的下面(或者说里面)产生

但是我们知道冰并不是光滑的,所以要用法线贴图替换原来的(0,0,1),然后因为我们不想要每个像素有均匀的偏移,所以可以用一个纹理控制偏移,现在的效果看起来就非常棒了

http://www.lryc.cn/news/461211.html

相关文章:

  • 人工智能学习框架
  • GEE 教程:Landsat TOA数据计算地表温度(LST)
  • Web编程---配置Tomcat
  • 物联网5G模块WIFI模块调式记录(Pico)
  • 中国平安蝉联2024“金融业先锋30”第一名 获金融业ESG最高五星评级
  • [图解]题目解析:财务人员最有可能成为业务执行者的是
  • 零基础学大模型——大模型技术学习过程梳理
  • 匹配全国地址的正则表达式工具类
  • Notepad++ 使用技巧
  • 《语音识别芯片选型全攻略》
  • 【MySQL】VARCHAR和CHAR的区别?
  • SQL Server日期查询常用语句
  • java地理方位角度计算
  • RabbitMQ service is already present - only updating service parameters
  • 贵州网站建设提升可见性的策略
  • SUGAR:用于皮层表面配准的球形超快图注意力框架|文献速递-基于深度学习的医学影像分类,分割与多模态应用
  • 华为高频手撕冲刺
  • 如何优雅的通过Spring Boot+Redission对订单实现定时关闭
  • 二、IPD 的定义与背景
  • STM32CubeMX初始生成工程
  • STM32单片机(F03C8T6)-点灯(寄存器点灯和库函数点灯)
  • PCL 3D-SIFT关键点检测(曲率不变特征约束
  • Android上的AES加密
  • 安全测试的漏洞类型
  • 51 | 适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?
  • ORM框架简介
  • Windows系统上根据端口号查找对应进程
  • 一文通透OpenAI o1:从CoT、Quiet-STaR、Self-Correct、Self-play RL、MCST等技术细节到工程复现
  • 如何解决与kernel32.dll相关的常见错误:详细指南解析kernel32.dll文件缺失、损坏或错误加载问题
  • Caffeine Cache解析(一):接口设计与TinyLFU