HLFX.Ru Forum
Показать все 9 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Подводные камни теневых карт (https://hlfx.ru/forum/showthread.php?threadid=4957)


Отправлено ncuxonaT 13-02-2017 в 21:57:

Подводные камни теневых карт

Здравствуйте, друзья!
Я столкнулся с неприятной проблемой при использовании шадовмап. В некоторых западных источниках эту проблему называют thin walls, и проявляется она в дырах в тенях от тонких стенок на границе их пересечения с другими объектами. Под тонкими стенками подразумеваются стенки, не имеющие объема, то есть состоящие из двустороннего полигона.
Полагаю, что всему виной отсутствие консервативной растеризации. И, судя по всему, проблема эта весьма распространённая. Пример её проявления на примере первого уровня из Паранойи вы можете увидеть на приведенных скриншотах: на одном - рендер 3дмаксовским менталреем, на другом - моей запекалочкой освещения.
http://pix.academ.info/img/2017/02/14/f5331f970df4eb9c719696148b30084f.png
http://pix.academ.info/img/2017/02/14/3d25c625ca821578fdb5772fcb264c5f.png
Известны ли вам способы борьбы с этими дырами? Городить консервативную растеризацию совсем не хочется.


Отправлено Дядя Миша 14-02-2017 в 07:42:

Цитата:
ncuxonaT писал:
Известны ли вам способы борьбы с этими дырами?

Да. Использовать HLRAD

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено marikcool 14-02-2017 в 12:19:

полигоны с обратной стороны стен должны быть.

__________________
vk.com/skullcapstudios


Отправлено ncuxonaT 14-02-2017 в 13:04:

Дядя Миша ну да, ну да. Сколько суток Элбер Паранойю запекал?
marikcool они вроде как есть, задние фейсы не куллятся.


Отправлено Дядя Миша 14-02-2017 в 14:34:

Цитата:
ncuxonaT писал:
Сколько суток Элбер Паранойю запекал?

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 14-02-2017 в 14:44:

Цитата:
Дядя Миша писал:
поэтому ты ищешь пути решения этой проблемы?

Я заранее готовлюсь.
Цитата:
Дядя Миша писал:
GPU-лайтмапперы всегда артефачат, я еще ни одного нормального не видел.

Я вообще живьем ни одного не видел. Но знаю, что некоторые (например, square enix) их успешно используют.
Но вообще эта проблема у любых шадовмап присутствует, не только при запекании же. Если ты включишь свои каскадные тени от солнца на интерьерной карте, то будут такие же полосы по углам.


Отправлено Дядя Миша 14-02-2017 в 15:32:

Цитата:
ncuxonaT писал:
Если ты включишь свои каскадные тени от солнца на интерьерной карте, то будут такие же полосы по углам.

Вот именно поэтому старые добрые лайтмапы до сих пор не спешат сдавать в утиль.

Добавлено 14-02-2017 в 18:32:

Цитата:
ncuxonaT писал:
Но знаю, что некоторые (например, square enix) их успешно используют.

Ну так попроси у них. Делов-то.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 05-04-2017 в 23:52:

Что-то я разочаровался в шадовмапах.
Вопрос к знатокам. Правильно ли я понимаю, что стенсильные тени не получится использовать при рендере в текстурные координаты? То есть когда в вершинном шейдере у меня gl_Position = gl_TexCoord[0] - vec4(0.5);


Отправлено Дядя Миша 06-04-2017 в 14:58:

Цитата:
ncuxonaT писал:
Что-то я разочаровался в шадовмапах.

Хыы, а я наоборот решил отложку запилить для теста, ну и заодно LPV протестирую. Посмотрим.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 11:31.
Показать все 9 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024