Проблемы с небом
От: HeaveN Россия  
Дата: 27.09.03 22:18
Оценка:
Здравствуйте, All!!!

Нужно поместить камеру в космическом пространстве. Для отображения звездного неба использую куб с наложенными на его грани текстурами. Все вроде очень даже здорово, но на стыках граней образуются разрывы. Небо рисую так:

void DrawSky ()
{
    glDisable (GL_DEPTH_TEST);
    glDisable (GL_LIGHTING);

    glMatrixMode (GL_MODELVIEW);
    glLoadIdentity ();

    // юзаем текстуру для передней грани
    TextureApply (&e_ft);

    glBegin (GL_QUADS);
    
    glTexCoord2f (1, 1);
    glVertex3f (20, 20, -20);
    glTexCoord2f (0, 1);
    glVertex3f (-20, 20, -20);
    glTexCoord2f (0, 0); 
    glVertex3f (-20, -20, -20);
    glTexCoord2f (1, 0);
    glVertex3f (20, -20, -20);

    glEnd ();

    // юзаем текстуру для правой грани
    TextureApply (&e_rt);
    
    glBegin (GL_QUADS);
    glTexCoord2f (1, 1);
    glVertex3f (-20, 20, -20);
    glTexCoord2f (0, 1);
    glVertex3f (-20, 20, 20);
    glTexCoord2f (0, 0); 
    glVertex3f (-20, -20, 20);
    glTexCoord2f (1, 0);
    glVertex3f (-20, -20, -20);
    glEnd ();
    
    // юзаем текстуру для левой грани
    TextureApply (&e_lf);
    
    glBegin (GL_QUADS);
    glTexCoord2f (1, 1);
    glVertex3f (20, 20, 20);
    glTexCoord2f (0, 1);
    glVertex3f (20, 20, -20);
    glTexCoord2f (0, 0); 
    glVertex3f (20, -20, -20);
    glTexCoord2f (1, 0);
    glVertex3f (20, -20, 20);
    glEnd ();

    // юзаем текстуру для нижней грани
    TextureApply (&e_dn);
    
    glBegin (GL_QUADS);
    glTexCoord2f (1, 0);
    glVertex3f (20, -20, -20);
    glTexCoord2f (1, 1);
    glVertex3f (-20, -20, -20);
    glTexCoord2f (0, 1); 
    glVertex3f (-20, -20, 20);
    glTexCoord2f (0, 0);
    glVertex3f (20, -20, 20);
    glEnd ();

    // юзаем текстуру для верхней грани
    TextureApply (&e_up);

    glBegin (GL_QUADS);
    glTexCoord2f (0, 1);
    glVertex3f (20, 20, 20);
    glTexCoord2f (0, 0);
    glVertex3f (-20, 20, 20);
    glTexCoord2f (1, 0); 
    glVertex3f (-20, 20, -20);
    glTexCoord2f (1, 1);
    glVertex3f (20, 20, -20);
    glEnd ();
    
    // юзаем текстуру для задней грани
    TextureApply (&e_bk);

    glBegin (GL_QUADS);
    glTexCoord2f (1, 1);
    glVertex3f (-20, 20, 20);
    glTexCoord2f (0, 1);
    glVertex3f (20, 20, 20);
    glTexCoord2f (0, 0); 
    glVertex3f (20, -20, 20);
    glTexCoord2f (1, 0);
    glVertex3f (-20, -20, 20);
    
    glEnd ();

    glEnable (GL_LIGHTING);
    glEnable (GL_DEPTH_TEST);
}


Как избежать разрывов? Да, и еще... Работать должно на RIVA TNT2, поэтому расширения типа CubeMapping юзать нельзя.
Заранее спасибо
... << RSDN@Home 1.1 beta 2 >>
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.