views:

30

answers:

2

hello, i have a question concerning how to declare the points for a texture on a cube

to be exactly i mean the:

glTexCoord2f(x.f, y.f);

for the front side, my declaration works:

glBegin(GL_POLYGON);   //Vorderseite
        glNormal3f(0.0f, 0.0f, 1.0f);//normale für vorderseite

    glTexCoord2f(0.0f, -1.f);
    glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f); 

    glTexCoord2f(0.0f, 0.0f);
    glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    glEnd();

but for the right side, it doesn't work, i suggest i need other parameters, for glTexCoord2f, but i don't know witch one.

glBegin(GL_POLYGON);   //Rechte Seite

    glNormal3f(1.0f, 0.0f, 0.0f); //normale für rechte seite

    glTexCoord2f(0.0f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);

    glTexCoord2f(1.0f, -1.f);
    glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/0.0f);

    glTexCoord2f(1.0f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/0.0f);

    glTexCoord2f(0.0f, 0.0f);
    glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/0.0f);
    glEnd();

after all i close the "texture-declaration with"

glDisable(GL_TEXTURE_2D);

thanks in advance

edit:

the frontside is shown with the picture, the other side isn't shown, not even the "cubeside". for now i just use a picture that's black with some random white spaces, so the exactly position is not that much importent, despite that i'm very interessted how to set the glTexCoord2f right.

A: 

How exactly does it not work?

If the texture isn't showing up or the wrong texture is applied, it means you have to set a different texture with glBindTexture().

If the texture is aligned incorrectly, you have to make sure that the vertices that are shared between the two faces have the same texture coordinate.

Andrei Krotkov
the front side is shown, with the texture, the other side isn't shown, not even the "ground" or "cubeside"
Tyzak
A: 

Since you're using negative texture coordinates (or really anything outside the 0..1 range) you need to make sure that your texture wrap mode is set to repeat.

glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );

If those are set to GL_CLAMP instead, then any value less than 0 will be set to 0 and any value greater than 1 will be set to 1. But since you say the first part of your model textures correctly, this is probably not your problem.

The next most likely issue is lighting. If you turn off lighting with glDisable(GL_LIGHTING); does the entire model show up? If so, then you need to make sure you have a light facing the problem portion of your model, or add an ambient component to your light.

Alan
withglDisable(GL_LIGHTING); there is just the one side shown
Tyzak