1

テクスチャ マッピングで非常に奇妙な結果が得られました。

128*128 RGBA bmp 画像を使用して のテクスチャ マッピングを行ったGL_QUADSところ、次の奇妙な結果が得られました。他の画像でのテストは問題ありませんが、この画像では非常に奇妙な結果が得られました。

ここでは、葉の画像をGL_QUADS.

以下は私のコードです:

void init (void)
{

glClearColor(0.6, 0.6, 0.6, 0.0);
glClearDepth(1.0);
glShadeModel(GL_SMOOTH);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glEnable(GL_TEXTURE_2D);



glutSetCursor(GLUT_CURSOR_CROSSHAIR);
}

void display(){

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity ();
gluLookAt(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);

GLuint texture[2];

unsigned int outWidth;
unsigned int outHeight;
unsigned int outDepth;

glGenTextures(1, &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);

unsigned char * data=loadbmp("leaftest.bmp", outWidth, outHeight, outWidth, true);

gluBuild2DMipmaps(GL_TEXTURE_2D, 4, outWidth, outHeight, GL_BGRA, GL_UNSIGNED_BYTE, data);

glBindTexture(GL_TEXTURE_2D, texture[0]);

glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
    glTranslatef(0, 0, 2);
    glRotatef(90, 1, 0, 0);

    glBegin(GL_QUADS);
        glTexCoord2f(0.0,0.0);
        glVertex3f(0.0,-0.6,-0.3);

        glTexCoord2f(0.0,1.0);
        glVertex3f(0.0,0.0,-0.3);

        glTexCoord2f(1.0,1.0);
        glVertex3f(0.0,0.0,0.3);

        glTexCoord2f(1.0,0.0);
        glVertex3f(0.0,-0.6,0.3);

    glEnd();
glutSwapBuffers();
}
4

1 に答える 1