Мобильная текстура с камерой opengl

Я пытаюсь текстурировать сферу так, чтобы она выглядела как часы. Однако при перемещении камеры текстура часов перемещается рядом с ней и выцветает (она не остается фиксированной в «рамке» циферблата)

Параметры текстур не знают, подходят ли они

// Cargamos la textura (RgbImage)
    RgbImage texture(filename[i]);
    gluBuild2DMipmaps(GL_TEXTURE_2D, 3, texture.GetNumCols(), texture.GetNumRows(), GL_RGB, GL_UNSIGNED_BYTE, texture.ImageData());   

    // Configuramos la textura
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_LINEAR); 

}


void drawReloj(){
     //Material
    GLfloat Ka[] = { 0.2f, 0.2f, 0.2f, 1.0f };
    GLfloat Kd[] = { 0.7f, 0.7f, 0.7f, 1.0f };
    GLfloat Ks[] = { 0.8f, 0.8f, 0.8f, 1.0f };
    glMaterialfv(GL_FRONT, GL_AMBIENT  , Ka);
    glMaterialfv(GL_FRONT, GL_DIFFUSE  , Kd);
    glMaterialfv(GL_FRONT, GL_SPECULAR , Ks);
    glMaterialf (GL_FRONT, GL_SHININESS, 50.0f);

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_TEXTURE_GEN_S);
    glEnable(GL_TEXTURE_GEN_T);

    glTranslatef(0,2,0);
    glScalef(1,1,0.05);
    glBindTexture(GL_TEXTURE_2D, textureName[9]); /textura reloj
    glutSolidSphere(0.5,50,10);

    glDisable(GL_TEXTURE_2D);
    glDisable(GL_TEXTURE_GEN_T);
    glDisable(GL_TEXTURE_GEN_S);
}
3
задан 05.07.2017, 21:33
1 ответ

Ты должен показывать, как ты хочешь произвести координаты текстуры с нею instrucciГіn glTexGeni:

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);

ты должен быть используя GL_EYE_LINEAR. Ты должен делать это перед тем, как давать ей generaciГіn координат

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
возможность
0
ответ дан 24.11.2019, 08:49

Теги

Похожие вопросы