[Houdini] Height Field的基本概念
文章算是对这个Height Field Masterclass的总结吧

为什么用volume做地形:
如果用分辨率500*500的普通网格加上noise节点建立地形,它占用了19mb的内存。

如果用polygon soup类型的网格加上noise节点建立地形,它占用了12.5mb的内存。可以看到这种类型的网格经过优化Vertices数量变成和Points数量一样,Primitive数量变成了1,节省了很多内存。

如果用Volume和Volume Noise节点建立地形,它只占用了1mb内存。这是因为volume类型不需要存储点的位置信息,也没有Vertices和Primetives信息,它只在体素上保存了高度信息,而且这个volume只需要一层,这些对于描述一个地形来说刚刚好。如下图,volume需要改成Height Field模式才能看出地形的效果。

HeightField节点内部是实际上是两个volume,一个记录地形的高度,一个用做mask。虽然是两个volume,但是如果mask不存信息的话,两个volume并没有占2倍内存,它占了1.03mb,只比单纯一个height volume多了0.03mb。


与HeightField相关的节点大概有3类,一类对Height volume操作,一类对mask volume操作,
还有一类对Height volume进行模拟,模拟地形经过长期演化的结果。Convert HeightField可以把HeightField转化成polygon。


Tips:工具架上有很多现成的地形,可以用来学习制作思路。

HeightField File可以导入外部的图像当作高度图。
HeightField格式也可以当作碰撞体。

