1. gluLookAt使用方法:
glMatrixMode( GL_MODELVIEW );
// 重置模型观察矩阵。
glLoadIdentity();
// 选择模型观察矩阵
gluLookAt( 3.0f, 2.5f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f );
注:在调用gluLookAt之前一定要记得调用glLoadIdentity来重置当前指定的矩阵为单位矩阵.不然就会出问题
或添加:glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glMatrixMode( GL_MODELVIEW );
// 重置模型观察矩阵。
glLoadIdentity();
// 选择模型观察矩阵
gluLookAt( 3.0f, 2.5f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f );
注:在调用gluLookAt之前一定要记得调用glLoadIdentity来重置当前指定的矩阵为单位矩阵.不然就会出问题
2. 进行纹理映射时发现纹理和颜色混合了,解决之道:
要屏蔽glcolor3f的影响,只需添加:
glColor3f(1.0, 1.0, 1.0 ); //使得下面正方体的纹理映射不受最下面的正方体和四面体中的glColor3f的影响或添加:glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
3. opengl中进行纹理贴图时不显示贴图图片,调试时发现:
glGenTextures(6, &texture[i]);
glBindTexture(GL_TEXTURE_2D, texture[i]);
//绑定纹理图片后,发现texture数组始终为0,原因是加载纹理,调用glGenTextures之前应该完成opengl窗口
的初始化,即完成下面调用:
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(0, 0);
glutInitWindowSize(800, 600);
glutCreateWindow("Wander");
wander.load_GL_textures1(); //此时才能调用加载纹理函数,调用纹理载入子例程
1.
glFrontFace(GL_CCW); //指定逆时针为正面
glCullFace(GL_BACK); // 使得背面不可见
glEnable(GL_CULL_FACE);
2.
// 金字塔物体没进行纹理映射,所以此时不应该启用纹理映射,否则会看不到该物体
//glEnable(GL_TEX