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


Автор: Gongex 25.9.2008, 09:29
рисую фигуры разные,решил добавить источник света по учебнику.Но кажется этот источник вращается вместе  с Rotatef.... Вот:

Код

glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);

    glPushMatrix();
    GLfloat light[]={0.0f,1.0f,1.0f,1.0f};
    GLfloat pos[]={1.0f,1.0f,1.0f,1.0f};
    GLfloat mat[]={0.2f,0.2f,0.2f,};
glTranslatef(3,5,1);
    glLightfv(GL_LIGHT0,GL_DIFFUSE,light);
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glMaterialfv(GL_FRONT,GL_AMBIENT,mat);

    GLfloat light1[]={1.0f,0.0f,1.0f,1.0f};
    GLfloat pos1[]={4.0f,1.0f,1.0f,1.0f};
glTranslatef(-4,-1,2);
    glLightfv(GL_LIGHT1,GL_POSITION,pos);
glLightfv(GL_LIGHT1,GL_POSITION,pos1);

glPopMatrix();



Тут я типа поставил два источника света,или я гоню??.И вопросы:Как сделать источник света неподвижным,ярким на 50%,и без потери своих цветов фигур???????

Автор: Rickert 25.9.2008, 10:42
Gongex, кури статью по свещению на progz.ru
Матрица модели мировой оси влияет на положения источника. Другими словами, ты должен сначала нарисовать источник, потом сбросить матрицу, а потом рисовать модели.

Автор: Gongex 25.9.2008, 11:05
я вроде и сохранял и сбрасывал,в коде это есть,....glPopMatrix();в конце поставил,потом идет зарисовка.А "свет" стоит в начале функции

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