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ピクセルのみをレンダリングする必要があります。