7

我需要编写一些代码来将四边形数组转换为体素字段。让它工作应该很容易,但让它变得快速不会那么微不足道。

有谁知道我可以使用的任何库或源代码?我敢肯定,以前一定有人这样做过。

编辑: 该算法也需要用体素填充模型内部。只是一个壳是不行的。

4

2 回答 2

8

@Alexandre C. 发布的体素化链接看起来不错。

以下是我们如何在将常规四边形/三角形模型转换为用于光子学/EM 模拟的折射率/ε 值的立方阵列时如何解决此问题的简要概述。

  1. 创建场景的 BSP 树。(对真的)
  2. 在模型或解决方案空间中定期迭代 X、Y、Z。(每个轴的间隔应等于所需的体素尺寸。)
  3. 在 x/y/z 循环中的每个点,对照 BSP 树检查该点。如果它在实体内部,则在该点创建一个体素,并根据源模型(从 BSP 节点引用)设置它的属性(颜色、纹理坐标等)。 优化提示:如果最里面的循环是沿着 Y 轴(垂直轴),并且您正在创建地形或面向 XZ 的表面,那么您可以在创建体素时退出 Y 循环。)

  4. 节省

  5. 利润!

构建 BSP 是唯一的半复杂部分(而且它比乍一看要容易得多),但它已被记录在整个网络上。这几乎适用于任何模型形状,并且还为您提供了一个很好的树,您可以将其用于碰撞检测和可见性确定等。

另外,请注意,整个过程应该在编译时发生或使用专用工具(显然,这将生成一个包含您将在运行时使用的树和体素字段的文件)。如果您使用 XNA,将任何内容导入内容管道非常容易。

于 2010-11-27T19:25:10.673 回答
1

检查行进立方体 算法。我想你需要在你的问题的背景下扭转它!;)

于 2010-11-27T18:59:25.800 回答