0

OpenGLディスプレイにテクスチャを追加しようとしました。通常のようなテクスチャをレンダリングします。

テクスチャの取得:

try {
        mainTexture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream(texturePath));
        width = mainTexture.getTextureWidth();
        height = mainTexture.getTextureHeight();
    } catch(IOException e) {
        e.printStackTrace();
    }

テクスチャのレンダリング:

mainTexture.bind();
    glColor3f(1.0f,1.0f,1.0f);

    glBegin(GL_QUADS);
        glTexCoord2f(0,0);
        glVertex2f(x,y);
        glTexCoord2f(1,0);
        glVertex2f(x + width,y);
        glTexCoord2f(1,1);
        glVertex2f(x + width,y + height);
        glTexCoord2f(0,1);
        glVertex2f(x,y + height);
    glEnd();

初期化コードでこれを使用する:

glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

これはコードの結果です:

テクスチャ/画像は50x50ピクセルで、青いボックスの内側にありますが、テクスチャは白い線までレンダリングされ、線の直前に黒が表示されます。それをしている理由を見つけることができません。画像/テクスチャの幅と高さである50x50ピクセルのみをレンダリングする必要があります。

ここに画像の説明を入力してください

4

1 に答える 1

1

画像のサイズ/寸法が 2 の累乗ではないという問題があったと思います。-size.html

于 2013-02-22T16:39:08.743 に答える