Народный учебник по OpenGL


Урок 5. Создание фигур в 3D - часть 4


Замечу, что мы сдвинули куб немного вглубь экрана в этом уроке. Поэтому размер куба будет казаться меньше размера пирамиды. Если мы переместили бы куб на 6 единиц к экрану, то куб будет казаться больше чем пирамида, и часть куба будет за пределами экрана. Вы можете поиграться с этим настройками, и сдвинув куб дальше от экрана он будет казаться меньше, а придвинув к экрану он будет казаться больше. Это происходит из-за переспективы. Объекты на расстоянии кажутся меньше :).

glLoadIdentity();

glTranslatef(1.5f,0.0f,-7.0f);          // Сдвинуть вправо и вглубь экрана

glRotatef(rquad,1.0f,1.0f,1.0f);        // Вращение куба по X, Y & Z

glBegin(GL_QUADS);                      // Рисуем куб

Мы начнем рисовать куб сверху. Мы сдвигаемся на одну единицу от центра куба. Отметим, что по оси Y всегда единица. Затем мы рисуем квадрат на Z плоскости. Мы начинаем рисовать с правой точки вверху экрана. Правая верхняя точка должна быть на одну единицу справа, и на одну единицу вглубь экрана. Вторая точка будет на одну единицу влево и на единицу вглубь экрана. Сейчас мы нарисуем ту часть квадрата, которая ближе к зрителю. Поэтому для того чтобы сделать это, вместо смещения вглубь экрана, мы сдвигаемся на одну единицу к экрану. Улавливаете смысл?

        glColor3f(0.0f,1.0f,0.0f);              // Синий

        

glVertex3f( 1.0f, 1.0f,-1.0f);          // Право верх квадрата (Верх)

        

glVertex3f(-1.0f, 1.0f,-1.0f);          // Лево верх

        

glVertex3f(-1.0f, 1.0f, 1.0f);          // Лево низ

        

glVertex3f( 1.0f, 1.0f, 1.0f);          // Право низ

Нижняя часть квадрата рисуется таким же образом, как и верхняя, но поскольку это низ, сдвигаемся вниз на одну единицу от центра куба. Замечу, что ось Y всегда минус единица. Если мы окажемся под кубом, и взглянем на квадрат, который снизу, вы заметите, что правый верхний угол – это угол ближний к зрителю. Поэтому вместо того чтобы рисовать дальше от зрителя в начале, мы рисуем ближе к зрителю, тогда левая сторона ближе к зрителю. И затем мы движемся вглубь экрана, для того чтобы нарисовать дальние две точки.




Начало  Назад  Вперед



Книжный магазин