Решения самых частых проблем с Unreal Engine 5!

Привет, 3ДДДчане!

Выпускаю свой первый блог, основанный на видео по Unreal Engine. Да, я знаю, что многие недолюбливают этот софт и вполне себе уважительно отношусь к этому мнению, но юзать его, как по мне, и выгоднее и интереснее, чем макс. И я знаю, что на 3ддд сидит очень большое количество анрильщиков.

В этом видео я постарался рассмотреть самые популярные ошибки новичков и их решения, которые чаще всего ищут на просторах форумов и чатов по нашей с вами любимой программе. Здесь я лишь слегка затронул тему Нанитов, Рейтрейсинга и общего понимания устройства рендеринга кадров, с которыми связаны все эти проблемы. При этом, чтобы раскрыть каждую из этих тем в деталях, потребуется создать по 40-минутному ролику на каждую из них. Версия движка в видео - 5.3. Имейте ввиду, что в следующих версиях могут быть другие особенности фикса этих проблем.

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

Всем приятного просмотра!)

Комментарии (17)

+1
paz
Интересно. Спасибо, изучим.
Скажите вы Twinmotion не пробовали использовать?
И какой сборник растительности у вас?
0
Mark Alikin
Спасибо за комментарий! Твин пока что не изучал, но тоже в планах. Насколько знаю, он выдает результаты лучше, чем люмион. Сборник конкретный не использую. Обычно миксую модели для короны\вирей с моделями мегасканс
0
paz
ну у вас анимация на ветках я вижу, и вроде лоу-поли. а значит деревья из сборника.
0
Mark Alikin
В этом проекте все деревья - мегасканс. Сколько полигонов там я не знаю, но детализация вблизи на рендерах очень хорошая у них. А кстати анимировать можно и самому любую модельку дерева, но это не просто
0
paz
интересно было бы узнать. подскажите где посмотреть можно
0
Mark Alikin
Мегасканс деревья лежат на Фабе. А по анимации веток деревьев есть много уроков на ютубе, но точных имен авторов не назову, очень давно это проходил
0
TechEstate
Можно сделать вполне достойный материал для анимации дерева, мегаскан хорош если нужен виз листочка, а так эти сборники деревьев не годны для проектов!
+1
hunger
Спасибо! Кое-что подчерпнул для себя. Ранее использовал команду r.RayTracing.Culling, а помимо нее еще кучу разных (foliage.forceLOD, r.RayTracing.Geometry.InstancedStaticMeshes.Culling, foliage.LODDistanceScale), все равно сталкиваюсь с проблемой отображения зелени. Да, помогает частично понижение Opacity Mask Clip Value, но все равно, как зелень смотрится через Lumen и Path Tracing небо и земля... я говорю о зелени, которая импортирована из макса. За команду r.Shadow.DistanceScale спасибо отдельное!
+1
Mark Alikin
И вам спасибо за развернутый комментарий!)
0
hunger
у меня еще один вопрос, в анрил есть возможность для снижения нагрузки на видеопамять уменьшать разрешение отображаемой текстуры, это работает также, как если я через фотошоп буду каждую текстуру подгонять и пересохранять?
+1
Mark Alikin
Да, все верно!) Не обязательно делать это через фотошоп. Поскольку движок для игр, где используются тысячи текстур в проектах, разработчики это предусмотрели.
+2
Earanak
В настройках текстуры можно без потерь качества сжимать ее разрешение и разжимать обратно. Через Property Matrix можно разом текстурам ужимать/разжимать разрешение. Еще в UE есть анализ веса текстур которые непосредственно находятся в видеопамяти, там даже можно разбить статистику по разным типам компрессии и отдельно увидеть сколько жрут Диффузы/Нормали/Рафнессы и тд... Так же можно назначать группы разным текстурам и выбирать им тип компрессии, количество уровней мипмаппинга, LODBias и всякое такое.

В Анриале много настроек связанных с оптимизацией потребления памяти, потоковой подгрузки, куллинг систем, авто-инстансинга, HLOD-ов и всякого такого. Это большая и комплексная тема. Ну и конечно не стоит забывать про RVT/SVT текстуры, и про правило "Power of 2". Еще текстуры часто в UE5 пакуют в RGBA послойно, что бы экономить память, конкретно это делается через фотошоп. Вот например мой старый таймлапс по оптимизации растений/шейдеров/упаковке текстур - https://youtu.be/36xIrQM4q0g  Чем больше проект и разрешение рендера (или тем более под рантайм-интерактив), чем меньше видеопамяти и чем медленней Shared GPU Memory (ОЗУ) тем больше этому всему нужно внимания уделять.

Я вот например столкнулся с неприятными проблемками по этой части когда речь дошла до параллаксов. В сцене их было много -https://youtu.be/PxPjfxD-xe0  и тупость заключалась в том что wParallax почему то решили их делать в 3К разрешении. А это не соответствует правилу Power of 2, соответственно на них не работал мипмаппинг. Пришлось для ближних ракурсов растягивать их до 4К что бы снизить потребление памяти а для дальних снижать до 2К. А оригинальные 3К ни тудым ни сюдым и жрали раза в полтора больше памяти чем их же 4К версия.

Еще Анриал часто некорректно назначает типы компрессии разным текстурам. За этим надо самому следить. Картам нормалей один режим, рафнессам другой, диффузу третий и так далее. Я уже не помню всех этих штук DXT5, BC5 и вот это вот все... Но это тоже влияет на то сколько текстуры будут занимать памяти.
0
hunger
вот не совсем понял касательно 3К, да, это не соответствует правилу Power of 2, и поэтому я все текстуры перелопачиваю, потому что текстура может быть 628 на 920, к примеру, и анрил вроде 628 растягивает до 1024 пикселей, хотя 512 ближе... ну или допустим у меня текстуры все разного размеры и не подчинены правилу Power of 2, поэтому я не понимаю как это работает и делаю через шоп как мне надо, что занимает уйму времени. Еще текстуры лучше подписываать с префиксом T_, а то что из 3д макс обычно имеет странные названия. Ну и так как у меня 4060ти дома с 16 гигами и 3080 в офисе с 12 гигами, то оптимизация для меня самое главное...
+1
Earanak
Для ресайза под Power of 2 правило я юзаю плагин "Pixamoon Bitmap Tracking / Resizing".
Для нейминга текстур использую "Project Manager". У меня этот этап занимает немного времени.

Как там Анриал растягивает за меня - мне не интересно.
Я сам это руками делаю для всех текстур, оценивая где в минус пожать а где в плюс.

628 на 920 очевидно что нужно жать и тянуть до 512х1024px

Больше всего у меня времени занимает нарезка геометрии под Surface Cache и Card-ы.
А пересборка шейдеров, ужим текстур, нейминг - это все мелочи.

Даже вот когда 100500 растений в Форест паке -https://youtu.be/09EHN6ZMNyU  Правда это старый видос когда еще рука не набита была. В этом таймлапсе если не ошибаюсь все этапы. Чистка шейдеров. Нейминг. Ресайз. Пересборка шейдеров... Сейчас к этому всему еще добавилась бы рисовка Vertex Paint-ом по всем растениям для корректной работы ветра в Quixel-Шейдере листвы. Ну и раскладка текстур по RGBA. В общем даже на здоровенный экстерьер это максимум 2 дня работы, скорее 1 день.
0
Sedo1
" нарезка геометрии под Surface Cache и Card-ы."
Что на эту тему можно почитать посмотреть, есть на примете?
+1
Earanak
Да в общем то вот : https://dev.epicgames.com/documentation/en-us/unreal-engine/lumen-technical-details-in-unreal-engine 

И за счет (поворота) Pivot-а и формы объекта Card-ы могут плохо (не оптимально) на объекты ложиться.
Нужно регулярно смотреть все это через r.Lumen.Visualize.CardPlacement 1
Условно если Г-образное здание, то во первых нужно стекла+оконные рамы в отдельный объект. Каждый этаж (если здание не высокое) отрезать отдельно (если здание высокое то можно каждые 2-3 этажа), плюс Г-отросток отрезать так что бы Card-ы оптимально легли. В больших проектах под Lumen - это важно. К тому же из за больших цельных объектов чаще случается VMS-Инвалидация (по этой теме тоже много инфы есть в доках к Анриалу). https://dev.epicgames.com/documentation/en-us/unreal-engine/virtual-shadow-maps-in-unreal-engine 

Ну еще нужно учитывать что в 3Ds Max есть два Пивота. Один скрытый, если он отличается от рабочего Пивота, то при импорте в Анриал объект может вместо StaticMesh-а становится Actor-ом ломая ISM/HISM иерархии. В этом плане жизнь облегчал мне этот плагин -https://www.fab.com/listings/2402ff9e-8f84-4b97-863f-3c7427ea0f8a  но чет я смотрю под 5.5 Анриал нету его, наверное автор помер.

UPD, о я нашел видео где показываю эти Card-ы. Это был ответ другому человеку, и без хороших примеров, но не суть. Там где то в начале видео про это рассказал.
https://youtu.be/CXPGGV0-jq0 
0
Sedo1
Спасибо! Вот бы все уроки были такие - коротко по сути и максимум ньюансов :)