有人有关于编写b-rep建模系统的良好实施策略或资源吗?
OpenCascade是一个似乎很好的b-rep建模库(被FreeCad和PythonOCC都广泛使用),但该库庞大、复杂,可能不是学习b-rep建模“引擎”的好起点。
我已经阅读了相当多的研究论文,虽然基本数学知识对于理解一切的工作很有用,但还是让我有了一些实现问题。
半边结构边数据结构似乎是存储b-rep实现中有关物体信息的首选方式。
因此,以下是一些无特定顺序的问题:
使用半边数据结构,通常如何实现渲染?基于物体边界的三角剖分?
通常如何实现圆形面/曲面?例如,在我读过的一篇基本介绍b-rep的文章中,一个圆柱体被内部存储为一个棱柱。即一个三角形拉伸而成,并存储有关盖面的元数据,表示它们确实是圆形。
通常如何实现布尔运算?我了解到可以沿着交点曲线生成BSP树,然后组合这些树以生成新几何体。还有其他实现布尔运算的方法吗?它们的优缺点是什么?
谢谢!
如果您想提供代码示例,请不用担心语言——问题更多涉及算法/数据结构实现细节