PyAssimp忽略该设置前所有的修改

2024-04-24 16:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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')

但当我加载文件时没有任何更改!你知道吗

谢谢。你知道吗


Tags: 文件inimportfordsloadexportscene
1条回答
网友
1楼 · 发布于 2024-04-24 16:41:52

我在寻找完全相同的东西,我认为@ArturSampaio的响应有效地回答了这个问题:pyassimp不是为修改数据而构建的,至少目前不是这样。你知道吗

我在这里发布了一个问题:https://github.com/assimp/assimp/issues/2470

我将修补一些替代方案,如果有什么结果,我将更新:

  • https://github.com/jr-garcia/AssimpCy-它使用Cython绑定libassimp,因此NumPy casting可能引用原始数据。
    • 不过,看看^{},它看起来可能也在复制,也许:(
    • 更新:是的,很多属性是readonly。不过,可以理解。你知道吗
  • https://github.com/mikedh/trimesh-不同的lib,但它似乎支持开箱即用的修改?你知道吗

更新:我为我的用例找到了另一个工作流程(用GLTF顶点+UV坐标替换OBJ网格,但是保持其他东西的一致性),使用这个hack和obj2gltf^{}

可能会回到最初的问题(编辑网格),但可能不会很快完成。你知道吗

相关问题 更多 >