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

一.布料着色器

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

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

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

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

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

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

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

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

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

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

二.体积冰着色器

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker harbor

文章目录 一,搭建私有仓库1.1下载registry1.2在 daemon.json 中添加私有镜像仓库地址1.3重新加载重启docker1.4运行容器1.5拉取一个centos7镜像1.6给镜像加标签1.7上传镜像1.8显示私有仓库的所有镜像1.8查看私有仓库的 centos 镜像有哪些tag 二,什么是ho…

Matlab中HybridFcn参数的用法

在 MATLAB 中,HybridFcn 参数允许你在全局优化(如遗传算法 ga 或粒子群算法 particleswarm)之后使用局部优化算法进一步微调解的精确度。HybridFcn 通过在全局优化找到的解基础上,进一步调用局部优化器,如 fmincon、pa…

ARM嵌入式学习--第四天

汇编与C混合编程 -汇编指令中调用C语言 .global _start _start:mov r0,#5mov r1,#3bl add stop:b stop int add(int a,int b) {int c a b;return c; } 无优化情况:(反汇编之后,发现多了很多很多指令,运行之后结果是错误的&a…

掌握关键:全面数据分析键盘市场

键盘数据分析 一、市场分析 大盘销售额,销量: 共获取100个品牌每个品牌至多100页的数据,共计3***9个商品及其销量,销售额。 大盘数据 9月份键盘销售额:9***124.58元, 9月份键盘销量:1***0…

遇到“mfc100u.dll丢失”的系统错误要怎么处理?科学修复mfc100u.dll

遇到“mfc100u.dll丢失”的系统错误会非常麻烦,因为mfc100u.dll是Microsoft Visual C 2010 Redistributable Package的重要部分,许多应用程序和游戏在运行时都需要调用这个文件。如果这个文件缺失,可能会导致相关软件或游戏启动失败。面对这种…

操作系统实验三:基于BPF机制的系统跟踪与探测

实验内容 学习BPF机制,了解BCC(BPF Compiler Collection)和bpftarce的实现原理,利用BPF工具实现对系统的跟踪和探测,如跟踪新创建的进程,统计线程占用CPU的时间,统计某内核函数的调用次数&…

98. UE5 GAS RPG 实现技能眩晕效果

我们在技能伤害基类上面设置了对应的负面效果应用的配置项,用来实现技能的负面效果应用。 在之前实现火球术的负面效果时,我们我们在创建火球时,通过伤害基类上的创建技能配置用于后续应用。 在火球攻击到敌人时,通过函数库书写…

电脑技巧:优化Edge浏览器占用C盘空间的解决方案

大家在日常使用电脑的使用,Edge浏览器作为Windows电脑自带的浏览器,使用体验还是非常不错的。对于电脑新手来说直接使用微软自带的Edge浏览器也可以满足使用需求。但是随着电脑使用的越久,整体Edge浏览器也会占用几个G甚至更多的磁盘空间,并且还是C盘。 今天给大家分享如何…

使用Three.js和Force-Directed Graph实现3D知识图谱可视化

先看样式: 在当今信息爆炸的时代,如何有效地组织和展示复杂的知识结构成为一个重要的挑战。3D知识图谱可视化是一种直观、交互性强的方式来呈现知识之间的关系。本文将详细介绍如何使用HTML、JavaScript、Three.js和Force-Directed Graph库来实现一个交互…

【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库

一、介绍 电商购物管理系统,本系统前端使用HTML、CSS、BootStrap等技术搭建前端界面,后端使用Django框架处理用户的逻辑请求。主要功能有: 管理员登录与管理:管理员可以登录后台,对用户和商品进行增删改查的操作。用…

stm32 bootloader写法

bootloader写法: 假设app的起始地址:0x08020000,则bootloader的范围是0x0800,0000~0x0801,FFFF。 #define APP_ADDR 0x08020000 // 应用程序首地址定义 typedef void (*APP_FUNC)(void); // 函数指针类型定义 /*main函数中调用rum_app&#x…

vue + 百度地图GL版判断一个点位是否在地图可视区内

利用BMapGLLib中isPointInRect 因为没有找到官方文档因此直接下载了该工具的源码,复制以下部分到自己的项目中,避免再次引用完整的BMapGLLib脚本 关键方法 isPointInRect(point, bounds) {if (!(point.toString() "Point" || point.toString(…

解锁机器人视觉与人工智能的潜力,从“盲人机器”改造成有视觉能力的机器人(下)

机器视觉产业链全景回顾 视觉引导机器人生态系统或产业链分为三个层次。 上游(供应商) 该机器人视觉系统的上游包括使其得以运行的硬件和软件提供商。硬件提供商提供工业相机、图像采集卡、图像处理器、光源设备(LED)、镜头、光…

英飞达医学影像存档与通信系统 WebUserLogin.asmx 信息泄露漏洞复现

0x01 产品简介 英飞达医学影像存档与通信系统 Picture Archiving and Communication System,它是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,各种X光机,各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟,DICOM,网络…

93、Python之异常:了解常见的内置异常,遇到不慌

引言 本文接着来聊Python中的异常管理,对于新手来说,一旦看到异常,就会比较慌张。其实,倒不是对异常比较害怕,而是担心不知道该怎么处理这种异常才是比较可怕的。本文就简单列举一下Python中比较常见的异常&#xff0…

python学习-怎么在Pycharm写代码

打开Pycharm,点击文件-新建项目 2.选择pure python-点击箭头 展开 3.选择 Existing interpreter 如果 Existing interpreter 下没有相关环境 (1)点击**…** (2)选择python的安装路径 4.可修改文件名称-点击创建 …

二叉搜索树中第 K 小的元素

二叉搜索树中第 K 小的元素 ​ 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1…

QT实现改变窗口大小其子控件也自动调节大小

创建一个顶层布局即可,一定要在MainWindows或者Widget的下面! 观察图标变化 带有禁止的意思是分拆布局(当前无布局) 现在是添加布局后了 注意:一定是在MainWindows或Widget才可以添加顶层布局,才可以实现…

Golang简介

目录 第一章 go语言起源 第一节 go语言发展 1.知名编程语言或系统的发展简吏 2.Go语言的前世今生 3.go语言的核心特性 4.Go语言的优势和其他语言的对比 5.Go开发环境搭建 第二章 go语言Helloworld 一、go项目工程结构 二、执行go程序 三、go程序的解释说明 第三章 g…

29.第二阶段x86游戏实战2-遍历周围-花指令与二叉树数据结构(有如何阅读vm代码混淆代码)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…