Vegetation UE4

Мне предложили создать ряд травянистых растений и несколько разноплановых деревьев, для игрового проекта в Unreal Engine 4.

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

Для выполнения этого задания я решил использовать SpeedTree, Quixel, и сам UE4.

Vegetation UE4

Ресурсы из Quixel Megascans оказались настолько хороши, что этап создания текстур был скорее похож на интересную игру чем работу.

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

Для решения этой задачи я использовал Speed Tree. В режиме Viewport XY Plane, я начал создавать кластеры из ветвей и листьев для дальнейшего запекания их текстурный атлас. На данном этапе нет необходимости думать о poly count.

Vegetation UE4

После получения атласов можно было перейти непосредственно к созданию геометрии растений в SpeedTree.
Для референсов я использовал два источника — во-первых это реальный растительный мир, а во вторых я исследовал опыт других художников которые работали над такими проектами как Horizon Zero Dawn, Days Gone и другие.
Примерно половина работы состояла в том, чтобы держать себя в определенных рамках, например poly count для деревьев не должен превышать 10К треугольников, а для травянистых растений 2К в LOD_0, а атласы должны иметь максимальную плотность для экономии текстурной памяти.

Vegetation UE4

Следующим этапом было настройка материалов в UE4

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

Vegetation UE4
Vegetation UE4

Таким образом удалось скрыть эффект «плашки», и сохранить ощущение отдельных травинок, хотя в LOD_0 кластер травы был всего 120 треугольников, а LOD_2 20 треугольников.

Vegetation UE4
Vegetation UE4

Так как на открытых пространствах нет возможности (и необходимости) рендерить траву далеко удаленную от камеры, используется Cull Distance который «отсекает» меши на определенном расстоянии. И чтобы этот эффект не был резким, я добавил функцию плавного затухания которая «растворяла» траву перед тем как сработает Cull Distance.

Vegetation UE4

Так же оказалась очень полезной функцией SpeedTreeColorVariaton, она помогла избежать паттерна и разнообразила цветовое восприятия травы

Vegetation UE4
Vegetation UE4

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

Vegetation UE4
Vegetation UE4
101101
42 комментария

Это не поиск, чел, ты сделал пост.

9
Ответить

Я прошу прощения что случайно нажал "сохранить", не успев добавить саму статью. Для меня это первый опыт, надеюсь на Ваше понимание

17
Ответить

Вау, он реально пытался сделать пост

5
Ответить

Хорошо, что он не что-то другое искал...

2
Ответить

Зарегистрировался 15 минут назад

1
Ответить

Сегодня я решил поделиться своим опытом.чувак, ты, конечно, извини, но ты заново велосипед изобрел. 
Зачем выдавать то, что давно известно и хорошо работает за какой-то эфемерный «свой опыт», когда это просто широкораспространенная стандартная практика?

Ответить