NaN und Infinity in GLSL definieren

In der OpenGL Shading Language (kurz GLSL) gibt es Funktionen um Zahlen auf Infinity und NaN zu prüfen. Diese Funktionen sind dabei isinf und isnan. Problematisch wird es wenn man NaN oder Infinity im Quelltext selbst benötigt, da es für diese in GLSL keine vordefinierten Konstanten gibt. Stattdessen muss man diese selbst definieren:

const float infinity = 1.0 / 0.0;
const float nan = 0.0 / 0.0;

Damit kann man NaN und Infinity in seinen Shadern nutzen.

AddIn für die Syntaxhervorhebung von Shadersprachen im Visual Studio 2010

Bei der Entwicklung von Shadern (z.B. GLSL für OpenGL) hat man das Problem das es standardmäßig keine Syntaxhervorhebung durch das Visual Studio gibt. Abhilfe schafft hier das Open Source AddIn NShader welches neben GLSL auch HLSL unterstützt. Damit die Syntaxhervorhebung (bei GLSL) funktioniert müssen die Dateien bestimmte Endungen haben:

  • .frag -> für Fragmentschader
  • .vert -> für Verticeshader
  • .geom -> für Geometrieshader

Zu finden ist das ganze unter http://nshader.codeplex.com/. Das AddIn selbst steht dabei unter der Microsoft Public License (Ms-PL).

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Shader
http://de.wikipedia.org/wiki/GLSL