Spec-Zone.ru › LÖVE

Тип текстуры

Доступно начиная с 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API