Текущий архив: 2004.08.01;
Скачать: CL | DM;
ВнизЕще раз по осещение в OPGL Найти похожие ветки
← →
pr (2004-04-15 14:54) [0]Есть сцена размерами 4,4,4 в ней шесть объектов по углам и в т (-2,0,0) и в (2,0,0). Включаю источники света, 2 штуки, типа прожекторов и работает только один, нулевой. Пример кода :
glEnable (GL_DEPTH_TEST);
glEnable (GL_COLOR_MATERIAL);
pos[0]:=0;pos[1]:=0;pos[2]:=3;pos[3]:=1;
pos1[0]:=0;pos1[1]:=0;pos1[2]:=3;pos1[3]:=1;
direct[0]:=0;direct[1]:=0;direct[2]:=-3;direct[3]:=1;
direct1[0]:=1;direct1[1]:=0;direct1[2]:=-3;direct1[3]:=1;
glViewport(0, 0, ClientWidth, ClientHeight);
glMatrixMode (GL_PROJECTION);
glLoadIdentity;
glFrustum (-2, 2, -2, 2, 1, 5);
gltranslate(0,0,-3);
glMatrixMode(GL_MODELVIEW);
glloadidentity;
glenable(gl_lighting);
glenable(gl_light0);
glenable(gl_light1);
gllightfv(gl_light0,gl_position,@pos);
gllightfv(gl_light0,GL_SPOT_DIRECTION,@direct);
gllightf(gl_light0,GL_SPOT_EXPONENT,50);
gllightf(gl_light0,GL_SPOT_CUTOFF,20);
gllightfv(gl_light1,gl_position,@pos1);
gllightfv(gl_light1,GL_SPOT_DIRECTION,@direct1);
gllightf(gl_light1,GL_SPOT_EXPONENT,50);
gllightf(gl_light1,GL_SPOT_CUTOFF,20);
Заранее благодарю за ответ.
← →
clover © (2004-04-15 17:04) [1]Позиции у осветителей в одной точке, направления у осветителей 18 с небольшим градусов. Как ты там заметил, что один только работает? они почти в одну сторону светят ;)
← →
pr (2004-04-21 08:18) [2]Задал направление от оси первого источника на 45 градусов, не видно.
Потом нариовал сферу и поставил два точечных источника по разную сторону сферы. например координаты (-2,0,0) и (2,0,0) освещена сторона на которую падают лучи от нулевого источника.
Заранее благодарю за ответ.
PS. Дублировать вопросы больше не буду.
← →
Regis © (2004-04-25 00:29) [3]По умолчанию LIGHT0 задан как белый свет, а все остальные как чёрный, поэтому при включении их надо задавать св-ва источника:
gllightfv(gl_light1,GL_DIFFUSE, @diffuse) к примеру. Сам когда-то долго голову ломал :)
← →
pr (2004-04-28 09:58) [4]Great thx
← →
pr (2004-05-12 07:57) [5]Еще вопрос по освещению. Если использовать примитивы Quads, polygon, и направить на них луч прожектора, то на поверхности этих примитивов не видно пятна света, хотя на Quadric-объектах пятно появляется. Подскажите в чем у меня проблема.
← →
Дм (2004-05-12 08:38) [6]Как это появляется? Блики вообще надо накладывать в виде второй тексуры. Насколько мне известно.
← →
pr (2004-05-12 08:58) [7]Я говорю не про блики а про освещение от источника типа прожектора.
← →
Alexander S.F. (2004-05-12 09:48) [8]у меня был другой прикол: когда на низкополигональную модель объекта (например модель судна, сделанную в 3dsmax, и импортированную в свою сцену) направлял луч прожектора, то пятно было не круглой формы, а ломаной, по границам полигонов..
Ты проверь, сколько вершин треугольников, а следовательно и нормалей, используемых при растеризации полигона для расчета цвета, в quadric-модели попадает в желаемое пятно света, и сколько треугольников в твоих quads-примитивах.. и проверь, правильно ли ты считаешь для них нормали.. особо для смежных вершин
← →
pr (2004-05-12 10:51) [9]Когда я рисую плоскость я использую примитив Opengl quads, т.е четырехугольник. Для него задаются 4 вершины. Я конечно думал о том чтобы плоскость создать из множества четырехуольников, для получения пятна света, даже сделал это. Пятно на стенке появилось. Но может как-то можно получить пятно от прожектора на плоскость заданую одним примитивом. Вродебы логично рисовать стену одним плоским примитивом - четырехугольником.
← →
Sapersky © (2004-05-13 16:56) [10]Писали уже (Дм (12.05.04 08:38) [6]) - текстурой.
Т.е. нужно заранее подготовить текстуру с пятном, а при выводе проверять, какие полигоны будут освещены, и в зависимости от положения/ориентации источника по отношению к ним считать текстурные координаты. В первом Half-Life так был сделан фонарик... интересно, как во втором? Шейдерами, наверное. Тоже вариант :)
Можно ещё использовать режим автоматического расчёта текстурных координат (у Краснова был пример). Хотя это больше для неплоских объектов и глобального освещения (не узкого луча) - текстура будет лепиться на весь объект.
Страницы: 1 вся ветка
Текущий архив: 2004.08.01;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.043 c