百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
M

mesh-cutter

> 编程语言
开源

简单的网格切割算法,可用于具有0个种数的简单3D多重体

656 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

简单的网格切割算法,可用于具有0个种数的简单3D多重体

网格切割器

一个概念验证的 Unity 项目,用于网格切割算法。 这是一个简单的算法实现,它将具有零种数的 3d 多面体对象分割为 2 部分。 分割是通过用户绘制的直线和与相机前方方向相同的深度定义的平面来完成的 (即, 当我们绘制一条直线时, 我们无法看到生成的平面, 因为它与摄像机和直线完全对齐)

实施

对于每个被标记为 sliceable 的对象:

  • 我们创建 2 个新网格:一个 正网格,位于切片平面的正面,另一个 负网格,位于另一侧。

  • 我们遍历网格的每个三角形,如果它与平面相交,则将其分割为 3 个三角形: 2 个位于切割的较大侧,1 个位于另一侧(我们假设它无法完美切割为 2 个三角形)。 如果三角形不与平面相交,则我们只需将其存储在相应的网格(正值或负值)中。我们还保留了一份新创建的顶点列表,这些顶点都位于网格的边界上。

  • 然后我们创建新的三角形来形成边界面(切割后生成的新面)。目前有两种不同的方法来生成边界面(生成中心顶点,或通过迭代排序的顶点对来创建三角形扇),但这两种方法大多只适用于凸多边形。

注意: * 球体使用的材质是来自 Unity 标准资源的 GlassRefractive * 蘇珊猴使用的材质是来自 Unity 标准资源的 ToonLit * 这些材质在项目的场景中使用,但不包含在本仓库中。如果您想与它们进行实验,请从标准资源导入以下文件夹: * Effects/GlassRefraction * Effects/ToonShading * Prototyping/Materials * Prototyping/Textures

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#gamedevunity

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言