Ищу наиболее оптимизированные пути для процедурой генерации меша. Генерация подразумевает

не только постройку самого меша, но и математические расчёты. Последнее было решено распаралелить по потомкам с помощью джобов, а вот с билдингом меша с уже готовыми данными пока проблема. Меш апи в юнити работает только в главном потоке, и до этого я думал просто делать делеи между генерацией чанков, но сейчас задумался об альтернативах. Они есть? Насколько эффективно для этого было бы использовать gpu и возможно ли вообще? Может есть ещё какие варианты

3 ответов

20 просмотров

Можешь как варианты использовать compute shaders, если хочешь для вычислений использовать видеокарту Правильно говоришь что узкое горлышко здесь api unity Самый оптимальный способ: сделать вычисления на бекграунде (task, jobs или compute shaders), а потом передать на главный поток массив данных (вершины, треугольники)и сделать меши

Мориарти-Туманов Автор вопроса
Nick Khalow
Можешь как варианты использовать compute shaders, ...

Блин, а я почему-то думал, что compute shader может быть как альтернативный вариант для постройки меша. То есть нет смысла запариваться с шейдерами, если уже джобами идёт просчёт данных? В любом случае мейн потоку нужно будет строить меш в итоге?

О, знакомая задача, пару лет я на неё убил😱 Сперва надо составить алгоритм, как вообще строится меш. Понять, лучший ли это алгоритм. А еще раньше, нулевой шаг - понять, что такое меш, из чего он состоит и как с ним работать. Вот на картинке меш. Четыре треугольника. 6 точек или 8 точек? Если ты выбираешь 8 точек (Unique vertices), то у тебя есть возможность делать разные нормали на границе, т.е. делать острые углы с точки зрения освещения. Алгоритм построения проще. Если ты выбираешь 6 точек (Shared vertices), то у тебя общие нормали, "плавные" углы с точки зрения света, сложнее алгоритм. Выгода в производительности: финальное количество вершит сокращается почти вдвое. Еще до организации потоков, тебе предстоит решить задачи алгоритмов и структур данных. Начать неплохо бы с написания своего тестового стенда: собственного профайлера и разных вариантов симуляций процедурного мира

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Карта сайта