Форум программистов, компьютерный форум CyberForum.ru

Не виден источник света. С++, OpenGL - C++

Восстановить пароль Регистрация
 
incognitooo
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 9
05.10.2012, 17:26     Не виден источник света. С++, OpenGL #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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д объектами?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
05.10.2012, 17:46     Не виден источник света. С++, OpenGL #2
Настраивать свет надо до вывода примитивов.
incognitooo
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 9
05.10.2012, 18:07  [ТС]     Не виден источник света. С++, OpenGL #3
Цитата Сообщение от NoMasters Посмотреть сообщение
Настраивать свет надо до вывода примитивов.
Как-то так? Если да, то так тоже не работает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void CPicWnd::OnPicture2() 
{
    float position[4] = {-3,3,0,0};
    float diffuse[4] = {1,1,1,1};
 
    glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
    glLightfv(GL_LIGHT0, GL_POSITION, position);
    
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    
    glPushMatrix();
    glClearColor(1,1,1,1); 
 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glScalef(0.1f,0.1f,0);
    glBegin(GL_POLYGON);
        glColor3ub(200,0,0);
        glVertex2d(-6,6);
        glVertex2d(6,6);
        glVertex2d(6,-6);
        glVertex2d(-6,-6);
    glEnd();
    glPopMatrix();
    glFinish();
    SwapBuffers(wglGetCurrentDC());
}
Nick Alte
Эксперт С++
1561 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,896
Завершенные тесты: 1
05.10.2012, 18:14     Не виден источник света. С++, OpenGL #4
Что-то не видно вызовов glMaterial, а наоборот, видны вызовы glColor.
Yandex
Объявления
05.10.2012, 18:14     Не виден источник света. С++, OpenGL
Ответ Создать тему
Опции темы

Текущее время: 03:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru