Рендеринг травы в Unity
Основан на методе описанном тут: https://gist.github.com/sebbbi/a599d7896aa3ad36642145d54459f...
Основная скорость достигается за счет минимизации чтений из памяти в угоду расчету всего что возможно напрямую в шейдере.
Основан на методе описанном тут: https://gist.github.com/sebbbi/a599d7896aa3ad36642145d54459f...
Основная скорость достигается за счет минимизации чтений из памяти в угоду расчету всего что возможно напрямую в шейдере.
Приходится чем то жертвовать всеравно к сожалению. Частично проблема в не до конца реализованном механизме occlusion culling-а. Видно например мерцание травы вдалеке, тоже из за него. Над ним еще работаю. И частично от того что куллятся травинки по группам (по 9 травинок в группе), просто убирая целую группу из рендеринга, что бросается в глаза. По сути можно плавнее сделать, либо уменьшая плавно размер, либо куллить травинки внутри группы, тогда должно быть не так заметно. Но факт остается фактом, миллионы травинок за раз рендерить с интерактивным фреймрейтом не получится. Особенно на бюджетных картах как у меня.
Симуляция ветра очень простенькая пока. Нету высокочастотных колебаний, просто 3 синуса, отсюда и складывается ощущение "подводности"
Разумеется. Весь код\шейдеры\текстуры свои, за исключением:
деревьев - https://assetstore.unity.com/packages/3d/vegetation/speedtre...
и камней - https://assetstore.unity.com/packages/3d/props/exterior/hq-b...
любая бюджетная видео карта и проц сойдут
Radeon HD 4650 и i5-2300 с тобой не согласятся, увы. Писчая машинка с возможностью смотреть FHD фильмы.
Такая проблема не только в таркове, а в принципе в любом мультиплеерном шутере с большими открытыми пространствами. Вон тут в принципе предложено неплохое и не тяжелое решение
https://forums.bohemia.net/forums/topic/140105-rendering-gra...
А в сингл плеерных играх помоему без разницы, если грамотно переход сделать, то будет не отличить.
Да есть такое. Просто без движения куда менее эффектно выглядит, преувеличивать некоторые вещи иногда полезно
о, так это твой видос. Объясни тогда, ПОЖАЛУЙСТА, ну вот нахуя здесь виньтека из блюра и хроматических аберраций, а? Т_Т
Я художник, я так вижу)
Ну а если серьезно, хз, нравится мне так. И да, блюра там нету, это все аберрации.
С деревьями там другая проблема, деревья должны взаимодействовать со стандартным windzone в юнити, но в 2018.3 есть баг где настройки этой windzone не влияют ни на что, и деревья трясет как при урагане. Поэтому пришлось пока убрать.
Выглядит конечно не без греха, но визуал, это дело поправимое.
Другое дело, что отдавать все процессорные 16мс под траву, это конечно жестко.
Чуть логику какую добавить еще, и пиши пропало.
Total number of grass blades: 10-11 million.
Average visible number of grass blades after culling: 300-400k
А на сколько хорошо это все дело батчится? Сколько дравколов по итогу?
Другое дело, что отдавать все процессорные 16мс под траву, это конечно жестко.
Процессор то тут причем. На ГПУ все работает, процессор не трогается. И не 16мс, на всю систему травы уходит максимум 5-6 мс. И еще надо учитывать видеокарту, у меня же бюджетная 1050ti которая уже давно современные игры не вывозит на фуллах. Если я отключу постпроцессинг например то будет уже в районе 80-90 фпс.
А на сколько хорошо это все дело батчится? Сколько дравколов по итогу?
там нечего батчить, это все один меш генерируемый в шейдере. 1 дравкол.
Эм. А зачем с большой высоты нужна геометрически точная детализированная трава? У меня весь геймплей на земле происходит.
В UE4 из коробки есть нормальный ветер, все считается на шейдерах, надо лишь добавить в материал, и оптимизировано все хорошо.
Да ветер это наименьшая из проблем, он везде плюс минус одинаково делается, единственное отличие в подборе коэффициентов и значений.
Начну с последнего вопроса, он же главный. Пока на добровольных началах. После выхода демки планируем начать сбор средств/поиск издателя.
Вопрос такой, если трава сама по себе это двухсторонний объект, можно ли сделать так чтобы при рендеринге, прорисовывалась только видимая часть?
Объект односторонний, в шейдере уже решается какую сторону рендерить. Оно так и получается что отрисовывается только видимая сторона.
На сколько высокий порог вхождения? По железу и навыкам? У меня образование высшее юридическое, немного не та область =)
По железу не важно в принципе, любая бюджетная видео карта и проц сойдут. По поводу навыков - нужен технарский мозг и желание учиться) А ну да, и самое главное - знание английского на высоком уровне. Все годные статьи и вся инфа в основном англоязычная
Потому что на экране не только трава как бы) Небо, земля, постобработка, туман тоже занимают некоторое количество времени.
Я тоже тут посижу, подожду ответа. Очень интересует такая фигня и можно ли этим хоть на корочку хлеба заработать?
Разумеется можно. Каждый раз когда публикую видео или гифки с результатами работы всегда найдется несколько человек которые спросят о том можно ли будет купить данный продукт, где и когда. На тот же ассет стор юнитевский если работать по полной то можно спокойно на жизнь зарабатывать. Но я этим для себя занимаюсь, так что ни копейки не заработал)
где вы этому научились
В интернете) Серьезно, начинал без каких либо базовых знаний, учился на разных статьях в интернете. Книжек не читал, менторов не нанимал. Сам помаленьку потихоньку.
какое образование помогло?Обычное высшее айтишное
хрень полная. движения травы совершенно не реалистичные, будто вся эта трава в океане плавает, а не на земле растет
Отвечал выше, симуляция ветра простенькая пока. И вообще движение от ветра это не проблема, отредактировать всегда можно как надо. А вот для того чтобы заставить все это рендериться относительно быстро, вот для этого пришлось потеть.
Эх, красиво. Жаль только, что фпс упадет или видеопамять кончится, когда населят всякой живностью.
Не упадет. Памяти опять же используется очень мало, по описанной выше причине - доступ к памяти просто не достаточно быстр для рендеринга такого большого количества объектов.
Лига Разработчиков Видеоигр
8.9K поста23.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"