Unity 程序化节点网格框架:以 Manifold 思路重写网格布尔内核

AI3D 发表于 4 周前 浏览 0 分类 新闻资讯

Building Procedural Node-Based Mesh Framework In Unity
来源图像

维克托·格里戈里耶夫花了数周时间在 Unity 中重建他的网格布尔系统,从零开始,因为第一个版本不够可靠。 该项目的目标是为 Unity 创建一个程序化网格系统,包含自定义数据结构、由 Burst 驱动的快速后端以及基于节点的编辑器。该系统还通过追踪每个部分的创建方式,在对象被编辑时保持重要网格数据(如材质和属性)完整无损。此外,它还支持为实现高效 GPU 实例化而优化的打包图元。

其理念是让运行时网格编辑更加容易,例如切片、自定义、破坏,或在编辑器内用作程序化建模工具。

维克托计划将节点作为资源发布到 Unity Asset Store 上,而网格的一些核心部分可能会开源。他还通过他的开发博客分享开发更新,你可以在那里关注项目进展并进一步了解该项目。如果你希望看到任何特定功能,可以联系他并告诉他。

“新内核基于 Manifold 的方法构建。我顺便收窄了适用范围:它只处理流形(manifold),不尝试修复脏输入。作为回报,我得到的是一个更简单、更可预测、而且比旧内核快大约一百倍的内核。

其中一些机制直接从 Manifold 移植过来。然后我在它周围搭建了自己的东西:输出端的 n 边形重建,以及通过溯源(provenance)从两个操作数进行属性传递。操作集也扩展了。在并集、交集和差集之外,现在还加入了非破坏性切割(Seam)、用实体修剪曲面(Trim),以及碎裂成带标签的碎片(Shatter)。开放几何体,比如被立方体切割的网格,成为了一等输入,类似 SideFX 在 Houdini 中的做法,只是目前更简单。”

Manifold 是一个布尔运算库。你可以在这里查看一个示例基准测试,了解它的性能表现。

另外,也来看看 Ok_Art_2784 的Gerstner 水体系统;如果你对 Unity 中的水体感兴趣,Fabrizio Espindola 最近宣布了一门关于该主题的新课程。

相关链接

原文链接:https://80.lv/articles/building-procedural-node-based-mesh-framework-in-unity

喜欢这篇内容吗?