Difference between revisions of "Shader (Deutsch)"

m (Added example for a fragment shader.)
m (Fixed code tags.)
Line 50: Line 50:
  
 
Ein Fragmentshader in LÖVE.
 
Ein Fragmentshader in LÖVE.
<code>
+
<source lang="GLSL">
 
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
 
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
 
{
 
{
Line 57: Line 57:
 
     return texcolor * color;
 
     return texcolor * color;
 
}
 
}
</code>
+
</source>
  
 
== Siehe auch ==
 
== Siehe auch ==

Revision as of 23:54, 1 October 2014

Available since LÖVE 0.9.0
This type is not supported in earlier versions.

Ein Shader wird für fortgeschrittene hardware-beschleunigte Pixel oder Vertex Manipulationen genutzt.

Diese Effekte werden in einer Sprache geschrieben, welche auf der OpenGL Shading Language (GLSL) basiert.

Die Anwendungsmöglichkeiten von Shadern sind beinahe unbegrenzt. So sind zum Beispiel HDR/bloom, Bewegungsunschärfe, Schwarz/Weiß, Reflektionen, Bump Mapping und Lichteffekte nur einige wenige Anwendungsbereiche.

Konstruktoren

None.

Funktionen

Object:type (Deutsch) Gibt den Typ des Objekts als String zurück.
Object:typeOf (Deutsch) Überprüft ob ein Objekt einem bestimmten Datentypen angehört.

Supertypen

Unterschiede zur GLSL

Die folgenden Variablen weichen von der GLSL ab.

GLSL Löve shader language
float number
sampler2D Image
uniform extern
texture2D(tex, uv) Texel(tex, uv)

Darüber hinaus ist die Struktur eines Shaders in LÖVE nicht die gleiche wie in einem normalen GLSL Programm.

Ein Fragmentshader in LÖVE.

vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
{
    vec4 texcolor = Texel(texture, texture_coords);
    texcolor.rgb = 1.0 - texcolor.rgb;
    return texcolor * color;
}

Siehe auch


Andere Sprachen