Переменные шейдера
Доступно начиная с 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;.
См. также
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/Shader_Variables