所以,这些是我生成网格的法线,在gimp中增强对比度使它们更容易看到:
网格是金字塔,顶部平顶。所有法线都通过对它们进行平均而得到适当的平滑,它们将围绕面法线加权,并且按预期工作。
然而,正如您所看到的,只要有平坦的表面,就会有非常明显的接缝。只有漫射照明这些几乎不引人注意,但镜面反射看起来很可怕。
我怎样才能摆脱这些?我的第一个想法是用12个顶点瓦片替换所有6个顶点瓦片,这样它们都是相同的。但是,这当然会使网格的大小增加一倍。还有其他方法可以做我之后的事吗?
编辑:所有角落都有三角形放置以适合各自的角落,所有平面都沿着NE / SW分开。
答案 0 :(得分:1)
将法线绘制为从顶点开始的线条,以实际看到实际发生的事情。
只绘制每个顶点V的线和相应的法线N
double V[3],N[3],tmp[3];
for (int i=0;i<3;i++) tmp[i]=V[i]+0.3*N[i]; // 0.3 is the line size ...
glColor3f(0.0,0.5,0.0);
glBegin(GL_LINES);
glVertex3dv(V);
glVertex3dv(N);
glEnd();
通过这种方式,您可以轻松地直观地检查法线的正确性
我使用此normal averaging