forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Отражения реального времени в Watch_Dogs. (http://forum.boolean.name/showthread.php?t=19844)

Samodelkin 23.05.2015 01:32

Отражения реального времени в Watch_Dogs.
 
Доброго времени суток.

Речь идёт о ground-level отражениях, которые на земле, воде, окнах авто, а не те что в окнах и витринах домов -- там обычные статические кубические карты. Некоторые артефакты сабжевых отражений наводят на мысль что они используют (возможно частично) изображение полученное с обычной камеры, которое затем перевернули и исказили. Было бы неплохо если кто-то просвещённый в данной теме подскажет название данной техники или разместит ссылку на её описание.

ARA 23.05.2015 02:11

Ответ: Отражения реального времени в Watch_Dogs.
 
Цитата:

воде
На воде SSR. Возможно, что не везде. Кстати, SSR очень легко вычислить. Достаточно просто камеру вниз опустить так, чтобы отражаемый объект пропал с экрана - в таком случае отражение пропадёт с отражающей поверхности.
Про остальное знает MrF :)

Mr_F_ 23.05.2015 13:31

Ответ: Отражения реального времени в Watch_Dogs.
 
Вложений: 1
Как и в гта4 и 5, вачдогс рисует кубмапу прямиком из позиции игровой камеры, скрючивает её в dual paraboloid, генерирует мипы с блюром, затем все объекты это семплят без каких-либо коррекций.
Работает довольно хорошо вблизи, по вертикали может плавать, но на практике это незаметно. Вдалеке начинаются косяки, в гта5 можно спалить на небоскрёбах.
В кубмапу рисуются лоды очень-очень лоуресные. Вблизи камеры бывает не очень.
Некоторые объекты туда лучше не рисовать - в WD есть косяк, рисуют большие фонари, в результате если под них встать, можно заставить всю локацию отражать ярко-белую фигню.
-----
ща ещё раз пересмотрел, ошибся чутка - гта4 и вд рисуют сразу параболоид, крючат в вертексном шейдере сцену в него - видны характерные артефакты от недостатка вертексов. гта5 рисует кубмапу и крючит в PS, там качво лучше.

картинка нарезанная из 5 (яркость подкрутил для наглядности, там HDR)

Samodelkin 23.05.2015 18:54

Ответ: Отражения реального времени в Watch_Dogs.
 
Ну вот я сейчас посмотрел ещё раз WD, на воде как ARA и сказал обычный SSR -- как только верх лодки уходит за экран, то и отражение сразу отсекается. Это особенно в Crysis 3 заметно. На земле параболоид, потому что верхушки небоскребов видны в отражении, когда на экране их уже нет. Но получается что камере два раза нужно рисовать. А вот в задних окнах авто попадает отражение того что находится сзади камеры, значит там целая кубмэпа рисуется. Ещё я заметил что нету отражений машин и людей, я так понимаю это сделали не только для ускорения рисования но и чтобы убрать артефакты на объектах расположенных ниже камеры. Как например стол, если стоять перед ним, то видно его верхнюю плоскость, а если посмотреть под стол, где от земли будет его отражение, то в нём должна отображаться нижняя плоскость стола, которой нету в данных GBuffer'а. Вот а в WD хуже всего палятся светофоры, когда на машине едешь камера проходит прямо около них, так что они крупным планом рисуются, а в отражении снизу они должны быть мелкими, но они и там огромные.

Mr_F_ 23.05.2015 21:51

Ответ: Отражения реального времени в Watch_Dogs.
 
вообще параболойдом лучше только крупные вещи отражать типа зданий, а от людей/машин/столбов сср бы помог, но его чёт не стали делать не на воде.

в L.A. Noire тоже есть чёто вроде кубмапы/параболойда, детально не разбирал, но они в него рисовали квады светящиеся на месте фар тачек, прикольно смотрелось - типа огоньки в отражении машины едут. Силуэты людей и тачек во время дождя там ещё отражались на земле - но таинственным образом исчезали на диагональных дорогах, были только на горизонтальных ровных, из-за чего мне думается, обычный рендер флипанутых по Y моделей там.

Samodelkin 23.05.2015 22:51

Ответ: Отражения реального времени в Watch_Dogs.
 
SSR будет иметь тот же артефакт вблизи или при высокой камере как описанный со столом. Нужно что-то что не подвергается information lost при рендеринге в gbuffer. Флипанутые по Y модели можно делать на воде или лужах -- они обычно горизонтальные всегда. Я думаю что на асфальте или прочих негладких поверхностях можно с помощью шейдера посчитать нормали в ворлдспейс из карт нормалей и нормалей геометрии которые смотрят вверх и на этих пикселях отображать отражение флипанутых моделей, при немного отклоненных делать поправку при сэмплинге из отражения, а при сильно наклоненных вообще не рисовать отражение (или заменить нейтральной кубемэпой). По крайне мере на немного наклоненных дорогах или участках земли это может решить задачу.

Mr_F_ 23.05.2015 23:11

Ответ: Отражения реального времени в Watch_Dogs.
 
Цитата:

Нужно что-то что не подвергается information lost
а вот хрен. идеальных отражений в реалтайме не бывает.
варианты:
- много плоскостей, куда растеризуешь планарное отражение (флипнутые меши) под разным углом и при семплировании делаешь поправку, как ты сказал, где отличия небольшие.
можно попробовать растерить их все в 1 РТ без овердро, например пометив в стенсиле куда каждое планарное отражение рисовать. отрисовка сцены в отражения должна быть ооочень дешёвой, чтобы прокатило.
- вокселизуешь всё и трейсишь. мб каскады вокселей. весить будет дофига (одна 512х512х512 RGBA текса займёт половину моей врамы), точность сомнительная, трейсить медленно, как-то решать leak'и надо.
можно вокселизовать отдельные лишь объекты. я пробовал делать так самоотражение объекта:

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


Часовой пояс GMT +4, время: 01:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot