Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-1089977904
Prohodil Mimo
2004-07-16 15:38
2004.08.01
Просто мнение об отвлечённых темах.


14-1090060228
VID
2004-07-17 14:30
2004.08.01
Нужен банк который..


4-1087935997
Lion
2004-06-23 00:26
2004.08.01
rundll32 keyboard,disable


1-1089879046
Bizon's
2004-07-15 12:10
2004.08.01
Include Version Information


4-1087374976
DFF
2004-06-16 12:36
2004.08.01
API : Длинна текста и смена шрифта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский