我需要编写一些代码来将四边形数组转换为体素字段。让它工作应该很容易,但让它变得快速不会那么微不足道。
有谁知道我可以使用的任何库或源代码?我敢肯定,以前一定有人这样做过。
编辑: 该算法也需要用体素填充模型内部。只是一个壳是不行的。
@Alexandre C. 发布的体素化链接看起来不错。
以下是我们如何在将常规四边形/三角形模型转换为用于光子学/EM 模拟的折射率/ε 值的立方阵列时如何解决此问题的简要概述。
在 x/y/z 循环中的每个点,对照 BSP 树检查该点。如果它在实体内部,则在该点创建一个体素,并根据源模型(从 BSP 节点引用)设置它的属性(颜色、纹理坐标等)。 (优化提示:如果最里面的循环是沿着 Y 轴(垂直轴),并且您正在创建地形或面向 XZ 的表面,那么您可以在创建体素时退出 Y 循环。)
节省
构建 BSP 是唯一的半复杂部分(而且它比乍一看要容易得多),但它已被记录在整个网络上。这几乎适用于任何模型形状,并且还为您提供了一个很好的树,您可以将其用于碰撞检测和可见性确定等。
另外,请注意,整个过程应该在编译时发生或使用专用工具(显然,这将生成一个包含您将在运行时使用的树和体素字段的文件)。如果您使用 XNA,将任何内容导入内容管道非常容易。