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

Реализация карт теней с использованием GLSL шейдеров (комментарии) (13 стр)

Страницы: 112 13 14 15 16 Следующая »
#180
18:01, 27 авг. 2009

Sergio666
AFAIR ты на delphi пишешь? если да, то какой хидер юзаешь?


#181
18:03, 27 авг. 2009

Dimich
> http://ifolder.ru/13731211
Этот работает. Показывает конячку с тенями, источником света и пр.

> а если допустим dglOpenGL заменить? или Textures.pas?
Даже не знаю, что и сказать... у меня такого нет

#182
18:04, 27 авг. 2009

Dimich
> если да, то какой хидер юзаешь?
Когда-то давно он тоже был dglOpenGL. Теперь я его переделал и он у меня гордо называется OpenGL20.pas, хотя к именно к 2.0 отношения не имеет :)

#183
18:07, 27 авг. 2009

Dimich
С твоим ехе запустилось, скорее всего косяк какойто со строками в dglOpenGL.pas, у меня 2009я Дельфя...

#184
18:08, 27 авг. 2009

Executor
я компилил в пятёрке, так что очень даже возможно...

#185
18:34, 27 авг. 2009

Executor
> всего косяк какойто со строками в dglOpenGL.pas
+1000
Как это я сразу не подумал. У меня же тоже 2009-ая!

#186
20:48, 27 авг. 2009

мммм, а артефакты, появляющиеся из-за области, не попавшей в shadowmap, куда девать?

#187
20:57, 27 авг. 2009

BenTech
> мммм, а артефакты, появляющиеся из-за области, не попавшей в shadowmap, куда
> девать?
Расширять область, использовать более сложную технику

#188
21:06, 27 авг. 2009

Ну для теней от солнца данный пример не годится). А вот для фонарика ИМХО в самый раз. Но ambient сцены = 0 не позволяет куда либо это прикрутить(ничего не видно же), а если сделать что-то типо spot = clamp(spot,0.5,1.0), то из темноты вылазят артефакты), что не есть хорошо(и оптять этот простой метод с тенями никуда не применить). Вот если бы цвет артефактного пиксела сделать равным цвету неартефактного и незатененного пиксела...

#189
21:34, 27 авг. 2009

Что за артефактные пикселы?
Для солнца всё тоже самое, только использовать орто матрицу...

#190
21:47, 27 авг. 2009

Под "артефактными пикселами" я подразумевал те, которые не попадают в SM и в результате вот...
sample
если их цвет сделать цветом незатененного, то тень будет просто "обрываться" на границе shadowMap(такой вот способ выкинуть артефакты), только вот как %).

> Для солнца всё тоже самое, только использовать орто матрицу...
ммм, а я думал "мягкий" pssm\csm. Просто одной shadowMap сильно не хватает точности. От больших объектов альясинг, а от маленьких, да еще и со сложным контуром, теней нет вообще....

#191
22:06, 27 авг. 2009

хммм сделал так...

smcoord = lpos.xyz / lpos.w;
   float mapScale = 1.0 / 2048.0;

   shadow = shadow2DProj(shadowMap, lpos).x;

   if(shadow > mapScale)
   {
   shadow = 1.0;
   }

баги пропали, но надо еще кое-что проверить...

#192
22:43, 27 авг. 2009

BenTech
Всё решается клампом текстурных координат, в теме я об этом уже писал...

> Просто одной shadowMap сильно не хватает точности. От больших объектов
> альясинг, а от маленьких, да еще и со сложным контуром, теней нет вообще....

Качество это уже другой вопрос...
Если это РТС вид сверху-сбоку, то одного шадоумапа вполне хватит, а вот если это ФПС например, то тут уже смотреть какието продвинутые техники типа PSSM...

#193
5:49, 28 авг. 2009

BenTech
Если

gl_FragColor =  tex * spot;

заменить на
gl_FragColor =  tex * clamp(spot,0.5,1.0);
всё видно, и артефактов не наблюдается.
#194
12:12, 28 авг. 2009

> всё видно, и артефактов не наблюдается
Действительно! Все гениально и просто.

Страницы: 112 13 14 15 16 Следующая »
ПрограммированиеФорумГрафика

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