Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voxel.doc
Скачиваний:
5
Добавлен:
01.12.2018
Размер:
228.86 Кб
Скачать

Воксельные модели введение

Воксел (в разговорной речи воксель, англ. Voxel — образовано из слов: объёмный (англ. volumetric) и пиксел (англ. pixel) — элемент объёмного изображения, содержащий значение элемента растра в трёхмерном пространстве. Вокселы являются аналогами пикселов для трехмёрного пространства.

Вокселы давно используются в компьютерных играх, однако их использование ограниченно из-за серьёзных требований к аппаратной части. Чаще всего в играх вокселы используются для отрисовки моделей. Иногда используются воксельные ландшафты вместо обычного поля высот — это позволяет создавать более сложные пространства с пещерами и мостами. Одной из самых важных возможностей воксельных ландшафтов, интерьеров и объектов является возможность их динамического изменения, и разрушения в реальном времени. В движке Build Engine есть возможность использования воксельных объектов.

© Википедия

Программное обеспечение

Для того чтобы создать и добавить воксельную модель, нам потребуется следующий набор программ:

  • POLY2VOX – Конвертер полигональных моделей в воксельные, написан самим Кеном. Поддерживаемые форматы трехмерных моделей: *.ASC, *.3DS, *.MD3, *.MD2. Имеется исходный код.

  • SLAB6 –Редактор от Кена Сильвермана. Позволяет создавать, редактировать и сохранять воксельные модели в несколько форматов. Лучше скачать самую последнюю версию, поскольку в ней была добавлена важная для нас функция изменения размера моделей. В этой статье не будет рассмотрено рисование в данном редакторе– это очень долго, неудобно, а в итоге получается не реалистично. Гораздо лучше использовать полноценные трехмерные редакторы (3d Studio Max, Blender и т.д.), однако SLAB6 необходим для сохранения в правильный формат и назначения нужной палитры для вокселя.

  • EDITART – Всем известная программа для добавления новых спрайтов в *.ART файлы.

  • ARTEDIT – Понадобится нам, чтобы назначить воксельный идентификатор добавленному спрайту.

  • BARF – Необходим для добавления модели в ресурсный архив игры.

Создание воксельной модели Этап 1. Конвертирование

Для примера я буду использовать заранее заготовленную простую полигональную модель ящика, которую можно скачать в главе «Дополнительно». Если же вы хотите использовать другую, но никогда не работали в трехмерных редакторах, могу посоветовать ресурсы проекта «Transfusion». Файлы *.PK3 можно открыть с помощью архиватора WinRar.

  • Переместите модель и скин в одну папку с конвертером. Важно, чтобы скин был в одной папке с моделью, в противном случае вы получите белый куб.

  • Откройте файл *.3DS с помощью POLY2VOX и дождитесь конца операции.

Если вы все сделали правильно, после окончания в этой же папке появится файл с расширением *.KVX – это и есть воксельная модель, но прежде чем добавить в игру, нам необходимо ее отредактировать.

Этап 2. Редактирование

Запустите SLAB6, выберите меню «File», щелкните пункт «Open» и выберите вашу *.KVX модель. Скорее всего, вы увидите огромный ящик, который закрывает весь вид.

Дело в том, что все полигональные модели по умолчанию конвертируются с максимальной сеткой, поэтому ширина, высота и объем их всегда будет 128x128x256 (макс. размер модели в Build Engine), что нежелательно, если мы рисуем мелкие объекты.

Если уменьшать ее в редакторе карт – неизбежны подвисания игры и исчезновение моделей прямо перед носом у игрока. Еще хуже, когда Blood начнет вылетать с сообщением о нехватке памяти.

Здесь лучше использовать функцию «Halve Dimensions» (вкладка Tools), что позволяет уменьшать ее в 2 раза.

При слишком сильном уменьшении у сложных моделей может пострадать качество, поэтому оптимальной шириной\высотой модели я считаю – 64x64 и 32x32, а затем, если модель кажется вам большой, ее можно уменьшить вручную в редакторе карт – это гарантировано позволит сэкономить память игры и не слишком ухудшит качество.

До уменьшения После уменьшения

Огромные полигональные модели, например, машины при конвертировании также будут уменьшены до 128x128x256, что приведет к большой потере качества. Фактически вместо сглаженной машины, вы будете видеть пикселы и кубы, поскольку воксельная модель не использует текстурирование, а красит каждый пиксел в свой цвет. Поэтому не стоит использовать слишком большие объекты, либо заранее разделить конвертируемую модель на несколько частей в 3D редакторе.

Следующим шагом на данном этапе будет изменение цветов палитры. Об этой функции лучше не забывать, иначе вы будете видеть «серо-буро-малиново-красный» куб в игре без всякого узора, или того хуже – Blood вообще откажется запускаться.

Щелкните вкладку «Tools» и выберите пункт «Replace palette and convert colors». Перед вами появится диалоговое окно, в котором вам будет предложено выбрать палитру. Палитрой может служить скриншот или модель, взятая из Blood. Так же ею может быть файл PALETTE.DAT, который все равно понадобится вам, чтобы работать в EDITART – его-то я и предлагаю использовать в качестве палитры для нашего ящика. После того, как вы изменили палитру, фон станет серым – это значит, что палитра была успешно заменена на выбранную вами. Теперь, для того, чтобы увидеть, как модель будет отображаться в игре, нужно щелкнуть вкладку «View» и убрать галку с пункта «Normal Shading». К сожалению, SLAB6 не сохраняет настройки, поэтому убирать галку придется каждый раз заново, как только вы перезапустите программу.

Мы подходим к заключительному шагу редактирования – создание спрайта для игры. Для любой модели необходима картинка, которая будет отображаться в редакторе карт, или в игре, если уменьшить уровень детализации. Спрайт желательно сделать того же размера, что и сама модель, чтобы в игре ваши объекты не висели в воздухе, или же наоборот были вмяты в землю. Снова щелкните вкладку «Tools» и нажмите пункт «Adjust Pivots». В левом нижнем углу появятся три окна «Z:?:\??», «Y:?\??» и «X:?\??», где «?» означает точный размер модели в игре. Нас интересуют последние два значения – именно они определяют ширину и высоту нашего спрайта. Для ящика я использовал значения 64, но вы ограничены только вашей фантазией и возможностями редактора. Создайте спрайт такого же размера (можно сделать скриншот прямо в редакторе) и сохраните его в формате *.GIF. Совсем необязательно обрабатывать его в фотошопе, ведь вместо спрайта в игре будет отображаться модель, но если не хотите чтобы игроки ужаснулись, когда уменьшат детализацию или будут играть с 3DFX патчем, который не поддерживает воксели – рекомендую прочесть эту статью по добавлению спрайтов в игру.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]