Python PyAssimp忽略导出之前的所有修改
我用PyAssimp加载了一个3d文件,然后我更改了一些顶点的位置,当我导出它时,所有修改都被忽略了 这是我写的一个例子:Python PyAssimp忽略导出之前的所有修改,python,assimp,Python,Assimp,我用PyAssimp加载了一个3d文件,然后我更改了一些顶点的位置,当我导出它时,所有修改都被忽略了 这是我写的一个例子: >>> import pyassimp >>> scene = pyassimp.load('D:/test.3ds') >>> v = scene.meshes[2].vertices >>> v = [ [p[0], p[1], p[2]+200] for p in v ] >>>
>>> import pyassimp
>>> scene = pyassimp.load('D:/test.3ds')
>>> v = scene.meshes[2].vertices
>>> v = [ [p[0], p[1], p[2]+200] for p in v ]
>>> scene.meshes[2].vertices = v
>>> print scene.meshes[2].vertices
[[-13.360946655273438, -19.980607986450195, 200.0], [-13.360946655273438, 19.980606079101562, 200.0], ………
>>> pyassimp.export(scene,'D:/ExportedFile.gltf','gltf2')
但是当我加载文件时,没有任何更改
谢谢。我也在寻找同样的东西,我认为@ArturSampaio的回应有效地回答了这个问题:
pyassimp
不是为修改数据而构建的,至少目前不是
我在这里发布了一个问题:
我将修补一些替代方案,如果出现问题,我将更新此选项:
- -它使用Cython绑定
,因此NumPy casting可能引用原始数据。libassimp
- 但是,看着它,似乎它也可能复制,也许:(
- 更新:是的,很多属性都是
。不过可以理解只读的
- -不同的库,但似乎支持开箱即用的修改
obj2gltf
:
可能会回到这个原始版本(编辑网格),但可能不会很快完成。您是否检查了文件是否确实被重新写入?尝试导出到不同的文件并比较两者(如果您在linux/mac上,您应该能够执行
diff-s fileA fileB
以查看文件是否相同)抱歉,我重新键入了开头的最后一行。您阅读此文件是为了验证您的更改是否已应用?D:/ExportedFile.gltfI读取文件“D:/test.3ds”,并将对象移到更高的位置(+200到z轴)然后我将其导出到“D:/Exportedfile.gltf”PyAssimp似乎保留了原始的ctypes数组。这些原始数组是它在导出时使用的数组。编辑场景时。网格[2]。顶点,您没有编辑导出时读取的scene.mmesh对象。