2011-11-14 12 views
0

OpenGLの新機能です。単一のイメージを地形にラップすることは可能ですか?OpenGLの地形上に単一のテクスチャを追加するにはどうすればよいですか?

以下のコードは画像タイルを生成しますが、地形全体に1つのタイルを追加したいと思います。

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

本当にありがとう@Pubby。 – NickLH

+0

私はそのようにしました。私はまだタイルを取得しています..私は私のコードに間違いを犯したとは確信していません。代わりの方法はありますか? – Srivi

関連する問題