Dokument
libsren · Aktivieren eines Shaders · setshader
Synopsis
» typedef long (*shader)(int intensity, long pixel)
bool setshader (shader)
Beschreibung
Die Funktion setshader aktiviert einen "Shader". Ohne einen Shader verwendet der Rasterer den Farbwert, der beim Aufruf eines Grafikprimitivs übergeben wird. Der Shader ist eine Funktion, die vom Rasterer aufgerufen wird und den Farb- bzw. Intensitätswert verändert, bevor er zum Füllen von Flächen benutzt wird. Die Bedeutung einzelner Bits im Bildpunkt ist betriebssystemspezifisch (beispielsweise die RGB-Kodierung von Windows GDI). Der betriebssystemunabhängige Raster stellt der Shader-Funktion daher den Wert des Bildpunktes und einen Intensitätswert zur Verfügung. Die Shader-Funktion manipuliert den Bildpunkt, beispielsweise die drei Farbkanäle rot, grün und blau, anhand des Intensitätswertes.
Der Intensitätswert ist eine ganze Zahl im Bereich 0...256. Er wird vom Rasterer anhand der Orientierung der zu zeichnenden Fläche zur Lichtquelle berechnet (256 steht für maximale Reflektion, d.h. größtmögliche Helligkeit; 0 für keine Reflektion, d.h. geringste Helligkeit).
Konnte die Shaderfunktion nicht eingestellt werden, beispielsweise weil der Rasterer keine Shader unterstützt, ist der Rückgabewert false.
Beispiel
printf("libsren: %s\n", version());
libsren: 0.9.17
Siehe auch
Inhaltsverzeichnis, Stichwortverzeichnis.