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

Как убрать туман внутри помещений?

Страницы: 1 2 3 Следующая »
#0
(Правка: 10:45) 1:25, 13 окт. 2018

Всем привет!

Возник ещё один вопрос по туману.
Вот тут на картинке я заскриншотил ракурс, который
позволяет увидеть улицу и зал банка одновременно
(влево уходит тротуар, справа стол внутри помещения):

+ Показать

Плотность тумана для открытых пространств (улиц, парков и т.д.)
я настроил идеально - перспектива постепенно растворяется в тумане.
Поскольку туман в буфере просчитывается во всех направлениях,
аналогично в нём растворяются и внутренности помещений, что
выглядит довольно странно..

Не могу сообразить каким образом можно "отключить" туман
в ограниченных объёмах, или - ещё проще - менять его интенсивность.
Совсем недавно рассматривал нюансы реализации The Last Of Us,
так вот, там туман от дымовых гранат так же не разбирает где он находится.

Вопрос к бывалым: есть ли какие то готовые решения, или тут нужен спец-шейдер?
И что вообще можно предпринять для удаления такого как бы косяка?

Заранее спасибо!


#1
1:42, 13 окт. 2018

MSA2
> Вот тут на картинке я заскриншотил
Негры ночью грузят уголь.

> Не могу сообразить каким образом можно "отключить" туман
Рисуй туман не на весь экран, т.е. не через пост-обработку.
Можно, например, применять его к внешним объектам, но не к внутренним.

#2
4:57, 13 окт. 2018

MSA2
> Вот тут на картинке я заскриншотил ракурс, который
> позволяет увидеть улицу и зал банка одновременно
малевич, залогиньтесь.

#3
(Правка: 13:21) 13:17, 13 окт. 2018

MSA2
туман выключи. рейкасти в шейдере полноэкраннной обработки (трассируй первичные лучи из каждой точки экрана). То есть классифицируй каждую точку на экране. Если точка принадлежит помещению и помещение близко, то можешь проводить другую пост обработку для данной точки: например без тумана. Кстати будет выглядеть очень зловеще из далека, если на близость помещения не проверять, перед убиранием тумана.

#4
(Правка: 13:21) 13:19, 13 окт. 2018

Great V.
> Негры ночью грузят уголь.
Ну есть такой прием: Рисуй хоррор, если ты не можешь в триде или ты инди. Все правильно делает. Вероятно у него хоррор

#5
(Правка: 13:41) 13:33, 13 окт. 2018

*Lain*
> туман выключи. рейкасти в шейдере полноэкраннной обработки (трассируй первичные лучи из каждой точки экрана). То есть классифицируй каждую точку на экране. Если точка принадлежит помещению и помещение близко, то можешь проводить другую пост обработку для данной точки: например без тумана. Кстати будет выглядеть очень зловеще из далека, если на близость помещения не проверять, перед убиранием тумана.
Не совсем понимаю как это сделать - не силён в деталях и тонкостях API опенджиэл и видеокарты.
Как бы представляю о чём вы говорите, но о деталях не в курсе.
Насколько сложно реализовать такую тему вообще?
В данном случае включен глобальный туман и никаких лишних телодвижений не требуется.
Много ли ресурсов может потребовать такая детальная обработка тумана? Приблизительно.
Речь идёт о ПК, возможно когда-нибудь консоли, гипотетически, но никаких мобайлов не планирую.

p.s.
Да, делаю хоррор. Это имхо единственное, что можно достойно реализовать
одному человеку, с точечным подключением сторонних специалистов.
Акцент на сюжете и атмосфере, поэтому туману и вообще визуалу приходится
уделять особое внимание. Выглядеть как ААА не получится, но Брейн
или Шиморо должны быть довольны.

#6
14:44, 13 окт. 2018

MSA2
Если у тебя туман рисуется постобработкой то пойдет то что написал *Lain*, если каждый объект рисуется своим шейдером, то тут все просто - достаточно убрать из шейдера для внутренних помещений затуманивание пикселей.

Ну и чуток оффтопа. Настраивай интенсивность освещения в игре при 30% яркости монитора (или даже ниже), иначе ты рискуешь сделать непроглядную темноту. Однако если нужна настоящая темнота, оставляй световые ориентиры на уровне - всякие мелкие лампочки и прочие светящиеся предметы - так глазу будет за что зацепиться и игрок не потеряется в темноте.

#7
(Правка: 15:16) 15:09, 13 окт. 2018

mr.DIMAS
> Если у тебя туман рисуется постобработкой то пойдет то что написал *Lain*, если
> каждый объект рисуется своим шейдером, то тут все просто - достаточно убрать из
> шейдера для внутренних помещений затуманивание пикселей.

Так, это уже понятней. Я разрабатываю игру в Unity и юзаю metallic воркфлоу,
как самое экономичное. На данный момент использую стандартные шейдеры
(хотя планирую купить шейдеры Marmoset), настройки которых выглядят так:

+ Показать

и здесь нет никаких настроек, связанных с туманом.
Нет и подходящих переменных в "редактировании шейдера":
+ Показать


Вообще настройки тумана имеются лишь во вкладке Lighting
и в профиле пост-обработки, но там у меня всё отключено.
Т.е. мне необходимо модифицировать стандартный шейдер?

> Ну и чуток оффтопа. Настраивай интенсивность освещения в игре при 30% яркости
> монитора (или даже ниже), иначе ты рискуешь сделать непроглядную темноту.
> Однако если нужна настоящая темнота, оставляй световые ориентиры на уровне -
> всякие мелкие лампочки и прочие светящиеся предметы - так глазу будет за что
> зацепиться и игрок не потеряется в темноте.
На моём древнем IPS-мониторе в полноэкранном режиме отображает отличный
густой туман, в котором без проблем можно ориентироваться, но нельзя найти
предметы, которые без фонаря еле различимы. Это часть механики.
Здесь на форуме белый фон, поэтому на контрасте скриншот кажется очень тёмным.
Я позже сделаю настройки для регулировки гаммы для комфортного отображения
на обычных мониторах.

Спасибо за подсказки!

#8
15:32, 13 окт. 2018

Без понятия как стандартный туман настраивается в юнити, однако написать свой шейдер тумана довольно просто, достаточно модифицировать цвет пикселя в зависимости от расстояния от камеры до пикселя. Этот шейдер можно применить вторым проходом поверх отрендеренного первого стандартным шейдером.

#9
15:38, 13 окт. 2018

some kind of stencil ?

#10
17:17, 13 окт. 2018

Надо придумать какой-то маркер для индора и аутдора. Если полигоны в аутдоре - туманим и наоборот. Но навряд ли получится это сделать автоматически.

#11
18:24, 13 окт. 2018

Можно здание в боунд бокс. Что бы по нему узнать когда игрок будет в здании.
И если игрок в этом боксе, то не выводить\ не рендерить туман.

#12
18:33, 13 окт. 2018

ronniko
> И если игрок в этом боксе, то не выводить\ не рендерить туман.
Тогда туман снаружи здания тоже пропадет.

#13
(Правка: 18:50) 18:49, 13 окт. 2018

А в чем проблема? почему в помещении с открытыми окнами и дверями не может быть тумана?
И почему, если смотреть из тумана в комнату где "нет тумана",  "кусок" тумана от улицы до комнаты должен исчезнуть?

Я бы рекомендовал изменить функцию тумана на экспоненциальную, чтоб скажем в 5 метрах от наблюдателя тумана не было (плотность стремилась к нулю), этого достаточно чтоб наблюдатель в комнате не видел тумана на стенах комнаты, а уже с улицы - наблюдатель будет видеть помещение сквозь туман, как и положено.

Ну и естественно "маркеры", если уж сильно хочется. Первое что пришло на ум - сделать виртуальные "заглушки" для окон и дверей, такие себе окклюдеры для тумана. Тоесть просто квад по размеру двери/окна, который будет рендериться только в буфер глубины (запись в буфер цвета отключена или альфа = 0), таким образом туман с улицы будет считаться только до этого квада, а за счет куллинга задних граней этого окклюдера - изнутри помещения туман на улице будет выглядеть нормальным.  Сделать чтоб внутри помещения не было тумана - задачка в разы сложнее, потому тут проще поиграться функцией тумана, возможно клэмпить ее, если расстояние до камеры меньше скольких-то метров.

#14
19:17, 13 окт. 2018

ТС ты определись ты mr.DIMAS или MSA2

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