저는 LWJGL에서 투명 텍스처를 그리려고했습니다. 그러나, 내가 가진 코드가 작동하지 않는 것 같습니다. 코드를 실행할 때마다 투명 이미지가 나타나지만 배경은 완전히 검은 색입니다. 여기 LWJGL에서 투명 텍스처를 그리는 방법은 무엇입니까?
내가 완전히 검은 무엇을 의미하지만 이미지가 괜찮 : 나는 불투명 텍스처를 그릴 수 있었다하지만 지금까지 나는이 그리기와 운 했어 하나 올바르게.
이 코드에서 누락되었거나 잘못 된 것이 무엇인지 알고 싶습니다. 도면 질감
는코드 :
//draw transparent texture
GL11.glMatrixMode(GL11.GL_TEXTURE);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glPushMatrix();
GL11.glColor4d(1,1,1,1);
texture.bind();
GL11.glTranslated(0.5,0.5,0.0);
GL11.glRotated(270-this.getAngle(),0.0,0.0,1.0);
GL11.glTranslated(-0.5,-0.5,0.0);
GL11.glBegin(GL11.GL_QUADS);
{
GL11.glTexCoord2f(0,0);
GL11.glVertex2d(this.getX(), this.getY());
GL11.glTexCoord2f(1,0);
GL11.glVertex2d(this.getX(),(this.getY()+this.getHeight()));
GL11.glTexCoord2f(1,1);
GL11.glVertex2d((this.getX()+this.getWidth()),(this.getY()+this.getHeight()));
GL11.glTexCoord2f(0,1);
GL11.glVertex2d((this.getX()+this.getWidth()), this.getY());
}
GL11.glEnd();
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_BLEND);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
여기 파일에서 텍스처를로드하는 코드입니다 :
private Texture loadTexture(String key){
try {
//in this case, key refers to a valid power of 2, transparent png
return TextureLoader.getTexture("PNG", new FileInputStream(new File("res/"+key+".png")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
당신의 OpenGL에 파일을 업로드 그것에서 텍스처를로드하는 코드를 추가 할 수 있습니까? 이미지에 알파가 포함되어 있습니까? –
그래, 나는 그것이 중요 할지도 모른다고 의심했지만, 나는 또한 그것에 대해 확신하지 못했다. –
'texture.getFormat()'은 무엇을 반환합니까? –