Houdini 这功能必须要学会!丨WC高度图如何设置才能正确显示在Houdini丨技术拆解02节...
地形教程Game艺视界原创 40021 0
实名

通过了实名认证的内容创造者

发布于 2022-3-23 16:33:16

您需要 登录 才可以下载或查看,没有账号?注册

x
05b285ca77969db2831ddf4424227d0e.png
本期内容
如果我们在wc中制作好的我们的地形,那么接下来我们将其导入到Houdini进行加工处理

下面说下导出参数配置
地形高度图为:16位png
导出引擎:如果我们要直接导入UE5可以直接选择ue就可以,导入Unity选择Unity。但是我们今天要导入Houdini为什么也选择Unity经过测试选择Unity后下面Y轴参数输入到Houdini中与wc中地形高度相符(这个导出结果仅个人测试)然后导出

97577eaf4d68ccc41fd1b16a52fdf140.png


我们来到houdini通过高度图形式还原wc中地形
我们在Houdini中新建Geo节点双击进入内部,新建我们高度场文件节点

我们看下节点内重要的几个参数
source
cop:使用合成网络的输出而不是文件。
File:[tr]用于生成图像数据的合成网络的路径,当[tr]使用 COP[tr]开启
下面就是我们网格或高度图位置
Reload File:单击可从磁盘文件重新加载图像数据。
Channel通道:Luminance亮度(高度图以那种模式读取)
Type类型:Height Fodld、Mask(两种模式)选择要用作高度字段/遮罩值的数据通道。

size
size Method尺寸:
Size of Largest Axis/最大轴尺寸
使图像的最长边为中指定的大小大小参数,并按比例设置另一侧的大小。
Grid Spacing/网格间距
为图像中的每个像素创建体素,网格点之间的距离。
(1=网格两点间距一米   30=网格两点间距30米)

Height
Height Scale:1003(这个参数时我们在wc导出时候y中高度缩放值-仅个人测试结果)我们也可以在下方限制最小和做大高度

Position
在这里我们可以设置高度图轴向默认ZX就可,然后是地形坐标与旋转根据需要进行设置
官方菜单说明链接:
https://www.sidefx.com/docs/houdini/nodes/sop/heightfield_file.html

好!进入我们今天主题-高度场散射节点
官方菜单说明链接:
https://www.sidefx.com/docs/houd ... tfield_scatter.html
Heightfield Scatter:为什么会出现高度场散射,主要想解决两个问题
1.添加其他散射体时的非移动散射点
2.需要一个分层散射系统,这样物品就可以在没有自相交或更高层次交叉点的情况下放置
例如这样层次结构:村庄、建筑、树、灌木丛、岩石、树枝

第一遍就是放置你的主要树木或村庄的东西,这些东西将用于指示方向所以一旦你放置它们,并且你对你没有的位置感到满意,如果你做另一个散点图,不希望这些点移动,所以我们看到了一个问题,现在你可以做多个扫描仪并让以前的散点图保持锁定,那么我们还需要一个随机散射系统你要放下村庄或主要树木,让我们说现在你想放下灌木丛,你想确保灌木丛不会与你的树木相交或者,如果你放下建筑物你想确保没有树木在建筑物中生长,因此我们想要一种创建层次系统的方法,在该系统中,您可以从大型项目到小型项目而没有一个自相交,如果你有随后的散布用于灌木等较小的东西,但它们不会与你的较大区域相交。

我们就可以开始使用高场散射,你现在会注意到它需要三个输入到高度场、遮罩、那些绿点,几何体(白色的点)

我们稍后再讨论第一个基本上是高场中的线,在这里,你可以看到我在这里有很多分散的点,所以让我们创建一个蒙版,这样我们就可以专注于某个领域

我们可以我现在去这里,我们有大量油漆,所以我可以去这里,选择一个小区域,你可以看到,因为我实际上正在绘画,我添加了笔画


这里做一个面具,例如按特征做一个面具,新建遮罩节点heightfield_maskfeature
你会注意到这里并没有发生什么变化我的分散节点到处都是

这是因为我需要在第二个输入中加入掩码,一旦我这样做了,你可以看到我们已经锁定了分散点位置

如果我们想要在特定区域散布点,我们添加绘制节点画出我们的形状即可

所以在分散的高场中,您会注意到的第一件事是现在有一个称为标签名称的参数,标签名称基本上是您的层次结构名称,所以它是村庄,它会是建筑物树吗?依此类推,默认情况下运算符字符串设置为美元符号操作系统

所以如果我现在中间单击它,它会显示heigjhtfield_scatter1

让我们将其更改为高场树,你可以看到它刚刚是美元符号和OS,随着我们对节点重命名这个位置也同步了改了再次点击鼠标中键回到原来美元符号和os

你要注意的是通过分散方法
By Coverage using Mask Layer:通过使用遮罩层进行覆盖
By Density using Mask Layer:使用遮罩层的密度
Total Point Count using Mask Layer:使用遮罩层的总点数
Per Point Count using source Points:使用源点的每点计数

我们添加了几个新功能,接下来新功能我使用遮罩层覆盖,这意味着通过使用遮罩层进行覆盖,你可以看到调整mask控制数量

下一个是遮罩层密度,是每平方米想要多少覆盖,所以现在你可以看到密度 0.01,因为我每平方米增加它,你会得到更多的
第三个是总点数,所以这有点像您了解整体数量去加减
第四个我们稍后将使用源点讨论每个点数尤其是在创建树和树下的树苗时或灌木丛真的很有用,

好接下来我们回到mask遮罩层覆盖方式,我们继续讨论覆盖范围,下一个问题是外半径为了更清楚表现我们放一个柱子,我们新建一个柱子给个颜色,然后与地形合并下看下效果

coverage:输入高度字段上绘制的遮罩的面积比,根据可变性部分的大小,该区域应覆盖即将分散的点。
outer radius外半径:外半径是说你树的硬极限的外半径是多少(我们现在用管子代替我的管子的半径是1=我们要散布物体的半径)
falloff衰减:
如果我说我的半径是 1 而我的衰减为 0,您可以看到我根本没有得到相交的圆圈,好吧,衰减---我喜欢把它想象成当你把聚光灯放下时它是最亮的光到灰色区域的衰减(增大衰减相当于聚光强了看到更多了个人理解)

因此,当我增加衰减,这意味着它下面的其他东西可以开始相交这时我应该在这里提到一个参数叫做松弛点,打开或关闭松弛,我得到了各种我可能不想要的交叉点

所以我将关闭另一个是自重叠你是否希望能够相交,所以在树木的情况下,有任何重叠是没有意义的,但如果我要放置一堆巨石或岩石如果它们相交并变成一些看起来不错,单个岩石另一些是多个岩石的集合体,这就是这个参数自重叠的作用(前期沙漠文章我们讲过)

所以现在外半径和衰减之后的下一件大事是可变性(随机缩放),我们有很多不同的方法来做这第一个是均匀分布因此,如果我只是将其更改为一对一,您现在可以看到每个圆的外半径与一个圆的大小完全相同

在这里我们可以看到一些交叉,我们可以降低我们的衰减减少自相交,所以这是均匀分布,关于均匀分布的关键是,如果我的范围是 0.5 到假设 1.5,那么这里的平均值将是 1.0

如果我将我的可变性从均匀分布更改为正态分布,那么在最小值和最大值之间的均匀分布将是一个点,即 0.5 到 1.5均匀分布,因为大部分树木的大小会在 0.5 到 1.5 之间脱落,然后它会慢慢减小到这个最小值和最大值,它不再是均匀分布了

如果我们将0.5 的价差更改为 0,现在你可以看到它们的大小都相同,所以现在我们说这个范围内没有差距,发现平均值找到0.5 和 1.5 之间的中间值,并使树的大小都相同


Exact scale准确的比例:它只是一个标量乘数,任何输入都可以,

所以我要改变可变性,看看变形分布我要把我的管稍微高一点,选择圆柱修改高度为5,选择5按住鼠标左键拖拽箭头位置除以2.0

这就是我的小树林

回到我们的散布层,修改我们的遮罩方式,使用遮罩层的总点数
给定某个特定值,此方法将分散点,以便它们将精确地设置为它们在高度场上绘制的蒙版上的点数

将它设置为93058点衰减为0,它仍然不是交叉点并且没有任何交叉点,所以这里发生的事情很好,它将删除点这将迫使自己删除会导致交叉点的点

所以你可以在这里做两件事,会看到这里有一个点删除方法你可以说删除或仅标记,当我将其更改为仅标记时,我会恢复所有原始点并且它们都相交,但也许你需要那些点用于其他目的

那么它如何运作得很好,让我们先看删除电子表格

修改为标记:你会看到有些是这样的 1 和 0,所以设置为 1 的那些是,如果我们有这个设置我们会删除的那些要删除,但现在它只是一个属性,表示如果您希望将来进一步处理它仍然存在,只要知道如果您需要它不相交,我们就会将其删除,因此需要更多参数来处理关闭电子表格

我们有一个保持显示的地形,所以如果你不需要可以将其取消勾选这样地形就不在显示。
Keep Incoming Scatter Points 保持入射散射点
当打开时,输出将包括传入的散点和新散点。
Keep Incoming Terrain保持传入的地形
当打开时,输出将包括输入高度字段及其所有层。
Match Normals with Terrain 将法线与地形匹配
当打开时,匹配每个点的法线向量到该位置的地形法线。

Match Direction with Slope方向与坡度匹配
当打开时,绕着法向量旋转,使z方向朝向地形的斜坡。
接下来是随机方向
Randomize Up随机化:指定抖动计算出的实例法线方向的度数(360°方向随机)
Randomize Yaw随机偏航:指定围绕法线旋转的角度数。180将提供完全随机的方向。(水平随机)

我们继续学习其他参数,回到我们的散射节点,新建一根柱子转换多边形

做一个属性创建,我要将此属性创建设置为一个名为重量属性
注意这里有个Value:所占百分比管子我们设置0.7 百分之70(如果你将权重更改为0.5和0.5你会得到一个均匀分布)

让我们在这里添加一个颜色,然后我将这个颜色设置为绿色,然后我会放下一个盒子、球更改百分比然后修改颜色后合并连接入我们散射节点

接下来我想向您展示更多参数,我们去绘制蒙版修改一个称为模糊半径的参数, 我只是把它模糊掉,你可以看到

在删除模式下配合 mask cut off使用

我想在新点上向你展示这个参数实例,让我们做一些分层事情,所以我要去调整下我们的覆盖率

让我们放下另一个散射节点Heightfield_Scatter所以这个节点再次输入地形,输入面具,我们利用上一层数据我们得到一堆散射点,我们复制上面几何体接入可以看见我们得到了很多圆柱

我们再这里修改散射点方式使用源点散射,当我们这样做时黄色圆柱都不见了

这时我们首先说明源点标签是什么,在我们的例子中,我们的标签名称来自原始的,也就是我们上一层散射点名称

复制粘贴到我们新建的节点内

可以看见我们这一次所散射的点是围绕我们盒子,可以想象如果盒子是我们树那么圆柱就是树周围灌木草

同时给我们提供两种点计算方式

poisson Distribution泊松分布
这种方式我们输入所分布的数量,然后软件将随机在盒子周围分布柱子(例如:房子周围树、树下灌木等等)

Exact Number准确数字
这里我有一个确切的数字分布数量例如52个,指的是物体周围散落多少植被或其他东西10或者20个有一个准确数字
然后在这里定位方法是偏移量offset:可以看见我们给了一个更好的圆圈源点半径在0-1时候,所有这些点聚集在盒子中心

当我们移动外半径时候就会散布在盒子周围,加入我们盒子是一棵树我们默认值可以是0-6或者其他的看树半径,然后在调整外半径。这就是这个功能大致意思具体看大家个人使用。

外径默认1,内部半径设置0-15时圆柱分散开。如果外径为0则圆柱在一起如上图

如果我们还想要其他东西,假如我们现在有了绿树和岩石,如果我们关闭放松你可以看到这些岩石互相聚集

打开或者关闭自我重叠,如果你想让岩石混合在一起形成更大的岩石和更小的岩石完全没问题,在原点周围形成集群圈,这在不同情况下可能再次非常有用
注意:关闭松弛和关闭自我重叠效果是不一样的大家根据实际情况选择调整

再次打开松弛回到我们散布方式我们再次修改分布,这是一个很好的均匀分布,在这里的关键是要注意我想怎么做让我们再做一个绘制蒙版

我们再次添加一个绘制蒙版节点模式修改为添加

选择节点直接在场景绘制遮罩区域,注意这里发生了一些奇妙的事情,我正在添加点并且我的新散点的点由于覆盖范围而发生变化,但是我的旧散点没有移动这真的很关键,你知道我们想要锁定之前的散射,所以在Michael scatter 的参数中如果你的散射方法是使用遮罩层或密度覆盖自行车覆盖(下图两种方式)


当你绘制或绘画时它会很好地锁定这些点知道你的遮罩的新部分你的旧点不会发生任何事情。

我应该向你展示的最后一件事是,我把他改回精确的数字计数
让我们这样做,实际上他们可以放置一个泊松分布

然后我会来这里,我会放一个merge合并节点复制几套我们圆柱将其合并。它仍然工作得很好,你可以以任何你想要的方式保持任何层次分散,它会起作用,所以我希望你喜欢层次分散的这个概述。

点击阅读原文观看视频版
工程获取方式: 免费分享 只需分享到朋友圈集随意赞就行(截图后台私信我获取下载地址 )好东西就要分享更多人。
资源来源网络分享,试用版仅供学习研究使用,版权归原作者所有,24小时内自行删除。



         

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表