Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 20:29   #11
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Тяжеловато будет vec_Light найти
Элементарно. От координаты точки отнимаем координату источника света.
Вадим Буренков вне форума Ответить с цитированием
Старый 15.11.2011, 20:35   #12
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Теперь все ясно. Спасибо огромное.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 15.11.2011, 20:44   #13
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

Надо заметить что вся эта "сложнота" с просчетом векторов и дот продуктов с вычислением света не нужна. если пишите используя старые FVF функции, а вот если решите шейдерами заняться то придется в этом разбираться.
Warn вне форума Ответить с цитированием
Старый 15.11.2011, 23:11   #14
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Но на шейдерах можно будет вещи посложнее замутить типа бампа, specular'a и прочего . Если интересно советую глянуть на среду разработки шейдеров RenderMonkey. В комплекте идет много приммеров. Возможность запуска шейдеров в среде позволяет разобраться в непонятном коде.
Вадим Буренков вне форума Ответить с цитированием
Старый 19.11.2011, 12:45   #15
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Ясно. Еще раз спасибо.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 28.12.2011, 14:02   #16
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Видно у меня из головы вылетело то, как я раньше работал. Сейчас опять взялся за освещение и начались проблемы.
Код:
lightposition:array[0..3] of GLFloat = (0,0,3,1);
//--------------------
glViewPort(0,0,Width,Height);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glClearColor(0,0,0,0);
glMatrixMode(GL_PROJECTION);
glLoadIdEntity();
gluPerspective(45.0,Form1.Width/Form1.Height,0.1,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdEntity();
glPushMatrix();


gluLookAt(0,1,3,
0,0,0,
0,1,0);


glrotated(angle,0,1,0);
glLightfv(GL_LIGHT0,GL_POSITION,@lightposition);


glColor3f(1,0,0);
glBegin(GL_QUADS);
glNormal3f(0,1,0);
glVertex3f(2,0,-2);
glVertex3f(-2,0,-2);
glVertex3f(-2,0,2);
glVertex3f(2,0,2);
glEnd;

glColor3f(0,1,0);
glBegin(GL_QUADS);
glNormal3f(0,0,1);
glVertex3f(1,1,0);
glVertex3f(-1,1,0);
glVertex3f(-1,0,0);
glVertex3f(1,0,0);
glEnd;

glPopMatrix();
SwapBuffers(DC);
Получается непонятно что.
Спасибо.
Вложения
Тип файла: zip Problem.zip (375.0 Кб, 9 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 28.12.2011, 21:55   #17
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

Код:
lightposition:array[0..3] of GLFloat = (0, -1 , -3, -1);
Код:
glEnable( GL_COLOR_MATERIAL);


glBegin(GL_QUADS);
glColor3f(1,0,0);
glNormal3f(0,2,0);
glVertex3f(2,0,-2);
glVertex3f(-2,0,-2);
glVertex3f(-2,0,2);
glVertex3f(2,0,2);
glEnd;

glBegin(GL_QUADS);
glColor3f(0,1,0);
glNormal3f(0,0,1);
glVertex3f(1,1,0);
glVertex3f(-1,1,0);
glVertex3f(-1,0,0);
glVertex3f(1,0,0);
glEnd;
Warn вне форума Ответить с цитированием
Старый 29.12.2011, 10:15   #18
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Что-то я понять не могу. Почему именно
Код:
lightposition:array[0..3] of GLFloat = (0, -1 , -3, -1);
С чем связанно изменение. Ведь вы писали
Цитата:
грубо говоря лампочки бывают разного типа: лампочка(точечный свет(POIN LIGHT) и издалека приходящий (направленный (DIRECTONAL))

хyzw
Если w = 0.0 то хyz трактуется как направление источника, свет направленный.
Если w <> 0.0 то хyz трактуется как позиция точечного источника света.
Почему так?
Код:
glNormal3f(0,2,0)
Почему 2? А если это прямоугольник будет?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.12.2011, 17:29   #19
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

w = -1
Цитата:
Если w <> 0.0 то хyz трактуется как позиция точечного источника света.
(w <> 0 = true)

попробовал еще так сделать в вашем коде
lightposition:array[0..3] of GLFloat = (0, 1 , 3, 1);
тоже самое что и lightposition:array[0..3] of GLFloat = (0, -1 , -3, -1); очевидно при минусе имеем зеркальную координатную систему для точечного света. Однако все остается так же 0 - направленный свет, >0 - точечный свет (нормальная координатная система), <0 - зеркальная координатная система для точечного источника.

Цитата:
glNormal3f(0,2,0)
не могу знать я особо ваш код неправил, что было там то и представил, но нормали вполне достаточно быть единичной длины (т.е например ( 0, 1, 0)).

Последний раз редактировалось Warn; 29.12.2011 в 18:36. Причина: доп.
Warn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Освещение в OpenGL - как добиться релистичности, нужен мануал. Karp_13 Общие вопросы C/C++ 4 29.10.2011 00:29
OpenGL - освещение Артэс Общие вопросы C/C++ 0 12.10.2011 20:46
как сделать такое освещение(opengl) ? NiCola999 Общие вопросы C/C++ 3 20.11.2010 15:02
Освещение ноута Lemo Свободное общение 21 30.05.2010 14:55
OpenGL, освещение loozer Мультимедиа в Delphi 3 17.12.2008 19:09