1,向shader中的uniform传递数据时,必须先绑定shader的ID,即glUseProgram(ID),而且必须是挨着操作的,如果中间又绑定了另外一个shader,那么此时传递的数据就会有问题。
2,顶点着色器给片段着色器传递的法向量,需要左乘模型矩阵的逆转矩阵即Normal =mat3(transpose(inverse(model)))*aNormal;
3,在矩阵变换时,一般按照缩放->旋转->平移依次变换即modelMat=translate*rotate*scale*modelData,但是在使用glm库的内置方法时,需要反过来写,具体原因见,同时强烈推荐看这位大神的教程。
4,有时程序运行时会报error:gl.h included before glew.h,一般是多处用到gl/glew.h库,且调用顺序不对造成的,解决办法就是在所有引入此库的地方,将#include <gl/glew.h>放在最上面。