如何在Blender中反向矩阵变换?
我有一个选中的网格(我随便叫它“selected”),我想在它的本地空间里进行操作,所以我用了下面的代码:
tmesh = NMesh.GetRawFromObject(selected.name)
tmesh.transform(selected.matrix)
接着,我对它的顶点进行了一些计算,并通过索引把它们移除,这个过程很顺利。
但是,当我尝试从一个顶点列表中把它们再加回来时,就出现了问题。它们虽然在彼此之间的位置是正确的,但却离原来的顶点远得很。
for v in tmesh.verts: toAdd.append(v.co) mesh = selected.getData(mesh=1) mesh.verts.extend(toAdd)
我意识到这是因为对象处于不同的空间。所以我觉得我需要把新的顶点转换回旧的空间……但我对这里到底发生了什么的理解并不清晰。我该如何“撤销” tmesh.transform(selected.matrix) 这个命令呢?
如果想了解我在做什么的更详细解释,可以查看这里:http://www.kellbot.com/2010/11/lego-plans-now-with-better-rendering/