Шаг 33 - gluPerspective

Для задания перспективы не обязательно пользоваться только командами основной библиотеки open32.lib. В комплект поставки OpenGL входит вспомогательная библиотека glu32.lib. Она имеет много хороших функций, которые упрощают жизнь, одна из таких функций - gluPerspective.

Возьмем предыдущий пример и немного исправим функцию OnDraw(...):

void CExampleView::OnDraw(CDC* pDC)
{
	CRect clientRect;

	CExampleDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
	GetClientRect(&clientRect);
	glViewport(0, 0, clientRect.right, clientRect.bottom);

	glClearColor (0.5, 0.5, 0.75, 1.0);
	glClear (GL_COLOR_BUFFER_BIT);

	glColor3f (1.0, 0.0, 0.5);

	glLoadIdentity();

	gluPerspective(30.0f, clientRect.right/clientRect.bottom, 1.0f, 15.0f);
	glTranslatef(0.0, 0.0, -10.0);

	glRotatef(30.0, 1.0, 0.0, 0.0);
	glRotatef(70.0, 0.0, 1.0, 0.0);

	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

	DrawCube();

	SwapBuffers(pDC->m_hDC);
}

Вот собственно и все. Просто заменили функцию glFurstum на glPerspective.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Kirill V. Ratkin - 29.05.2000