Стилизованная (трава) для маленьких. Часть 1
Если ты читаешь это то у тебя проблемы. Ютуб не помогает и тормозит даже на парковке а твой кабанчик хочет видеть низкополигональный луг по утру.
Для тебя мой друг есть аж 2 способа сделать по красоте от простого к сложному. (Сейчас мы рассмотрим только первый вариант)
В этом примере трава нежная и шелковистая.
Весь цвет берется из текстуры на лендскейпе (Не важно что именно) какой то рандомный цвет или картинка.
Но обязательно ознакомься с моей прошлой статьёй про создание лендскейпа. https://render.ru/ru/Bezdarnost/post/23568
Вот так выглядит полный набор нод для для того что бы все работало. Но видеть мало! надо ещё и понимать.
Давайте пройдёмся по каждому пункту что бы было по понятней
(Opacity Mask) Мы берем простую форму (плашку) и с помощью черно-белой маски «вырезаем» из неё детальный силуэт травинок. Это позволяет отрисовывать тысячи травинок, не нагружая видеокарту сложной геометрией.
(Base Color) Главная задача здесь — «пришить» траву к ландшафту, чтобы она не смотрелась инородно.
Смешивание через RVT: Вместо того чтобы просто задать траве зеленый цвет, шейдер берет информацию о цвете прямо из-под «ног» модели (из текстуры земли).
Зачем это нужно: Это создает идеальный переход. Если на земле пятно песка — трава над ним тоже станет желтоватой. Это убирает эффект «вставных зубов», когда четко видна граница между моделью травы и поверхностью мира.
(Drawing of Grass) Чтобы поле не выглядело как однообразное зеленое полотно, в шейдер заложена динамика пятен.
Мировые координаты: Маска шума накладывается не на каждый кустик отдельно, а на всё пространство целиком. Это создает эффект крупных цветовых пятен по всему лугу.
Движение цвета: Благодаря анимации (Panner), эти пятна медленно ползут. Зритель видит не просто статичную картинку, а живую игру света и тени, как будто по полю гуляют тени от облаков.
(Wind)Математика изгиба: Чтобы трава не двигалась как картонная декорация, используется градиент по высоте. Система «понимает», где у модели низ, а где верх.
Результат: Основание куста жестко зафиксировано в земле, а кончики активно реагируют на ветер. Это дает естественный силуэт качающегося растения.
(Normal) Единый вектор: По умолчанию каждый полигон в пучке травы светится по-разному, из-за чего куст выглядит «битым» и резким. Здесь же нормали принудительно направлены вверх.
Эффект: Свет падает на всё поле равномерно. Трава кажется мягкой, объемной и пушистой, как единый ковер, а не как набор острых треугольников. Плюс, это скрывает швы на стыках геометрии.
И если подводит итог всего этого.
Она не «жрет» ресурсы, потому что вместо сложной 3D-лепки тут работают умные текстуры.
Она живая: колышется на ветру именно макушками, а не летает всем кустом.
Она мягкая: благодаря хитрости с нормалями, она выглядит как пушистый ковер, в который хочется прыгнуть, а не как набор острых треугольников.