问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

opengl纹理映射的问题

发布网友 发布时间:2023-08-02 19:29

我来回答

1个回答

热心网友 时间:2024-11-23 10:54

这里贴的代码也看不出什么问题,检查纹理载入是不是有问题,图像是RGB还是RGBA之类的,我贴一段可执行的例子,你对比看看。。。

#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>

/*  Create checkerboard texture */
#define checkImageWidth 64
#define checkImageHeight 64
static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
static GLuint texName;

void makeCheckImages(void)
{
   int i, j, c;

   for (i = 0; i < checkImageHeight; i++) {
      for (j = 0; j < checkImageWidth; j++) {
         c = ((((i&0x8)==0)^((j&0x8)==0)))*255;
         checkImage[i][j][0] = (GLubyte) c;
         checkImage[i][j][1] = (GLubyte) c;
         checkImage[i][j][2] = (GLubyte) c;
         checkImage[i][j][3] = (GLubyte) 255;

      }
   }
}

void init(void)
{
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glShadeModel(GL_FLAT);
   glEnable(GL_DEPTH_TEST);

   makeCheckImages();
   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

   glGenTextures(1, &texName);
   glBindTexture(GL_TEXTURE_2D, texName);
   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_NEAREST);
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
                   GL_NEAREST);
   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth,
                checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
                checkImage);

   glEnable(GL_TEXTURE_2D);
}

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindTexture(GL_TEXTURE_2D, texName);

GLUquadricObj *pSphere =gluNewQuadric();
gluQuadricDrawStyle(pSphere, GL_FILL);
gluQuadricNormals(pSphere, GLU_SMOOTH);
gluQuadricTexture(pSphere, TRUE);
glColor3f (1.0f, 1.0f, 1.0f);  
glPushMatrix();
glRotatef(30.0f,1.0f,0.0f,0.0f);
gluSphere(pSphere,5,50,50);
glPopMatrix();

glFlush();
}

void reshape(int w, int h)
{
   glViewport(0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
   glTranslatef(0.0, 0.0, -20);
   
}

void keyboard(unsigned char key, int x, int y)
{
   switch (key) {
      case 27:
         exit(0);
         break;
   }
}

int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
   glutInitWindowSize(250, 250);
   glutInitWindowPosition(100, 100);
   glutCreateWindow(argv[0]);
   init();
   glutReshapeFunc(reshape);
   glutDisplayFunc(display);
   glutKeyboardFunc (keyboard);
   glutMainLoop();
   return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人大政协辅助岗是什么 政务辅助人员是干什么 政府辅助人员是什么 努比亚的海拔什么意思 北非努比亚现在怎么样了啊 相邻权的相关法律 梦见老公离世了什么预兆 梦见自己老公走掉 你出轨后 怎么操作才没被发现? 评评怎么造句 求一个带注释的opengl代码,简单点的就好,交作业用 OpenGL编程求助 ...在这个角的平分线上,为什么这定理要加在一个三角形内部 到角的两边的距离相等的点为什么一定要在角的内部,而不是在角的... 很香的果子,学名叫什么? 得之我幸,失之我命…是不是有两种意思,它真正想表达的是…… 贿赂是怎么查出来的 如何自己修剪长发 纪检怎么查购物卡返点 购物卡贿赂怎么取证 耳机孔坏了怎么修 魅族17屏幕多大 大宝防晒霜效果好 怎么样 新白娘子传奇哪里能看到全集 ...下怎么样区分1颗动力18650的电芯他是3c,5c,10c呢?请您指教 cg插画场景学习-如何起步CG插画学习 龙骨花施哪些肥 6387什么意思 龙骨怎样施肥施什么样的肥,龙骨施什么肥效果好 龙骨施什么肥最好 opengl图象质量问题,能解决将高分相送!!! 关于熊猫的小学生英语作文范文(三篇) 求可苦可乐的《樱花》平假名歌词啊!! 娃123456都是谁 已知一个箱里有60个布娃娃分别标准123456到10然后每次取出多少个布娃... 日产西玛v8后排座椅怎么拆 新款西玛实车曝光!外观更运动,网友:能用2.0T就完美了 QQ飞车怎么改装比较好 车 临沭到东营的? 从山东临沂临沭到烟台的汽车,经过莱阳嘛? 大约几点发车,几点到呢... 有途经临沭的到济南的客车吗?/几点的?从临沭站发车到济南哪个站,几点到... 济南长途汽车站到临沭的车次,票价 Does+every+one+want+to+be+healthy+and+strong?怎么回答 华为Mate30和Mate30Pro哪个好? 重庆有哪些资源 沈阳方特日场票可以玩夜场吗 西安最好公办职校排名 高考没考上本科,是不是就没有学校读啊? 青城山附近别墅楼盘有哪些?御青城项目怎么样? 天才是不是天生的呢?