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


Автор: S.A.P. 3.9.2004, 17:24
Друзья, помогите разобраться, как сделать освещение, чтобы эта штука выглядела нормально при замене
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); на
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
user posted image
Вся поверхность строится в положительных полуосях координад, а потом сдвигается и поворачивается, согласно кода
Код

glColor3f(0.,0.5,0.5);
glPushMatrix();
glTranslatef(-1.7f,0.5,-6.0f);        
glRotatef(25,1.f,0.f,0.f);    
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);    
DrawMap();
glPopMatrix();

Сразу скажу, что в OpenGL я чайник, поэтому желательно, конечно, реально работающий код для этого случая.
Полезные ссылки, тоже приветствуются.

Автор: Dark Elf 3.9.2004, 18:09
www.pmg.org.ru/russian/nehe
www.gamedev.ru
www.opengl.org.ru

Автор: S.A.P. 3.9.2004, 18:14
Dark Elf
видел, не подходит (или просто не разобрался). Пожалуйста объясните на пальцах, как работает освещение и как мне лучше сделать в данном случае.

Автор: Elfet 3.9.2004, 22:11
если это карта вершин, то можно делать: чем выше точка, тем светлее цвет smile.gif

Автор: S.A.P. 4.9.2004, 12:03
какую бы высоту не ставил одна и та же бодяга получается sad.gif
user posted image
Код

GLfloat pos[4] = {0.,0.5,0.,1};
GLfloat dir[3] = {0.5,-0.5,0.5};
.............
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);

Или я что то не так делаю?
Как сдалать, чтобы хоть какой - то признак ландшафта был?

Автор: Elfet 5.9.2004, 16:04
я говорю - попробуй для верхних точек цвет все светлее и светлее брать , у меня всё получилось smile.gif

Автор: S.A.P. 5.9.2004, 18:10
Elfet , ты имееш ввиду, что у треугольников задавать те углы, которые находятся выше, цветом ярче c помощью glColor3f?

Со светом, после продолжительных экспериментов, неожиданно получилось smile.gif, правда какая - то шняга вышла, но уже результат:
user posted image
а всего то надо было перетащить glTranslatef(-1.7f,0.5,-6.0f); из процедуры рисования в процедуру инициализации, правда не совсем понимаю каким боком это сказалось на картинке.
А на счет задания цвета углам треугольников в зависимост от их У координаты (если ты это имел ввиду) надо попробывать, может что нибудь получше выйдет.

Автор: Elfet 8.9.2004, 18:14
Цитата
задания цвета углам треугольников в зависимост от их У координаты

угу, я это и имел ввиду, тока у меня квадраты были, может это ещё влияет

попробуй посмотреть с разных углов и с разной дальности на карту smile.gif

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