Bombers3d - генерация меша уровня
Что-то опять появилась ностальгия по Mine Bombers... и захотелось оживить заброшенный проект Bombers3D средствами Unity3d. Первое с чего-бы хотел начать - это с генерации сетки уровня.
Как это было реализовано раньше на Blitz3d (как работает можно в игре посмотреть на F8 - F10, точно не помню):
Как это реализовать в юнити:
Хотелось бы выслушать мнение форумчан по этому поводу. Может у кого есть более интересные идеи по этому поводу? |
Ответ: Bombers3d - генерация меша уровня
так непонятно ничего, треба ссылочку на проект
|
Ответ: Bombers3d - генерация меша уровня
Цитата:
|
Ответ: Bombers3d - генерация меша уровня
*Мысли в слух*
Если не задумываться о генерации уровня, а ставить префабы в нужные места с полной геометрией куба без нижней части, то при уровне размером 100х60 получается 6000 объектов и порядка 60000 полигонов/120000 вершин. Если принять во внимание что для одинаковых блоков уровня будет использоваться инстансинг, то на современных машинах все будет летать... но так делать не хочется, а хочется сделать оптимально. UPD: Другим подходом может быть создание вершинного буфера на весь уровень, а при регенерации сетки создавать только индексые буфферы для каждого из материалов. Такой вариант возможно будет одним из оптимальных вариантов - создать для каждого материала динамические списки индексов и пересоздавать их при необходимости. Таким образом возможно получится минимизировать число переключений текстур и повысить скорость рендеринга. |
Ответ: Bombers3d - генерация меша уровня
чет ты усложняешь самое примитивное, у тебя там сетка 10000 * 10000 и в каждой клетке уникальная модель по 5 тыс поликов ? нет ! не парься зря, или юнити настолько тормознутое ?
|
Ответ: Bombers3d - генерация меша уровня
Т.е. просто расставлять заготовленные префабы блоков уровня? Юнити то не тормознутое, вспоминается тормознутость блитца :) Плюс хочется максимально оптимизировать производительность... может я и заморачиваюсь, в общем будет видно после тестов.
UPD: С другой стороны, если принять во внимание то, что каждый блок может иметь до пяти текстур, то не ясно как поведет себя рендер юнити... будем пробовать :) |
Ответ: Bombers3d - генерация меша уровня
Эксперимент с генерацией единого меша для всего уровня не удался, т.к. Юнити не поддерживает сетки с более чем 65к вершин. Будем разбивать.
UPD: для использования какрт нормалей нужно генерить так же тангенты, что мне лень )) Буду генерировать поле с помощью готовых блоков. Посмотрю на производительность. UPD2: Сгенерированное поле 100х60 с одним материалом дало не очень привлекательную производительность в редакторе на моем ноуте. Всетаки буду пытаться генерировать поле. Подготовлю заранее тангенты. |
Ответ: Bombers3d - генерация меша уровня
pax
Цитата:
Цитата:
|
Ответ: Bombers3d - генерация меша уровня
Цитата:
Цитата:
|
Ответ: Bombers3d - генерация меша уровня
Генерация уровня на основе готовых блоков не подошла из-за своей артефактности. В стыках блоков проявляются линии, вспоминается, что тоже самое было и в блице. Остается генерация сетки налету. В связи с оптимизацией по материалам я принял решение генерировать сетку полинейно (как и было), но группировать рядом стоящие линии для меньшего количества дравколов. Например по две - четыре линии. Это в 2-4 раза снизит количество переключений текстур при отрисовке меша уровня.
|
Ответ: Bombers3d - генерация меша уровня
Вложений: 1
Первый сгенерированный уровень пока с одной текстурой, но уже предусмотрено любое их количество и даже анимацию текстур на уровне будет легко сделать. Меш уровня разбит на части, каждая шириной по четыре линии (это настраивается). Во вьюпорте выбрана первая.
UPD: Тесты показали, что регенерация сетки одной части меша, состоящей из четырех полос занимает менее миллисекунды машинного времени даже на моем ноуте, чему я рад, т.к. большие взрывы некоторых предполагаемых видов оружия будут вызывать перегенерацию сетки всего уровня :) |
Ответ: Bombers3d - генерация меша уровня
Вложений: 1
Добавлена возможность вращать любую грань на 90, 180 и 270 градусов. Будем экономить текстуры!
Чтобы не сложно было делать дизайн уровней будет заготовлено много вариантов блоков игрового уровня и на их основе будет построен редактор. |
Ответ: Bombers3d - генерация меша уровня
Вложений: 2
Тестирование системы наложения материалов.
На скрине рандомно сгенерированный уровень из предустановленных восьми блоков. UPD: Добавил скрин уровня со скосом, который говорит о том, что можно создавать не только прямоугольные уровни ) |
Ответ: Bombers3d - генерация меша уровня
Вложений: 1
Появились зачатки редактора уровней. Демо по следующей ссылке:
http://shgames.ru/bombers_ed.html Описание: Clear Level Data - очистка всего уровня (по умолчанию сгенерирована билиберда, так что надо будет на нее нажать) Floor - "рисование" пола Block - "рисование" блоков Clear - удаление данных ячейки Кнопка Change меняет текущую кисть для "рисования" В аттаче скрин созданного уровня "Аля Бомбермен" :) UPD: Сетка уровня теперь разделена на блоки 10х10, уровень будет всегда размером 100х100 (думаю такого размера хватит за глаза), сетка создается только для используемых блоков. |
Ответ: Bombers3d - генерация меша уровня
Запилил резиновую рамку для редактора не смотря на жару. Ссылка та же (пост #14). Активировать рамку можно нажав кнопку "Rect".
|
Часовой пояс GMT +4, время: 22:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot