OpenGL里球体贴图旋转的问题
新手第一问,大家来帮忙啊,哈哈哈!!
Q:
我用OpenGL做一个贴图的demo,画了一个球,用一张台球的图片贴在上面,到这全部OK,运行结果正常
但是,我后来加了个旋转功能,就发现只有球在动,贴图始终保持在那个位置上没有跟球体一起运动
请问这个问题是什么原因,何解?
部分代码如下:
Init()
{
...
glEnable(GL_TEXTURE_2D);
//指定像素的存储对齐方式,保持与BMP格式一致
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glGenTextures(1, &texName);//创建纹理
glBindTexture(GL_TEXTURE_2D, texName);
-----get the bmp data-----------
//指定图片作为纹理,注意bmp像素为BGR序
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
BMP.bmWidth, BMP.bmHeight,
0, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);
DeleteObject(hBMP); // Delete The Object
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR);
//纹理函数,决定颜色如何组合
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
...
}
display()
{
...glRotatef()...glutSolidSphere()...glFlush()...
}