Back Story:这是我在引擎中读取.vox文件所遵循的格式:.vox文件格式,我理解如何实际读取体素数据。但是,我不明白对象坐标存储在哪里。例如,当从.vox文件导入许多模型时,所有对象都没有指定位置,因此需要手动将它们放置在需要到达的位置。这是很烦人的,因为如果场景中有100个被正确放置在MagicaVoxel中的对象,然后导入到我的引擎中;每个模型都需要移动到正确的位置。
现在,我可以找到任何文档来显示每个模型的位置是存储的。我推测有一种存储模型位置的方法,因为当将.vox文件加载到MagicaVoxel中时,所有对象都保持原来保存的位置。
问题:如何提取对象的模型位置?
可能混淆:据我所知,每个体素的坐标都是可靠地存储在对象的空间中。我试图找到体素物体的世界空间,而不是体素空间。此外,我知道您可以存储点云格式的文件以获得世界位置,但我需要使用.vox文件格式来勾勒出对象的块。
发布于 2021-09-24 23:55:07
每个体素坐标都存储在文件末尾的块数据中。但是,有多个块保存位置数据以外的信息。这里有三个主要块_id,每个nTRN、nGRP和nSHP。还有一些其他的块id,但它们不是读取位置数据所必需的。最重要的是nTRN块数据,它存储每个模型的位置及其旋转。旋转存储在_r块中,平移存储在_t块中(注意:这全部存储在nTRN块中)。在_t块中,数据的格式如下:(存储在一个整数中的字符串的字节数)然后(三个数字的字符串表示位置)。那就这样吧!
https://stackoverflow.com/questions/69123230
复制相似问题