love.graphics.newVolumeImage
Доступно начиная с LÖVE 11.0
Эта функция не поддерживается в более ранних версиях.
Создаёт новый объёмный (3D) изображения.
Эта функция может быть медленной, если вызывается многократно, например, из love.update или love.draw. Если вам нужен конкретный ресурс часто, создайте его один раз и сохраните где-нибудь для повторного использования!
Объёмные изображения — это 3D-текстуры с шириной, высотой и глубиной. Их нельзя отобразить напрямую, они могут использоваться только в коде шейдера (и отправляться в шейдер через Shader:send). Или, точнее, стандартные шейдеры не могут отображать объёмные изображения, и вам нужно создать свой собственный для этого.
Для использования объёмного изображения в шейдере оно должно быть объявлено как тип VolumeImage или sampler3D (вместо Image или sampler2D). Необходимо использовать функцию шейдера Texel(VolumeImage image, vec3 texcoords), чтобы получить цвета пикселей из объёмного изображения. Аргумент vec3 — это нормализованные текстурные координаты, где z-компонента представляет глубину, для выборки (от 0 до 1).
Объёмные изображения обычно используются в шейдерах как таблицы поиска для цветокоррекции, например, потому что выборка с помощью текстурных координат, которые находятся между двумя пикселями, может интерполировать по всем трём измерениям в объёмном изображении, что приводит к плавному градиенту даже при использовании объёмного изображения малого размера в качестве таблицы поиска.
Массивы изображений — намного лучший выбор, чем объёмные изображения, для хранения нескольких различных спрайтов в одном массиве изображений для их прямого отображения.
Функция
Создаёт объёмное изображение на основе нескольких файлов изображений с совпадающими размерами.
Синтаксис
image = love.graphics.newVolumeImage( layers, settings )
Аргументы
table layers- Таблица, содержащая пути к файлам изображений (или объекты File, FileData, ImageData или CompressedImageData), в массиве. Также можно передать таблицу таблиц, где каждая подтаблица представляет отдельный уровень mipmap и содержит все слои для этого mipmap.
table settings (nil)- Необязательная таблица настроек для конфигурации объёмного изображения, содержащая следующие поля:
boolean mipmaps (false)- Истинно, чтобы изображение использовало mipmap, ложно — чтобы отключить их. Mipmap будут автоматически сгенерированы, если формат изображения не является сжатой текстурой.
boolean linear (false)- Истинно, чтобы рассматривать пиксели изображения как линейные, а не sRGB, когда включена гамма-корректная отрисовка. Большинство изображений создаются как sRGB.
Возвращаемые значения
Image image- Объект объёмного изображения.
Примечания
Объёмные изображения не поддерживаются на некоторых старых мобильных устройствах. Используйте love.graphics.getTextureTypes для проверки во время выполнения.
См. также
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.graphics.newVolumeImage