Cubemap
Cubemaps - это особый тип текстурных ассетов. Они состоят из 6 текстурных ассетов, где каждая текстура представляет грань куба. Обычно они имеют два применения:
- Cubemap может определить небесную коробку вашей сцены. Небесная коробка содержит изображения далеких видов вашей сцены, таких как холмы, горы, небо и так далее.
- Cubemap может добавить отражения к любому материалу. Представьте себе блестящий, хромированный шарик в вашей сцене. Шар отражает окружающую сцену. Для открытых сред обычно устанавливают небесную коробку сцены в качестве кубической карты на отражающих объектах материалов.
Импорт текстур Cubemap
Cubemap - это ассет, который требует шести текстурных ассетов в качестве входных данных. Поэтому для полной настройки нового ассета кубической карты сначала необходимо импортировать 6 изображений в ваш проект. Чтобы сделать это, просто перетащите 6 изображений из вашей файловой системы в панель ассетов (или выберите опцию Загрузить панели ассетов). После загрузки и обработки изображения появятся на панели ассетов, где они теперь готовы к назначению на ассет кубической карты.
Создание Cubemaps
Вы можете создавать новые ассеты кубических карт прямо из интерфейса редактора PlayCanvas. Используйте меню Создать ассет на панели ассетов.
Это создает новый ассет Cubemap и открывает редактор Cubemap в правой части экрана.
Выбор Cubemaps
Чтобы выбрать кубическую карту для редактирования, выберите ее на панели ассетов. Самый простой способ сделать это - выбрать фильтр кубической карты, чтобы сузить варианты выбора. Кубические карты определяются миниатюрами в форме креста:
При выборе кубической карты она будет загружена в панель инспектора справа от редактора.
Свойства Cubemap
После выбора кубической карты вы можете редактировать ее свойства.
Фильтрация
Этот параметр определяет, как пиксели кубических карт интерполируются при их увеличении. Увеличение происходит, когда соотношение текселя к пикселю экрана меньше единицы. Линейный дает наилучшие результаты визуально, за ним следует ближайший.
Анизотропия
Анизотропия - это значение от 1 до 16, которое дает контроль над качеством выборки текстур, когда вектор обзора камеры становится более тесно выровненным с плоскостью текстурированной поверхности.
Назначение текстур для Cubemaps
Панель предварительного просмотра кубической карты отображает шесть граней кубической карты, развернутых в форме креста. Представьте себе картонную коробку, которая была развернута, чтобы лежать плоско. Чтобы создать кубическую карту, просто перетащите текстурные ассеты из панели ассетов в слоты граней на панели предварительного просмотра. Вы также можете выбрать слот грани кубической карты, а затем выбрать текстурный ассет из панели ассетов.
Грани кубической карты должны быть:
- Квадратные (одинаковое разрешение в ширину и высоту)
- Степень двойки по размеру (1x1, 2x2, 4x4, 8x8, 16x16, 32x32 и так далее)
- Все грани должны иметь одинаковое разрешение
Чтобы помочь вам, редактор пытается определить, как автоматически назначить текстуры на грани разумным образом. Он делает это, когда вы перетаскиваете первую грань в слот, пытаясь сопоставить общепринятые соглашения об именовании граней кубической карты, такие как:
- negx, posx, negy, posy, negz, posz
- left, right, top|up, bottom|down, front|forward, back|backward
- 0-5|1-6
Пример набора текстур, который будет соответствовать:
- face_posx.jpg
- face_negx.jpg
- face_posy.jpg
- face_negy.jpg
- face_posz.jpg
- face_negz.jpg
Освещение на основе изображений
Эта техника позволяет использовать карту окружения, такую как CubeMap, для имитации физически обоснованного окружающего света и отражения на материалах. Подробнее о том, как это работает и как создавать CubeMaps для IBL.
Назначение Cubemaps материалам
Типы материалов Phong и Physical по умолчанию имеют свойства отражения. Если вы развернете раздел свойств окружения, вы увидите следующее:
Вы можете щелкнуть пустой слот, чтобы выбрать кубическую карту, или перетащить ассет кубической карты из панели ассетов в слот кубической карты.
Примечание: физический материал будет использовать сценический скибокс в качестве карты окружения по умолчанию, если он назначен и предварительно отфильтрован.
Конвертация Equirectangular или Octahedral HDRIs в Cubemaps
Текстуры окружения часто имеют формат equirectangular или Octahedral (Poly Haven, например) и должны быть преобразованы в кубические карты, прежде чем они смогут быть использованы в PlayCanvas.
Это можно сделать через PlayCanvas Texture Tool, доступный в браузере.
- Загрузите версию HDR текстуры окружения и нажмите кнопку "Добавить файлы" в PlayCanvas Texture Tool, чтобы загрузить файл.
- Выберите загруженную текстуру слева.
- В разделе "Reproject" измените "источник" на формат текстуры.
- Измените "цель" на "куб".
- Измените "кодировку" на желаемый формат:
- "rgbe" для экспорта в "HDR"
- "rgbm" для экспорта в "PNG"
- Установите ширину на желаемый размер текстуры на каждую грань. 512 - хороший баланс между качеством и размером файла.
- Нажмите кнопку "Reproject" для выполнения конвертации в кубическую карту.
- Нажмите "Экспорт в PNG" или "Экспорт в HDR" для загрузки 6 отдельных текстур граней кубической карты, которые готовы к загрузке в PlayCanvas.
Другие инструменты, которые также могут выполнить эту конвертацию, включают:
- Инструмент HDRI-to-CubeMap Матеуша Вишниовского (браузер)
- cmftStudio (рабочий стол) с руководством