meshmellow school

微信登录

查看: 2988|回复: 0

在UE4中结合MEGASCANS资产

[复制链接]

223

主题

228

帖子

979

积分

高级会员

Rank: 4

积分
979
发表于 2020-2-11 17:11:56 | 显示全部楼层 |阅读模式
实时技术使得在短时间内创造出惊人景观成为可能,但是仍然没有已知方法来创造地形并将其与多个物体融合。在本教程中,我们将探索最常见的工作流来帮助您实现这一点,并讨论它们的优缺点。


我们将要建立一个简单的土地,被炮火攻击的土地。对于这个场景,我们使用了“潮湿的土壤”、“割草2×2 M”和“草丛”。开始的时候,选择资产。


WorldAlignedTexture
image14.jpg
我们将要研究的第一种方法是WorldAlignedTexture,这是三维贴图的一种形式。三维贴图背后的想法是,你从对象的正面、侧面和顶部/底部投影一个贴图,让你的贴图无缝过渡。
image19.gif
来源:三维着色器的普通贴图
通过使用Unreal Engine的“WorldAlignedTexture”(WAT)节点,可以获得类似的结果。
我们希望将纹理和平铺参数输入WAT节点。
image4.png
创建一个“贴图对象”节点,并将贴图指定给它。然后需要将贴图插入WAT节点的“TextureObject”输入。
您可以通过创建一个float3向量来控制所有XYZ轴上的平铺,如下面的屏幕截图所示。
image23.png
作为一个侧重点,如果您想控制横跨每个单独轴的平铺,只需使用一个3向量节点,该节点具有用于控制每个轴的平铺量的RGB参数。
当使用这种技术时,完全成熟的材料PBR设置如下:
image25.png

image17.png
你可能已经在GIF中注意到,从球体到平面的光线过渡非常锐利,这是这种方法最大的缺点。您可以编辑几何体的顶点法线,但这是一个复杂得多的工作流,需要大量的工作。
如果你对光缝问题很在行,那么这种技术可以在没有性能成本的情况下产生很好的效果,特别是与其他混合技术相比。
下载“WorldAlignTexture”材质设置:https://blueprintue.com/blueprint/101g7t_k/


像素深度偏移
image5.gif
在“WorldAlignedTexture”设置中,每当两个对象相交时,都会出现灯光接缝问题。使接缝不那么明显的一种方法是“像素深度偏移”(PDO)工作流。
此工作流本质是添加抖动,这是一种旧技术,用于通过使用随机噪声值模拟透明和非透明像素来创建平滑渐变的外观。
要创建抖动效果,让我们在材质中添加一个“dithertemporala”节点,并将其乘以一个常量。然后,“乘法”节点的输出需要输入到材质节点的“像素深度偏移”输入中。
image22.png
最终的结果是你的地形和任何可能与之相交的任意对象之间的一个非常整洁的抖动过渡。
就像生活中所有的好事一样,这种技术也有一些缺点。PDO设置的工作原理是从相机中推送某些像素,这会导致伪透明度。
当设置为低值时,相交区域(本例中为球体底部)将逐渐淡入,给我们一种混合的错觉。但该值越高,将更多像素进一步推入场景中,这会导致几何体本身和光影精度上出现伪影。
虽然像素深度偏移提供了许多好处,但在处理场景时应记住:物体越小,交集越好。
下载PDO材料设置:https://blueprintue.com/blueprint/bwa_kbpc/


距离场网格混合
image9.gif
也许最有希望的是,“距离场网格”混合允许我们通过在任何给定的交叉点混合灯光来创建真实的交叉点,而所有这些都没有前面提到的抖动问题。


距离场混合需要比通常多几个步骤。
首先,您需要通过进入“设置>项目设置”来启用,然后在搜索栏中键入“距离场”,并确保已启用“生成网格距离场”:
image18.png
系统将提示您重新启动Unreal以使其生效。
接下来,你需要确保你的网格(你想融入地形的对象,而不是地形本身!)在参与者的属性中取消选中“影响距离场照明”选项:
image20.png
这就是项目/网格设置!接下来,我们需要创建一个材料设置,帮助我们控制这种效果。
要复制的设置如下:
image10.jpg
您在右侧看到的输出(以粉色突出显示)将进入材质节点的正常插槽,可以使用“混合距离”参数控制混合强度。
记住,此工作流不会混合地形和网格的纹理,它只会沿地形上的相交点平滑网格的法线。为了充分利用它,可以在网格上使用“WorldAlignedTexture”工作流,并为它们提供与地形相似的贴图集,这将有助于创建更逼真的混合。
由于禁用了“影响距离场照明”,使用此技术意味着您将无法访问该参数的网格上的“距离场环境光遮挡”或“距离场阴影”。
这种技术也相当昂贵,除非真正了解项目的性能预算,否则不推荐用于生产。但对于投资组合的需要,它可以做得很好,并真正为您的开放环境提供了优势。
材料下载链接:https://blueprintue.com/blueprint/bqo9vg8i/


运行时虚拟贴图
image12.gif
我们可以使用的最后一个选项是一个相对较新的功能,并且很可能是我们中的许多人将要为我们的网格混合需求解决方案,因为该功能很稳定且相当有潜力。
“运行时虚拟贴图”或RVT在运行时使用GPU按需生成texel数据。这对于大面积的区域(如景观阴影)尤其有用。


这种方法需要比距离场混合多几个步骤,但过程相当简单:
首先,在“引擎/渲染”下的项目设置中启用“虚拟贴图支持”。这将使所有未来的贴图导入默认为“虚拟贴图”类型,因此请记住这一点。在这种情况下,Megascans集成会自动将贴图转换为默认类型。
image1.png
在我们的地形材质中,让我们创建一个“运行时虚拟贴图输出”节点,并将我们的基色、镜面反射、粗糙度、法线和不透明度路由到它。向下放置一个“Absolute World Position”节点,并在选中蓝色通道的情况下通过组件掩码路由该节点。这会插入到RVT输出节点的“世界高度”管脚中,它从我们的地形中提供所有必要的信息。
image6.png
接下来让我们在内容浏览器中创建一个RVT。右键单击,导航到材质和纹理,您将在那里找到“运行时虚拟贴图”。点击这个并命名为方便的名称。


现在,我们将虚拟贴图添加到场景中。在我们刚刚添加的RVT的详细信息面板中,我们需要添加我们的源参与者(我们的地形)和我们刚刚在内容浏览器中创建的虚拟贴图。首先,让我们通过点击滴管并选择我们的地形组件来获得源。接下来,让我们把之前制作的RVT添加到虚拟贴图槽中。最后,单击“复制旋转”和“复制边界”以确保体积符合地形的尺寸。如果需要手动缩放音量,请在此时进行。
image8-1.png
与距离场混合一样,我们需要在网格和地形之间生成一个交集。让我们再看看我们的陨石坑材料。我们将使用的设置是使用RVT“世界高度”的交集混合。这是4.24独有的,所以如果使用4.23,就无法实现这一点。为了实现我们的交集的梯度交点,我们需要从地形RVT的“世界高度”中减去我们的物体Z轴中的绝对位置。在此之后,我们可以根据需要调整结果,但在本例中,我们希望在颜色、粗糙度和法线之间进行混合,以获得场景的最佳外观。
image11.jpg
接下来,我们要禁用地形和对象材质的切线空间法线,这样就不会有粗糙的灯光接缝。
image21-1.png
最后,让我们在地形属性中启用“虚拟贴图”。单击地形组件,在“虚拟贴图”部分下,通过单击+按钮添加一个数组元素,然后将其设置为我们在内容浏览器中创建的RVT。
image3-1.png
RVT工作流为您的混合区域提供了自然的外观,而且该技术也不太昂贵。一旦位移得到支撑,这种方法将与距离场混合方法一样好,而不需要性能成本。
在地形上绘制时,您会注意到此工作流也会自动将绘制的纹理数据投影到三维对象上。
材料下载链接:https://blueprintue.com/blueprint/md12pcb5/


结论
资产混合仍然是一个未知的领域,虽然像RVT这样的技术正在为更好的质量/性能工作流铺平道路,但正确使用技术也相当重要。
距离场混合代表了当前最高质量和最昂贵的工作流,而与WorldAlignTexture结合为您提供了一个相当便宜的解决方案,但具有相当多的技术限制。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|meshmellow school

GMT+8, 2025-1-30 04:14 , Processed in 0.042869 second(s), 7 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部