我现在是用gluBuild2DMipmaps产生了  纹理数据,用glTexSubImage2D替换以后没有变化  就是说  替换以后还是以前的纹理数据,请教是怎么会事呢  谢谢

解决方案 »

  1.   

    glClearColor(0.0f,0.0f,0.0f,0.0f);
    glShadeModel(GL_SMOOTH);
    glClearDepth(1.0f) ;
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);

    glEnable(GL_CULL_FACE);
    glFrontFace(GL_CCW);
    glEnable(GL_TEXTURE_2D); glGenTextures(5,texture);
    for(int i=0;i<5;i++)
    {
    pRGB1=LoadBitmapFile(szfileName[i],&bih); if(!pRGB1)
    return; glBindTexture(GL_TEXTURE_2D,texture[i]); gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, bih.biWidth, bih.biHeight, GL_RGB, GL_UNSIGNED_BYTE,pRGB1);

    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_NEAREST);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
    //glTexParameteri(GL_TEXTURE_2D,GL_GENERATE_MIPMAP,GL_TRUE);

    glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);

    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    }
    int i=0;
    int j=0;
    HRESULT hr = pGrab -> GetCurrentBuffer( &n, (long *)pRGB );

    glBindTexture(GL_TEXTURE_2D,texture[0]);
    glTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, bih1.biWidth, bih1.biHeight, GL_RGB, GL_UNSIGNED_BYTE, pRGB); glPushMatrix();
    glBegin(GL_QUADS);
    glTexCoord2f(0.0f,0.0f);glVertex2f(-windowWidth,-windowHeight);
    glTexCoord2f(1.0f,0.0f);glVertex2f(windowWidth,-windowHeight);
    glTexCoord2f(1.0f,1.0f);glVertex2f(windowWidth,windowHeight);
    glTexCoord2f(0.0f,1.0f);glVertex2f(-windowWidth,windowHeight);
    glEnd();
    glPopMatrix(); for(i=0;i<20;i++)
    {
    j++;
    if(j>4)
    j=1;
    glBindTexture(GL_TEXTURE_2D,texture[j]); tex1[i].Rende(1.0f,-370.0f+80.0*i,height,angle);
    } height-=1.0;
    if(height<-300.0f)
    height=300.0f;
    angle+=1;
    if(angle>360.0f)
    angle=0.0f;
      

  2.   

    gluBuild2DMipmaps改成glTexImage2D,行吗?