Войти
Unreal EngineФорумОбщее

Как оптимизировать рендер ue4? Мучения unity-нуба. (2 стр)

Страницы: 1 2
#15
23:18, 25 окт. 2018

Дело не в самом движке, а в накопленном опыте пользователей. Есть какой-то удивительный эффект, я не знаю как он правильно называется, но когда авторы движка пытаются объяснить пользователям как в нём правильно работать, их обычно понимают те, кто и сам в состоянии написать какой-нибудь движок. А начинающим пользователям обычно понятнее когда туториалы пишут такие же пользователи и описывают в них именно те грабли, с которыми они сами сталкивались. Тому шо для авторов какие-то моменты могут представляться вообще не заслуживаюшими внимания, а для новичков - непреодолимым препятствием. Ну оно и понятно, если ты наизусть знаешь какой пост-процесс сколько милисекунд жрёт.


#16
9:19, 26 окт. 2018

>описывают в них именно те грабли, с которыми они сами сталкивались.

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

второй момент - мне проще дизайнить и все эти моменты рендера, pbr и прочего я регулярно со стороны моделлера вижу, а тут их надо со стороны разработчика понимать, инженера. т.е. задача звучит не "как сделать миллион фпс на сложной сцене", а "что не надо делать, чтобы не тормозили простейшие сцены".

пока список вышел такой:
1) разлочить фпс
2) тестить в отдельном процессе и сворачивать редактор
3) запекать или комбинировать свет
4) не использовать партиклы (реалтайм генерация SDF)
5) инстансировать материлы
6) проверять на совместимость шейдеры с ES31 (дает ощутимый буст на элементарных сценах)
7) возлюбить stat как ближнего своего

осталось понять почему и в какой момент партиклы тормозят, как правильно делать материалы и шейдеры, ну и что делать со всеми этими показателями, что выдает stat.

#17
22:05, 26 окт. 2018

CTPEJIOK22
> про каналы лайта не скажу, даже не знаю что это, но там обычная сцена без
> всего, просто bsp и omni - падал фпс, какое-то странное поведение. поставил
> новую версию движка, вроде такой аномалии уже нет.

каналы света (channel light) позволяют разделять зоны действия освещения.  то есть мы указываем объекты на которые действуют\не действуют определенные ИС.

CTPEJIOK22
> вот как, например, с партиклами, что посоветовали в этом треде - система
> партиклов может убить производительность на простой сцене, в доках пока лишь
> нашел опять же общие советы. хотя, как мне кажется, может быть и косяк моей
> системы - новые демки от юнити с партиклами так же выдают странные вещи.

ну вообще-то партиклы никогда и нигде быстрыми не были...

CTPEJIOK22
> тут не совсем понял. в #10 на первой свет по максимуму убрал, на второй же свет запечен и там вроде все нормально выглядит.

ненормально выглядит - качество-то похерилось. материалы пострадали (листья черные, руки с оружием - как будто существуют отдельно от сцены), освещение тоже (подсказка: в ПБР абсолютно черных затенений не бывает, только АО для отверстий и т.д.), не хватает затенения SSAO от часов на руку, SSR не подчеркивет глянцевые\матовые поверхности и тд. еще SSS не хватает на коже рук и листьях.

CTPEJIOK22
> пока что наблюдал - мало где в серьезных играх есть полностью динамический
> свет. а где есть, взять тот же black ops 4 с их интересной системой, там
> оперативку и видеопамять есть немерено. собственно, начитавшись диздоков от
> создателей калды и захотелось сильнее вникнуть в скорость работы, у них это
> ключевой момент.

в сериях Кризис, Метро, Скайрим, Фоллаут 4 полностью динамический свет.

касательно Анрила есть несколько моментов. что у нас кушает память?

1) базовая геометрия мешей
2) набор лодов (меши\текстуры)
3) текстуры мешей, декалей и частиц
4) текстуры лайтмап и масок света (статика)
5) текстуры лайт проб (динамика)
6) текстуры шедоумап и текстуры кешированных теней
7) МРТ
8) пул стримминга текстур (если включен)
и тд...

CTPEJIOK22
> честно, я ожидал, что какие-то стандартные техники дадут стандартно ожидаемый
> результат, но тут все как у взрослых, надо прям сильно вникать. с другой
> стороны, интересно.

какие стандартные техники? каскадные тени рендерят 4 уровня теневого разрешения - а это 4 разные тени одновременно. это не мип на текстуре, который переключается на расстоянии. это - наслоение теней, их перекрытие и отрисовка на заданном расстоянии. если совсем на пальцах.

g-cont
> Ну оно и понятно, если ты наизусть знаешь какой пост-процесс сколько милисекунд жрёт.

невозможно, пока существуют всякие теоретические пропускные способности и кэш-промахи)

CTPEJIOK22
> 2) тестить в отдельном процессе и сворачивать редактор

ну фиг знает, просто делаю в редакторе F11 и Alt+P - вроде норм

CTPEJIOK22
> 4) не использовать партиклы (реалтайм генерация SDF)

партиклов штук 12,  работают вообще без проблем, даже с тенями. Специально сделал самый жрущий форвард шейдер (Extremely Bad как бы):

Изображение
Изображение

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

О! вспомнил яростного убийцу производительности - это же Планарные Отражения. Можно кинуть 2-3 рил-тайм зеркала в сцену и падение ФПС ниже частоты дискретизации гарантированно)

CTPEJIOK22
> проверять на совместимость шейдеры с ES31 (дает ощутимый буст на элементарных сценах)

зачем? достаточно не усложнять свои шейдеры. что значит "элементарная сцена"?

#18
10:35, 27 окт. 2018

>каналы света (channel light) позволяют разделять зоны действия освещения.

спасибо, почитаю

>ну вообще-то партиклы никогда и нигде быстрыми не были...

у меня какие-то шейдеры партиклов в юнити выдают черный цвет вместо прозрачности, прям сильно визуально видно. вот думаю, что может пора систему переставить, может из-за этого и в анрыле тупит фпс. ты дальше приводит пример, у меня на 4.18 один набор партиклов мог обрушить фпс в 2-3 раза.

>ненормально выглядит - качество-то похерилось.

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

>какие стандартные техники?

возьмем опыт unity например. берут урок и начинают рассказывать, что "делаем сцену, настраиваем, тормозит? запекаем свет, выставляем такие-то значения. тормозит? проверяем геометрию, объединяем в меш. тормозит? проверяем, что можно билбордом в атласы перегнать" итд. с анрылом пока такого не нашел, зато видел забавные моменты, мол "что такое hzb в статах и почему это дико тормозит?" - "не смотрите на это значение, оно ни на что не влияет". ладно, как я понял, надо просто больше сцен собрать, вникая в получаемое изображение.

>ну фиг знает, просто делаю в редакторе F11 и Alt+P - вроде норм
Изображение
Изображение

проверил еще раз - редактор сильно замедляет тест, почти в 4 раза. но, опять же, не на всяких сценах.

Изображение

вот на такой нагруженной разница 8 и 11 ms

>вспомнил яростного убийцу производительности - это же Планарные Отражения

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

>зачем? достаточно не усложнять свои шейдеры. что значит "элементарная сцена"?

для работы на слабых компах с размазанными видеокартами хотя бы. я кидал ссылку:https://www.unrealengine.com/en-US/blog/how-disc-jam-reached-60-f… real-engine-4
тут таким способом выжали неплохо так фпс и общее качество картинки не сказать, что стало прям "ужасным". да и в каких-нибудь сценах и играх такого уровня графики вполне будет достаточно

#19
13:30, 27 окт. 2018

Yukio
> вспомнил яростного убийцу производительности - это же Планарные Отражения
Страшнее планарных отражений только рекурсивные зеркала.

#20
22:11, 27 окт. 2018

CTPEJIOK22
> у меня какие-то шейдеры партиклов в юнити выдают черный цвет вместо
> прозрачности, прям сильно визуально видно. вот думаю, что может пора систему
> переставить, может из-за этого и в анрыле тупит фпс. ты дальше приводит пример,
> у меня на 4.18 один набор партиклов мог обрушить фпс в 2-3 раза.

я на 4.21 перешел. проблем нет

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

с early access игрок много всякого пережил... но для тех у кого комп не тянет всегда существуют настройки от Ultra до Low - гибкая система по идее

CTPEJIOK22
> возьмем опыт unity например. берут урок и начинают рассказывать, что "делаем
> сцену, настраиваем, тормозит? запекаем свет, выставляем такие-то значения.
> тормозит? проверяем геометрию, объединяем в меш. тормозит? проверяем, что можно
> билбордом в атласы перегнать" итд.

а если мне не нужен запеченный свет? и нужен огромный мир, где нужно работать с тысячами объектов?

CTPEJIOK22
> с анрылом пока такого не нашел, зато видел забавные моменты, мол "что такое hzb
> в статах и почему это дико тормозит?" - "не смотрите на это значение, оно ни на
> что не влияет". ладно, как я понял, надо просто больше сцен собрать, вникая в
> получаемое изображение.

это иерархический Z-buffer (Hierarchical Z-Buffer или HZB) для отсечения видимости

https://www.ixbt.com/video/hierar-z.html
https://www.youtube.com/watch?v=51yifB6zz-Q
http://timhobsonue4.snappages.com/culling-visibilityculling.htm

CTPEJIOK22
> проверил еще раз - редактор сильно замедляет тест, почти в 4 раза. но, опять
> же, не на всяких сценах.

а что за проц? сколько ОЗУ?

CTPEJIOK22
> тогда обойдемся пока без них. с другой стороны, сами же материалы отражают и в
> той же сцене с метро, отражения до половины производительности жрут. выходит,
> надо тоже стараться избегать.

их можно кастомно настраивать. но по дефолту - это оверхед.

CTPEJIOK22
> для работы на слабых компах с размазанными видеокартами хотя бы.

это AGP видеокарты что ли? или какие?
не понимаю: какой смысл поддержки слабых компов? если я покупаю ноутбук или видеокарту-затычку, мне не нужны игры - хочу видео смотреть или в инете лазить. это же логично?) стоит ориентироваться на средний конфиг и прокачку своих навыков, а не на стремление угодить всем и каждому.

CTPEJIOK22
> тут таким способом выжали неплохо так фпс и общее качество картинки не сказать,
> что стало прям "ужасным". да и в каких-нибудь сценах и играх такого уровня
> графики вполне будет достаточно

только не понятно зачем нужен тогда Анрил, который дает отличное качество по дефолту. есть в планах запускать игры на встроенных видеокартах?

если разобрать детально оптимизации Disc Jam:
1) полностью запеченная статика
2) тени от персонажей капсульные (нормальные тени только при выборе перса)
3) тень от диска - это вообще блоб-шедоу (если диск в виде бублика и посредине дырка, то тень отображает полностью затененное пятно без просвета)
4) отражения, глубина света, вольюметрики - машем ручкой. Мобайл рендер жеш.

g-cont
> Страшнее планарных отражений только рекурсивные зеркала.

ага. когда они смотрят друг-другу в душу)

Страницы: 1 2
Unreal EngineФорумОбщее

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