Vegetation UE4
Мне предложили создать ряд травянистых растений и несколько разноплановых деревьев, для игрового проекта в Unreal Engine 4.
Растительность в CG всегда стояла для меня обособлено и поэтому я с энтузиазмом взялся за выполнение этого задания. Во-первых, всегда приятно делать что-то новое, а во вторых у меня открылось возможность изучить новые инструменты и подходы в моделировании.
Для выполнения этого задания я решил использовать SpeedTree, Quixel, и сам UE4.
Ресурсы из Quixel Megascans оказались настолько хороши, что этап создания текстур был скорее похож на интересную игру чем работу.
Для начала я подобрал необходимые текстуры для своих растений, но так как это был игровой проект, задача стояла думать об оптимизации на каждом этапе разработки, текстурные атласы нужно было создавать самому.
Для решения этой задачи я использовал Speed Tree. В режиме Viewport XY Plane, я начал создавать кластеры из ветвей и листьев для дальнейшего запекания их текстурный атлас. На данном этапе нет необходимости думать о poly count.
После получения атласов можно было перейти непосредственно к созданию геометрии растений в SpeedTree.
Для референсов я использовал два источника — во-первых это реальный растительный мир, а во вторых я исследовал опыт других художников которые работали над такими проектами как Horizon Zero Dawn, Days Gone и другие.
Примерно половина работы состояла в том, чтобы держать себя в определенных рамках, например poly count для деревьев не должен превышать 10К треугольников, а для травянистых растений 2К в LOD_0, а атласы должны иметь максимальную плотность для экономии текстурной памяти.
Следующим этапом было настройка материалов в UE4
Для травы необходимо было сделать функцию благодаря которой она могла бы реагировать на угол камеры персонажа, делая наклон в сторону forward vector камеры.
Таким образом удалось скрыть эффект «плашки», и сохранить ощущение отдельных травинок, хотя в LOD_0 кластер травы был всего 120 треугольников, а LOD_2 20 треугольников.
Так как на открытых пространствах нет возможности (и необходимости) рендерить траву далеко удаленную от камеры, используется Cull Distance который «отсекает» меши на определенном расстоянии. И чтобы этот эффект не был резким, я добавил функцию плавного затухания которая «растворяла» траву перед тем как сработает Cull Distance.
Так же оказалась очень полезной функцией SpeedTreeColorVariaton, она помогла избежать паттерна и разнообразила цветовое восприятия травы
В целом эта была интересная работа которая улучшила мои навыки и помогла глубже изучить новые подходы к созданию контента.
Это не поиск, чел, ты сделал пост.
Я прошу прощения что случайно нажал "сохранить", не успев добавить саму статью. Для меня это первый опыт, надеюсь на Ваше понимание
Вау, он реально пытался сделать пост
Хорошо, что он не что-то другое искал...
Зарегистрировался 15 минут назад
Сегодня я решил поделиться своим опытом.чувак, ты, конечно, извини, но ты заново велосипед изобрел.
Зачем выдавать то, что давно известно и хорошо работает за какой-то эфемерный «свой опыт», когда это просто широкораспространенная стандартная практика?