이것은 내가 겪어 본 큰 문제이다.LWJGL glTranslate 이상한 일을하고있다
glTranslate를 사용하여 여러 타일을 렌더링하려고하지만 x, y 좌표로 그리기 기능을 호출 할 때 타일이 이상하게 배치됩니다 (공백을 원하지 않음).
다음과 같은 현상이 발생합니다.
그리기 : 여기
public void draw(float Xa, float Ya) {
GL11.glTranslatef(Xa, Ya, 0);
if(hasTexture) {
Texture.bind();
GL11.glBegin(GL11.GL_QUADS);
GL11.glColor3f(0.5f, 0.5f, 1);
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(0, 0);
GL11.glTexCoord2f(0, 1);
GL11.glVertex2f(0, S);
GL11.glTexCoord2f(1, 1);
GL11.glVertex2f(S, S);
GL11.glTexCoord2f(1, 0);
GL11.glVertex2f(S, 0);
GL11.glEnd();
}
내 렌더링 코드 :
public void a() throws IOException {
GL11.glTranslatef(0, 0, -10);
int x = 0;
while (x < World.BLOCKS_WIDTH - 1) {
int y = 0;
while (y < World.BLOCKS_HEIGHT - 1) {
blocks.b[data.blocks[x][y]].draw(x, y);
y++;
}
x++;
}
오류가 (눈에 보이는 것들 제외)이없는
감사합니다. 이것이 정확히 무엇입니까? – teenHack42
모든 opengl translate 함수는 실제로 행렬 계산입니다. OpenGL은 변환 행렬의 스택을 유지 관리하며 변환 작업은이 스택 맨 위에있는 행렬에 적용됩니다. glPushMatrix는 최상위 행렬의 복사본을 스택에 넣고, glPopMatrix는 그것을 제거합니다. 이것을 언두 메커니즘으로 생각할 수 있습니다. –