在unity3D中实现MIKE ZERO对水体网格的边界优化(一)

之前根据MIKE21给出的mesh数据在unity3D中绘制出了网格,但是才发现mike21给的原始数据有楞有角的比较难看,看下图

在unity3D中实现MIKE ZERO对水体网格的边界优化(一)_第1张图片

对比mike21里面展示的图片,有些差别,如下

在unity3D中实现MIKE ZERO对水体网格的边界优化(一)_第2张图片

发现mike21软件处理的效果不错,后来点击查看mesh,发现他们是这样的处理的

在unity3D中实现MIKE ZERO对水体网格的边界优化(一)_第3张图片

就是在原始数据的外围增加一个“水带”,也就是取外围三角网格的一半,大家可以仔细看看,于是

我也模仿这个思路在unity里面写了下代码。 刚开始以为非常容易,做着做着才发现不是那么容易,甚至有些麻烦

1.先要搜索原始数据的最外围的一圈三角网格

2.再拿最外围的三角网格与空白处的网格进行对比,收集两种网格:A.有公共边的三角网格,B.有公共点的三角网格

3. 刚才提到的两种A , B网格分别进行不同的处理。A.有公共边的网格需要再剖分成2个小三角,B. 就直接画其一半大小的三角


技术难题集中在搜索边界的三角形,因为要每个三角形要1个1个的顶点去对比,其次就是对A 型三角网格进行剖分

不过都不是太难,就是比较繁琐,结果如下图

在unity3D中实现MIKE ZERO对水体网格的边界优化(一)_第4张图片

但是发现MIKE21还是技高一筹,它针对有些原始数据先进行了一定的“修复”或者是'补充“,使其描绘的更加圆滑,漂亮。

这个我还在想办法。


你可能感兴趣的:(unity3d)