【问题标题】:Assign mirror operation to vertices array将镜像操作分配给顶点数组
【发布时间】:2011-07-12 05:02:21
【问题描述】:

我了解在 .obj 顶点数组中翻转顶点坐标以获得跨平面/轴的镜像坐标的数学运算。但是,如何为实际的镜像操作填充顶点数组(而不仅仅是翻转)

【问题讨论】:

    标签: mesh procedural .obj vertices wavefront


    【解决方案1】:

    通常,您不会通过翻转顶点值来进行镜像,而是通过应用适当的镜像变换矩阵。

    【讨论】:

    • 镜像矩阵长什么样?如何根据顶点数组指定变化?
    • 您可以通过以下方式组成镜像矩阵:首先将镜像平面上的一个点(任何点都可以)平移到原点,这是 T。然后将镜像平面垂直于其中一个旋转基向量,比方说 x,这是 R。之后,通过在 x 方向上用 -1 缩放来在镜像平面中执行反射。在此之后旋转并平移回来。所以镜像矩阵M = T^-1 * R^-1 * S * R * T。旋转和轴向镜像可以表示为一个称为Householder变换的单一操作,可以写成H = I - vv^T (v 是反射平面法线)。
    • 请注意 v v^T 是所谓的外积或张量积。所以不要将此与标量/点积混淆。
    • 数学很简单,但是如何以编程方式将其应用于一堆顶点?
    • @ina:通过将每个顶点位置与镜像矩阵相乘。
    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2021-12-18
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多