这篇博客介绍了怎样在Houdini中制作类似陨石坑的效果,并且将其生成HeightMap,用于集成进游戏引擎。
背景
加班日紧,只能做些小东西,主要在尝试进行月球表面的生成。对于月球表面来说,比较重要的特点就是陨石坑了。这篇博客主要就是集中在使用vop来进行陨石坑效果的制作,效果如下:
上图中的地形是使用Perlin Noise生成的地形,但是可以看到已经有陨石坑散布在地形上了。
陨石坑效果分析
月球的陨石坑有着如下特点:
- 陨石坑的位置和大小都是随机分布的
- 总体来讲地表是凹陷下去的,但是凹陷下去的面是比较平的
- 陨石砸入月球表面时,由于土壤的挤压效果,会导致陨石坑周围的土壤高于地平面。
因此,需要生成随机的陨石坑位置和大小,针对每一个单个的陨石坑,需要构建出周围的环形山,然后再构建出低于水平面的陨石坑。
准备工作
首先,创建一个Grid,将Row和Column设为需要的Size,我这里设定为1024.
有个需要注意的点,是记得将Primitive Type
设定为Polygon Soup
。这样的设定可以节省内存,否则每一个四边面都会是一个单独的primitive,会有很高的内存消耗。