shader verysimple: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (verysimple)
K (Code: GLSlang Quelltext war als C++ markiert.)
 
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 13:
 
==Bilder==
 
==Bilder==
 
{|
 
{|
|[[Bild:Beispielbild.jpg|framed|Bildbeschreibung]]
+
|''Kein Bild vorhanden''
 
|-
 
|-
|[[Bild:Beispielbild.jpg|framed|Bildbeschreibung]]
 
 
|}
 
|}
  
Zeile 27: Zeile 26:
  
 
==Code==
 
==Code==
<cpp>
+
Vertex Shader
 +
<source lang="glsl">
 
void main(void)
 
void main(void)
 
{
 
{
Zeile 33: Zeile 33:
 
   gl_Position = ftransform();
 
   gl_Position = ftransform();
 
}
 
}
</cpp>
+
</source>
  
<cpp>
+
Fragment Shader
 +
<source lang="glsl">
 
uniform sampler2D Texture0;
 
uniform sampler2D Texture0;
  
Zeile 42: Zeile 43:
 
   gl_FragColor = texture2D(Texture0, gl_TexCoord[0].xy);
 
   gl_FragColor = texture2D(Texture0, gl_TexCoord[0].xy);
 
}
 
}
</cpp>
+
</source>

Aktuelle Version vom 10. März 2009, 21:49 Uhr

verysimple

Zurück zur Shadersammlung

Beschreibung Autor Version
sehr einfacher Shader, welcher eine Textur an Flächen bindet. damadmax 0.1

Bilder

Kein Bild vorhanden

Ich bin mir nicht sicher ob ein einfaches texturiertes Quad als bildliches Beispiel ausreicht?.

Beschreibung

Der Shader ist sehr einfach gehalten. Im Vertex Shader wird lediglich die Standard Transformation durchgeführt und die Texturkoordinate für den Fragment Shader ausgelesen. Der Fragment Shader bannt diesen Texel über einen Lookup in der gebundenden Textur in den Framebuffer.

Besondere Vorraussetzungen

keine

Code

Vertex Shader

void main(void)
{
  gl_TexCoord[0] = gl_MultiTexCoord0;
  gl_Position = ftransform();
}

Fragment Shader

uniform sampler2D Texture0;

void main(void)
{
  gl_FragColor = texture2D(Texture0, gl_TexCoord[0].xy);
}