Тип текстуры
Доступно начиная с LÖVE 11.0
Этот перечисление не поддерживается в более ранних версиях.
Типы текстур (2D, кубовая, и т. д.)
Постоянные значения
- 2d
- Обычная 2D-текстура с шириной и высотой.
- array
- Несколько 2D-текстур одинакового размера, объединённых в один объект. Аналогично текстурному атласу/листу спрайтов, но предотвращает кровотечение спрайтов и другие проблемы.
- cube
- Кубовая текстура с 6 гранями. Требует пользовательский шейдер (и Shader:send) для использования. Выборка из кубовой текстуры в шейдере использует вектор 3D-направления вместо текстурных координат.
- volume
- 3D-текстура с шириной, высотой и глубиной. Требует пользовательский шейдер для использования. Объёмные текстуры могут иметь фильтрацию текстур, применённую вдоль третьей оси.
Примечания
Текстуры массива можно отрисовывать с помощью love.graphics.drawLayer, с love.graphics.draw и Quad через Quad:setLayer, или путём передачи его в пользовательский шейдер. При получении пикселей слоя текстуры массива в шейдере используется третья компонента текстурных координат для выбора слоя для получения.
При использовании пользовательского шейдера каждый тип текстуры имеет различный тип GLSL.
Image(илиsampler2D) — это 2D-текстура.ArrayImage(илиsampler2DArray) — это текстура массива.CubeImage(илиsamplerCube) — это кубовая текстура.VolumeImage(илиsampler3D) — это объёмная текстура.
Функция Texel шейдера может использоваться для выборки всех типов текстур в шейдере. Texel рекомендуется вместо texture2D, textureCube и т. д., поскольку последние не работают во всех версиях GLSL, поддерживаемых LÖVE, тогда как Texel работает (GLSL 3 удалил texture2D и добавил общую функцию texture).
Каждый тип текстуры имеет различный максимальный размер на системе пользователя. Используйте love.graphics.getSystemLimits для проверки.
Не все типы текстур поддерживаются всеми системами. love.graphics.getTextureTypes может проверить поддержку.
Типы текстур 2D и куба поддерживаются везде. Текстуры массива требуют системы, поддерживающей OpenGL 3 или OpenGL ES 3. Объёмные/3D-текстуры требуют системы, поддерживающей OpenGL 2 или OpenGL ES 3.
См. также
- love.graphics
- Текстура
- Texture:getTextureType
- love.graphics.newImage
- love.graphics.newArrayImage
- love.graphics.newCubeImage
- love.graphics.newVolumeImage
- love.graphics.newCanvas
- love.graphics.drawLayer
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/TextureType