Кубические карты

Рубрика: Разное Комментариев: 0

Всем привет! Мы только сейчас обратили внимание, что последние несколько статей совершенно непроизвольно получаются связанными между собой… Смотрите сами:

«Моделирование шлема Железного человека»
«Опыт сотрудников компании ILM | 3d Визуализация сегодня» (о настройке освещения в фильме «Железный человек 2»)
«Как создать интерактивную карту для сайта?»
«Интерактивность | 3d Визуализация сегодня»
— и сегодняшняя статья на тему «Кубические карты».

Прикольно, да?.. Ну ладно, вернемся к кубическим картам. Несмотря на основную картинку к статье, ниже речь пойдет не о Minecraft, а о принципах создания и конвертации кубических карт.

Кубическая карта – это специальный вид панорамы, часто используемый в компьютерных играх. Этот макет дает наименьшие искажения и пустоты, в отличие от маленьких текстур с промежутками, насколько это возможно. Существуют различные типы макетов кубических карт. Вот некоторые примеры всевозможных макетов:

cubemap_layouts

Конвертация

Все текстуры неба на cgtextures.com доступны в формате кубической карты, но навыки конвертирования в различные форматы могут быть очень полезными. Например, растяжения вверху в равнопромежуточной проекции (вид в стиле «карты мира») затрудняют прорисовку верхней части неба. Для конвертации равнопромежуточной панорамы в кубическую карту вы можете использовать в качестве варианта свое 3D приложение (установить 6 камер и отрендерить внешние стороны куба) или использовать один из следующих вариантов:

Pano2VR — Создает трехмерную Flash панораму и конвертирует её в различные виды панорам.

NVidia DDS Exporter

В большинстве игр для Windows для текстур используется формат файла DDS. Этот формат поддерживается железом видеокарты. Видеокарта имеет ограниченную память, и текстура хранится в сжатом состоянии в памяти видеокарты и распаковывается «на лету», при отображении ее на экране. Это очень экономит видео-память!

Для того чтобы сохранить кубические карты в этом формате, вы можете использовать плагин Nvidia DDS Exporter для Photoshop. Кубические карты, расположенные на сайте CGtextures.com, расставлены уже в правильном порядке, чтобы сохранить их с помощью плагина NVidia:

cubemap_layout

При экспорте в DDS текстуру, убедитесь, что ее размер в два раза больше. Проверьте, соответствует ли ваша кубическая карта одному из следующих размеров:

1536 x 256 пикселей
3072 x 512 пикселей
6144 x 1024 пикселей
12288 x 2048 пикселей

Сохраните ее со следующими настройками:

— DXT1 Compression (обычный цвет, без альфа-канала)
— Выпадающее меню: Cubemap
— No Mipmaps (зависит от вашего движка, пониженные MIP-текстуры могут быть использованы для пониженных настроек дисплея или кубических карт отражения)

Эти настройки являются лишь примером. В зависимости от движка могут потребоваться другие параметры. Например, для Source Engine (Half Life 2) требуются кубические карты в виде 5 отдельных DDS файлов лишь с изображением неба, а все что ниже горизонта — обрезано.

nvidia_save

Пример настроек экспорта у плагина NVidia DDS Exporter для Photoshop.


ATI CubeMapGen

Другой бесплатной утилитой для создания кубических карт DDS является ATI CubeMapGen.

Особенностью этой утилиты является то, что она позволяет создавать MIP-текстуры для вашей кубической карты с лучшей фильтрацией. Nvidia Exporter фильтрует MIP-текстуры в изоляции (отдельные грани куба не имеют никакого влияния друг на друга), что может привести к появлению артефактов в MIP-текстурах. ATI CubeMapGen фильтрует кубические карты как единое целое.

Эти MIP-текстуры могут быть использованы для размытых металлических шейдеров или для лучшего заполняющего освещения, для получения дополнительной информации см. ссылку на статью о Свернутых Кубических картах в конце этой страницы.

Для утилиты ATI CubemapGen потребуется кубическая карта в виде макета «Вертикальный крест (Vertical Cross)». Для конвертирования NVidia из макета «Horizontal Strip» в «Vertical Cross» я сделал несколько экшенов для Photoshop:

StripToCross.atn – Экшены для конвертации кубических карт в «Vertical Cross» в Photoshop CS3.

Просто выполните запуск корректного экшена для настройки высоты вашего изображения, и  в результате получится кубическая карта в виде макета «Vertical Cross»:

actions1

Использовать экшн для Photoshop для конвертации «Горизонтальной полосы (Horizontal Strip)» в «Vertical Cross» довольно легко: просто выберите правильную высоту и нажмите Play.

 

actions_result

Полученная кубическая карта в формате Vertical Cross после использования экшна.

 

cubemapgen

Предварительный просмотр в ATI CubeMapGen.

Источник: cgtextures.com
Перевод: RAIT.kz — статьи о компьютерной графике