【问题标题】:Trying to fix 3D mesh normals尝试修复 3D 网格法线
【发布时间】:2011-08-27 17:00:24
【问题描述】:

我有三角形集合来定义我的 3D 形状的网格表面, 我想修复每个三角形的法线以指向 outshape。

我正在尝试以下(伪):


1. 定义第一个三角形法线方向为右方向
2. 使用这样的 DFS 遍历网格:
3. 三角形 = 第一个三角形
4. foreach neigbour in triangle.getNeighbours
5. 如果邻居和三角形之间的角度大于 180,则执行 neighbor.flip()
6. 三角形 = 邻居
7. 如果邻居已经选择,则继续下一个邻居
8. 递归到 4.

但算法中的第 5 步不起作用,因为无法知道角度是否大于 180,因为我需要知道女巫方向(顺时针或逆时针)。

您能帮我理解如何修复算法吗?

【问题讨论】:

    标签: algorithm graphics mesh depth-first-search normals


    【解决方案1】:

    不需要计算邻居之间的角度。如果三角形ABC 是定向的(A->B->C),并且如果边缘AB 上的邻居是三角形ABD,则它必须在边缘AB 上具有相反的方向。这意味着,相邻三角形必须朝向B->A->D

    【讨论】:

    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    相关资源
    最近更新 更多