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

【UE5.1】程序化生成Nanite植被

目录

效果

步骤

一、下载Gaea软件和树林资产 

二、使用Gaea生成贴图 

三、 生成地形

四、生成草地

 五、生成树林

六、生成湖泊

七、其它功能介绍

7.1 调整树林生成的面积

7.2 让植物随风飘动

7.3 玩家和植物互动

7.4 雪中树林

7.5 环境音效


效果

步骤

一、下载Gaea软件和树林资产 

Gaea链接:https://pan.baidu.com/s/1ZOjHW20MUL10Mynx0rQNTQ?pwd=j8jw 提取码:j8jw

树林链接:https://pan.baidu.com/s/11XpHnS_zvZG4BupN3ahyRA?pwd=dr61 提取码:dr61

二、使用Gaea生成贴图 

打开Gaea软件,选择一个地形“Stratifield Hill”

添加“Height”节点

右键点击“Shear”节点,选择“Pin as Underlay”

复制一份“Height”节点

点击“Inv”来选择反向颜色

添加一个“Growth”节点

更改一下参数“Spread”和“Wild Growth”的值

点击“Apply Changes”

添加“Combine”节点

重命名一下如下4个节点

选中如下5个节点然后点击“Mark for Export”

在右上角点击“Build”

导出格式全部选择png

分辨率选择1009

“Range”选择“Raw”,然后点击“Start Build”

导出的资源如下,复制一下导出的文件夹的路径

 三、 生成地形

1. 在编辑器偏好设置中勾选“程序化植物”

2. 在项目设置中,动态全局光照选择“Lumen”

阴影贴图方法选择“虚拟阴影贴图”

取消勾选“允许静态光照”

重启项目。

3. 新建Basic关卡,删除场景中的静态网格体“Floor”

4. 将下载的树林资产复制到项目的Content文件夹

5. 在“内容-》MWBroadleafForest-》Meshes”文件夹中筛选出静态网格体

全选

点击为选定项启用Nanite

随便拖入一个静态网格体,然后点击“Nanite可视化-》三角形”

如果看到可以显示如下效果表示Nanite正常开启

6. 选择“地形模式”,然后点击“从文件导入”

点击选择高度图文件

选择Gaea制作高度图“Shear”

地形材质选择“MTL_BF_Landscape”

如下4个图层全部点击“权重混合层(法线)”

Forest图层选择“叶子”图片

Moss图层选择“草.png”,Stones图层选择“石头.png”,Dirt图层选择“泥土.png”

点击导入

生成地形如下

四、生成草地

1. 切换回选项模式

2. 为了方便移动地形,这里先选中地形,然后点击鼠标右键,选择“锚点-》在此处设置枢轴偏移(对齐)”

再点击“锚点-》设置为枢轴偏移”

3. 让地形沿着Z轴向上移动

此时如果我们将视角拉近,可以看到只生成了石头,没有草地

4. 双击打开材质实例“MTL_BF_Landscape”后,就可以看到场景自动构建草地了

 五、生成树林

将“ProceduralFoliageVolume”拖入视口

更改一下“ProceduralFoliageVolume”的位置和缩放使其能恰好能覆盖整个地形

Ctrl+D复制5份“ProceduralFoliageVolume”

选中“ProceduralFoliageVolume1”,植物生成器选择“PFS_BF_Debris”

选中“ProceduralFoliageVolume2”,植物生成器选择“PFS_BF_Rocks”

选中“ProceduralFoliageVolume3”,植物生成器选择“PFS_BF_Stones”

选中“ProceduralFoliageVolume4”,植物生成器选择“PFS_BF_Trees”

 选中“ProceduralFoliageVolume5”,植物生成器选择“PFS_BF_TreesMedium”

分别选中5个“ProceduralFoliageVolume”,然后在细节面板中点击“重新模拟”按钮

此时效果如下

六、生成湖泊

 如果想生成水的话只需将蓝图“BP_MW_Water”拖入场景

改一下缩放

将“Dirt Material”选项设置为材质“MTL_BF_WaterDirt”

七、其它功能介绍

7.1 调整树林生成的面积

如果只想在山头上生成树林,我可以将5个“ProceduralFoliageVolume”的位置向上移动,使其覆盖范围只包含山头,然后再次点击“重新模拟”按钮,此时就可以看到只有山头上有树林了

7.2 让植物随风飘动

将蓝图“BP_MW_Wind”拖入场景 

可以通过修改参数“Intensity”和“Speed”来修改风的强弱和速度

 此时可以看到所有植物随风飘动:

7.3 玩家和植物互动

将蓝图“BP_MW_PlayerPosition”拖入场景

此时运行游戏可以看到玩家经过小植物时会有互动效果,经过大树则会被阻挡

7.4 雪中树林

 将蓝图“BP_MW_Winter”拖入场景 

运行游戏即可看到雪中的树林

如果想回到春季,可以将 “BP_MW_Winter”中的参数“Autumn Amount”设置为0,就可以将叶子改回绿色

然后将蓝图“BP_MW_Winter”删除即可去除雪景

7.5 环境音效

 将蓝图“SND_MW_ForestAmbientBirds”拖入场景来模拟鸟鸣声。这里还提供了水流声和暴风雪的声音。

可以修改音量

参考视频:

https://www.bilibili.com/video/BV1M44y1o7pP/?spm_id_from=333.788&vd_source=36a3e35639c44bb339f59760641390a8

相关文章:

【UE5.1】程序化生成Nanite植被

目录 效果 步骤 一、下载Gaea软件和树林资产 二、使用Gaea生成贴图 三、 生成地形 四、生成草地 五、生成树林 六、生成湖泊 七、其它功能介绍 7.1 调整树林生成的面积 7.2 让植物随风飘动 7.3 玩家和植物互动 7.4 雪中树林 7.5 环境音效 效果 步骤 一、下载Ga…...

【软件工程】漫谈增量过程模型:软件开发的逐步之道

🍎个人博客:个人主页 🏆个人专栏: 软件工程 ⛳️ 功不唐捐,玉汝于成 目录 前言: 正文 增量过程模型(Incremental Process Model) 主要特点和阶段: 优点&#xff1…...

Android Camera

1. 相关的API Android有三套关于摄像头的API(库),分别是Camera、Camera2和CameraX,其中Camera已废弃,在Android5.0以后推荐使用Camera2和CameraX,Camera2推出是用来替换Camera的,它拥有丰富的API可以为复杂的用例提供…...

Python开发雷点总结

数值运算(加减乘除) 1. invalid value赋值 当变量本身具有数值属性(后续会参加数值运算),对invalid value设置应该为np.nan, 而非None;反之,容易抛出以下错误: TypeEr…...

Linux中磁盘管理与文件系统

目录 一.磁盘基础: 1.磁盘的结构: 2.硬盘的数据结构: 3.硬盘存储容量 : 4.硬盘接口类型: 二.MBR与磁盘分区: 1.MBR的概念: 2.硬盘的分区: 为什么分区: 2.表示&am…...

Vue2+element-ui 实现select选择器结合Tree树形控件实现下拉树效果

效果&#xff1a; DOM部分 &#xff1a; // 设置el-option隐藏的下拉选项&#xff0c;选项显示的是汉字label&#xff0c;值是value // 如果不设置一个下拉选项&#xff0c;下面的树形组件将无法正常使用 <el-form-item label"报警区域" prop"monitorId"…...

LINUX 解决系统卡死:扩大内存交换分区

最近电脑总是卡住&#xff0c;让我很是苦恼。运行程序时发现可能是内存占满之后导致界面卡住。下面是在我16G内存的电脑上折腾的过程与结果&#xff1a; 查看当前的交换内存大小free -m&#xff08;单位&#xff1a;-m选项表示以兆字节&#xff08;MB&#xff09;为单位显示内…...

Vue项目Nginx代理F5刷新出现404问题解决

一.背景 项目用户反馈&#xff0c;F5刷新后&#xff0c;浏览器出现404。最近公司加强网络管理&#xff0c;我记得之前可以刷新&#xff0c;有点怀疑是跟加强网络管理有关。具体原因没有时间去深度跟踪&#xff0c;先百度找到了解决方法&#xff0c;记录一下。 二.解决办法 主…...

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一&#xff1a;没有添加 自动转化的配置&#xff0c;且domain中的属性名称和数据库的字段名称一致测试二&#xff1a;没有添加自动转化配置i&#xff0c;domain属性名userPassword和数据…...

css中的BFC

定义 BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域&#xff0c;只有Block-level box参与&#xff0c; 它规定了内部的Block-level Box如何布局&#xff0c;并且与这个区域外部毫不相干。 涉及概念 box Box 是 CSS 布局的对象…...

音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?

音视频App已然成为了我们日常获取、发布和交换信息的重要方式&#xff0c;在音视频行业不断的拓展中&#xff0c;用户的渗透率提升。 据数据显示&#xff0c;我国网络视听用户的规模已达9亿人次&#xff0c;网民使用率也突破了90%。庞大的市场规模和用户需求吸引了大批开发者和…...

基于llama-index对embedding模型进行微调

QA对话目前是大语言模型的一大应用场景&#xff0c;在QA对话中&#xff0c;由于大语言模型信息的滞后性以及不包含业务知识的特点&#xff0c;我们经常需要外挂知识库来协助大模型解决一些问题。在外挂知识库的过程中&#xff0c;embedding模型的召回效果直接影响到大模型的回答…...

如何本地搭建FastDFS文件服务器并实现远程访问【内网穿透】

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…...

spring基于Xml管理bean---Ioc依赖注入:对象类型属性赋值(2)----内部bean的引入(bean和bean之间的引入)、(3)级联方式注入

bean创建对象类型赋值方式 第一&#xff1a;外部bean的引入 第二&#xff1a;内部bean的引入 第三&#xff1a;级联属性赋值 文章目录 bean创建对象类型赋值方式对象类型内部bean赋值代码分析总结 对象类型属性级联方式的赋值扩展知识 对象类型内部bean赋值 代码分析 <b…...

Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类

目录 前言 1 电能质量数据集制作与加载 1.1 导入数据 1.2 制作数据集 2 CNN-2D分类模型和训练、评估 2.1 定义CNN-2d分类模型 2.2 定义模型参数 2.3 模型结构 2.4 模型训练 2.5 模型评估 3 CNN-1D分类模型和训练、评估 3.1 定义CNN-1d分类模型 3.2 定义模型参数 …...

如何解决报错:Another app is currently holding yum lock?

在运行yum 相关命令的时候&#xff0c;不知道怎么回事无法进行下载安装&#xff0c;报出 Another app is currently holding the yum lock; waiting for it to exit... 的错误提示。 Another app is currently holding the yum lock. 意思是另外一个应用正在锁住进程锁。 …...

electron使用electron-builder进行MacOS的 打包、签名、公证、上架、自动更新

一、前言 由于electron在macOS下的坑太多&#xff0c;本文不可能把所有的问题都列出来&#xff0c;也不可能把所有的解决方案贴出来&#xff1b;本文也不太会讲解每一个配置点为什么要这么设置的原因&#xff0c;因为有些点我也说不清&#xff0c;我尽可能会说明的。所以&…...

RAD Studio 12 安装激活说明及常见问题

目录 RAD Studio 安装说明 RAD Studio 最新的修补程序更新 RAD Studio 产品相关信息 Embarcadero 产品在线注册步骤 单机版授权产品注册注意事项 Embarcadero 产品离线注册步骤 Embarcadero 产品安装次数查询 Embarcadero 序号注册次数限制 EDN账号 - 查询授权序号、下…...

JavaScript实现视频共享

1.视频共享webrtc-master index.html <!DOCTYPE html> <html> <head><script typetext/javascript srchttps://cdn.scaledrone.com/scaledrone.min.js></script><meta charset"utf-8"><meta name"viewport" cont…...

uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)

文章目录 ⭐前言&#x1f496; 小程序系列文章 ⭐uni-file-picker 组件&#x1f496; 绑定事件&#x1f496; uploadFile api&#x1f496; 自定义上传 ⭐后端fastapi定义上传接口⭐uniapp开启本地请求代理devServer⭐前后端联调⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是ym…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...