首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

用于距离场实体建模的 Halfspace 实验 IDE

摘要

Introduction Halfspace is an experimental IDE for solid modeling with distance fields. Try the demo (The demo is best experienced on a computer; mobile Safari has some WebGPU issues, and pan / tilt / ...

the and for with writing time that implicit less level
2026-10-01 1 阅读 约5分钟阅读 luu
分享:
字号:
简介 Halfspace 是一个用于距离场实体建模的实验性 IDE。尝试演示(该演示最好在计算机上体验;移动 Safari 有一些 WebGPU 问题,并且平移/倾斜/缩放交互尚未设计用于多点触控)Halfspace 是 Fidget 内核的展示应用程序,用于光栅化和网格化。在 GUI 中,图像是实时光栅化的;模型可以导出为图像或三角形网格:由于现在是 2026 年,所以我首先要注意,这不是 vivi 编码的。我自 2025 年 4 月以来一直致力于此工作,并出于各种原因使用我的人脑编写代码(Fidget 的历史可以追溯到 2022 年)。现在,本文的其余部分假设您对隐式表面有一些了解;请参阅许多以前的文章以获取更多背景信息的详细信息(或者继续阅读,你会没事的)。为什么?我花了很多时间编写隐式内核,在这些内核上编写 GUI 的时间略少一些,甚至用这些工具进行实际建模的时间就更少了。在实践中,我实际上不需要在日常生活中进行太多的实体建模,因此我创建的大部分内容都是演示或如何使用特定内核的示例。尽管如此,我还是注意到在处理隐式曲面时存在一种特殊的紧张感。使用低级隐式表面有点像编写汇编:它是低级的、强大的、但烦人的。如果你得到的只是 x 、 y 、 z 变量——而你有责任将它们组合成你梦想的所有形状——那可能是一次痛苦的经历。当面临编写汇编的痛苦时,大多数人会在其之上构建抽象:高级语言和编译为低级表示的库。这里的等价物是形状和变换的标准库:球体、盒子、平移、缩放等。还有一种不太常见的方法来解决装配的痛苦:使装配本身编写起来不那么痛苦。在这些方面,我最喜欢的项目是 Kartik Agaram 的 Mu ,它围绕 x86 汇编语言的子集封装了仿真、跟踪和时间旅行调试。半空间走两条路。它包括一个(小但不断增长的)标准库,但也使增量构建模型变得容易:复杂的模型可以分成更小的部分,这些部分可以单独参数化和可视化。考虑到这个理由,让我们进一步解开描述。实体建模 首先,“实体建模”意味着我们关注的是具有明确内部和外部的对象;您应该能够选择空间中的任何点并说出它是在模型内部还是外部。这似乎是显而易见的,但有很多建模并不关心该属性:拉起任何视频游戏模型查看器,您会看到大量无限薄的纹理墙,它们是由单个三角形扇形构建的。由于我的背景是 CAD/CAM 软件(重点是 3D 打印),所以我想要可以物理实现的模型。有很多方法可以进行实体建模。在大多数 CAD 软件中,边界表示几何内核负责将一堆单独的曲面缝合在一起形成实体。这是一个非常困难的问题 - 例如,两个 NURBS 曲面的交集可能没有封闭形式的解决方案!追溯到我的硕士论文,我一直在研究基于隐式曲面的几何内核。它们的优点是可以由一个人或小团队编写并完全理解它们,因此它们非常适合个人规模的制造软件。这在 Halfspace 中得到延续:它是一个围绕 Fidget 几何内核的 GUI。可以使用预定义基元和手写脚本的某种组合来设计模型,并导出为图像或三角形网格。距离场的 IDE 我们可以纯粹在构造实体几何 (CSG) 层使用 Fidget 内核,构建形状(球体、立方体、圆柱体等)并将它们与逻辑运算(并集、交集、差集)组合起来。 Halfspace 决定将底层距离场放在前景中。让我举个例子来说明为什么这很重要。以下是锯齿波的两个距离场,它们在空间中的每个点都具有相同的符号,但具有不同的值:在此可视化中,符号(定义内部与外部)通过颜色(蓝色与橙色)显示,形状的边界以白色显示(对应于值 0)。字段值由较暗的线显示,这些线以规则的间隔排列(如地形图)。尽管到处都有相同的标志,但第一个字段的表现非常糟糕。查看锯齿的垂直边缘:有一个从内部(蓝色)到外部(橙色)的过渡,但没有穿过零。这是一个 C0 或“跳跃”不连续性,这是坏消息! Fidget 使用自动微分来计算法线,因此该区域的法线
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱