untiy实现动态切割网格效果

时间:2024-03-23 16:17:40

 

思路

    1确定切割平面

    2遍历对象网格的所有面,判断每个三角面片相对切割平面的位置(相交或不相交,不相交又分为在平面左侧和平面右侧)

    3在三角面与平面相交处生成新的顶点

    4将两组新的顶点,法线,面片信息分别赋值给两个网格

遇到的坑:

          unity由于使用的左手坐标系,导致使用Vector3.Cross()方法的时候算出来的向量的方向是服从左手定则的,而我一直以为是右手定则。

          不要直接给mesh.vertices数组赋值。

项目源码:https://github.com/dfeng306/UnityTest/tree/master/MeshCutDemo

最终效果

untiy实现动态切割网格效果