UE4 材质学习笔记10(程序化噪波/覆雪树干着色器/岩层着色器)

news2024/10/24 7:33:13

一.程序化噪波

柏林噪波是一种能生成很好的随机图案的算法,它是一个无限的、不重复的图案,可以采用这种基础图案并以多种方式对其进行修改,

将它缩放并进行多次组合,就可以创建一个分形图案。这些组合的缩放等级称为一个Octave

这是产生柏林噪波基础图案的核心公式(优化版本)

当这段代码被编译时,会产生下面的消耗,并且这只是核心图案,你通常把这个东西循环三到四次 甚至多达八次,所以你可以使用多达488个指令和64个纹理采样,所以这是非常耗能的

有一个解决办法是在3D空间中渲染一系列的噪波切片,并创建一个体积纹理,这将61个指令和8个纹理采样分解为1个纹理采样

这种技术耗能很低,但也有一些缺点,我们必须让它在三个维度都进行平铺,所以它也不再是一个无限不重复的图案了

在虚幻引擎的噪波节点里面附带有函数“快速渐变-3D纹理,选择这个就是在采样柏林噪波体积纹理

这个节点需要绝对世界位置作为 生成噪波的种子,图案非常小可以乘上一个小数值放大图案

接着我们设置Function为3D纹理,它们在3D空间中对噪波切片进行采样,并将这些切片组合成一个体积纹理,并不是做大量的计算,下面的等级越大,就越消耗性能,默认六级,所以它仍然在做6个纹理采样和96个指令,每个等级1个纹理采样和16个指令,然后还可以设置最小和最大的输出值

function的Voronoi(沃罗诺伊)创造了这种类似细胞的结构,某些情况很有用

程序化噪波可以是体积的(或者说可以是三维的),当球体在场景中移动时,它就是在噪波的体积当中移动,因此噪波是存在于世界空间中的,当我的模型表面与它相交时,在世界空间中特定位置的噪波图案是什么样子的,就会跟着应用到模型的表面上,所以移动模型时就得到了不同的图案

二.覆雪树干着色器

我们的目标是创造一个白雪皑皑的森林,如果你想让森林中的每一棵树都不一样,需要单独打开每棵树并设置独特的纹理,这显然不太现实,但是程序化噪波可以为每一棵树生成不同的外观。

首先将绝对世界位置连接噪波节点,图案并没有发生变化,因为这是默认使用的内容,所以要乘上一个值得到合适的大小。然后将噪声的level设置为3,并且不需要湍流,并且设置乘3D纹理,然后限制到0-1之间,用power提高对比度。

然后就可以根据噪波纹理进行插值,设置一个雪的颜色,比白色深一点,因为PBR的颜色值不会一直上升到白色,然后在这再加一点淡淡的蓝色,这只是因为雪会反射天空

然后修改一下世界位置的缩放和树皮的平铺

但是我想确保树干的底部总是有雪,我可以乘以世界空间位置的Z分量,如果我想让融化的雪在树干的某一面出现,我可以用雪的蒙版乘以法线的Y分量。

如果放置一棵树在场景中,雪的位置就会根据世界位置改变,所以每一棵树都会有不同的雪的图案。

三.岩层着色器

需要用这个纹理来模拟岩层。

我想让这些岩石在任意方向旋转的同时,仍然能投射出地质岩层并且保持它的一致性。所以我需要使用绝对世界坐标来采样纹理。

接下来加入噪波,将噪波乘上一个常量以后与z值相加。现在就好像不同岩层的岩石互相混合了

但我认为混合的比例仍然是不合适的,还要修改一下噪波的大小,所以将绝对世界位置乘上一个常量以后连接到噪波

ok,现在可以把这个纹理与采样的岩石纹理进行混合,无论怎么旋转,都会有一种统一感。并且可以无限叠加创造不同的岩石资产

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

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

相关文章

ArrayList和顺序表(下)

1. Java本身提供的ArrayList 在ArrayList和顺序表(上)那一节里面,我们自己实现了ArrayList的底层大部分代码,在这个基础上,我们就可以开始来了解Java本身提供的ArrayList. 1.1 ArrayList的三种构造方法 方法解释ArrayList()无参构造ArrayList(Collection<? extends E > …

‌ComfyUI 高级实战:实现华为手机的AI消除功能

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 不知道大家是否还记得华为 Pura 70的「AI消除」事件&#xff0c;当时使用 华为Pura 70 系列手机的智能消除功能时&#xff0c;该功能可以被用来消除照片中女性胸口处的衣物&#xff0c;这一功能曾引发广泛的关注和伦…

OpenAI Canvas最新发布,编程和写作迎来全新史诗级加强!

文章目录 零、前言一、GPT-40 with canvas操作指导写作领域加强建议编辑调整长度阅读水平添加最后的润色添加表情 编程领域加强选中代码问问题添加评论&#xff08;添加注释&#xff09;添加日志转换语言代码审查 二、感受 零、前言 最新消息&#xff0c;国庆期间OpenAI有大动…

使用管理员删除垃圾文件

1、先设置为管理员权限 2、执行删除文件命令 使用&#xff1a;del /f /s /q “文件夹位置”例如&#xff1a;del /f /s /q "C:\Program Files (x86)\my_code\.git"

2024深圳秋季糖酒会参会攻略!建议收藏

10月29日-31日&#xff0c;第111届全国糖酒商品交易会将在深圳国际会展中心&#xff08;宝安&#xff09;举办。本届糖酒会将邀请来自超四十个国家和地区的超4200家行业厂商和20万国内外专业观众到会交易交流&#xff0c;为食品酒类行业搭建一个集展示、交易、交流、合作于一体…

IP- guard产品版本升级指引详解

一、IP-guard服务器升级步骤 1、下载升级包(IPgUpgrade版本号.zip) 到IP-guard服务器 2、解压升级包,右键以管理员身份运行 (1)“升级包”解压 (2)右键以管理员身份运行“升级包” ࿰

报表工具如何助力企业报表开发?如何选择最适合的报表工具?一篇文章统统解答!

在当今瞬息万变的商业格局中&#xff0c;企业信息化建设已成为驱动业务飞跃与增强核心竞争力的核心引擎。然而&#xff0c;伴随业务数据的井喷式增长&#xff0c;企业在数据治理与价值挖掘方面遭遇了前所未有的挑战。数据孤岛、处理流程冗长、对业务动态调整反应迟缓&#xff0…

Leetcode 分割等和子集

这段代码的目的是解决 LeetCode 416 问题&#xff1a;分割等和子集&#xff0c;即判断一个只包含正整数的数组&#xff0c;是否能够将其分割成两个子集&#xff0c;使得这两个子集的元素和相等。 算法思想&#xff08;动态规划 - 背包问题&#xff09; 该问题本质上是一个经典…

Facebook减肥产品广告投放攻略

有不少刚开始投放facebook广告的小伙伴会感到疑惑&#xff0c;为什么别人的减肥产品跑的风生水起&#xff0c;销量羡煞旁人&#xff0c;自己的广告要不就是被拒要不就是没有流量&#xff0c;甚至还可能被封号&#xff0c;如果你也有这样的困扰&#xff0c;那一定要看完这篇文章…

组合式API有什么好处

什么是组合式API&#xff1f; 组合式 API (Composition API) 是一系列 API &#xff08;响应式API、生命周期钩子、依赖注入&#xff09;的集合。它不是函数式编程&#xff0c;组合式 API 是以 Vue 中数据可变的、细粒度的响应性系统为基础的&#xff0c;而函数式编程通常强调…

使用Python进行Web开发的15个框架指南

引言 在Python Web开发领域&#xff0c;有许多不同类型的框架可供选择&#xff0c;从轻量级到全功能型&#xff0c;再到专注于异步处理的框架。本文将介绍多个Python Web框架&#xff0c;帮助开发者根据具体需求选择合适的工具。 1.Flask&#xff1a;轻量级Web框架 Flask是一…

【C语言】深入理解指针(三)(下)

本篇文章将讲解以下知识&#xff1a; 1、二维数组传参的本质 2、函数指针变量 3、函数指针数组 1、二维数组传参的本质 有了数组指针的理解&#xff0c;我们就能弄清楚二维数组传参的本质了 例如&#xff1a; 在一维数组中&#xff0c;数组名是数字首元素的地址。但有两个例外…

【进阶OpenCV】 (10)--光流估计--->描绘运动物体轨迹

文章目录 光流估计一、基本原理二、计算步骤三、实现步骤1. 处理第一帧2. 寻找特征点3. 创建全零掩膜4. 流光估计函数介绍5. 主循环处理视频的每一帧5.1 流光估计5.2 绘制轨迹5.3 生成最终图像5.4 更新旧灰度图和旧特征点 6. 释放资源 总结 光流估计 光流估计是计算机视觉中的…

操作系统——磁盘管理

目录 前言基础实例1.1读取磁盘数据计算时间1.2磁盘调度算法1.3单双缓冲区1.4磁盘基础知识 前言 本文简述操作系统中有关磁盘的相关知识点&#xff0c;作为软件设计师考试资料复习 基础 磁盘管理是指对计算机中的磁盘进行有效地管理和使用的过程。磁盘管理包括以下方面&#…

软件测试工程师面试整理 —— 操作系统与网络基础!

在软件测试中&#xff0c;了解操作系统和网络基础知识对于有效地进行测试工作至关重要。无论是在配置测试环境、调试网络问题&#xff0c;还是在进行性能测试和安全测试时&#xff0c;这些知识都是不可或缺的。 1. 操作系统基础 操作系统&#xff08;Operating System, OS&am…

【Redis】网络模型(day10)

在本篇文章中&#xff0c;主要是对五种网络模型进行一个简单的介绍&#xff0c;然后对Redis4.0和6.0的网络模型进行一个概述。 用户空间和内核空间 在Linux系统上&#xff0c;分为用户空间、内核空间和硬件设备。硬件设备主要包括CPU、内存、网卡等物体&#xff0c;内核应用去…

垃圾回收器和垃圾回收机制(简单介绍,用于回忆总结)

文章目录 垃圾回收机制1. 分代收集2. 标记复制3. 标记清除4. 标记压缩&#xff08;整理&#xff09; 垃圾回收器1. Serial / Serial Old2. Parallel Scavenge3. ParNew收集器4. CMS收集器5. G1收集器 参考链接 垃圾回收机制 1. 分代收集 分代收集&#xff08;Generational Co…

吉时利KEITHLEY 2657A源表keithley2651A数字源表

Keithley 2657A 源表是一款高电压、高功率、低电流源测量单元 (SMU) 仪器&#xff0c;可提供前所未有的功率、精度、速度、灵活性和易用性&#xff0c;以提高研发、生产测试和可靠性环境中的生产力。 Keithley 2657A SourceMeter 仪器专门设计用于表征和测试高压电子器件和功率…

【隐私计算篇】一种批量匿踪查询友好算法PIRANA的原理分析

1. 背景分析 前段时间开展了批量匿踪查询算法迭代优化的工作&#xff0c;取得了一些进展。不得不说&#xff0c;甲方爸爸永远会提出非常有挑战性的目标&#xff0c;push你去想各种解决方案。在实际的算法研发落地上&#xff0c;我们会结合算法本身的机制改进以及工程优化这两方…

力扣hot100--二叉树

目录 二叉树 1. 94. 二叉树的中序遍历 2. 98. 验证二叉搜索树 3. 101. 对称二叉树 二叉树 1. 94. 二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示…