严重散分,谁帮我检查一下这段OPENGL纹理贴图的程序吧,实在不知道怎么回事了,谢谢啊!!!!!

lahuye 2006-05-15 07:14:55
现在场景中画了一个球,我想给它贴一个头像或者是一个世界地图,BMP图片的,256X256和256X512的,
自动计算坐标,下面程序出来的效果却是拉伸扭曲的,而且是好几个象拼一起显示的,我只要在球上规则显示完整的一个图片,究竟该如何实现啊,谢谢啊!是程序思想就不对还是参数设置有问题啊?
有自动计算纹理坐标的例子吗?感激不尽!

AUX_RGBImageRec *image;
GLubyte *stripeImage;
image=auxDIBImageLoad("mona.bmp");
if(image==NULL)
exit(-1);

stripeImage=(GLubyte *)malloc(3*image->sizeX*image->sizeY*sizeof(GLubyte));

gluScaleImage(GL_RGB,image->sizeX,image->sizeY,GL_UNSIGNED_BYTE,
image->data,image->sizeX,image->sizeY,
GL_BITMAP,stripeImage);

glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);

glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE, GL_REPLACE);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexImage2D(GL_TEXTURE_2D,0,3,image->sizeX, image->sizeY, 0,
GL_RGB, GL_UNSIGNED_BYTE, image->data);

glEnable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glEnable(GL_CULL_FACE);
glFrontFace(GL_CCW);
...全文
119 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧