2011-08-05 4 views
1

動作しないので、真剣に、私は、このコードで怒ってる:テクスチャ座標が機能しませんか?

switch(particle) { 
case 0: 
    glBegin(GL_TRIANGLE_STRIP);   // STONE 
     glNormal3f(0.0f, 0.0f, 1.0f); 
     glTexCoord2d(1, 1); glVertex3f(x+size, y+size, 0.0f); // Top Right 
     glTexCoord2d(0.5, 1); glVertex3f(x-size, y+size, 0.0f); // Top Left 
     glTexCoord2d(1, 0.5); glVertex3f(x+size, y-size, 0.0f); // Bottom Right 
     glTexCoord2d(0.5, 0.5); glVertex3f(x-size, y-size, 0.0f); // Bottom Left 
    glEnd(); 
    break; 
case 1: 
    glBegin(GL_TRIANGLE_STRIP);   // EARTH 
     glNormal3f(0.0f, 0.0f, 1.0f); 
     glTexCoord2d(0.5, 0.5); glVertex3f(x+size, y+size, 0.0f); // Top Right 
     glTexCoord2d(0, 0.5); glVertex3f(x-size, y+size, 0.0f); // Top Left 
     glTexCoord2d(0.5, 0); glVertex3f(x+size, y-size, 0.0f); // Bottom Right 
     glTexCoord2d(0, 0); glVertex3f(x-size, y-size, 0.0f); // Bottom Left 
    glEnd(); 
    break; 
} 

場合0が正常に動作しますが、ケース1にはないと私はなぜ知らない... この画像(2 16×16サブテクスチャ付き32×32)は次のとおりです。

enter image description here

+2

"do not work?"を定義してください。あなたは働いていないと考えられる画面で何が起こっていますか? –

+0

何もありません。 0の場合、アプリケーションは正しいサブテクスチャをレンダリングします。しかし、ケース1では何も描画しません。私は問題がglTextCoord2d(...)だと思いますが、これらは正しいようです:/ – Puyover

+0

ケース0からケース1にコードをコピーするとどうなりますか? –

答えて

4

0は明らかに正常に動作している場合を与える、あなたのテクスチャがケース1の座標間違っています。それらは:

glBegin(GL_TRIANGLE_STRIP);   // EARTH 
    glNormal3f(0.0f, 0.0f, 1.0f); 
    glTexCoord2d(0.5, 1.0); glVertex3f(x+size, y+size, 0.0f); // Top Right 
    glTexCoord2d(0, 1.0); glVertex3f(x-size, y+size, 0.0f); // Top Left 
    glTexCoord2d(0.5, 0.5); glVertex3f(x+size, y-size, 0.0f); // Bottom Right 
    glTexCoord2d(0, 0.5); glVertex3f(x-size, y-size, 0.0f); // Bottom Left 
glEnd(); 
関連する問題