Шаг 4 - Взгяд со стороны

Создание проекта

Будем работать со старым.

Создаем код

#include "afxwin.h"
#include "GL/gl.h"
#include "GL/glu.h"
#include "GL/glaux.h"

void myinit(void);
void CALLBACK display(void);
 
void myinit (void)
{
}

void CALLBACK display (void)
{
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective (130, 1, 50, 0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	gluLookAt(150, 150, 150, 0, 0, 0, 0, 100, 0);
	glColor3f(1,0,0);
	glBegin(GL_LINE_LOOP);
		glColor3f(1,0,0);
		glVertex3f(0, 0, 0);
		glVertex3f(200, 0, 0);
	glEnd();
	glBegin(GL_LINE_LOOP);
		glColor3f(0,1,0);
		glVertex3f(0, 0, 0);
		glVertex3f(0, 200, 0);
	glEnd();
	glBegin(GL_LINE_LOOP);
		glColor3f(0,0,1);
		glVertex3f(0, 0, 0);
		glVertex3f(0, 0, 200);
	glEnd(); 
	glFlush();
}

int main(int argc, char** argv)
{
	auxInitDisplayMode (AUX_SINGLE | AUX_RGB);
	auxInitPosition (0, 0, 500, 500);
	auxInitWindow ("1-6");
	myinit();
	auxMainLoop(display);
	return(0);
}

Описание

Итак, что добавилось glMatrixMode (GL_PROJECTION); говорит о том, что команды относятся к проекту.

glLoadIdentity(); считывает текущую матрицу.

gluPerspective (130, 1, 50, 0); Настройка перспективы просмотра. Нам сейчас интересны первые два параметра. Первый параметр это охват в градусах от 0 до 180. Можете воспринимать его как обьектив на фотоаппарате. Либо все но мелкое , либо большое но одно. Создав и запустив проект, поменяейте это параметр, вы увидите изменение изображения больше-меньше. Посмотрите на рисунок ниже. Второй параметр это угол поворота по оси Y. Да бог с ним. Главное первый параметр.

4_1.gif (893 b)

glMatrixMode (GL_MODELVIEW); говорит о том, что работы будет теперь просмотром, а не проектом. Это важно. Дело в том , что проект и просмотр имеют разницу. Зачастую необходимо поворачивать фигуры друг относительно друга и т.п. это делается в разных матрицах и т.д. Ну это на примерах понятнее будет надеюсь. А пока факт. Перспективу для проекта, а взгляд для просмотра.

gluLookAt (150, 150, 150, 0, 0, 0, 0, 100, 0); Устанавливает точку наблюдения, камеру. Первые параметры откуда (x,y,z) и куда (x,y,z). Это пока главное.

4_2.gif (754 b)

Поэкспениментируйте с первыми тремя или вторыми тремя параметрами. Угол взгляда будет меняться. Лучше менять параметры на 2 - 5 единиц и у одной координаты, чтобы не потеряться.


Шпаргалка

Установите перспективу:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(130, 1, 50, 0);

Угол взгляда:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(150, 150, 150, 0, 0, 0, 0, 100, 0);

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.09.99