Cubemap
Шесть квадратных граней одной кубической карты.
Создайте Cubemap и вызовите CreateFromImages с шестью квадратными Image. Для проверенного Vulkan-пути порядок граней: +X, −X, +Y, −Y, +Z, −Z; он соответствует порядку cube faces Vulkan. GetLayers возвращает 6. Для UpdateLayer и GetLayerData используйте индекс грани 0…5.
Импортируемый лист должен соответствовать выбранному layout 1×6, 2×3, 3×2 или 6×1. Порядок граней не заменяет правильный поворот содержимого каждой картинки. Карта сама по себе не включает отражения и не является обычной Texture2D для интерфейса.
Полный sky-шейдер ниже принимает Cubemap в source_panorama. Он проверен рендером шести направлений камеры с разными сплошными цветами граней.
shader_type sky;
uniform samplerCube source_panorama : filter_linear, source_color, hint_default_black;
uniform float exposure : hint_range(0, 128) = 1.0;
void sky() {
// Adjust orientation only when the source face convention differs.
vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z);
COLOR = texture(source_panorama, eyedir).rgb * exposure;
}Проверены чтение граней, placeholder, бинарное сохранение и приведённый shader. Сплошные тестовые цвета не проверяют швы и поворот рисунка внутри грани. Эти диагностические пиксели не являются иллюстрацией качества графики.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
CubemapКонструктор
public Cubemap();Создаёт пустой Cubemap без загруженных изображений. Инициализируйте CreateFromImages; валидный RID-заглушка не доказывает наличие данных.
Методы1
CreatePlaceholderResource
public Resource CreatePlaceholder();Создаёт отдельный PlaceholderCubemap с текущими размером и числом слоёв/граней. Исходные пиксели не копируются.
ResourceResource с конкретным типом PlaceholderCubemap.