我寻得有两种方法:
测试模型:
添加图片注释,不超过 140 字(可选)
一、有GUI界面而无CLI的MeshToVox(效果好,不开源):
https://github.com/Zarbuz/FileToVox/releases/download/1.16/MeshToVox-v2.9.zi
-
加载 OBJ、FBX、GTLF、STL 文件
-
支持纹理和材质
-
直接导出为 .vox
-
网格大小(128 至 2000)
-
限制颜色数量(1 到 255 种)
40size的体素化,颜色很好没有失真
)
二、无GUI界面有CLI的obj2voxel(颜色那有点问题,开源):
https://github.com/Eisenwave/obj2voxel/releases/download/v1.3.4/obj2voxel-v1.3.4.exe
40size的体素化,颜色变了,nike标也不见了
input_file(必填)输入文件的相对路径或绝对路径。 根据扩展名或选择不同的输入格式。 如果无法检测到文件类型,则默认值为 Wavefront OBJ。
output_file(必填)输出文件的相对路径或绝对路径。 根据扩展名,选择不同的输出格式。 检查支持的格式列表。 没有默认值,因此如果文件类型无法通过其扩展名识别,则 obj2voxel 将失败。.ply.qef
-i (obj|stl)显式输入格式。 这允许为没有扩展名的文件指定扩展名,例如 或 或显式指定扩展名。 默认情况下,这不是必需的。obj stl
-o (ply|qef|vl32|vox|xyzrgb)显式输出格式。 这允许为没有扩展名的文件指定扩展名,例如 或 或显式指定扩展名。 默认情况下,这不是必需的。qefvox
-t <texture>纹理文件的可选路径。 此纹理用于具有 UV 坐标但没有材质的三角形。 有些模型根本没有材料库。 此选项对于这些类型的模型非常有用。
体素化选项 -r/--res <resolution>(必填)
体素网格分辨率。 这是所有轴的最大值,这意味着非立方体模型仍将适合此块。 输出模型最多为 r³ 体素。
-s/--strat (max|blend)-
当多个三角形占据一个体素时的着色策略。 缺省策略是 。 当体素化时,会产生加权颜色,其中权重是 体素。max
-
max表示为体素的颜色选择最大的三角形截面。 Max 生成更清晰的颜色,并且不会引入原始网格中没有的任何颜色。 但是,在低分辨率下,它可能看起来很嘈杂,网格中的小细节可能会消失。
-
blend表示三角形截面将使用其权重混合在一起。 混合会产生更平滑的色彩,并至少在一定程度上再现较小的细节。 但是,它引入了新的颜色,并可能使模型看起来模糊。 例如,混合会在红色和蓝色三角形之间产生洋红色边缘,这可能是不需要的。
p/--perm <permutation>
轴排列和(可选)轴翻转。 默认值为 ;可以指定另一个顺序来重新排序轴。 大写字母翻转轴。 例如,对于 y 轴是翻转的。 这对于从使用不同轴进行“向上”的软件导入模型非常有用。xyzxzyxYzuper
-u/--s
启用 2 倍超级采样。 该模型以双分辨率进行体素化,然后缩小。 超级采样通常会产生稍多的体素。超级采样可以通过以更高的分辨率进行体素化和混合多个体素来提高色彩准确性。 在此比较中,对右奶牛进行了超级采样:
-j/--threads <threads> 要启动的工作线程数。 obj2voxel 支持并行性,如果不为零,将启动同时体素化多个三角形的工作线程。 默认情况下,此选项设置为硬件线程数。 您也可以将其精确设置为 ,这将完全禁用视差。 将其设置为通常毫无意义,并且最终比仅使用 .threads01-j 0
# Usage
./obj2voxel input_file output_file -r <resolution> # other options ...
# Example
./obj2voxel in.obj out.qef -t texture.png -r 128 -s max