1

ここに画像の説明を入力これが私の出力です:![ここに画像の説明を入力][2]

壁が長いとイメージが引き伸ばされ、小さいと縮みます。

テクスチャをロードするための私のコード、loadTGATexture メソッドは superBible からのものです。

glGenTextures(1,&texture);  
glBindTexture(GL_TEXTURE_2D,texture);   
LoadTGATexture(textureFile, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_REPEAT);

テクスチャ座標を指定しているコード スニペットは次のとおりです: (j は建物の壁のインデックス)

    buildingArray[j][0] = n2.x;
    buildingArray[j][3] = 0;
    buildingArray[j][4] = n2.y;

    texBlgArray[j][0] = repeat_after_length;
    texBlgArray[j][5] = 0;

    normals[j][0] = normal.x;
    normals[j][6] = normal.y;
    normals[j][7] = normal.z;

    j++;

長さの後に繰り返しを1に設定しました。

長さが > 1 の場合、テクスチャ GL_REPEAT が発生するため、1 より大きい値に設定する必要があると思いますが、そうすると、テクスチャ内のウィンドウが非常に小さくなり、大きくなりません。のウィンドウが表示されます。テクスチャを並べて表示したいのですが、元のテクスチャ イメージの寸法を変更したくありません。ここに画像の説明を入力

私は何を間違っていますか?

4

1 に答える 1

5

テクスチャ座標は、おそらく長い壁でも正規化されています (つまり、左隅に [0,0] があり、右下に [1,1] があります)。テクスチャを繰り返したい場合は、1.0を超える座標が必要です。したがって、三角形の辺の長さが x の場合、テクスチャは x * k の範囲にある必要があります。

于 2013-04-05T13:33:40.267 に答える