2009-07-21 6 views
2

テクスチャを三角形ストリップにマッピングする際にいくつかの問題があります。私はまだテクスチャの座標を完全に理解していないと思います。OpenGL ESを使用したglTexCoordPointerの問題

私は512x512のテクスチャを持っており、その320x64の部分を三角形のストリップにマップしようとしています。私は、コードを実行すると

static const Vertex3D bg_vertex [] = 
{ 
    { 0, 0,  0}, { 0, 64,  0}, { 64, 0,  0}, 
    { 64, 64,  0}, {128, 0,  0}, {128, 64,  0}, 
    {192, 0,  0}, {192, 64,  0}, {256, 0,  0}, 
    {256, 64,  0}, {320, 0,  0}, {320, 64,  0} 
}; 

static const GLfloat bg_texcoords [] = 
{ 
    {1.000, 0.000}, {1.000, 0.125}, {0.875, 0.000}, {0.875, 0.125}, {0.750, 0.000}, {0.750, 0.125}, 
    {0.625, 0.000}, {0.625, 0.125}, {0.500, 0.000}, {0.500, 0.125}, {0.375, 0.000}, {0.375, 0.125} 
}; 

glBindTexture (GL_TEXTURE_2D, bg1Texture); 
glEnable(GL_TEXTURE_2D); 

glColor4f (1.0, 1.0, 1.0, 1.0); 
glTexCoordPointer(2, GL_FLOAT, 0, bg_texcoords); 
glVertexPointer(3, GL_FLOAT, 0, &bg_vertex); 
glDrawArrays(GL_TRIANGLE_STRIP, 0, 12); 

が、それは三角形ストリップ上の元のテクスチャの歪んだ画像が表示されます。

は、ここに私のコードです。

誰かが私に間違っていることを教えてもらえますか?

私はテクスチャから余分な括弧を削除する際のおかげ

+0

に完全にテクスチャをマッピングしますの画像を追加することができます結果の歪み? –

+0

これは元の512x512イメージです。http://my-webhost.net/web/starfield_00.png 結果:http://my-webhost.net/web/result.png。 座標系は、画面の左上隅から(0、0) - (320、480)です。 – Istvan

答えて

3

OK、それが動作するようになりまし座標:

static const GLfloat bg_texcoords [] = 
{ 
    1.000, 0.000, 1.000, 0.125, 0.875, 0.000, 0.875, 0.125, 0.750, 0.000, 0.750, 0.125, 
    0.625, 0.000, 0.625, 0.125, 0.500, 0.000, 0.500, 0.125, 0.375, 0.000, 0.375, 0.125 
}; 

今では三角形

関連する問題