2011-11-14 4 views
0

OpenGL을 처음 사용합니다. 지형에 단일 이미지를 래핑하는 것이 가능합니까?OpenGL에서 지형에 단일 텍스처를 추가하는 방법은 무엇입니까?

아래 코드는 이미지 타일을 생성하지만 전체 지형에 단일 타일을 추가하려고합니다.

glBindTexture(GL_TEXTURE_2D, land); 
for (int z = 0; z < MAP_Z-1; z++) 
{ 

    glBegin(GL_TRIANGLE_STRIP); 

    for (int x = 0; x < MAP_X-1; x++) 
    { 

    glTexCoord2f(0.0f, 0.0f); 
    glVertex3f(terrain[x][z][0], terrain[x][z][1], terrain[x][z][2]); 

    glTexCoord2f(1.0f, 0.0f); 
    glVertex3f(terrain[x+1][z][0], terrain[x+1][z][1], terrain[x+1][z][2]); 

     glTexCoord2f(0.0f, 1.0f); 
    glVertex3f(terrain[x][z+1][0], terrain[x][z+1][1], terrain[x][z+1][2]); 

     glTexCoord2f(1.0f, 1.0f); 
     glVertex3f(terrain[x+1][z+1][0], terrain[x+1][z+1][1], terrain[x+1][z+1][2]); 

    } 
    glEnd(); 
} 

답변

4

현재 텍스처를 각 사각형에 매핑 중입니다. 지형을 살펴 가면서 glTexCoord2f를 변경해야합니다. for 루프에서 지형의 폭과 높이로 x 및 z 좌표를 나눕니다.

for (int z = 0; z < MAP_Z-1; z++) 
{ 

    glBegin(GL_TRIANGLE_STRIP); 

    for (int x = 0; x < MAP_X-1; x++) 
    { 

     glTexCoord2f((float)x/(float)MAP_X, (float)z/(float)MAP_Z); 
     ... 
     ... // Other code with (x+1) and (z+1) in the glTexCoord2f 
    } 
} 
+1

여기에 캐스트가 필요합니다. 그렇지 않으면 정수를 나눕니다. – Pubby

+0

참, 감사합니다 @ 퍼비. – NickLH

+0

나는 그런 식으로 노력했다. 나는 여전히 타일을 얻고있다. 나는 내 코드에서 어떤 실수를 저 지르지는 않았다. 대체 방법이 있습니까? – Srivi

관련 문제