Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Не виден источник света. С++, OpenGL


Автор: bugmenot1 5.10.2012, 16:22
Код

void CPicWnd::OnPicture2() 
{
 glPushMatrix();
 glClearColor(1,1,1,1); 
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glScalef(0.1f,0.1f,0);

 float position[4] = {-3,3,0,0};
 float diffuse[4] = {1,1,1,1};

 glBegin(GL_POLYGON);
 glColor3ub(200,0,0);
 glVertex2d(-6,6);
 glVertex2d(6,6);
 glVertex2d(6,-6);
 glVertex2d(-6,-6);
 glEnd();

 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);

 glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
 glLightfv(GL_LIGHT0, GL_POSITION, position);

 glPopMatrix();
 glFinish();
 SwapBuffers(wglGetCurrentDC());
}

Что здесь не так? Почему не виден свет? Или свет можно использовать только с 3д объектами?

Автор: tzirechnoy 8.10.2012, 12:42
Как минимум -- свет надо включать до рисования, а не после. Не уверен кстати, что без нормалей он будет виден хоть как-то, хотя возможно -- надо ещё посмотреть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)