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

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

Страницы: 1 2 Следующая »
#0
11:42, 18 окт. 2018

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

к записи приложил видео из unity, тут 300-400 фпс, запечен свет, фейкануты спекуларные отражения. совершенно аналогичная же сцена на ue4 выдает 30-40 фпс. если я верно понимаю методику, то если у unity надо что-то добавлять для нормального рендера, то у ue4 сразу все включено чуть ли не на максимуме, deffered рендер, много графических фич, которые в него входят.

суть проблемы - не могу найти толковых туторов и советов по оптимизации настроек. вроде бы находил что-то внятное и предметное, без рассусоливания в духе "надо снизить количество вертексов", но начинаю пробовать и совершенно непонятные результаты. пустая скомпиленная сцена выдает 120 фпс. как только добавляется static освещение без теней - сразу съедается 20 фпс. пробовал на версиях 4.18 и 4.20, 4 ядерник и 1070.

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

п.с. показались полезными эти туторы:
1)https://www.unrealengine.com/en-US/blog/how-disc-jam-reached-60-f… real-engine-4
2) http://blog.lostmountaingames.com/unrealengine4-performance-optimization-guide/
3) https://www.youtube.com/watch?v=UZH4vZ0NDAw&index=3&list=… r3f-bhmy6xM3S

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

п.п.п.с. без холиваров, плз. не надо разводить unity vs ue4.


#1
15:48, 18 окт. 2018

Никак. Анрил не предназначен для высокого перфа.

#2
16:28, 18 окт. 2018

Battle Angel Alita
досадно, спасибо за ответ

#3
17:29, 18 окт. 2018

CTPEJIOK22
> досадно, спасибо за ответ
Лол, ты сразу повёлся на глупый вброс без аргументов?

Всё в UE нормально и даже местами лучше чем Unity

Любая проблема решается с выявлением bottleneck'a и её локализации, а уж потом подкручивание и изменение контента.
В последней твоей ссылки вполне достаточно показаны тулзы, с помощью которых можно определить что выжирает больше времени и его уже размусоливать

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

#4
18:25, 18 окт. 2018

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

вопрос решился задать, когда, после двух дней мучений, создал совершенно пустую сцену в ue4 и она выдала 120 фпс (кап, само собой), но стоило добавить 1 омни даже без теней - и у меня сразу на 10-20 фпс все просело до 90-110. как так и почему - не понятно.

изначально мой вопрос куда обширнее - как переехать с одного движка на другой и какие особенности выявлены, потому как по unity такой инфы много, а по ue4 постоянно натыкаюсь на одно и то же разными словами, а у меня опыта в этом мало и большинство ответов "запусти stat и смотри что тормозит", в примерах аналогично - "вот я сделал сцену, видите, тут прозрачности, они тормозят, уберем прозрачности - и не будут тормозить" или же "используйте меньше event tick в блупринтах". я вот в восторге был от оптимизации по первой ссылке, где провернули переход на мобильный рендер, что схоже на render pipelines в unity, чтобы получить стабильные 60 фпс. хотелось почитать про что-то подобное, обсудить, наверняка же люди уже давно вникли в нужные моменты, логику движка понимают, типа "100 фпс можно получить совершая такие-то действия, отключая то, то и то", может какие-то темплейты есть, не знаю.

а пока что выходит, что действительно проще ни у кого ничего не спрашивать, а сидеть и копаться в статах.

в любом случае, спасибо, буду пробовать усерднее.

#5
19:47, 18 окт. 2018

никто кроме эпиков не знает как ue заставить нормально работать, что собственно по доступным на рынке продуктам и видно. так что открывай https://docs.unrealengine.com/en-us/Engine/Performance и до потери пульса :)

#6
20:50, 18 окт. 2018

baga
благодарю, так и сделал. скачал заново движок, создал новый проект с дефолтными моделями.

1) r.maxfps 1000
2) r.ScreenPercentage 100
3) r.SetRes 1920x1080

выдает 300-350 фпс, отлично. сейчас пробую пошагово добавлять все то, что было в прошлом тесте и очень интересно отключить все, что не нужно - ао, dof, sslr, итд, и ничего не сломать.
тестирую не чистый билд, а standalone game, pie тупит. и очень радует, что билд на телефоны дает 650-700 фпс.

с этим уже можно работать и что-то пробовать, не так грустно, как прошлая сборка и 30-40 фпс непонятно почему.

upd: запеченый свет еще прибавил 100 фпс, теперь в районе 450 показывает на стандартной сцене. совсем другое дело. прям стало интересно докопаться, что и почему в старой сцене тупит.

#7
22:02, 18 окт. 2018

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

#8
22:27, 18 окт. 2018

Battle Angel Alita
попробовал - и действительно. если на сцену добавить немного частиц, огонь тот же, то резко фпс падает до 60. убираю - 300.
sdf в данном контексте - это что именно? и есть ли возможность отключить?

#9
22:44, 18 окт. 2018

CTPEJIOK22
https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndS… istanceFields

#10
23:08, 18 окт. 2018

Battle Angel Alita
благодарю


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

получилось в тестовой сцене отключить часть лишнего и поднять со 100 фпс до 250 и с нормальным качеством картинки. с полным запеканием света и рефлекшн пробами выходит и 350 фпс с норманым качеством картинки.

r.SSR 0
r.HZBOcclusion 0
r.SSR.quality 0
r.AmbientOcclusionLevels 0
r.PostProcessAAQuality 3

так же может помочь.

#11
12:36, 23 окт. 2018

FireFenix
> вопрос решился задать, когда, после двух дней мучений, создал совершенно пустую
> сцену в ue4 и она выдала 120 фпс

это стандартный лок синхронизации (разлочить t.MaxFPS 500 \ 100500)

CTPEJIOK22
> но стоило добавить 1 омни даже без теней - и у меня сразу на 10-20 фпс все
> просело до 90-110. как так и почему - не понятно.

каналы лайта использованы? материалы инстансированы?

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

да берешь и переезжаешь. инфы полно. некоторые базовые вещи неплохо бы знать самому, как работают: ПБР, отложенное\прямое освещение, планарные отражения, постпроцесс и партикл эммитеры. потом в документации смотреть особенности реализации в Анриле.
рецепта "как получить 100 фпс" не существует. Все определяется видом окружения (индор\аутдор), насыщеностью локации, проработкой деталей и... сложностью освещение конечно же. 

CTPEJIOK22
> выдает 300-350 фпс, отлично

не на это нужно смотреть. нам важно количество миллисекунд потраченное на построение кадра, т.к. количество FPS count не отследить, а потребляемые миллисекунды в статах - вполне реально.

CTPEJIOK22
> интересно отключить все, что не нужно - ао, dof, sslr, итд, и ничего не
> сломать.

сломать таким макаром можно только освещение... кстати, картинка в #10 это и демонстрирует.
лучше не отключить, а правильно настроить. gtx 1070 вполне переваривает эти эффекты.

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

наверное потому, что Анрил по сути заточен на статическое\комбинированное освещение с помощью Лайтмасс. Специально для минимизации переключений текстур в  версию 4.21 Эпики собираются вшить виртуальное текстурирование (привет играм Rage и новым Return to Castle Wolfenstein). Совпадение? Не думаю. Главное что бы стриммер не запороли. Это не значит, что нельзя фулл динамик лайтинг - просто качество будет такое себе и вторичные отскоки  света от ИС нас явно не порадуют.
Пока что всякие DFAO, DFGI и VXGI - мало того что очень требовательны, так еще и не блещут качеством.

#12
13:06, 23 окт. 2018

Анрил очень хорошо оптимизируется, но надо разбираться и копать, в чем проблема. Большие возможности создают массу точек где можно ошибиться. Грубо говоря, неправильно настроенные cascade shadows на directional light могут просто уничтожить твой fps.
Используй cpu / gpu профайлер, также проводи тесты с консольными командами типа stat SceneRendering и stat LightRendering
Весь тред не читал, но сложилось впечатление, что действуешь вслепую, отключая всё подряд. Если заюзаешь профайлер, то поймёшь, на что конкретно уходят твои миллисекунды :)

#13
19:21, 23 окт. 2018

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

#14
22:06, 25 окт. 2018

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

>каналы лайта использованы? материалы инстансированы?

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

>рецепта "как получить 100 фпс" не существует

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

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

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

>сломать таким макаром можно только освещение... кстати, картинка в #10 это и демонстрирует.

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

>Это не значит, что нельзя фулл динамик лайтинг - просто качество будет такое себе и вторичные отскоки света от ИС нас явно не порадуют.

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

>Грубо говоря, неправильно настроенные cascade shadows на directional light могут просто уничтожить твой fps.

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

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

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