|
我的本意是要画一个有纹理的球体,但画出来的
却始终是一个平面,是不是在纹理映射部分出错了?
请大侠指点一下。
//生成纹理部分
TextureImage3[0]=LoadBMP("xxx");
glGenTextures(1, &tTex_refl);
glBindTexture(GL_TEXTURE_2D, tTex_refl);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri
(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage3[0]->sizeX,TextureImage3[0]->sizeY,GL_RGB, GL_UNSIGNED_BYTE, TextureImage3[0]->data);
//画球部分,已经bind了该纹理了
ball=gluNewQuadric();
gluQuadricDrawStyle(ball, GLU_FILL);
gluQuadricNormals(ball, GLU_SMOOTH);
gluQuadricOrientation(ball, GLU_OUTSIDE);
gluQuadricTexture(ball, GL_TRUE);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
IDList=glGenLists(1);
glNewList(IDList, GL_COMPILE);
gluSphere(ball,R,30,30);
glEndList();
应该达到的效果见附件:
|
-
|