Здравствуйте, 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 >>