Houdini Terrian & UE4 (〇)Terrian基础

导言

这篇文章基本是翻译了官网文档,勿喷~侵删~

 

胡地泥的地形工具主要使用了叫做height field的2D volume,其中每个voxel包含了当前grid的高度信息。一个geometry network(几何网格体)可以包含多个height fields信息,这些height fields被称作height layers。比如一个工具可能会用一个height layer代表地形基底,然后用另一个height layer代表上面的土壤。默认的height layer叫做height 。

还有一种不同的2D volume,叫做mask layer。绝大多数地形都会有mask layer,来控制地形的哪些部分会被修饰。默认的mask layer叫做mask,当然,一个geometry steam里可以有多个指定名字的mask layers。

houdini viewport会把2D的高度展现成3D的表面,然后mask会在表面上被着成红色。


节点

 

从拖拽栏中生成一个height field

 

Height Field node 创建一个新的,平整的height field。

Height Field Noise 创建一些最原始的随机地形。

Height Field node 创建一个新的,平整的height field。

Height Field Noise 创建一些最原始的随机地形。

 

I/O

 

HeightField File 从2D高度图加载地形

Lidar Import 可以把LIDAR格式的文件加载为height field

HeightField Output 写到一个2D高度图中

HeightField Quick Shader 为layer和mask添加材质

HeightField Scatter 在3D表面上散布点,常用来布置植被或者将高度信息变成点云

HeightField Tile Split 将一层变为多个tile,用于分散工作流,或者导入引擎。

HeightField Tile Splice Split的逆操作,合并tile

 

为地形添加一些东西

 

HeightField Layer 合并layer,这个节点可以正确的合并volume(即使不是轴对齐),所以合并前可以旋转和放置要合并的volume。

HeightField Project 用3D geometry的形状抬升或者降低地形

HeightField Paint 可以在地形上手画layer

HeightField Pattern 生成一些重复的规律,比如条纹。可以加入一些扭曲控制让几何规律更加自然。用mask在高度图中添加pattern可以在场景中创造一些有趣的细节

 

调节地形

 

HeightField Blur 使地形细节变平滑

HeightField Noise

HeightField Distort by Noise 添加随机细节

HeightFile Clip 在一个确定高度之上/之下平整区域,比如创建一个高原。

HeightField Terrace 创建类似于梯田的台阶式斜坡。

 

模拟自然处理

 

HeightField Erode 模拟自然侵蚀

HeightField Slump 模拟土壤或者地基沿着下坡坍塌

 

制作和编辑mask

 

HeightField Draw Mask 可以手绘mask区域

HeightField Mask by Feature 基于高度,朝向,斜率等创建mask

HeightField Mask by Object 从一个height layer和3d对象的接缝处创建mask

HeightField Noise 为mask添加一些噪点

HeightField Layer Clear 清理mask

*如果在mask node节点看到了原来的结果,使用Heightfield Isolate Layer或者Heightfield visualize来定制mask的着色。mask只支持0-1的值,如果小于0或者大于1都会表现为白色

 

Layer工具

 

HeightField Transform 移动和旋转fields

HeightField Visualize 可视化

HeightField Remap 基于ramp重新分配高度值

HeightField Resample 更改field潜在grid的分辨率

HeightField Wrangle Volume Wrangle的别名,可以使用VEX编辑height volume的里的值

HeightField VOP Volume VOP的别名,允许你创建一个VOP网格来编辑height volume里的值

HeightField Copy Layer 通过拷贝创建一个新的layer

HeightField Layer Property 设置layer的选项,比如如何计算边界外的值

HeightField Layer Clear 清空layer

HeightField Isolate Layer


真实地形制作流程

地形生成流程大致如下

基础构建(Massing)

包括在三个维度上涂抹出大致范围的地形结构。比如,在山脉地形中,山峰大概占多少比例,被山体包围的空间形状,山峰的高矮。

在heightfields中,这意味着创建一个表达最终地貌特征的基础的,低分辨率的field。此时的表面可以是平滑或者块状的,我们会在稍后增加噪点。

你可以用以下途径来创建一些基础地形

直接在heightfield上画

在heightfield上投射一个3D集合体

导入2D图片(Liday,GeoTiff,image maps,COPs)

增加扰动(Seeding)

扰动可以给光滑的平面增加小的扰动,来让地形变得更自然。表面越不平滑,后面就会收到更重的侵蚀。

只增加一个简单的全局噪点或者只投射一个大尺寸的几何体,通常无法创造足够的阻挡(比如水或者泥地等必须绕着走的地方)来创造有意思的侵蚀效果。Seeding就是为了增加这些Obstacles的。

向被投射的集合体增加轻微的Heightfield Noise

增加Heightfield Distort by Layer或者Heightfield Distort by Noise

这里有一个实用的技巧,我们创建一个大块随机锯齿的类似岩石的形状(比如使用Mountain SOP)的3D模型,然后带falloff(衰退)的在heightfield上画一个mask,然后把前面提到的模型投射到mask里,最后在上面使用Distort by Layer或者 Distort by Noise。

构建山体(Lobing)

山体构建进场被分解陈小的区块,这些区块呗看作lobes,Lobing就是采用低分辨率heightfield和使用Heightfield Erode来吧山体切成更小区块的处理过程。

Heightfield Erode节点上打开precipitation(沉降)cut angles(切角), and sediment capacity(沉积空间)来达到裁切效果。

 

重映射(Remapping)

包括多次重复 massing/seeding/lobing步骤来创造不同的层次。(山脚,矮山,高山)。

这个技巧会在“Elevation Passes”上构建你的地形。在前面侵蚀后,增加一个Heightfield Remap,重新映射高度,在垂直上做一个压缩。然后在这次压缩的基础上,重复Massing/Seeding/Lobing。

提高采样(Upsampling)

结束lobing之后,我们需要把heightfield的分辨率提高,让侵蚀能有更好的细节。

使用Heightfield Resample来加倍分辨率(你可能需要迭代这个步骤,所以不要在一开始就把采样提高)

塑性(Shape)

使用Heightfield TerraceHeightfield Clip来添加地质部件。

通过masks,你可以修整山顶,给部分区域添加梯田来创造更有趣多样的侵蚀

重新扰动(Re-seeding)

在高分辨率下重复前面的扰动操作,增加更多的obstacles让侵蚀改变方向。

侵蚀(Erosion)

现在可以全力开启Heightfield Erode来获得你想要的效果了。可能需要一些练习来掌握各种设置的效果,但是通常没有什么“正确”的设置。可以尝试一些极限设置来看看你得到了什么。关键是得到的结果应该有趣和自然。

结束(Final)

一旦你得到了你想要的地形,你可以继续给你的地形着色并散布岩石和数目。

Heightfield Quickshade节点可给你的地形快速设置一些材质。

Heightfield Scratter可以给你提供一些地形上用于散布对象实例的点。

你可以通过mask控制散布

你可以做一些分层散布来防止不同尺寸上的重叠

你可以给这些point添加多种属性,比如实例化为不同的石头或者树

https://www.sidefx.com/docs/houdini/model/heightfields.html

https://www.sidefx.com/docs/houdini/model/terrain_workflow.html

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值