다음 코드는 뒤 따르는 이미지를 생성합니다. 배경에 사용하고있는 이미지는 displayMode와 마찬가지로 640 x 480입니다. 텍스처 은 .bmp이며 Slick 텍스처 로더가로드됩니다. 쿼드를 채우지 못하는 이유와 그것이 왜 반영되는지 혼란 스럽습니다. 편집 : 내 OpenGL 장면의 배경은 핑크색이며, 검은 색은 쿼드에서 생성 된 것입니다. 배경 이미지는 "테스트"가 그려진 2px 연한 파란색 테두리가있는 녹색 블록입니다. GL11.glClearColor(1.0f, 0.75f, 0.796f, 0.0f);
이 문제 Ortho2D가있는 OpenGL의 쿼드 매핑 텍스처
내 GL_PROJECTION이 밀어하기 전에 다음 사항을 포함 : 나는 GL11.glTranslatef(20.0f, 20.0f, 0.0f);
을 추가 할 때
private void renderBackground(){
float w = displayMode.getHeight()/2;
float h = displayMode.getWidth()/2;
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPushMatrix();
GL11.glLoadIdentity();
GLU.gluOrtho2D(-w, w, -h, h);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPushMatrix();
GL11.glLoadIdentity();
GL11.glDisable(GL11.GL_DEPTH_TEST);
if(useTextures)background.bind();
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex2f(-w,-h);
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex2f(w,-h);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex2f(w, h);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex2f(-w, h);
GL11.glEnd();
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPopMatrix();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPopMatrix();
}
는 이제 핑크 내 "initGL"방법하는 int 만든 색상 인 나타나는지 알 수 있습니다 그것, 내 GL_MODELVIEW renderBackground() 호출 될 때 수정되지 않습니다.
GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix
GL11.glLoadIdentity(); // Reset The Projection Matrix
// Calculate The Aspect Ratio Of The Window
GLU.gluPerspective(45.0f, (float) displayMode.getWidth()/(float) displayMode.getHeight(), 0.1f, 25.0f);
//position camera
GLU.gluLookAt(5.0f, 3.0f, -5.0f, 0.0f, 0.0f, -10.0f, 0.0f, 1.0f, 0.0f);
GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The Modelview Matrix
"너무 잘못 표시되고 있습니다."올바른 디스플레이는 ... 무엇입니까? – genpfault
죄송합니다. 실수입니다. 나는 전체 다각형이 내 텍스처로 채워질 것으로 기대하고있었습니다. – kieve
그것이 가득 찬 것처럼 보입니다. 다각형이 전체 뷰포트를 채우게할까요? 그렇다면'GL_PROJECTION'과'GL_MODELVIEW' 행렬의 내용은 무엇입니까? – genpfault