Difference between revisions of "love.graphics.newPixelEffect"
(Pixel shaders! Probably needs detail and examples) |
(Note placement of origin) |
||
(11 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{newinoldin|[[0.8.0]]|080|[[0.9.0]]|090|type=function|text=It has been renamed to [[love.graphics.newShader]]}} |
Creates a new PixelEffect object for hardware-accelerated pixel level effects. | Creates a new PixelEffect object for hardware-accelerated pixel level effects. | ||
+ | |||
+ | A PixelEffect contains at least one function, named <code>effect</code>, which is the effect itself, but it can contain additional functions. | ||
== Function == | == Function == | ||
Line 8: | Line 10: | ||
</source> | </source> | ||
=== Arguments === | === Arguments === | ||
− | {{param|string|code|The | + | {{param|string|code|The pixel effect code.}} |
=== Returns === | === Returns === | ||
− | {{param|PixelEffect|pixeleffect|A PixelEffect object | + | {{param|PixelEffect|pixeleffect|A PixelEffect object for use in drawing operations.}} |
+ | |||
+ | == Effect Language == | ||
+ | Pixel effects are not programmed in Lua, but by using a special effect language instead. The effect language is basically [http://www.opengl.org/sdk/docs/manglsl/ GLSL 1.20] ([http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf specs]) with a few aliases added for existing types: | ||
+ | |||
+ | {|cellpadding="5" | ||
+ | !GLSL || Effect language | ||
+ | |- | ||
+ | |float || number | ||
+ | |- | ||
+ | |sampler2D || Image | ||
+ | |- | ||
+ | |uniform || extern | ||
+ | |- | ||
+ | |texture2D(tex, uv) || Texel(tex, uv) | ||
+ | |} | ||
+ | |||
+ | == Effect Function == | ||
+ | === Synopsis === | ||
+ | <source lang="glsl"> | ||
+ | vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ) | ||
+ | </source> | ||
+ | === Arguments === | ||
+ | {{param|vec4|color|The drawing color set with [[love.graphics.setColor]].}} | ||
+ | {{param|Image|texture|The texture of the image or canvas being drawn.}} | ||
+ | {{param|vec2|texture_coords|Coordinates of the pixel relative to the texture. The y-axis of canvases are inverted. Coordinates (1,1) would be the top right corner of the canvas.}} | ||
+ | {{param|vec2|screen_coords|Coordinates of the pixel on the screen. Pixel coordinates are not normalized (unlike texture coordinates). (0.5, 0.5) is the bottom left of the screen.}} | ||
+ | === Returns === | ||
+ | {{param|vec4|output_color|The color of the pixel.}} | ||
+ | |||
== See Also == | == See Also == | ||
Line 17: | Line 48: | ||
* [[love.graphics.setPixelEffect]] | * [[love.graphics.setPixelEffect]] | ||
[[Category:Functions]] | [[Category:Functions]] | ||
+ | [[Sub-Category::Object Creation| ]] | ||
{{#set:Description=Creates a new [[PixelEffect]].}} | {{#set:Description=Creates a new [[PixelEffect]].}} | ||
== Other Languages == | == Other Languages == | ||
{{i18n|love.graphics.newPixelEffect}} | {{i18n|love.graphics.newPixelEffect}} |
Latest revision as of 21:50, 27 October 2016
Available since LÖVE 0.8.0 and removed in LÖVE 0.9.0 |
It has been renamed to love.graphics.newShader. |
Creates a new PixelEffect object for hardware-accelerated pixel level effects.
A PixelEffect contains at least one function, named effect
, which is the effect itself, but it can contain additional functions.
Contents
Function
Synopsis
pixeleffect = love.graphics.newPixelEffect( code )
Arguments
string code
- The pixel effect code.
Returns
PixelEffect pixeleffect
- A PixelEffect object for use in drawing operations.
Effect Language
Pixel effects are not programmed in Lua, but by using a special effect language instead. The effect language is basically GLSL 1.20 (specs) with a few aliases added for existing types:
GLSL | Effect language |
---|---|
float | number |
sampler2D | Image |
uniform | extern |
texture2D(tex, uv) | Texel(tex, uv) |
Effect Function
Synopsis
vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords )
Arguments
vec4 color
- The drawing color set with love.graphics.setColor.
Image texture
- The texture of the image or canvas being drawn.
vec2 texture_coords
- Coordinates of the pixel relative to the texture. The y-axis of canvases are inverted. Coordinates (1,1) would be the top right corner of the canvas.
vec2 screen_coords
- Coordinates of the pixel on the screen. Pixel coordinates are not normalized (unlike texture coordinates). (0.5, 0.5) is the bottom left of the screen.
Returns
vec4 output_color
- The color of the pixel.
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info