计算 3d 模型表面上的点
Calculate points on surface of 3d model
我有一个带有顶点、顶点法线(标准化)和面(三角形)的 3d 模型(来自 Blender)。我需要计算额外的顶点及其法线。换句话说,我需要算法从三个顶点和三个顶点法线计算三角形的中心顶点。
比如图中我们有A、B、C三个顶点。 D顶点怎么计算才正常?
或者,更好的是 E 点(其中一侧的中心)。
有人能帮帮我吗?
如果你想让D点正好在ABC的平面上那么我建议你使用barycentric coordinates。点 D 是中位数的交点,它在重心坐标中是 (1/3, 1/3, 1/3),或者 D = 1/3A + 1/3B + 1/3C,E 将是 (0,1/2 ,1/2).正常的ND应该和D一样计算,ND = 1/3NA + 1/3NB + 1/3NC.
您没有说明为什么需要计算 D 和 E。我想您希望在网格中获得更多的三角形,从而获得更好的细节水平。在这种情况下,应该使用 PN-triangles
我有一个带有顶点、顶点法线(标准化)和面(三角形)的 3d 模型(来自 Blender)。我需要计算额外的顶点及其法线。换句话说,我需要算法从三个顶点和三个顶点法线计算三角形的中心顶点。
比如图中我们有A、B、C三个顶点。 D顶点怎么计算才正常?
或者,更好的是 E 点(其中一侧的中心)。
有人能帮帮我吗?
如果你想让D点正好在ABC的平面上那么我建议你使用barycentric coordinates。点 D 是中位数的交点,它在重心坐标中是 (1/3, 1/3, 1/3),或者 D = 1/3A + 1/3B + 1/3C,E 将是 (0,1/2 ,1/2).正常的ND应该和D一样计算,ND = 1/3NA + 1/3NB + 1/3NC.
您没有说明为什么需要计算 D 和 E。我想您希望在网格中获得更多的三角形,从而获得更好的细节水平。在这种情况下,应该使用 PN-triangles