Как построить пирамиду, применить к ней текстуру и осветить ее?

163
06 апреля 2018, 18:58

Как построить пирамиду, применить к ней текстуру и осветить ее?

Не могу понять, почему создается пустое окно.

Мог ли я поместить пирамиду за область отсечения?

#include "widget.h"
Widget::Widget(QWidget *parent) :
    QGLWidget( parent )
{
}

void Widget::change()
{
}
void Widget::initializeGL()
{
   qglClearColor(Qt::white);
   glEnable(GL_DEPTH_TEST);
   glShadeModel(GL_FLAT);
   glEnable(GL_CULL_FACE);
   glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
   //сглаживание
   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
   glEnable(GL_BLEND);
   glEnable(GL_LINE_SMOOTH);
   glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
}


void Widget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Очистка экрана и буфера глубины
    glLoadIdentity();                               // Сброс просмотра
    glTranslatef(-1.5f,0.0f,-6.0f);                 // Сдвиг влево и вглубь экрана
                     // Вращение пирамиды по оси Y
    glBegin(GL_TRIANGLES);
            glColor3f(1.0f,0.0f,0.0f);                      // Красный
            glVertex3f( 0.0f, 1.0f, 0.0f);                  // Верх треугольника (Передняя)
            glColor3f(0.0f,1.0f,0.0f);                      // Зеленный
            glVertex3f(-1.0f,-1.0f, 1.0f);                  // Левая точка
            glColor3f(0.0f,0.0f,1.0f);                      // Синий
            glVertex3f( 1.0f,-1.0f, 1.0f);                  // Правая точка
     glEnd();
   glBegin(GL_TRIANGLES);
     glColor3f(1.0f,0.0f,0.0f);                      // Красная
     glVertex3f( 0.0f, 1.0f, 0.0f);                  // Верх треугольника (Правая)
     glColor3f(0.0f,0.0f,1.0f);                      // Синия
     glVertex3f( 1.0f,-1.0f, 1.0f);                  // Лево треугольника (Правая)
     glColor3f(0.0f,1.0f,0.0f);                      // Зеленная
     glVertex3f( 1.0f,-1.0f, -1.0f);
    glEnd();
        glBegin(GL_TRIANGLES);
           glColor3f(1.0f,0.0f,0.0f);                      // Красный
           glVertex3f( 0.0f, 1.0f, 0.0f);                  // Низ треугольника (Сзади)
           glColor3f(0.0f,1.0f,0.0f);                      // Зеленный
           glVertex3f( 1.0f,-1.0f, -1.0f);                 // Лево треугольника (Сзади)
           glColor3f(0.0f,0.0f,1.0f);                      // Синий
           glVertex3f(-1.0f,-1.0f, -1.0f);                 // Право треугольника (Сзади)
        glEnd();
       glBegin(GL_TRIANGLES);
        glColor3f(1.0f,0.0f,0.0f);                      // Красный
        glVertex3f( 0.0f, 1.0f, 0.0f);                  // Верх треугольника (Лево)
        glColor3f(0.0f,0.0f,1.0f);                      // Синий
        glVertex3f(-1.0f,-1.0f,-1.0f);                  // Лево треугольника (Лево)
        glColor3f(0.0f,1.0f,0.0f);                      // Зеленный
        glVertex3f(-1.0f,-1.0f, 1.0f);                  // Право треугольника (Лево)
       glEnd();                                                // Кончили рисовать пирамиду
}
READ ALSO
В строке нужно подсчитать сколько раз встречается каждое слово

В строке нужно подсчитать сколько раз встречается каждое слово

Здравствуйте! Задача такая: в строке нужно подсчитать сколько раз встречается каждое словоК примеру, строка: «one two three»

188
Операции приведения типов С++

Операции приведения типов С++

Всем приветИзучая книгу Бьярне Страуструпа, я наткнулся на интересный, по моему мнению, пример:

156