我需要编写一些代码来将四元组数组转换为体素字段。 让它工作应该很容易,但快速完成并不是那么简单。
有没有人知道我可以使用的任何库或源代码?我敢肯定以前有人必须这样做。
修改 算法也需要用体素填充模型的内部。只是一个shell不会。
答案 0 :(得分:7)
@Alexandre C.发布的voxelation链接看起来不错。
以下是将常规四/三角模型转换为光子/ EM模拟的折射率/ε值的立方数阵列时如何解决此问题的简要概述。
在x / y / z循环中的每个点,检查BSP树的点。如果它在实体内,则在该点创建一个体素,并根据源模型(从BSP节点引用)设置它的属性(颜色,纹理坐标等)。 (优化提示:如果您的最内圈是沿Y轴(垂直轴)并且您正在创建地形或面向XZ的曲面,则可以在任何时候退出Y循环创建一个体素。)
保存
构建BSP是唯一的半复杂部分(并且它比第一眼看起来容易得多),但它已被记录在整个网络上的ying-yang。这适用于几乎任何模型形状,并且还为您提供了一个可用于碰撞检测和可见性确定的漂亮树。
另外,请注意,整个过程应该在编译时或使用专用工具(显然会产生一个包含运行时使用的树和体素字段的文件)。如果您正在使用XNA,那么将任何内容导入到内容管道中都非常容易。
答案 1 :(得分:1)
检查Marching cubes algorithm。我想你需要在问题的背景下扭转它!;)