Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: alex19921992   (09.03.2007 в 07:47)
>попробуй перед вышеприведенным кодом
та строка уже была

>нет
но ведь в играх дофига источников света, а не восемь, как тут..

>писать самому
а нет ли готовых движков?

--------------------
может, попробуете отладить:
надо чтоб в комнате свет падал с потолка комнаты на пол.

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); // это уже давно стояло

glTranslated(0,0,-3.5);
//glRotated(rot1,0,1,0);
//glRotated(rot2,1,0,0);

glEnable(GL_LIGHTING); 
glEnable(GL_LIGHT0); 
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_DEPTH_TEST);
    
float dir[]={0,-1,0};    //настраиваем источник света
float pos[]={0,1,0,1};
float sp[4] = {1,1,1,1};
                     float color[4]={1,1,1,0};
glLightfv(GL_LIGHT0, GL_POSITION, pos);   
glLightfv(GL_LIGHT0, GL_SPECULAR, sp);
glLightfv(GL_LIGHT0, GL_DIFFUSE, color);
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 45.0);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glBegin(GL_TRIANGLES); //тут мы рисуем комнату
glColor3d(1,0,0);
glVertex3d(-1,1,1);
glVertex3d(-1,-1,-1);
glVertex3d(-1,-1,1);
glVertex3d(-1,1,1);
glVertex3d(-1,-1,-1);
glVertex3d(-1,1,-1);
glColor3d(0,1,0);
glVertex3d(1,1,1);
glVertex3d(1,-1,-1);
glVertex3d(1,-1,1);
glVertex3d(1,1,1);
glVertex3d(1,-1,-1);
glVertex3d(1,1,-1);
glColor3d(0.5,0.5,0);
glVertex3d(-1,-1,-1);
glVertex3d(1,1,-1);
glVertex3d(1,-1,-1);
glVertex3d(-1,-1,-1);
glVertex3d(1,1,-1);
glVertex3d(-1,1,-1);
glColor3d(0.5,0,0.5);
glVertex3d(1,1,1);
glVertex3d(-1,1,-1);
glVertex3d(-1,1,1);
glVertex3d(1,1,1);
glVertex3d(-1,1,-1);
glVertex3d(1,1,-1);
glColor3d(0,0.5,0.5);
glVertex3d(1,-1,1);
glVertex3d(-1,-1,-1);
glVertex3d(-1,-1,1);
glVertex3d(1,-1,1);
glVertex3d(-1,-1,-1);
glVertex3d(1,-1,-1);
glEnd();


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: