{

//Источник излучает расеянный и диффузный свет, ниже даны их интенсивности: float inten[4]«{0.72f.0.72f.0.72f.l.0f}; float intenl[4]«{0.2f.0.2f.0.2f.l.0f}: glEnable(GL_COLOR_MATERIAL): glEnable(GL_LIGHTING):

glEnable(GL_LIGHTO); //Создали источник номер 0 и задаем его параметры: glLightfv(GL_LIGHTO, GL_AMBIENT. intenl): gl Li ghtfv(GL_LIGHTO. GL_DIFFUSE. inten): ): Отображение трехмерной сцены

//Если включаем источник только здесь, то матрица единичная и источник света

//неподвижен относительно системы мира.

glLightfv(GL_LIGHTO. GL_P0SITI0N. pos);
glLightfv(GL_LIGHTO. GL_SPOT_DIRECTION. dir);
}

//Инициализация библиотеки: int ImtGl (HWND hWnd) {

hDC - GetDC(hWnd); int m_GLPixelIndex; PIXELFORMATDESCRIPTOR pfd; ZeroMemory(&pfd.s i zeof(PIXEL FORMATDESCRIPTOR)); pfd.nSize - sizeof(PIXELFORMATDESCRIPTOR); pfd.dwFlags - PFDJUPPORT_OPENGL|PFD_DOUBLEBUFFER; m_GLPixelIndex - ChoosePixelFormat( hDC. &pfd); if(m_GLPixelIndex-O) return -1;
if (SetPixelFormat(hDC. m_GLPixelIndex. &pfd)~FALSE) return -1; hGLRC - wglCreateContext(hDC): wglMakeCurrent(hDC. hGLRC); InitLightO;

SetProjectionObj(); //Проекционная система не изменяется - матрицу //проецирования заносим в конвейер один раз при инициализации, return 0; }

//Освобождение ресурсов, void DestroyGl(HWND hWnd) {

if (hGLRC) {
wglMakeCurrent(NULL. NULL); wglDeleteContext(hGLRC);
}
ReleaseDC(hWnd. hDC); }

В файле Transworm World.cpp располагаются функции, связанные с моделью движения и геометрическими преобразованиями.

Программа отображает сцену, повернутую на угол Angl е и перемещенную в модельном мире в точку GLfloat 0bjPos[3].

Для этого по сообщению WM_KEYDOWN вызывается функция ModelSimpl (int Key), изменяющая точку привязки 0bjPos[3], а по сообщениям таймера вызывается функция OnTimer( ), изменяющая угол поворота Angle.

Функция SetVi ew( ) формирует и заносит в конвейер видовую матрицу, выполняющую перенос начала координат в центр вращения, поворот сцены и перенос повернутой сцены в точку привязки. Все эти функции приведены в листинге 24.9.


⇐ Предыдущая| |Следующая ⇒