untiy实现动态切割网格效果

本文详细介绍了一种在Unity中实现三维模型网格切割的方法。通过确定切割平面,遍历对象网格的所有面,判断三角面片相对切割平面的位置,并在相交处生成新的顶点。最后,将新顶点信息赋值给两个网格,实现模型切割。文章还分享了在Unity左手坐标系下使用Vector3.Cross()方法的注意事项。
部署运行你感兴趣的模型镜像

 

思路

    1确定切割平面

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

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

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

遇到的坑:

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

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

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

最终效果

 

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值