【问题标题】:How to reverse a transformation by matrix in Blender?如何在 Blender 中通过矩阵反转变换?
【发布时间】:2011-05-18 00:41:22
【问题描述】:

我有一个选定的网格(创造性地称为“选定”),我想在其本地空间中使用它,所以我使用以下内容:

    tmesh = NMesh.GetRawFromObject(selected.name)
    tmesh.transform(selected.matrix)

然后我对其顶点进行大量计算并按索引删除它们,效果很好。

当我稍后尝试从 vert.co 对象列表中添加它们时,效果不太好。它们最终相对于彼此正确定位,但与原始顶点相去甚远。

            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/

【问题讨论】:

  • 在“对它的顶点进行大量计算”之前,你能把tmesh.transform(selected.matrix) 排除在外吗?即在对象的空间中工作并避免问题。

标签: python scripting blender


【解决方案1】:

我对 Blender 并不特别熟悉,但是在快速浏览了文档之后,但原则上您似乎应该能够使用 invert() Matrix 方法来获得 @ 的逆变换987654325@(可能在第一次创建copy() 之后)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多