UE 程序化网格 计算横截面 面积

UE 程序化网格 计算横截面 面积_第1张图片

UE 程序化网格 计算横截面 面积_第2张图片

首先在构造函数内加上程序化网格,然后复制网格体到程序化网格组件上,将Static Mesh(类型StaticMeshActor)的静态网格体组件给到程序化网格体上

然后把StaticMesh(类型为StaticMeshActor)Instance暴漏出去

UE 程序化网格 计算横截面 面积_第3张图片

在这里即可生成场景内的一个静态网格体

UE 程序化网格 计算横截面 面积_第4张图片

再搞个Plane上去去切割,切割位置是Plane的位置,方向是向上的方向,Cap Option选CreateNewSectionCap,材质随意

UE 程序化网格 计算横截面 面积_第5张图片

获取网格体被切割的三维点信息

UE 程序化网格 计算横截面 面积_第6张图片

第一个是顶点信息

第二个是顶点下标信息

第三个是法线信息

第四个是UV信息

第五个是切线信息

UE 程序化网格 计算横截面 面积_第7张图片

拿到这些信息就可以去拿去各个顶点去算面积了

UE 程序化网格 计算横截面 面积_第8张图片

看看为什么要这样去算

UE 程序化网格 计算横截面 面积_第9张图片

UE 程序化网格 计算横截面 面积_第10张图片

一个存储的顶点的下标,对应三角形则是310和321,刚好算完这个正方形的面积

最后把算的所有三角形面积逐一加起来就是横截面面积了

UE 程序化网格 计算横截面 面积_第11张图片

我们来验证一下

UE 程序化网格 计算横截面 面积_第12张图片

UE 程序化网格 计算横截面 面积_第13张图片

UE 程序化网格 计算横截面 面积_第14张图片

所以这里计算的是顶点下标,通过顶点信息拿到

UE 程序化网格 计算横截面 面积_第15张图片

最后就是算三角形面积然后逐一加上得到横截面面积

你可能感兴趣的:(算法)