说实话,立即模式用了一年多了,还是犯了这个错误。因为很多代码例子里面都是先指定法线,再指定位置,结果添加纹理坐标的时候就变成了指定纹理坐标在最后。
错误的写法:
1 | glNormal3f(n.x(), n.y(), n.z()); |
不要以为这个bug很简单,说实话这种绘制的bug,不知道真的无从调试起来。。。这样写出现什么样子的bug,看下图吧。。。
面片是不是很恶心的块状物???我这里绘制的是三维属性场,肯定是连续的,我无论怎么改插值模式,都没有用。。。
后面才回想起以前遇到过这个bug,所以改过来了。正确的代码应该是:
1 | glTexCoord1f(g_p_DisFromFile->norm_dis[g_denoted_point_id][he->vertex()->tag()]); |
正确的显示结果是:
如此简单的事情,能造成这样大的差距。