Войти
ПрограммированиеФорумГрафика

Построение теней в OpenGL при помощи теневых буферов (Комментарии к статье)

Страницы: 1 2 Следующая »
#0
19:52, 3 июля 2005

Комментарий к Статье Построение теней в OpenGL при помощи теневых буферов

В данной статье рассказывается о построении теней при помощи использования расширений OpenGL, таких как ARB_shadow, ARB_depth_texture, ARB_shadow_ambient. Статья сопровождается исходным кодом на Delphi.


#1
19:52, 3 июля 2005

hmm.. эта штука "проглатывает" все остальные текстуры

Прошло более 8 месяцев
#2
23:25, 28 мар. 2006

Чё-то не очень-то работает.
Нельзя ли хоть код-то нормально писать, а то там пропущены аргументы, там необъявленный массив и т.д.
У меня нифига не работает.
И кстати там не надо после рендера в текстуру буфера очищать?

#3
18:19, 21 авг. 2006

Воопервых не понял откуда беруться некие PS, PT, PR, PQ используемые во втором проходе.

Во вторых не понял что вообще устанавливают эти команды:
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE_ARB, GL_LUMINANCE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB,
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FAIL_VALUE_ARB, 0.5);

Дальше непонятно чем отличается glTexGeni(GL_S, GL_EYE_LINEAR) от я так понимаю стандартного параметра GL_TEXTURE_GEN_MODE для всех четырех координат и зачем нам их менять...

Дальше я не понял сам принцип работы. Мы создаем "Карту теней" как текстуру, потом рендерим картинку со взгляда источника света, и записываем картинку в карту теней на первом проходе. Потом на втором проходе карта теней не высплывает вообще никаким образом, то есть эту текстуру 0 мы не используем никак вообще, вопрос зачем мы её тогда рисовали, судя по всему не просто так. Соответсвенно вопрос - как получается что карта теней как-то накладывается на картинку и регулирует освещенность ?

Прошло более 6 месяцев
#4
12:15, 24 фев. 2007

Интересно, как определялись коэффициенты в процедуре Pass2:

glTranslatef(0.5, 0.5, 0.5);
glScalef(0.5, 0.5, 0.5);


Стоит чуть-чуть их изменить, как тени тут же портятся непостижимым образом!

#5
13:31, 24 фев. 2007

1/2 =))

это для перевода координат из диапозона [-1; 1] к [0; 1]
тц = тц * 0.5 + 0.5

Прошло более 6 месяцев
#6
10:49, 16 сен. 2007

С мультисэмплингом жутко тормозит!

#7
12:22, 16 сен. 2007

KDenisK
Через шейдеры, есть возможность за один проход отрисовать 4е источника света.
Заместо стенсила, используется текстура RGBA. По-моему в лекциях про тени это было написанно.

#8
12:03, 1 янв. 2008

Centuri0n
+1 ничерта не понятно. но когда скачал исходнег то там те массивы были объявлены. а еще оказалось что после
glGenTextures(1, &DepthTextureID);

пропущена строка

glBindTexture(GL_TEXTURE_2D, DepthTextureID);

>>Потом на втором проходе карта теней не высплывает вообще никаким образом, то есть эту текстуру 0 мы не используем никак >>вообще, вопрос зачем мы её тогда рисовали, судя по всему не просто так. Соответсвенно вопрос - как получается что карта >>теней как-то накладывается на картинку и регулирует освещенность ?

мне тоже интересно.

#9
21:49, 8 янв. 2008

Я что-то не врублюсь, а если захочу использовать объекты покрытые текстурой то тут как быть
мультисэмплинг подрубать чтоль ?

#10
21:56, 8 янв. 2008

Kavis
И как тебе он поможет?

Придумал аналог высказывания:
"Написал вертексный шейдер, пропало освещение.
Нужно буфер трафарета подрубить, чтоб спекуляр появился?"

#11
21:59, 8 янв. 2008

NULL_PTR
Ну смешивать текстуры альфаканалом
А что можно в этом случае сделать ?

#12
22:06, 8 янв. 2008

NULL_PTR
Ну не знаю что делать :)
, есть какой-то выход из этого положения ?

#13
22:21, 8 янв. 2008

Мультитекстурирование

#14
22:22, 8 янв. 2008

NULL_PTR
Спасибо

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.