您需要 登录 才可以下载或查看,没有账号?注册
x
20.景观的程序性草和树叶今天我们将用植被把我们空荡荡场景丰富,所以为了将植被添加到我们的场景中我们将学习如何使用虚幻的草地工具。草地工具将允许您自动向场景中添加数千棵树和数百万片草叶这是一个非常强大的工具。这个工具也有潜力完全破坏了你场景的性能。
所以我今天将向你展示几种方法来制作密集的树叶而不会降低你的帧速率,然后我们首先进入虚幻世界我们需要决定要添加到我们场景中的植被,我们需要看一些参考。
我们将在平坦的地区种草, 然后在山坡上我们有这片岩石,肮脏的土地有针叶树有云杉和松树所以接下来我们需要做的是去我们的 quiksil 桥看看我们需要的资产。
温带植被云杉林
我们准本的资源
接下来我们来告诉虚幻要在那些位置出现什么样草
上期我们制作好的节点,我们继续在下面添加新的节点,定义草生长的位置
我们要先创建一个面具决定我们草生长在平坦地区的低海拔。一直用它来 混合我们的草和潮湿的石头
平坦区域变白色所以我要混合这个遮罩,然后链接我们景观草节点
我想要生成的草和这里的插槽采用一种特殊的节点称为草类型所以我需要做的是回到我的内容浏览器并为其创建草类型 创建好以后打开它你会看到一个灰色的大窗口它看起来相当空旷,点击+号添加我们草。
Density 密度
start cull distance 开始距离 end cull distance 结束距离
min lod 这将允许 我跳过lod
XYZ随机缩放
random rotation 随机旋转 align to surface 与表面对齐
receives decals 我要关闭接收贴花现在我要
回到我们材质节点,添加草
提高性能
降低草密度
通过将最小 lod 设置为 3 来减少多边形数量 我们将开始调用距离设置为200我们将结束调用结束距离1500 复制0层粘贴,修改参数更换我们植被,我们复制多层更换不同参数和植被做丰富我们的植被
接下来回到我们材质节点并为我们的树木创建一个面具,所以我需要做的第一件事就是在草节点下新建一个树。 使用泥土通道树木放在较低海拔的斜坡上 所以我需要在这里使用这个斜坡,我所有的斜坡都被遮住了,所以我会在有点陡峭的地方生成树木,然后我的树将出现在斜坡上而不是真正陡峭斜坡 而是平缓的斜坡上我的泥土
所以让我们切换回我们的我的坡度材料,你可以看到我在这里得到了这个角度混合,树木放在较低海拔的斜坡上。
所以我需要在这里使用这个斜坡我将添加一个饱和节点将使用一个减号节点然后我们将把这两个相乘现在我们将把它作为我们的污垢蒙版传入。
这里面我制作了十种树
21.草材质
将为我们的大型扫描草创建一个草广告牌材料,我们这样做有两个原因首先我们想让草广告牌 更有效地渲染所以它们的材料便宜一点,其次我们希望广告牌上有更好的照明以便它们与我们的普通草相匹配让我向您展示我在我的环境中移动时的问题您可以看到前景的草看起来很漂亮但远处的草看起来不太好。
我们找到草主材质复制后重命名简化里面节点,看起来更好一些您可以选择不这样做但在我的情况下我 想要 我的广告牌尽可能高效地渲染所以我将在这里去掉法线贴图 好了 我们需要对我们的材质做的最后一件事是修复法线
我要去广告牌的法线修改法线,使它始终朝着摄像机。
背景上的广告牌上的草的法线与前景中的法线更加匹配这将解决我们的照明问题
我们的草仍然有一个问题,比前景中的草浅所让我们解决这个问题
让我们回到广告牌实例在这里我们有我们的颜色叠加与风景相匹配,但背景中的后草明显更 亮为了解决这个问题 我们可以直接来到我们的材质实例 对于这个颜色叠加给到0.3
22.使用运行时虚拟纹理优化景观在今天的视频中,我们将使用运行时虚拟纹理来优化我们的景观渲染性能。
想要优化性能的第一件事,您需要确定性能瓶颈在哪里,以便您针对正确的功能进行优化, 所以我想向您展示的第一件事是查看场景帧率,你可以看到我们目前每秒获得大约 45 46 帧,我们的场景在 21 毫秒内渲染, 我们需要做的第一件事是确定帧速率是否由于cpu瓶颈或 gpu 瓶颈而变慢为了能够做到这一点,我现在需要更多信息,我只有帧速率和帧时间,但实际上我需要知道 CPU 占用了多少时间以及占用了多少时间gpu占用的时间, 所以我要按波浪号键调出命令提示符,然后在此处键入stat unit,这将增加此处帧速率计数器提供的信息, 可以看到它给了我几个新的计数器帧率、绘制、gpu和其他一些所以首先帧这是计算机现在绘制每个帧所花费的时间它有点超过21毫秒 然后你可以看到我有这些其他三个类别Game、Draw和gpu都发生在CPU上,但您可以看到我的gpu需要21毫秒,而我的cpu游戏和Draw一起需要五六毫秒,显然我的瓶颈在gpu上 所以这是一个很好的第一步,我已经确定我需要优化gpu正在做的一些事情来提高性能,所以接下来我们需要做的是在这里,我将选择 stat advanced gpu,这将给我一些统计数据,向我展示 gpu 正在做什么, 所以这里是统计数据,我很抱歉这里的文字有点小screen但这是gpu正在做的所有最昂贵的事情的列表,以及他们每个人花费的时间,列表按花费的时间最长排序, 如果我在这里查看顶部,它会说基本通道花费的时间最长、渲染基本通道需要9毫秒多一点。基本通道是什么? 只是场景中的所有对象都渲染到屏幕上,知道下一个最昂贵的事情是预通,然后是屏幕环境遮挡和后期处理效果以及诸如此类的事情,但这告诉我的是,仅将简单的基本对象绘制到场景中到屏幕所花费的时间最长。 我做的下一件事需要做的是弄清楚屏幕上的哪些对象是昂贵的,所以我要在点亮的菜单下来到这里并选择优化
给每一个被绘制的物体着色 这个渐变告诉我绿色是好的或者它是一个便宜的着色器,
红色是相当糟糕的,然后如果我们到白色我们真的在我们的场景中遇到了麻烦可以看到我们的草是绿色的,这意味着这是一个相当便宜的着色器绘制,
但景观是这种棕色,它不是红色,但它是这种棕色,这向我表明我可以做一些事情来提高我的景观的渲染性能,这就是我们今天的重点, 我们将使用一种称为运行时虚拟纹理的技术来提高景观的渲染性能。
切换回我们的光照模式我想谈谈现在的运行时虚拟纹理是什么, 如果我选择我的风景主材质可以看到我的材质使用了 324 条指令,并且使用了16 个纹理采样器中的 4 个,此外它还在像素着色器中使用了 43 个纹理查找,因此这是一种相当重的材料,它不是最重的,但它可能会更好
所以我们现在要做的是计算所有纹理样本和所有混合,以及所有基于高度的蒙版和这种材质中每个像素的所有内容都是实时的, 我们可以只渲染它们一次然后在每次我们想绘制它时参考那个渲染到屏幕上这就是我们将要对运行时虚拟纹理做的事情。我们将采用所有这些着色器数学并将其渲染为一个大纹理,我们将只做一次然后在每个人身上帧而不是做所有这些着色器数学,我们只是要查看和采样我们渲染的纹理,而不是为每一帧的每个像素做所有这些数学,我们只做一次然后采样我们渲染的纹理这是一个非常酷的技术。 所以让我完成如何设置它的步骤,我们需要做的第一件事,我们将在这里进行引擎渲染,然后向下滚动现在转到我们的虚拟纹理部分,
回到我们场景选中地形,在细节面板上我们需要向下滚动到虚拟纹理部分,并且有一个数组零元素,所以我们将在这里点击这个加号 按钮向我们的数组添加一个元素来放置一个纹理,它将用作
放置运行时虚拟纹理
它放下来选择我的风景 再次选择我们刚刚创建的虚拟纹理
接下来设置我们地形材质,添加几个新节点以便我们可以渲染到运行时虚拟纹理中,
此处有一个称为运行时虚拟纹理 示例的节点,连接到主材质然后修改属性右图
回到我们的场景对我们创建的运行时虚拟纹理的一些设置,选择我们的地形在细节面板中双击红框 增加我们虚拟纹理大小
查看效果
您现在可以看到我的景观材质呈现绿色,因此我们 显着降低了渲染景观的成本 帧速率增加到了每秒 68 帧左右 gpu统计由原来21帧变成12.46
虚拟纹理 技术显着提高了我们的景观和场景的渲染性能原因是正如我所说的, 而不是在每一帧的每个像素上渲染所有的材质逻辑,我们只是将其渲染成一系列然后在我们想要渲染我们的景观时对这些纹理进行采样 我应该说的另一件事是 ,这种技术正在用内存换取性能,因此我们使用相当多的内存来存储这些运行时虚拟纹理但作为交换,我们能够在我们的场景中获得更快的帧速率和更好的性能,
还有另一件非常酷的事情我们可以用运行时虚拟纹理来做 ,这就是我下周要向你展示的内容包括将资产与您的地形混合,因此如果您将一块岩石推入地形,它看起来就像是无缝混合好像岩石是从地形本身中冒出来的,而不是强硬的路线,这就是我下周将向您展示的方法。
23.景观材料混合与运行时虚拟纹理今天我将向您展示如何改善与景观相交的岩石和其他物体的外观,我们将在这里通过混合岩石材质和景观材质来平滑这种困难的过渡(作者修改自定义节点详见视频取消了相机设置)
在我们继续今天关于混合岩石和其他景观对象的视频之前,向您展示远处的山地表重复比较多,改善景观平铺的策略所以我将不得不在未来的视频中讨论这一点但现在我们先这样。 直接进入混合岩石和其他物体的部分,我们今天要解决的问题是这里的岩石与景观相交的地方之间这条非常坚硬的接缝,我们想要做的是从我们的运行时虚拟纹理中采样,然后混合景观纹理与岩石纹理相结合。这样我们就可以抚平这个坚硬的接缝,所以我们需要编辑岩石上的材料。 但在我们这样做之前还有另一件非常重要的事情,我们需要确保我们将景观中的高度数据存储到运行时虚拟纹理中,因此我将选择地形然后详细信息中虚拟纹理它存储了我的颜色、粗糙度 镜面反射和法线数据我将在 此处添加另一个虚拟纹理,要放弃这个并创建一个新资产一个新的运行时虚拟纹理高度。点击进去设置
我们还需要在建立一个新的运行时纹理,设置范围并将其高度数据渲染到第二个纹理中
您可以 看到我有这个 ms 默认材质置换材质,我们复制一个双击材质球准备修改。 我们新建一个运行时虚拟纹理高度进行采样这将给我们在世界空间中我们的风景所在的高度我们需要找到我们当前正在渲染的对象的高度。
我们需要找到我们当前正在渲染的对象的高度,我可以使用世界位置节点来做到这一点,使用mask蓝色通道减去世界高度。所以这会给我的是从风景到当前像素的距离到我正在渲染的当前像素的距离我接下来需要做的是获取边界,我当前正在渲染的对象的框所以我可以用一个名为 object bounds 的节点,来做到这一点所以我要引入边界框再次使用上面mask,我需要将它与我的对象的整体高度一起添加我还需要给自己一个控制这将允许我改变物体的高度,在添加模糊控制边缘的混合。
实际创建混合 所以我需要添加一个新的运行时虚拟纹理对颜色进行采样
所以现在我需要添加几个 lerp 节点我将按住L+鼠标左键创建
因为我创建的这个材质,现在专门针对这个特定关卡中的特定景观。所以如果我想把这块石头放在另一个关卡中虚拟纹理所以我需要命名我需要为这块岩石制作另一组材料并将特定于该景观的材料分配给这块岩石,如果我可以曝光它那将是最理想的,这里的材质槽是一个可以在实例中调整的参数这样我就可以为每个级别创建自定义实例,而不是为每个级别创建自定义材质但我认为这实际上无法在引擎中执行它这是它一个弱点。 我希望你们喜欢今天的视频并且您能够采用这种技术
24.4.26水系统的河水(详细见教程)今天我们将使用虚幻 4.26 中的程序水系统,向我们的场景中添加一条河流在添加河流之前,我们需要做几件事来设置它 首先我们需要激活系统需要的两个插件所以我将在插件中开启重启编辑器。
关于水系统,如果你尝试添加水系统尤其是一条河流添加到像我们这样的 8k x 8k 的景观中它绝对会破坏性能我的意思是我们每 10 秒讨论一帧 onds 所以这完全是不可能的我们将不得不使用较小的景观来添加水
我学到的第二件事是整个景观的高度必须高于零所以我们” 需要 将我们的景观向上移动以便它的任何部分都没有负高度
所以现在我们又回到了我们巨大的 8k x 8k 景观,我们需要做的第一件事就是缩小我们的高度图以便我们可以再次创建它,使用较小的版本所以我将继续跳转到 photoshop 在 photoshop 中我们需要做的是缩小我们高度图然后重新回到UE导入高度图,添加虚拟纹理和地表材质五分钟内我们刚刚完全重建了那个环境就像我说的如果我们之前在我们手工创建的环境中这样
添加我们今天要关注 的水体河流但你也可以添加海洋和湖泊
然后给它加水但这个新系统会改变地形使其与水相适应它 的工作方式是你可以看到我在这里
25.水系统的抛光(详细见教程)上周我们在场景中添加了一个程序河流,在我们的场景中。感觉水真的不合适这周我们要在水的材料中加入抛光剂并设置河流以便它为我们的景观汽车材料做出贡献开始吧!
好吧我们要做的第一件事就是编辑河流的材料让它感觉不像加勒比海的海水,而更像山间溪流 所以我们修改我们程序化地表,使得凹陷处不在有植被而是替换成我们石头 我们修改地形主材质手动刷河床这一部分地表贴图,我们的石头就会自动生成。大小、密度、旋转随机。
26.水上浮力(详细见教程)在今天的教程中我将向您展示 一种快速而简单的方法,让这个木头这样的物体漂浮在你的水面上,所以让我们开始吧
好吧我们需要做的第一件事是让物体漂浮在我们的水面上,首先我们有这样一条河流,下一件事情向场景中添加一个可漂浮的对象。所以我们再要做的是来到内容浏览器中的视图选项我们将打开显示引擎内容并显示插件内容以便能够看到他们添加 并将它拖到我们的场景中 你可以看到它 在右侧选择我们bp替换我们实际漂浮模型。
27.交互式水为您的水添加动态和互动的力量,首先要保证水插件开启,这个插件有个问题没有泡沫的文件
添加后效果
28.浮力系统(详细见教程)在这个视频中我将向您展示 如何同时使用浮力系统和流体模拟系统 来制作一个漂浮的日志并产生
29.水坑(详细见教程)在今天的教程中我将向您展示如何将程序生成的水坑,添加到您的景观中让我们开始因为这是一个相当复杂的效果。我决定今天将它分成两个教程。我们只是去专注创建一些基本的水坑然后在下周的教程中我将继续向水坑添加正常涟漪和雨水涟漪
因此我们需要做的第一件事是创建一个蒙版确定水坑位置,创建新的材质函数我将调用这个天气 水坑面具
现在我们面具覆盖整个地形,所以我们要给平坦区域做一个面具这很容易。要做到这一点我可以在世界空间中引入顶点法线,然后向其添加一个组件蒙版以掩盖蓝色通道。我将在此处取消选中 r 和 g 然后选择 b 使我向上部分正常,然后我要饱和,最后我将结果提高到 80 的幂只是为了增加一大堆对比度,然后这是我的面具在这里我要乘我的面具根据我的结果然后我将在这里做一些小调整我将乘以1.1以确保在乘以这个面罩后,实际上一直上升到白色然后我要使结果饱合后。我要添加更多对比度我将添加这个称为廉价对比度的节点,然后我将添加一个常量值并给它一个廉价的对比度值2这将用于我的水坑面具
所以接下来我要做的事情 需要做的是创建一个新的材质函数
30.水坑涟漪(详细见教程)在今天的视频中我们将 采用上周制作的简单无聊的水坑并为它们添加雨波纹和风波纹
开始吧我们上周结束时我们有水坑基本上我们今天要做的是添加雨波纹和风波纹所以你需要做的第一件事就是回到我前段时间制作的教程。第17集 接下来要做的是创建一个新函数 风波函数
新建函数
看起来 已经更好了所以我们的水坑看起来很逼真 风在吹风在创造这些非常漂亮的 涟漪它不再像以前那样死气沉沉 所以如果我们愿意我们可以把它
雨水也会在水坑中产生雨水涟漪所以我们要去回到 第 16 集 雨和风合并实力材质中,我们可以控制水坑的颜色不透明度 风量,控制有多少雨水打在水坑上我们有很多很好的控制
31.虚幻的天空和氛围(详细见教程)在今天的教程中我们将添加 雾和气氛到我们的场景中。
我们开始使用日模板它自动为我们提供了一个 定向光我们场景中的天空氛围天空穹顶网格天窗 和体积云元素这些已经设置
选择灯光 我要按住ctrl+L移动鼠标,控制这个小部件,当我移动我的 光线射向地平线整个场景都变成了这种黄 橙色它模拟了地球 大气
还缺少主要东西是一种深度感可以看到 远处没有雾,我们接下来要做的是添加一些高度指数雾,这种高度指数雾有一个问题那 就是它自己独立工作这不是我们希望它工作的方式我们
我们的天空气氛需要做的是设置它们以便它们 从天空气氛继承而不是覆盖因此在编辑下 我们将打开我们的项目设置 回到我们的指数高度雾,散射颜色的雾设置 为黑色,我们要设置散射颜色的方向也是黑色,这些值与 我们已经设置的场景相加。
接下来在我们的场景中添加一些光轴 所以我要来这里并选择 我的定向光 我将我的属性向下滚动我将打开光轴
32.体积云(详细见教程)今天我们将讨论 6 个 控制体积云系统在虚幻中的质量界面的许多地方 不同的地方所以我想确保您知道所有 这些以及在观看此视频后在哪里可以找到它们您 应该很好地掌握如何
下来这里图层你可以 看到我们的图层底部高度当前设置 为 5 公里我们将图层高度设置为 10 公里这些控件控制云在天空中的开始位置它们实际到达多高我们 目前将其设置为 10 公里 在此处设置的时钟云体积越小性能越好9(实际根据你想要的样子设置)默认设置是 为了让云看起来非常漂亮和戏剧化但 它们的成本也有点高所以
33.体积云材质(详细见教程)在今天的视频中我将带您参观默认的体积云材质 并描述所有这些疯狂的节点在做什么,开始吧所以我们将 看看体积云
主要组成部分 带有体积噪声的基本云形状带有第二层体积噪声的额外 噪声 在这两者之间以高度 梯度混合然后这部分图表 具体讲解如何使用以及优化性能。
|