我用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 ]
>>> 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')
但是当我加载文件时没有任何变化!
感谢。
答案 0 :(得分:0)
我正在寻找完全相同的东西,并且我认为@ArturSampaio的响应有效地回答了这一问题:pyassimp
并非用于修改数据,至少目前不是。
我在这里发布了一个问题:https://github.com/assimp/assimp/issues/2470
我将尝试一些替代方法,如果有解决办法,将对其进行更新:
libassimp
,因此NumPy强制转换可能引用原始数据。
asNumpyArray
,似乎也可能复制了它,也许是:(readonly
。可以理解。更新:我发现了一个用例的替代工作流程(用GLTF顶点+ UV坐标替换OBJ网格,但保持其他条件一致),并通过obj2gltf
:obj2gltf_preserve
可能会回到原始问题(编辑网格),但可能不会很快完成。