Russian Qt Forum
Сентябрь 30, 2024, 18:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: неполная отрисовка, помогите..  (Прочитано 3587 раз)
spirits25
Гость
« : Январь 16, 2011, 21:35 »

рисую трёхмерный параллелепипед (хоть он и по определению 3Д), но передняя грань у него не отображается. Причём не отображается только с одной стороны.

Код:
void piped(GLfloat a, GLfloat b, GLfloat c)
{
  glShadeModel(GL_FLAT);
  glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);

  glBegin(GL_QUAD_STRIP);
    glVertex3f(-a/2,-b/2,-c/2);
    glVertex3f(-a/2,-b/2, c/2);
    glVertex3f(-a/2, b/2,-c/2);
    glVertex3f(-a/2, b/2, c/2);

    glVertex3f( a/2, b/2,-c/2);
    glVertex3f( a/2, b/2, c/2);

    glVertex3f( a/2,-b/2,-c/2);
    glVertex3f( a/2,-b/2, c/2);

    glVertex3f(-a/2,-b/2,-c/2);
    glVertex3f(-a/2,-b/2, c/2);
  glEnd();

  glBegin(GL_QUADS);
    glVertex3f(-a/2,-b/2, c/2);
    glVertex3f(-a/2, b/2, c/2);
    glVertex3f( a/2, b/2, c/2);
    glVertex3f( a/2,-b/2, c/2);

    glVertex3f(-a/2,-b/2,-c/2);
    glVertex3f(-a/2, b/2,-c/2);
    glVertex3f( a/2, b/2,-c/2);
    glVertex3f( a/2,-b/2,-c/2);
  glEnd();
}

Затем заметил, что прямоугольник тоже отображается только с одной стороны.
Код:
        glBegin(GL_QUADS);
        glLineWidth((GLfloat) 3);
        glVertex3f(-0.3, 1.2, 4.0);//fSize);
        glVertex3f(0.3, 1.2, 4.0);
        glVertex3f(0.3, -1.2, 4.0);//-fSize);
        glVertex3f(-0.3, -1.2, 4.0);
        glEnd();

думаю, что решение элементарно, но я его не знаю =( заранее спасибо за подсказку=)
Записан
alexman
Гость
« Ответ #1 : Январь 16, 2011, 22:03 »

Попробуй
Код:
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
Записан
spirits25
Гость
« Ответ #2 : Январь 16, 2011, 22:11 »

первый код, 4 строка - есть такая строка уже=)
спасибо за совет, ещё есть предположения?
Записан
Fat-Zer
Гость
« Ответ #3 : Январь 16, 2011, 22:13 »

glEnable(GL_DEPTH_TEST);

не забыли прописать?

ЗЫ: видимо код в соседней ветке уже не нужен...
Записан
spirits25
Гость
« Ответ #4 : Январь 16, 2011, 22:42 »

забыл, но прописал и не помогло. может не туда прописал? куда именно нужно?
Записан
Fat-Zer
Гость
« Ответ #5 : Январь 17, 2011, 14:52 »

пример с тех времён, когда я сам пытался чего-то на oGL навоять:
// код больше, чем на 90% не мой...
« Последнее редактирование: Январь 17, 2011, 15:09 от Fat-Zer » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.