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

一.布料着色器

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

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

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

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

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

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

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

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

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

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

二.体积冰着色器

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 容器 数据卷 使用

目录 常用 命令 什么是数据卷以及特点 如何挂载数据卷 数据卷容器 数据覆盖问题 修改已经建立的数据卷关系 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历&…

Linux——用户/用户组

创建用户组groupadd groupadd 用户组 删除用户组groupdel groupdel 用户组 创建用户useradd useradd 用户名 - g 用户组 useradd 用户名 -d HOME路径 删除用户userdel userdel 用户 userdel -r 用户 (删除用户的 HOME 目录,不使用 -r &#xff0…

java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的纺织品企业财务管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于spring boot…

Postgresql开启SQL执行语句收集

修改配置文件 1.打开Postgresql配置文件,如:C:\Program Files\PostgreSQL\14\data\postgresql.conf 2.修改如下,如果字段被#注释,则去掉# log_directory log log_filename postgresql-%Y-%m-%d_%H%M%S.log log_statement all …

西门子网络程序传输,无需开通网络驱动器直接接入底层,支持各类数控 如发那科、三菱 、新代、海德汉、广数、精雕、马扎克等等

有关西门子的程序传输问题,大家一般是通过文件共享、ftp、网络驱动器等方式,其中828D还需要授权开通网络启动器 下面介绍一种方式直接进入西门子Linux底层系统实现和NCK的文件交互功能 软件截图如下 功能表如下 机床程序上载至电脑 电脑程序下传…

什么是 Spring 引导的执行器?

大家好,我是锋哥。今天分享关于【什么是 Spring 引导的执行器?】面试题?希望对大家有帮助; 什么是 Spring 引导的执行器? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 的执行器(…

Unity 从零开始搭建一套简单易用的UGUI小框架 基础分析篇

一套UGUI的小框架用一篇文章显然是不够的,因为会很长很长大约有上万字,想必读者也没有那个耐心一点点读完(主要是我也懒),所以我就将其分为三个部分 基础分析篇 功能撰写与优化篇 扩展与总结篇 我将其都放在了同一个专…

React 进阶阶段学习计划

React 进阶阶段学习计划 目标 掌握自定义Hooks的创建和使用。深入理解上下文(Context)和Redux的高级用法。学会服务端渲染(SSR)。深入探讨性能优化技巧。 学习内容 自定义Hooks 创建和使用自定义Hooks 自定义Hooks&#xff1…

抓取指定网站上的所有图片的Python脚本

引言 在当今信息爆炸的时代,互联网上的数据量呈现出指数级的增长。对于开发者、数据分析师以及研究人员而言,从网页中提取有价值的信息是一项至关重要的技能。其中,抓取网站上的图片资源不仅能够丰富我们的数据集,还能为各种应用…

Linux在服务器多节点下面如何快速查找日志

背景:最近在查找一个核心服务的后台日志,发现兼容部署了十几个节点,而且没使用ELK来做日志处理,所以查找日志非常不方便,不可能一个服务节点一个服务地找,所以通过同事间互相沟通找到一个方法,通…

redistemplate宇jedis区别

redistemplate是Spring Data Redis提供的一个模板类,用于简化Redis操作的代码编写。它提供了常见的操作方法,如存储、读取、删除等,可以更方便地操作Redis数据库。 而Jedis是Redis官方推荐的Java客户端库之一。它提供了丰富的功能和灵活的接…

Linux操作系统分析实验-文件操作,实验三

一、实验目的 1、 理解Linux中虚拟文件系统的内容 2、 学习编写内核模块的方法 3、 在虚拟文件系统/proc中实现文件操作算法 二、实验内容 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的…

推荐给前端同学的自动化测试库

对于前端开发而言,自动化测试不仅能够提高开发效率,还能确保应用的稳定性和可靠性。而Python提供了多种适用于前端自动化测试的库。这些库能够帮助前端开发者轻松实现UI测试、API测试和性能测试等多种需求。本文将介绍几个Python中常用的前端自动化测试库…

YOLO11改进-模块-引入Histogram Transformer Block(HTB)解决恶劣天气(雨雾雪)

本篇文章将介绍一个新的改进机制——HTB,并阐述如何将其应用于YOLOv11中,显著提升模型性能。在现代计算机视觉任务中,尤其是在目标检测领域,YOLO系列模型因其快速和准确的检测性能而备受关注。随着YOLOv11的提出,我们迎…

【微服务】全面构建微服务监控体系:确保系统稳定与性能优化的关键

目录 引言一、微服务监控概述1.1 微服务监控的定义1.2 微服务监控的重要性1.3 监控的核心目标1.4 微服务监控的关键指标1.5 监控的策略 二、微服务监控的架构2.1 监控架构图2.2 架构组件2.3 监控架构示意图 三、微服务监控的工具3.1 工具概述3.2 Prometheus3.3 Grafana3.4 ELK …

CTF(二)

导言: 本文主要讲述在CTF竞赛中,web类反序列化题目unseping。。 靶场链接:攻防世界 (xctf.org.cn) 反序列化漏洞:反序列化漏洞(二)_fst反序列化 rocksdb 字段值错误-CSDN博客 打开后可以看到&#xff1…

2024-10-16 学习人工智能的Day8

函数 定义(创建) 函数的创建def开始,后接函数名,在给参数表最后冒号表示函数基础信息给定 换行书写函数内部定义,在函数内部定义操作,最后函数自带返回,无定义返回值返回为None&…

Scala的reduce

reduce是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的二元操作(即取两个元素 进行操作)对集合中所有的元素进行递归处理,并最终将其合并为一个值。 def main(args: Array[String]):…

涂鸦智能落地 Koupleless 合并部署,实现云服务降本增效

文|八幡、朵拉 杭州涂鸦智能技术专家 主要研究微服务与可观测、消息引擎、任务调度、数据层中间件等领域。 本文 5389 字 阅读 15 分钟 当前涂鸦通过 Koupleless 的静态合并部署能力,很好地解决了资源浪费问题。 为了进一步提升研发效率,涂鸦…

MYSQL 拼接函数

目录 1、CONCAT 2、CONCAT_WS 1、CONCAT 解释:用于拼接两个或多个字符串成一个字符串。如果任何一个参数为 NULL,则 CONCAT 函数的结果也会是 NULL。 语法格式:SELECT concat(column_name1,column_name2,...) FROM table_name 中文注释&…