Spec-Zone.ru › LÖVE

Переменные шейдера

Доступно начиная с LÖVE 0.9.0
Эти встроенные переменные шейдера не поддерживаются в более ранних версиях.

LÖVE предоставляет несколько встроенных переменных для вершинных и пиксельных шейдеров. Все встроенные переменные являются только для чтения, если не указано иное.

Глобальные встроенные переменные

mat4 TransformMatrix
Матрица преобразования, изменяемая функцией love.graphics.translate и аналогичными. Обратите внимание, что автоматически пакетные вершины преобразуются на ЦП, и их TransformMatrix будет матрицей единицы.
mat4 ProjectionMatrix
Ортогональная матрица проекции.
mat4 TransformProjectionMatrix
Объединённые матрицы преобразования и проекции. Используется в качестве аргумента transform_projection для функции позиции вершинного шейдера.
vec4 VaryingTexCoord
Интерполированные текстурные координаты вершин. Автоматически устанавливается в значение VertexTexCoord в вершинном шейдере перед вызовом функции позиции. Используется в качестве аргумента texture_coords для функции эффектов пиксельного шейдера. Доступно для записи в вершинном шейдере. Используйте эту переменную для изменения текстурных координат в вершинном шейдере.
vec4 VaryingColor
Интерполированные цветовые значения вершин. Автоматически устанавливается в значение ConstantColor * gammaCorrectColor(VertexColor) в LÖVE 0.10.0 и более новых версиях, или VertexColor в 0.9.2 и более ранних, в вершинном шейдере перед вызовом функции позиции. Используется в качестве аргумента color для функции эффектов пиксельного шейдера. Доступно для записи в вершинном шейдере. Используйте эту переменную для изменения цвета вершин или постоянного цвета в вершинном шейдере.

Доступно начиная с LÖVE 0.9.1
Эта переменная шейдера не поддерживается в более ранних версиях.

vec4 love_ScreenSize
Ширина и высота экрана (или холста), на который в данный момент происходит рендеринг, хранятся в x и y компонентах переменной. z и w компоненты используются LÖVE внутри. Вы можете преобразовать её в vec2 с помощью love_ScreenSize.xy или vec2(love_ScreenSize).

Вершинные встроенные переменные

vec4 VertexPosition
Позиция вершины до преобразования. Используется в качестве аргумента vertex_position для функции позиции вершинного шейдера. Третий и четвёртый компоненты вектора обычно равны (0, 1).
vec4 VertexTexCoord
Текстурные координаты вершины. Третий и четвёртый компоненты вектора обычно равны (0, 1). Сетки позволяют настраивать текстурные координаты.
vec4 VertexColor
Цвет вершины, спрайта или символа текста, если используется сетка, SpriteBatch или объект текста с цветом каждой вершины, или, в LÖVE 0.9.2 и более ранних версиях — глобальный цвет, установленный с помощью love.graphics.setColor. К нему не применяется гамма-коррекция.

Доступно начиная с LÖVE 0.10.0
Эта переменная шейдера не поддерживается в более ранних версиях.

vec4 ConstantColor
Глобальный цвет, установленный с помощью love.graphics.setColor. Если включена глобальная гамма-коррекция, она уже будет применена.

Пиксельные встроенные переменные

vec4 array love_Canvases[]
Массив, используемый для установки цветов пикселей на холст, когда установлено несколько холстов с помощью love.graphics.setCanvas, а функция эффектов используется вместо effect. Обратите внимание, что массивы в шейдерах нумеруются с 0. Доступно для записи в пиксельном шейдере, когда используется функция effects.
vec2 love_PixelCoord
Координаты пикселя на экране. То же, что и screen_coords, передаваемое в функцию vec4 effect шейдера

Примечания

Если вам нужно получить доступ к текстуре, используемой для отрисовки, вы можете определить униформу под названием MainTex соответствующего типа, например uniform Image MainTex;.

См. также

  • Шейдер
  • love.graphics.newShader

© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/Shader_Variables

Spec-Zone.ru

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