首页 > 编程知识 正文

Houdini学习 使用VOP进行陨石坑效果制作,学习excle表格的制作和使用

时间:2023-05-06 17:18:51 阅读:232457 作者:4916

这篇博客介绍了怎样在Houdini中制作类似陨石坑的效果,并且将其生成HeightMap,用于集成进游戏引擎。

背景

加班日紧,只能做些小东西,主要在尝试进行月球表面的生成。对于月球表面来说,比较重要的特点就是陨石坑了。这篇博客主要就是集中在使用vop来进行陨石坑效果的制作,效果如下:

上图中的地形是使用Perlin Noise生成的地形,但是可以看到已经有陨石坑散布在地形上了。

陨石坑效果分析

月球的陨石坑有着如下特点:

陨石坑的位置和大小都是随机分布的总体来讲地表是凹陷下去的,但是凹陷下去的面是比较平的陨石砸入月球表面时,由于土壤的挤压效果,会导致陨石坑周围的土壤高于地平面。

因此,需要生成随机的陨石坑位置和大小,针对每一个单个的陨石坑,需要构建出周围的环形山,然后再构建出低于水平面的陨石坑。

准备工作

首先,创建一个Grid,将Row和Column设为需要的Size,我这里设定为1024.

有个需要注意的点,是记得将Primitive Type设定为Polygon Soup。这样的设定可以节省内存,否则每一个四边面都会是一个单独的primitive,会有很高的内存消耗。

然后创建一个point vop,双击开始构建VOP信息。

VOP构建

首先,我们需要生成柔软的洞,所以使用soft dots节点,以输入的Pos信息的 x x 和z" role="presentation">zz分量为uv输入,我针对soft dots的配置如下:

此时的效果如下:

这里可以看到,洞已经生成了,但是洞的形状太规则了,因此带入一个turb noise节点,噪音种类设定为Original Perlin Noise,Signature设定为3D noise。将结果与原有的Pos相加,这样一来,针对每个顶点,都会进行一个偏移:

原来的想法是直接将这个值直接取负值然后输出,但是这样会生成类似奶酪上面的洞,而不是原有设计的环形山了,效果如下:

因此,这里使用了两个Fit Range节点,第一个节点,将输出的Offset向量适配到0~1的范围中;第二个节点,将第一个节点结果作为输入,并且将Source Min设为一个大于0的值,此外将Destination Max设为2。最后将这两个节点的值相减,就能得到我们需要的环形山效果了:

导出工作

最后,我们需要将制作完毕的地形导出为HeightField数据,用于与游戏引擎联动,或者导出为贴图数据。

这里,使用HeightField Project节点,并且将Layer设定为height。这样一来,就可以将地形转化为HeightField数据了。最后,再使用HeightField Output节点,将其保存为贴图,数据如下:

思考

博客中的方法是使用point vop来达成的,但是看到自从houdini 16引入heightfield后,也有了height field vop节点。这个节点还没有详细看过,如果可能的话,还是得使用这个节点来进行操作,也就省去了转化&导出的那一步了。

<全文完>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。